요즘.zip
연구난이도 어려움arXiv · 10월 30일(금) 공개

같은 맥락에서 여러 판단을 빠르게 처리하는 Flide

공유 문맥은 한 번 계산하고 질문별 상태를 분리해, 판단용 모델의 지연 시간을 줄이는 추론 엔진입니다.

쉽게 말하면비유하자면 같은 긴 지문에 딸린 문제 여러 개를 풀 때, 지문은 한 번만 읽고 문제마다 답안지를 따로 두어 서로 베끼지 못하게 하면서 동시에 푸는 방식이다. 지문을 문제마다 다시 읽지 않아 판단이 빨리 나온다.

왜 봐야 하나
한 대화나 기록을 놓고 여러 판단을 내리는 서비스를 만드는 사람에게 참고가 된다. 지연 시간 최대 9.5배 감소는 GPU 한 대에서 작은 모델로 긴 문맥에 여러 질문을 붙였을 때 기존 엔진과 견준 값이다. 질문이 적거나 모델이 크면 이점이 작다.

Flide는 같은 긴 문맥에 여러 질문을 던지는 결정 모델의 추론을 빠르게 하는 엔진이다. 공유 문맥은 한 번 처리하고, 질문들은 서로의 정보를 보지 않도록 분리하면서 GPU에서는 함께 실행한다. 표준 어텐션뿐 아니라 Qwen3.5의 순환 상태도 질문별로 정확히 분기한다. 한 대의 H200에서 얻은 주요 비교의 최대치는 지연 시간 9.5배 감소와 처리량 8.5배 증가다. 이는 모든 요청의 평균이 아니며, 수학적 계산의 동등성·부동소수점의 재현성·문제 정답률을 나눠 읽어야 한다.

알아낸 것

  • 하나의 H200에서 여섯 워크로드를 평가했으며, 여러 질문이 같은 문맥을 공유할 때 기준 엔진 대비 지연 감소가 최대 9.5배였습니다.
  • 정확한 산술에서 독립 실행과 같은 함수를 계산하며, 부동소수점의 비트 단위 재현성은 별도 선택 모드로 제공합니다.
  • 누적 에이전트 기록은 일치하는 접두부의 체크포인트를 재사용하며, 기준 모델의 확률 분포와도 대조했습니다.

한계와 주의할 점

  • 최대 가속 배율은 전체 작업의 평균이 아니며, 질문 수·모델 크기·동시 요청에 따라 달라집니다.
  • 측정은 H200 한 대와 정해진 모델·데이터셋 범위입니다. 정확 산술의 동등성, 부동소수점의 근접성, 정답률은 구분해야 합니다.
  • 일부 기준 엔진은 자체 프롬프트 템플릿을 사용하며, 선택적인 비트 재현 모드에는 처리량 비용이 있습니다.

용어 풀이

결정 모델 (Decision Model)
텍스트를 생성하는 대신 주어진 맥락에 대한 질문에 대해 이산적인 선택지들의 확률 분포를 출력하는 특수 언어 모델. Jev, Open-Jev 등이 예이며, 에이전트의 빠른 판단(System One)에 쓰인다.
공유 상태 (Shared State)
결정 요청에서 모든 질문이 공통으로 읽는 앞부분 토큰 시퀀스. 긴 기사, 대화 기록, 에이전트 궤적 등이 해당한다. Flide는 이를 한 번만 계산하고 각 질문이 이를 재사용하게 한다.
ForkAttention
Flide의 핵심 메커니즘. 표준 어텐션에서는 가시성 규칙으로, Gated DeltaNet 층에서는 두 번의 호출과 상태 인덱싱으로 각 질문 가지가 공유 상태에서 정확히 분기하도록 한다.
Gated DeltaNet
하이브리드 모델(Qwen3.5 등)에서 어텐션을 대체하는 순환 층. 모든 이전 토큰을 고정 크기의 행렬 상태 S_t로 접는다. 마스크로 가지를 분리할 수 없어 Flide는 상태를 명시적으로 포크한다.
선택적 판독 (Selective Readout)
출력 헤드가 각 질문의 마지막 토큰만 필요하다는 점을 이용해, 마지막 층의 MLP 등을 해당 행에서만 실행하는 최적화. 정확한 산술에서 출력을 바꾸지 않는다.
총 변동 거리 (Total Variation Distance)
두 확률 분포가 얼마나 다른지 나타내는 지표. 여기서는 저정밀 엔진의 선택지 확률을 float32 기준과 비교하며, 정답률이나 최상위 답 일치율과는 다르다.

