Language Models Can Control Their Own Attention
모델이 필요한 맥락을 직접 선언하면 추론 엔진은 어디까지 덜 읽을 수 있을까. Declarative Attention의 세 모드, 주의 토큰 절감과 정확도의 교환, 실측과 구분해야 할 시간 추정을 살펴본다.
Paper: Namgyu Ho; Huzama Ahmad; Woosung Koh; Se-Young Yun; Tal Schuster; Cicero Nogueira dos Santos (2026). Language Models Can Control Their Own Attention. arXiv:2609.02737v1 (2026-09-02). 논문 PDF · HTML. 이 글은 42쪽의 v1을 기준으로 한다.
Abstract: 긴 문서에서 필요한 근거는 몇 군데뿐이어도, 언어 모델의 전역 주의 층은 새 토큰을 만들 때마다 전체 맥락의 KV 캐시를 읽는다. Declarative Attention(DA)은 모델이 추론 과정에서 참조할 구간을 텍스트로 선언하고, 추론 엔진이 그 선언을 실제 접근 마스크로 바꾸는 방법이다. 전체를 탐색하는 global, 지정한 구간을 읽는 focus, 이미 모은 정보로 답을 구성하는 local을 오가며 디코딩 중 반복 읽기를 줄인다. 논문은 15개 장문 과제 소스에서 Gemma-4-31B와 Qwen-3.6-27B의 주의 토큰이 각각 52.0%와 31.1% 감소하고, 평균 정확도는 1.27%p와 2.75%p 낮아졌다고 보고한다. 다만 이는 생성 토큰 수나 캐시 저장 용량의 감소가 아니며, 제시된 시간 배율도 실측이 아닌 비용 모형의 추정값이다. 이 글은 선언과 마스크를 연결하는 설계, 보고된 정확도·비용의 교환, 그 결과를 적용할 수 있는 범위를 구분해 살펴본다.
수식 없이 읽는 버전은 쉽게 읽는 Declarative Attention에 있다.
Executive Summary
| 항목 | 설명 |
|---|---|
| 연구 질문 | 모델이 필요한 맥락 구간을 직접 선언하게 하면, 별도 선택기의 매 스텝 스캔 없이 KV 캐시 읽기를 줄일 수 있는가? |
| 방법 | 약 2K 토큰의 구간을 이름으로 참조하고, global·focus·local 상태에 따라 읽을 KV 블록을 바꾼다. |
| 줄이는 비용 | 전역 주의 층의 디코딩 중 캐시 접근량이다. 전체 캐시는 유지하며, 프리필과 효율 층의 비용은 별개다. |
| 비교 조건 | 원래 입력을 쓰는 Vanilla, DA 프롬프트만 쓰는 DA-no-mask, 프롬프트와 마스크를 함께 쓰는 DA다. |
| 주 결과 | Gemma: 정확도 87.01→85.74%, 주의 토큰 13.43→6.45M. Qwen: 85.31→82.56%, 22.54→15.52M. 15개 소스를 동일 가중한 평균이다. |
| 시간의 의미 | B200·bf16, MFU 40%·MBU 70%를 가정한 디코딩 비용 추정이 Vanilla의 0.71배·0.77배다. 실제 응답 지연시간 측정값이 아니다. |
| 적용 범위 | thinking을 끈 고정 맥락 평가다. 부록의 별도 여섯 소스에서는 정확도 손실이나 총 참조량 증가가 나타난다. |
| 남은 검증 | 소스별 실제 평가 문항 수, 개별 오류 원인, 다른 배포 조건에서의 지연시간과 처리량을 추가로 확인해야 한다. |
목차
- 기억을 남기는 것과 매번 읽는 것은 다르다
- 탐색하고, 집중하고, 모은 정보로 답한다
- 텍스트 선언을 실제 캐시 접근으로 바꾼다
- 세 비교 조건이 무엇을 분리하는가
- 덜 읽지만 더 많은 토큰을 생성한다
- 주의 토큰 절감이 같은 비율의 속도 향상은 아니다
- 큰 모델과 긴 맥락에서 달라지는 것
- 전체를 모아야 하는 과제에서는 이점이 약해진다
- 평균을 읽기 전에 확인할 표본과 판정
- 적용 조건과 결론
1. 기억을 남기는 것과 매번 읽는 것은 다르다
긴 회사 연혁에서 설립 연도와 상장 연도를 찾았다고 하자. 두 시점의 차이를 계산하는 동안에는 이미 찾은 숫자만 있으면 된다. 그런데 일반적인 전역 주의는 답의 다음 토큰을 생성할 때도 앞선 맥락 전체를 참조한다. DA가 줄이려는 것은 이 필요한 정보를 찾은 뒤에도 반복되는 읽기다.
KV 캐시는 앞선 토큰의 키와 값 표현을 저장해 같은 계산을 반복하지 않게 한다. 그렇다고 읽는 비용까지 사라지는 것은 아니다. 긴 맥락에서는 생성 단계마다 캐시를 메모리에서 불러오는 작업이 큰 부담이 된다. 논문은 Qwen-3.5-397B-A17B의 1M 토큰 맥락에서 스텝당 약 15GB의 KV 읽기가 필요하다는 예를 든다. 이 1M 토큰 예시는 비용 구조를 설명하기 위한 것이며, 뒤에서 다룰 DA의 실제 평가 입력 상한은 244K다. 논문 §1
희소 주의는 덜 중요한 위치를 읽지 않는 방향으로 이 문제를 푼다. 다만 무엇이 중요한지 정하는 일에도 비용이 든다. 최근성이나 과거 주의 점수를 활용할 수도 있고, Quest처럼 현재 질의에 맞춰 가벼운 점수로 후보를 고를 수도 있다. 후자의 경우에도 매 생성 단계에서 캐시를 훑는 선택 과정이 남는다.
DA는 별도의 선택기가 아니라 모델이 생성한 참조 계획을 사용한다. “이제 2번 구간에서 설립 연도를 읽겠다”는 선언을 추론 엔진이 알아듣게 하자는 것이다. 이는 모델이 언제나 올바른 근거를 안다는 가정의 입증이 아니라, 그러한 선택 행동을 프롬프트로 유도할 수 있는지 시험하는 설계다. 별도의 매 스텝 O(N) 선택기 스캔은 생략하지만, 전체를 탐색하는 단계와 선언을 생성·처리하는 비용까지 없어지는 것은 아니다.
2. 탐색하고, 집중하고, 모은 정보로 답한다
DA는 긴 입력을 주소가 있는 구간으로 나눈다. 논문은 이 구간을 magic chunk라고 부른다. 모델은 생성 중 세 모드를 오가며 어느 구간을 읽을지 선언한다.
| 모드 | 긴 입력에서 읽는 범위 | 프롬프트가 유도하는 역할 |
|---|---|---|
<global> |
모든 구간 | 필요한 근거가 어디 있는지 탐색한다. |
<focus magic_chunks="2"> |
지정한 구간 | 해당 구간에서 필요한 값을 추출한다. |
<local> |
긴 입력 구간을 읽지 않음 | 질문과 지금까지 모은 정보로 계산하고 답을 구성한다. |
모드가 바뀌어도 질문, DA 지시문, 지금까지 생성한 응답은 유지된다. 따라서 local은 아무것도 보지 않는 상태도, 최근 몇 토큰만 보는 별도의 짧은 창도 아니다. 긴 입력을 다시 읽는 대신 응답에 이미 남긴 정보를 사용한다는 뜻이다. 부록 B의 구현 설명에는 입력 앞부분의 16토큰을 attention sink로 유지하는 규칙도 포함되어 있다.
논문의 예시는 회사의 설립 연도와 상장 연도를 서로 다른 구간에서 찾는 과정이다. global에서 위치를 확인하고, focus에서 “2003년 설립”, “2011년 상장”을 추출한 뒤, local에서 2011−2003을 계산한다. 프로토콜 자체가 모드의 순서나 반복 횟수를 강제하지는 않는다. 위의 역할은 제로샷 프롬프트가 제공하는 안내다. 논문 §2
Figure 1. 모델의 선언에 따라 긴 입력의 가시 범위를 바꾸되, 질문·지시문과 누적 응답은 계속 참조한다. 이 그림은 프로토콜의 동작 예시이며 주 실험 평균과는 구분해야 한다. 논문 v1, 1쪽 Figure 1에서 도판 영역을 추출해 인용.
구현상 global은 기본 상태다. focus나 local 시작 태그의 마지막 >를 읽으면 제한이 적용되고, 대응하는 닫는 태그 뒤에는 global로 돌아간다. <global> 태그 자체는 상태를 바꾸기보다 모델이 추론 구조를 따라가도록 돕는다. 따라서 “global을 명시한 구간에서만 전체를 읽는다”는 설명은 정확하지 않다. 선언된 제한 구간 밖에서도 기본적으로 전체를 읽는다.
3. 텍스트 선언을 실제 캐시 접근으로 바꾼다
모델이 구간을 이름으로 부르려면 경계를 안정적으로 알아볼 수 있어야 한다. DA는 약 2,048토큰을 목표로 입력을 나누되, 긴 단위를 문단→줄바꿈→문장→절→낱말 경계 순으로 분할한다. 이 구간을 모델이 학습 중 접한 도구 호출과 응답 형식으로 구성해 입력한다. get_magic_chunk를 호출한 것처럼 보이는 대화지만, 실제 도구를 실행하는 것은 아니다. 모든 구간은 생성이 시작되기 전에 입력에 들어가 있다.
다음 단계는 추론 엔진의 작업이다. vLLM은 KV 캐시를 보통 16~32토큰의 블록으로 관리한다. 같은 블록 안에서 몇 토큰만 가려도 커널이 블록 전체를 읽으면 메모리 접근량은 줄지 않는다. DA는 유지할 토큰 구간을 블록 경계 바깥으로 반올림하고, 해당 블록만 보이도록 요청의 블록 테이블을 바꾼다. 선언한 토큰은 보존하지만 경계에서 약간의 추가 읽기가 발생한다. 논문 §2.2–2.3
이때 캐시를 삭제하는 것은 아니다. 전체 KV 캐시는 남아 있고, 다시 global로 돌아가면 앞선 맥락을 읽을 수 있다. 따라서 캐시 저장 용량을 줄이는 퇴출 방식과 구분해야 한다. DA가 직접 줄이는 것은 디코딩 중의 접근량이다. 입력 전체의 표현을 처음 계산하는 프리필 비용도 이 결과와 별개다.
논문은 vLLM의 주의 메타데이터 생성 경로에 훅을 추가하되, 커널과 스케줄러는 바꾸지 않는 통합을 설명한다. 부록 B는 Gemma의 Triton paged-attention 경로와 Qwen 전역 주의의 FlashAttention 경로를 구분한다. “커널 수정 없음”은 “일반 챗봇에 태그를 쓰라고 지시하면 바로 빨라짐”이라는 뜻이 아니다. 선언을 실제 읽기 제한으로 연결하는 엔진 통합이 필요하다. 논문 부록 B
마스크는 전역 주의 층에만 적용된다. Gemma의 슬라이딩 윈도 주의(SWA), Qwen의 Gated DeltaNet(GDN)처럼 고정 창이나 순환 상태를 쓰는 효율 층은 그대로다. 긴 입력을 덜 읽어도 모든 층의 비용이 같은 비율로 줄지는 않는 이유다.
4. 세 비교 조건이 무엇을 분리하는가
주 비교는 Gemma-4-31B와 Qwen-3.6-27B를 사용한다. 규모 분석에는 Gemma-4-12B·E4B와 Qwen-3.5-9B·4B가 추가된다. 평가 자료는 RULER, LongBench v1/v2, LooGLE, ZeroSCROLLS에서 가져온 15개 소스다. 단일 구간 검색·추론 10개와 다중 구간 추론 5개로 나누며, 11개는 원래 QA를, 4개는 Gemini-3-Flash로 만든 합성 QA를 사용한다.
입력이 244K 토큰을 넘는 표본은 제외한다. Gemma-4-E4B는 입력 한도가 작아 116K를 적용한다. 그 뒤 소스당 최대 128개를 고정 시드로 뽑는다. 같은 모델의 세 비교 조건은 같은 문항을 사용하지만, 모델 간에는 토크나이저와 길이 필터에 따라 문항이 달라질 수 있다. 논문 §4
| 조건 | 입력과 생성 지시 | 주의 마스크 |
|---|---|---|
| Vanilla | 원문을 그대로 주고 답을 <answer>로 감싼다. |
전체 인과 주의 |
| DA-no-mask | 구간 분할과 세 모드 지시를 포함한 DA 프롬프트를 쓴다. | 전체 인과 주의 |
| DA | DA 프롬프트를 쓴다. | 선언에 따라 읽을 구간을 제한 |
Vanilla와 DA-no-mask의 비교는 입력 형식과 지시 변경의 영향을 살펴본다. DA-no-mask와 DA의 비교는 같은 프롬프트에서 마스크를 적용했을 때의 변화를 살펴본다. 모든 조건은 같은 최종 답 형식을 쓰므로, DA만 별도의 답안 규칙으로 평가하는 비교는 아니다.
여기서 **주의 토큰(attended tokens)**은 생성한 토큰 수가 아니다. 각 디코딩 스텝에서 참조한 KV 위치 수를 응답 전체에 걸쳐 합한 값이다.
총 주의 토큰 = Σ_t 그 스텝에서 참조한 KV 위치 수
한 스텝에서 덜 읽어도 생성이 길어지면 총량은 늘 수 있다. 정확도와 주의 토큰 모두 소스 안에서 평균한 뒤, 15개 소스를 동일 가중한다. 따라서 헤드라인 절감률은 소스별 절감률 15개를 단순히 평균한 값이 아니라, 이렇게 구한 전체 평균 참조량의 비율이다.
평가 대상 모델의 thinking 모드는 껐다. 저자들은 예비 실험에서 현재 프로토콜을 thinking 트레이스 안에서 따르지 못했다고 설명한다. 이는 이번 평가 설정의 한계이지, 모든 모델에서 thinking과 DA를 결합할 수 없다는 증명은 아니다. 최대 생성 길이는 8K이며, 다음 절의 수치에는 이 한도 안에 끝나지 않은 응답도 포함된다. 답을 채점하는 판정자의 thinking 설정은 평가 대상 생성 모델과 별개다.
5. 덜 읽지만 더 많은 토큰을 생성한다
| Table 2의 전체 평균 | Gemma-4-31B | Qwen-3.6-27B |
|---|---|---|
| Vanilla 정확도 | 87.01% | 85.31% |
| DA-no-mask 정확도 | 87.01% | 84.62% |
| DA 정확도 | 85.74% | 82.56% |
| Vanilla 주의 토큰 | 13.43M | 22.54M |
| DA-no-mask 주의 토큰 | 22.31M | 29.02M |
| DA 주의 토큰 | 6.45M | 15.52M |
| Vanilla 대비 DA 정확도 변화 | −1.27%p | −2.75%p |
| Vanilla 대비 DA 주의 토큰 감소 | 52.0% | 31.1% |
M은 백만 KV 위치의 누적 참조량을 뜻한다. 표는 논문 Table 2의 보고값이며, 이 검토에서 모델을 재실행해 얻은 결과가 아니다.
가장 중요한 비교는 DA-no-mask다. DA 프롬프트만 쓰면 두 모델의 평균 정확도는 Vanilla와 같거나 가깝지만, 주의 토큰은 오히려 늘어난다. 입력 구성과 생성 길이가 달라졌는데 모든 스텝이 여전히 전체 맥락을 읽기 때문이다. 마스크를 적용한 DA에서는 그 추가 비용을 넘어서는 참조량 절감이 나타난다. 논문 §5.1·Table 2
Figure 2. Vanilla를 100으로 두면 DA는 더 많은 토큰을 생성하면서도 총 주의 토큰은 줄인다. 마스크 없는 DA에서는 같은 방향의 절감이 나타나지 않는다. 논문 v1, 9쪽 Figure 2에서 인용.
Figure 2에서 DA의 디코드 스텝은 Vanilla보다 약 35%와 31% 많다. 즉 이 방법은 짧게 답해서 덜 읽는 것이 아니라, 더 길게 생성하더라도 각 단계의 읽기 비용을 낮추는 방식이다. 태그와 정보 추출을 위한 중간 응답은 공짜가 아니다.
정확도도 같은 비교에서 읽어야 한다. DA-no-mask 대비 DA는 Gemma에서 1.27%p, Qwen에서 2.06%p 낮다. 마스크를 적용한 조건에서 추가 손실이 관찰된다는 뜻이다. 그러나 “프롬프트는 언제나 무손실”이라고 일반화할 수는 없다. 평균이 같아도 개별 과제에서는 개선과 악화가 상쇄될 수 있으며, 이 집계표만으로 각 오답을 잘못된 구간 선택 탓으로 분류할 수도 없다.
전체 평균이 모든 과제를 대표하지도 않는다. Qwen에서는 15개 중 5개 소스의 주의 토큰이 Vanilla보다 늘어난다. 선택적 읽기가 잘 맞는 과제와 생성이 길어지는 과제가 섞여 있기 때문이다. 따라서 적용 여부를 판단할 때는 평균 절감률뿐 아니라 자신의 과제에 해당하는 행을 함께 봐야 한다.
6. 주의 토큰 절감이 같은 비율의 속도 향상은 아니다
한 스텝에서 KV를 덜 읽어도, 늘어난 생성 스텝만큼 FFN 계산과 효율 층의 상태 읽기는 더 수행한다. 논문은 이 교환을 루프라인(roofline) 비용 모형으로 계산한다. 연산량과 메모리 읽기량을 하드웨어의 처리 능력과 가정한 이용률로 나누는 방식이다.
- FFN 시간 항: FLOPs / (최대 연산 성능 × MFU).
- 주의 읽기 시간 항: KV 바이트 / (최대 메모리 대역폭 × MBU).
- 효율 층의 시간 항: SWA나 GDN이 생성 스텝마다 요구하는 고정 창·상태 읽기.
MFU는 최대 연산 성능 중 실제 활용 비율, MBU는 최대 메모리 대역폭 중 활용 비율이다. 배치 크기가 식에 직접 들어가지 않더라도, 큰 배치에서 FFN이 계산 병목에 도달하고 메모리 대역폭을 충분히 활용한다는 전제가 있다. 배포 조건과 무관한 속도 예측은 아니다. 논문 §3
| Table 3: 디코딩 루프라인 추정, 실측 아님 | 행렬 연산 | 전역 메모리 읽기 | 효율 층 읽기 | 합계 | Vanilla 대비 |
|---|---|---|---|---|---|
| Gemma-4-31B Vanilla | 22.9ms | 196.5ms | 49.7ms | 269.1ms | 1.00× |
| Gemma-4-31B DA | 30.9ms | 94.4ms | 67.1ms | 192.3ms | 0.71× |
| Qwen-3.6-27B Vanilla | 34.4ms | 263.8ms | 8.0ms | 306.2ms | 1.00× |
| Qwen-3.6-27B DA | 45.1ms | 181.6ms | 10.5ms | 237.3ms | 0.77× |
B200 한 장·bf16, MFU 40%·MBU 70%를 가정한 응답당 비용이다. 각 성분, 합계, 배율은 원표의 반올림된 보고값을 따랐다. 따라서 표시된 성분의 합과 합계에는 0.1ms 차이가 날 수 있다.
줄어드는 항은 전역 메모리 읽기다. 반대로 행렬 연산과 효율 층 읽기는 생성이 길어진 만큼 늘어난다. 특히 Gemma의 SWA처럼 마스크가 건드리지 않는 층의 비중이 크면, 전역 읽기의 절감이 전체 시간으로 그대로 옮겨가지는 않는다. 논문 §5.4·Table 3
논문은 이 수치를 지정 이용률에서의 이론적 상한 추정으로 설명하면서 측정된 실제 경과 시간이 아니라고 명시한다. 실제 시간이 반드시 표의 값 이하라는 보장으로 읽어서는 안 된다. 프리필, 블록 정렬에 따른 추가 읽기, 일부 부수 연산도 모형에서 제외한다. 부록 C.5는 MBU 70%를 저동시성 서빙에 그대로 적용하지 말라고 경고한다. 따라서 “주의 토큰 52% 감소”를 “사용자가 기다리는 시간이 절반으로 감소”로 바꾸는 해석은 성립하지 않는다. 논문 부록 C.5 · C.8
7. 큰 모델과 긴 맥락에서 달라지는 것
모델 규모와 프로토콜 준수
Figure 3. 큰 모델일수록 DA의 상대 정확도가 Vanilla에 가까워진다. 오른쪽 검은 선은 8K 안에 종료하지 못한 응답을 제외한 보조 분석이며, 기본 막대와 평가 범위가 다르다. 논문 v1, 9쪽 Figure 3에서 인용.
Gemma 계열의 상대 정확도는 E4B의 29%에서 31B의 99%로, Qwen 계열은 4B의 64%에서 27B의 97%로 높아진다. 이 수치는 절대 정답률이 아니라 각 모델의 Vanilla 정확도를 100으로 둔 비율이다. 작은 모델에서는 읽기 비용을 낮추는 대신 답의 품질을 크게 잃을 수 있다.
생성 길이도 중요하다. Gemma-4-12B는 총 주의 토큰이 Vanilla의 183%로 늘지만, 종료하지 못한 응답을 제외하면 98%다. 논문은 이 모델에서 미종료 응답이 약 6%라고 설명한다. 이는 긴 생성이 총량을 크게 바꿀 수 있다는 분석이지, 실제 운영 비용을 계산할 때 실패한 응답을 빼도 된다는 뜻은 아니다. 논문 §5.2
규모만의 효과로 해석하는 데도 제약이 있다. Qwen의 작은 두 모델은 3.5, 큰 모델은 3.6으로 세대가 다르다. Gemma-E4B는 다른 입력 한도를 사용하며, 모델별 길이 필터가 평가 문항을 바꿀 수도 있다. 관찰된 추세는 유용하지만 파라미터 수 하나만 바꾼 통제 실험은 아니다.
Figure 6. 가장 큰 두 모델의 유효한 focus 참조율은 약 99%다. 이는 주소를 올바르게 해석할 수 있었다는 지표이며, 그 구간이 정답 근거였거나 최종 답이 맞았다는 뜻은 아니다. 논문 v1, 12쪽 Figure 6에서 인용.
Gemma-E4B에서는 유효한 focus 참조율이 58%로 낮다. 저자들은 이를 정확도 하락과 연결해 프로토콜 준수의 중요성을 강조한다. 다만 focus 참조의 유효성, 올바른 근거 선택, 최종 <answer> 형식 준수는 서로 다른 측정 대상이다. 낮은 준수율과 낮은 정확도가 함께 나타났다는 집계만으로, 정확도 손실 중 얼마가 각 원인에 해당하는지는 분리할 수 없다. 논문 §6.2
맥락 길이와 남은 탐색 비용
Figure 4. Gemma-4-31B에서 긴 맥락일수록 절대 참조량 절감은 커지지만 상대 정확도는 내려간다. 길이 구간별로 여러 소스를 묶은 결과이므로, 같은 문항의 길이만 늘린 비교와는 다르다. 논문 v1, 10쪽 Figure 4에서 인용.
가장 긴 64~256K 구간에서 DA의 상대 정확도는 Vanilla의 약 96%이고, 응답당 주의 토큰의 절대 절감은 약 21M에 이른다. 그림의 구간명이 256K까지여도 실제 입력 필터는 앞서 설명한 244K다. 긴 맥락에서는 한 번 읽기를 생략했을 때의 이익이 커지는 동시에, 선택적으로 읽다가 필요한 정보를 놓칠 위험도 함께 살펴야 한다. 논문 §5.3
Figure 5. focus와 local은 한 스텝에서 읽는 양을 크게 줄이지만, 가장 긴 구간에서는 global 사용 비중이 다시 높아진다. 왼쪽은 생성 토큰의 모드 비중, 오른쪽은 모드별 스텝당 주의 절감률이다. 논문 v1, 12쪽 Figure 5에서 인용.
§6.1은 global이 생성 토큰의 약 27%를 차지한다고 설명한다. 반면 §8.2의 “80% 이상”은 DA의 총 주의 토큰 중 global 스텝에서 발생한 비중이다. 분모가 다르므로 모순이 아니다. global을 사용하는 시간이 생성 과정의 일부여도, 그 단계는 전체 맥락을 읽기 때문에 남은 참조 비용의 대부분을 차지할 수 있다. 이 80%를 전체 디코딩 시간의 비중으로 바꾸어 읽어서도 안 된다. 논문 §6.1 · §8.2
8. 전체를 모아야 하는 과제에서는 이점이 약해진다
주 결과의 15개 소스만 보면 DA가 대부분의 장문 작업에 비슷하게 적용될 것처럼 보일 수 있다. 그러나 부록 D.4는 이 목록에 포함되지 않은 여섯 소스의 결과를 별도로 제시한다. 이를 평가하지 않은 과제라고 부르면 안 된다. 주 결과와 별도의 실패 분석으로 평가한 과제다.
실패 양상은 두 종류다.
- 여러 구간의 정보나 구조를 보존해야 한다. 전체에서 수를 세는
cwe, 분할 과정에서 표 구조가 나뉘는structured_data가 해당한다. Table 10에서 Vanilla 대비 DA 정확도는 각각 약 29.7%p와 21.0%p 낮아진다. - 출력 자체가 문서 길이를 따라 늘어난다. 단어 빈도 열거, 구간별 요약, 문서 순서 정렬, 예제별 in-context learning 같은 작업이다. 한 스텝에서 덜 읽어도 생성 스텝이 많아지면 응답 전체의 참조량은 증가할 수 있다.
| Table 10: 별도 여섯 소스, Gemma-4-31B | Vanilla | DA | 변화 |
|---|---|---|---|
| 평균 정확도 | 63.28% | 54.26% | −9.02%p |
| 평균 주의 토큰 | 38.62M | 45.97M | 약 +19.0% |
여섯 소스의 동일 가중 평균이다. 본문 15개 소스의 결과나 전체 후보 과제의 성능으로 대체해서는 안 된다. 출처: 논문 Table 10.
이 여섯 소스 모두 스텝당 주의는 줄었다. 따라서 “마스크가 작동했는가”와 “응답 전체가 더 저렴하고 정확해졌는가”는 다른 질문이다. 실사용에서는 후자가 중요하다. structured_data는 마스크 없는 DA-no-mask에서도 정확도가 낮아지므로, 입력 분할과 프롬프트의 영향까지 함께 보아야 한다. 논문 부록 D.4·Table 10
같은 부록은 ruler_qa_1과 ruler_qa_2를 건너뛰었다고 밝힌다. 중간 설명을 금지하고 답만 요구하는 과제 지시가 DA의 단계별 생성과 충돌하기 때문이다. 다른 소스에도 유사한 마찰이 있다고 언급하지만, 이 정보만으로 전체 제외 개수나 선정 경위를 확정할 수는 없다.
이 결과가 보여 주는 것은 DA의 보편적 실패도, 실패가 중요하지 않다는 것도 아니다. 일부 근거를 읽어 짧게 답하는 작업과, 전체를 훑어 구조를 보존하며 길게 출력하는 작업은 비용 구조가 다르다. 저자들은 구조를 보존하는 분할, 여러 구간을 차례로 읽고 결과를 누적하는 방식, 후학습 등을 제안한다. 다만 이 부록의 제안을 검증된 해결책으로 소개해서는 안 된다.
9. 평균을 읽기 전에 확인할 표본과 판정
소스별 실제 평가 문항 수는 별도로 필요하다
§4가 명시하는 것은 소스당 최대 128개라는 규칙이다. 부록 D.1은 가용 풀 크기 N이 Table 1에 있다고 설명하지만, 실제 표에는 그 열이 없다. Table 1의 길이 평균과 표준편차도 원래 소스의 요약이지 필터를 통과한 평가 문항 수가 아니다. 예를 들어 code_repo의 평균 길이 1,071.1K를 1M 토큰에서 DA를 평가했다는 뜻으로 읽으면 안 된다. 논문 Table 1 · 부록 D.1
반올림된 정확도로 문항 수를 역산하는 데는 한계가 있다. code_repo의 72.2→77.8%는 N=18이라면 정답 수가 13개에서 14개로 늘어난 경우와 맞는다. 그러나 같은 비율은 더 큰 분모와도 양립한다. 설령 N=18이 맞아도 이는 정답 수의 순증가가 1개라는 뜻이지, 오직 한 문항의 정오만 바뀌었다는 뜻은 아니다. 문항별 대응 결과가 없으면 개선과 악화가 서로 상쇄된 정도를 알 수 없다.
Table 9의 n도 구분해야 한다. quality의 108, code_repo의 107, dialogue_history의 214는 두 모델과 세 방법에 걸쳐 합산한 판정자 검증 응답 수다. 이를 6으로 나눈 값이 각 조건의 본 평가 문항 수라는 보장은 없다. 따라서 이 글은 특정 소스가 정확히 18개나 39개라고 확정하지 않는다.
소스 동일 가중 평균 자체가 잘못된 집계법은 아니다. 과제별 성능을 같은 비중으로 보려는 선택이다. 다만 문항 수가 다른 소스도 같은 무게를 가지므로, 개별 과제의 몇 %p 차이가 얼마나 안정적인지 판단하려면 필터 전후 N, 반복 실행, 신뢰구간이 함께 필요하다.
판정자 검증은 유용하지만 모든 편향을 없애지는 않는다
평가는 자유 형식 답변을 다루기 때문에 LLM 판정자를 사용한다. Gemini-3-Flash가 문항별 채점 기준을 만들고, thinking을 켠 Qwen-3.5-4B가 이를 적용한다. 저자들은 두 주 모델과 세 방법에서 뽑은 2,993개 응답을 Gemini-3.1-Pro로 다시 채점해 개별 판정 일치율 98.53%, κ=0.940을 보고한다. 주어진 채점 기준 아래 두 판정자가 대체로 일치한다는 근거다. 논문 부록 D.2
반면 Qwen-3.5-4B는 규모 분석의 평가 대상이기도 하다. 판정자가 특정 모델 가족을 선호하는지, 작은 모델의 응답에서도 같은 수준으로 일치하는지는 별도의 질문이다. 위 재채점은 주 비교의 두 큰 모델을 대상으로 하므로 여섯 모델 전체의 편향이 배제되었다고 말할 수 없다. 반대로 같은 가족이라는 이유만으로 편향이 발생했다고 단정할 근거도 없다.
검토 범위
이 글은 v1의 PDF·HTML, 표와 도판, 부록의 평가·구현 설명을 대조했다. 주요 표의 평균·차이·비율은 인쇄값 수준에서 확인했으며, 반올림된 값만으로 원자료를 정확히 복원했다고 주장하지 않는다. 모델 실행, vLLM 통합, 벤치마크와 지연시간 실험은 독립적으로 재현하지 않았다.
검토한 v1 본문에서는 이 연구의 코드 저장소 링크를 확인하지 못했다. 구현 설명은 부록 B, 프롬프트는 부록 F에 있다. 이는 해당 판본에서 확인한 공개 범위이며, 웹의 모든 후속 공개 여부를 판정한 것은 아니다.
10. 적용 조건과 결론
DA의 기여는 모델의 추론 텍스트를 사람이 읽는 설명에만 두지 않고, 추론 엔진이 무엇을 읽을지 결정하는 인터페이스로 연결했다는 데 있다. 어느 근거를 볼지 모델이 선언하고, 엔진은 그 범위를 실제 KV 블록 접근으로 옮긴다. 필요한 정보를 응답에 모은 뒤에는 긴 입력을 반복해서 읽지 않는 단계도 만들 수 있다.
동시에 선언을 만드는 생성은 늘어나고, 제한한 구간 밖의 정보를 놓치면 정확도를 잃는다. 본문 15개 소스는 이 교환이 유리한 사례를 보여 주지만, 부록의 별도 과제에서는 총량이 늘거나 정확도가 크게 낮아진다. 시간 이득 역시 어떤 층이 비용을 차지하는지, 배치와 이용률이 어떤지에 따라 달라진다.
실제 적용을 검토한다면 다음을 함께 확인하는 편이 좋다.
- 과제 구조: 일부 구간의 근거로 짧게 답하는가, 전체 정보의 집계나 긴 출력을 요구하는가?
- 품질과 종료: 정확도뿐 아니라 잘못된 구간 선택, 형식 실패, 8K 한도에 걸리는 응답을 포함해 평가하는가?
- 비용의 분모: 스텝당 참조량, 응답 전체의 참조량, 생성 길이를 따로 측정하는가?
- 실제 서빙 조건: 프리필을 포함한 지연시간과 처리량을 실제 배치·동시성에서 측정했는가?
- 평가의 안정성: 소스별 문항 수와 문항별 대응 결과, 반복 실행의 변동을 확인할 수 있는가?
저자들은 후학습과 자연스러운 도구 응답 경계를 가진 에이전트로의 확장을 제안한다. 제로샷 결과를 더 나은 설계의 출발점으로 보는 것은 타당하지만, 후학습이 반드시 개선을 보장한다거나 현재 수치가 곧 에이전트의 실측 성능이라는 뜻은 아니다. 현재 확인된 결론은 모델의 선언으로 선택적 읽기를 유도할 수 있으며, 그 가치는 정확도와 생성 길이, 전체 시스템 비용을 함께 볼 때 판단할 수 있다는 것이다.
References
Ho, N., Ahmad, H., Koh, W., Yun, S.-Y., Schuster, T., & Nogueira dos Santos, C. (2026). Language Models Can Control Their Own Attention. arXiv:2609.02737v1.
Kwon, W. et al. (2023). Efficient Memory Management for Large Language Model Serving with PagedAttention. SOSP. arXiv:2309.06180.
Dao, T., Fu, D. Y., Ermon, S., Rudra, A., & Ré, C. (2022). FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness. NeurIPS. 원논문에서의 서지 항목.
Tang, J. et al. (2024). Quest: Query-Aware Sparsity for Efficient Long-Context LLM Inference. ICML. 원논문에서의 서지 항목.
Williams, S., Waterman, A., & Patterson, D. (2009). Roofline: An Insightful Visual Performance Model for Multicore Architectures. Communications of the ACM, 52(4), 65–76. DOI.