더 깊이 읽기 읽는 데 약 8분

배경과 문제

결정 모델은 긴 대화나 에이전트 기록을 읽고, 다음에 무엇을 할지 또는 어느 경로로 요청을 보낼지 판단한다. 일반 챗봇처럼 설명문을 길게 생성하기보다 주어진 선택지의 확률을 출력한다. 이런 판단이 에이전트의 매 단계에서 반복되면 짧은 지연도 누적된다. 확률이 정해진 임계값을 넘는지에 따라 행동을 바꾸는 서비스에서는 처리 속도와 출력의 수치적 안정성이 함께 중요하다.

요청 하나를 나무로 생각하면 이해하기 쉽다. 모든 질문이 읽는 기사나 대화가 줄기이고 질문들이 가지다. 각 질문은 줄기와 자기 질문의 앞부분만 읽어야 한다. 앞서 나열된 다른 질문까지 읽으면 원래의 독립 질문과 다른 문제가 된다. Flide의 목표는 이 독립성을 유지하면서 공통 계산은 공유하고, 여러 가지를 한꺼번에 GPU에 실행하는 것이다.

기존 접근의 한계

vLLM과 SGLang 같은 생성용 엔진에서는 질문마다 프롬프트를 만들고 토큰화하고 시퀀스를 관리한다. 접두부 캐시가 공통 계산 일부를 줄여도 질문별 실행·복원 비용은 남는다. 특히 하이브리드 모델의 순환 상태를 블록 경계에서만 복원하면 경계 뒤의 꼬리를 다시 계산해야 한다. 다만 모든 기존 엔진이 공유 문맥 전체를 매번 계산한다는 뜻은 아니다. 원문에서도 전체 어텐션을 쓰는 Gemma 4의 vLLM은 공유 상태를 한 번 계산한다고 구분한다.

질문을 한 시퀀스에 이어 붙이는 SGLang의 다중 항목 점수화(MIS)는 공유 계산을 늘리지만 구분 토큰이 실제 모델 입력에 들어간다. 이 때문에 독립 질문의 확률과 달라질 수 있다. 어텐션 마스크로 읽을 토큰을 나누더라도, Gated DeltaNet처럼 과거 정보를 하나의 순환 상태에 접는 층은 별도로 분기해야 한다. 서버 부하에 따른 배치 변화가 부동소수점 합산 순서를 바꾸는 문제도 논리적 질문 분리와는 별개로 남는다.

연구방법을 단계별로

첫째, 요청과 질문의 소속을 GPU 메타데이터로 표현하고 토큰은 평평한 스트림에 모은다. 질문의 위치 번호는 공유 문맥 다음부터 이어져 독립 실행과 같은 위치 정보를 쓴다. ForkAttention은 각 토큰이 같은 요청의 줄기와 자기 가지의 현재·이전 토큰만 읽게 한다. 앞쪽에 놓인 다른 질문이나 다른 요청은 보이지 않는다. 토큰을 붙이는 물리적 배치와 실제 읽기 관계를 분리한 것이다.

둘째, Gated DeltaNet 층에서는 먼저 모든 요청의 공유 문맥을 처리해 마지막 순환 상태와 합성곱 창을 저장한다. 다음 호출에서 질문들을 함께 계산하되 각 질문이 자기 요청의 저장 상태에서 시작한다. 이 두 단계가 어텐션 마스크만으로 처리할 수 없는 순환 층의 분기를 구현한다. 명제와 부록의 증명은 정확한 산술에서 독립 프롬프트와 같은 함수를 계산한다는 내용이며, 실제 저정밀 연산의 모든 비트가 자동으로 같다는 정리는 아니다.

셋째, 스트림 용량별 CUDA 그래프를 준비해 반복적인 GPU 커널 실행 요청 비용을 줄인다. 매 라운드의 질문 수와 길이는 장치 버퍼의 값으로 바뀌므로 동적인 요청도 이미 준비한 그래프에 넣을 수 있다. 패딩은 스트림 꼬리에만 둔다. 큰 라운드는 요청 경계에서 나눠 실행하고, 단일 요청이 최대 그래프에 들어가지 않으면 그래프 없는 경로를 쓴다. 마지막 층에서는 모든 토큰의 키·값은 유지하되 출력에 필요한 질문 끝 토큰을 중심으로 후속 계산하는 선택적 판독도 적용한다.

넷째, 에이전트 기록이 늘어날 때는 이전 문맥의 내부 위치에 저장한 체크포인트를 재사용한다. 그 위치까지 토큰이 일치해야 재개할 수 있으며, 순환 상태·합성곱 창·어텐션의 KV 캐시를 함께 보관한다. 바뀔 수 있는 꼬리는 체크포인트 뒤에 남겨 새 토큰과 함께 계산한다. 선택적인 배치 불변 모드는 합산 순서와 질문별 계산 경계를 고정해 부하 변화에 따른 비트 차이도 줄인다. 이 모드는 별도 성능 비용이 있는 선택 사항이다.

결과와 숫자의 의미

주요 실험은 NVIDIA H200 한 대에서 Qwen3.5와 Gemma 4의 여러 크기를 bfloat16으로 실행했다. RACE·QuALITY·MultiRC·Decision Index에서 여섯 워크로드를 만들고, 단독 요청의 중앙 지연 시간과 여러 클라이언트가 계속 요청하는 처리량을 구분했다. 모델과 워크로드가 같아도 동시 요청 수가 다르면 비교할 수치가 달라진다. 엔진은 차례로 시작하고 각 부하 단계 전에 접두부 캐시를 비웠으며, 요청 사본끼리 공유 상태를 재사용하지 못하도록 별도 태그를 넣었다.

표 3의 최대 9.5배는 Qwen3.5-0.8B의 QuALITY 전체 질문에서 확인할 수 있다. 단독 요청 지연은 vLLM 362ms, SGLang 359ms, Flide 37.7ms다. 같은 워크로드의 클라이언트 8개 처리량은 각각 초당 4.5·4.6·39.1요청으로, 최고 비교군 대비 8.5배다. 긴 문맥에 여러 질문이 붙을수록 이점이 컸다. 질문 하나인 작은 모델의 최대 지연 개선은 3.2배였지만 큰 모델에서는 비교군과 비슷하거나 조금 느린 셀도 있어 최대치를 일반화할 수 없다.

표 4는 정답률과 기준 출력 일치도를 따로 보여준다. Qwen3.5 네 크기의 평균에서 Flide의 최상위 답은 모든 워크로드에서 float32 기준과 가장 자주 일치했다. 실제 문제 정답률은 각 셀에서 vLLM과 1.2퍼센트포인트 이내였으며 항상 더 높은 것은 아니다. 클라이언트 한 개에서 64개로 바꿀 때 최상위 답이 달라진 비율의 최대치는 Flide 0.2%, SGLang 1.7%, vLLM 3.2%였다. 이는 부하 변화의 안정성이지 오답률이 아니다.

구분 토큰의 영향은 또 다른 검사다. Qwen3.5-4B에서 MIS의 float32 기준 대비 총 변동 거리 중앙값은 Flide의 약 12배였다. 확률 0.5를 넘는지에 따른 판정 뒤집힘은 시험한 설정에서 MIS 최대 29%, Flide 최대 2.3%였다. 이 수치를 일반적인 문제 오답률로 읽으면 안 된다. SWE-agent의 공개 실행 기록을 재생한 별도 실험에서는 Flide가 가장 강한 비교군보다 초당 4.4~7.2배 많은 단계를 처리했다. 실제 코딩 과제의 완료율이 높아졌다는 결과는 아니다.

구체적인 예시

한 RACE 지문에 네 객관식 질문이 있다면 네 질문의 공통 지문 처리를 공유하되 답끼리 영향을 주지 않아야 한다. 표 3의 Qwen3.5-0.8B에서 전체 질문 요청의 지연은 vLLM 47.3ms, SGLang 31.0ms, Flide 7.2ms였다. Flide는 지문을 읽은 상태에서 네 가지를 만들고 함께 실행한다. 비교 엔진의 캐시가 일부 계산을 줄이더라도 질문마다 남는 토큰화·복원·스케줄링 비용까지 같은 정도로 없애지는 못한다.

에이전트가 저장소를 살펴보고 도구 결과를 기록하는 경우, 다음 판단에는 이전 기록과 새 기록이 함께 필요하다. Flide는 일치하는 이전 접두부에서 재개하고 새 기록과 변경된 꼬리를 계산한다. 표 7의 Qwen3.5-4B에서 기록 길이 구간에 따른 단계 지연은 4천 토큰 미만 22.4ms, 1만2천 토큰 초과 36.1ms였다. 기록이 늘어도 공짜가 되거나 시간이 완전히 일정한 것은 아니지만, 매 단계 전체를 다시 처리하는 부담을 줄이는 원리를 보여준다.

한계와 오해하기 쉬운 점

정확 산술의 동등성, float32 기준과의 근접성, 실제 문제의 정답률은 서로 다른 주장이다. 기본 모드에서는 커널과 타일 모양에 따라 반올림 차이가 생긴다. 부록 표 12의 선택적 배치 불변 모드는 시험한 여섯 모델·여섯 워크로드에서 부하에 따른 비트 일치를 보였지만 클라이언트 64개에서 처리량이 최대 10% 줄었다. 같은 실행 환경에서의 부하 불변성을 다른 하드웨어·소프트웨어 사이의 보편적 재현성으로 확대해서는 안 된다.

주요 성능 수치는 한 GPU와 정해진 모델·데이터셋의 결과다. Flide와 vLLM은 같은 프롬프트를 쓰지만 SGLang과 vllm-jev는 자기 템플릿을 사용하므로 정확도 비교에 입력 표현의 차이도 있다. 다중 항목 점수화는 CUDA 그래프를 끈 설정이다. 이런 조건을 생략하면 엔진 설계 자체의 차이와 주변 실행 환경의 차이를 구분하기 어렵다.

이 엔진의 중심은 공유 문맥에서 선택지 확률을 얻는 결정 요청이다. 임의의 긴 자유 생성 대화, 여러 GPU 분산 서비스, 모든 모델에서 같은 가속을 검증한 논문은 아니다. 질문 수가 적거나 모델 계산이 대부분인 요청에서는 이점이 작다. 여기서는 공개 원문과 표를 대조했으며 엔진을 설치해 저자의 속도 결과를 독립 재현한 것은 아니다.

실제로 어떻게 활용할까

적용 가능성을 검토할 때는 같은 상태를 읽는 판단이 여러 개 있는지부터 살펴볼 수 있다. 가상의 고객 지원 예라면 한 대화에서 담당 부서·긴급도·정책 위반 여부를 따로 판단하는 구조가 해당한다. 이를 한 요청의 독립된 질문들로 묶을 수 있다면 공유 계산의 이점을 시험할 수 있다. 이는 논문의 기법을 설명하는 사용 예이며 실제 고객 지원 성능 측정은 아니다.

확률 임계값으로 행동을 선택하는 서비스라면 지연과 처리량뿐 아니라 기존 엔진 대비 확률 분포, 임계값 부근의 판정 변화, 부하 변화의 재현성을 함께 비교해야 한다. 에이전트 기록에서는 접두부가 실제로 일치하는지와 체크포인트 보관 비용도 확인할 항목이다. 배치 불변 모드를 켤지는 비트 재현성의 필요와 처리량 손실을 같은 요청 집합에서 측정해 정할 수 있다.

원문에서 확인한 근거 6곳
  • 주요 비교에서 최대 지연 개선은 9.5배, 최대 처리량 증가는 8.5배였으며 평균 성능을 뜻하지 않는다.Main Results
  • Qwen3.5-0.8B의 QuALITY 전체 질문 지연은 vLLM 362ms, SGLang 359ms, Flide 37.7ms였다.Table 3
  • Qwen3.5의 정답률은 각 셀에서 vLLM과 1.2포인트 이내였고, 기준 답 일치도와 정답률은 별도 지표다.Answer Fidelity
  • 구분 토큰 방식의 임계값 판정 뒤집힘은 최대 29%, Flide는 최대 2.3%였으며 문제 오답률과 구별된다.cost of a delimiter
  • 배치 불변 모드의 비트 일치 검사는 여섯 모델과 여섯 워크로드에서 수행했고, 동시 클라이언트 64개에서 처리량 비용이 최대 10%였다.Identical bits.
  • 공유 접두부가 일치하는 체크포인트에서 에이전트의 누적 상태 처리를 재개한다.Incremental state forking

11월 3일(화) 정리 · AI가 쓰고 원문과 대조

AI 목록

다른 AI 글

전체 보기
물리 연구를 통째로 맡겨 보는 AI 시험 FrontierPhysics물리학자 42명이 자기 연구로 만든 과제 56개를 AI 에이전트에게 통째로 맡겼더니, 가장 잘한 AI도 168번 가운데 46…평가·벤치마크난이도 보통AI가 아는 것과 '안다'는 말의 차이를 잰 벤치마크 FinDendro날짜가 붙은 미국 금융 사실 2,226건으로 AI가 실제로 맞히는 것과 '안다'고 말하는 것을 견줬더니, 대부분의 모델에서…평가·벤치마크난이도 보통에이전트 메모에 근거 기록을 연결하는 기억 기법 WikiTraceAI 에이전트가 쌓아 둔 교훈마다 근거가 된 작업 기록을 연결해 되짚게 했더니, 메모 때문에 틀리는 일이 줄고 평균 점수가…연구 · 프리프린트난이도 보통세포 종류별로 DNA 변이 영향을 예측하는 알파게놈 2DNA 100만 글자와 '어떤 세포인지'를 함께 넣는 모델을 만들어, 변이가 세포 종류마다 유전자 활동을 어떻게 바꾸는지 이…공식 연구 발표난이도 어려움시그널 암호 코드 보안을 AI가 증명한 AlphaProof Code사람이 '무엇을 증명할지'를 정하면 AI 에이전트 팀이 증명을 쓰는 방식으로, 메신저 시그널의 암호 코드가 보안 약속을 지킨…공식 연구 발표난이도 어려움AI 모델 파일에 남은 GPU 지문을 읽는 체크포인트 포렌식공개된 AI 모델 파일에 남은 초기값 흔적으로 첫 값을 만든 GPU 계열을 가려내는 방법을 내놓았다. 중국 4개 회사의 모델…기술 보고서난이도 어려움생활 속 일을 실제로 해내는 AI를 평가하는 LifeVal시간 사용 조사와 이용자 설문으로 생활 과제를 정한 평가이며, 공개된 일부 과제 점수의 의미와 한계를 살펴봅니다.평가난이도 쉬움잡음을 지웠더니 언어 판별이 나빠졌다: SceneMaker의 한국어 방송 실험한국어 방송 6편의 발화 3,115구간에서 잡음 제거가 언어 판별 점수를 낮춘 사례를 살펴보고, 검수 방식과 적용 범위를 구…커뮤니티 해설난이도 보통