ACCT는 같은 계열 다른 크기 LLM의 KV 전이로 컨텍스트 재계산을 줄인다
ACCT: Asymmetric Cross-LLM Context Transfer
무엇인가
이 논문은 하나의 서비스 안에서 Qwen3-4B와 8B처럼 같은 계열의 다른 크기 모델을 상황에 따라 바꿔 호출하되, 대화 이력·검색 문서·작업 상태 같은 동일 문맥을 계속 재사용하는 배포를 다룬다. 문제는 새 타깃 모델이 선택될 때마다 문맥 전체를 다시 읽어 KV 캐시를 만들어야 한다는 점이다. 일반 KV 캐시와 프리픽스 캐시는 같은 모델 안에서의 재사용만 줄일 뿐, 모델 파라미터와 구조에 묶인 상태라 같은 계열이라도 다른 모델이 그대로 쓸 수 없다. ACCT는 이 반복 프리필 비용을 줄이기 위해 소스 모델이 이미 계산한 문맥 표현을 타깃 모델이 읽을 수 있는 희소 KV로 변환한다.
어떻게 동작하나
방법의 전제는 소스와 타깃이 같은 모델 계열에 속하고 둘 다 고정되어 있다는 것이다. 소스는 문맥과 질의를 함께 처리해 최종층 문맥·질의 은닉 상태, 선택된 중간층 문맥 상태, 문맥 KV를 만든다. 타깃은 L_T개 층과 H_T개 KV 헤드를 가지므로 층·헤드 단위를 p=(ℓ,h)로 두면 P=L_T H_T개의 타깃 단위가 있다. 전이 인터페이스는 이 소스 표현을 타깃 단위별로 희소한 KV로 바꾸고 원래 토큰 인덱스를 보존해 위치 인코딩을 유지한다. 타깃은 전이된 KV를 캐시에 장착한 뒤 원문 문맥을 다시 인코딩하지 않고 질의와 이후 생성 토큰만 처리한다.
무엇과 다른가
세 구성 요소 중 Cartographer는 각 타깃 층·KV 헤드마다 문맥 토큰의 중요도 점수 S_p,i를 매긴다. 점수는 소스 문맥 은닉 상태에서 뽑은 토큰 벡터 x_i에 타깃 단위와 질의에서 유도한 스케일·시프트를 적용하고, 토큰과 질의 관련 내용의 매칭 특징, 문맥 내 정규화 위치와 문맥 끝에서의 로그 거리 특징을 더해 스칼라로 사상하는 식으로 계산된다. 학습은 토큰의 KV를 제거했을 때 어텐션 출력이 얼마나 바뀌는지를 삭제 유틸리티로 삼고, 보존 경계 근처의 토큰 쌍에서 높은 유틸리티 토큰의 점수가 더 커지도록 랭킹 손실을 준다. Allocator는 전체 KV 예산 아래 각 타깃 단위가 몇 개의 문맥 토큰을 보존할지 학습한다. 각 단위는 문맥 마지막 τ개 토큰을 예약하고, 평균 보존 수 k=max(τ, ceil(ρN))에 대해 b_p=(N-τ)σ(α_p-λ)로 단위별 접두부 용량을 정하며 λ가 전체 합을 P(k-τ)에 맞춘다. 이후 점수 상위 k_p개 접두부 토큰과 마지막 τ개 토큰을 남긴다. 반올림과 이산 선택이 미분 불가능한 문제는 용량에 따라 연속적으로 변하는 소프트 게이트로 우회하고, 정답 토큰 예측 손실로 용량 선호 α를 학습한다.
어떻게 쓰나
Compiler는 선택된 소스 KV를 타깃 KV로 바꾼다. 먼저 미리 정한 소스 층·헤드의 선택 토큰 KV에 선형 변환과 바이어스를 적용해 기본 K^B, V^B를 만들고, 소스 최종층 상태와 선택된 세 중간층 상태, 보존 비율 δ_p, 토큰 위치, 타깃 단위 정보를 읽는 보정 네트워크가 ΔK, ΔV를 예측해 더한다. 학습은 세 단계다. 먼저 타깃 자체 KV로 Cartographer의 랭킹과 Allocator의 용량을 배우고, 보존 토큰 집합을 고정한 뒤 Bridge를 소스·타깃 대응 KV로 맞춘다. 그다음 Bridge를 고정하고 보정 네트워크를 학습해 변환 KV가 타깃 원래 KV에 가까워지도록 키의 정규화·크기, 값의 방향·길이, 어텐션 분포, 다음 토큰 분포 수준의 손실을 함께 최소화한다. 소스와 타깃 모델 자체는 업데이트하지 않고 전이 인터페이스만 학습한다.
전제와 한계
실험은 Qwen3-4B와 8B, Llama-3.2-3B와 3.1-8B, Qwen2.5-7B와 32B 사이의 양방향 전이로 총 6개 방향을 구성한다. 각 쌍은 토큰-ID 매핑을 공유하고 타깃 토크나이저와 프롬프트를 쓴다. 평가는 HellaSwag, Winogrande, MMLU, PIQA, WikiText2의 5개 일반 벤치마크와 SearchQA, TriviaQA, BoolQ, RACE, WikiHop, PubMedQA의 6개 문맥 의존 과제로 한다. WikiText2와 PubMedQA는 500개, 나머지는 1,000개씩 총 10,000개 고정 예시를 쓴다. 기준은 문맥 전체를 타깃이 직접 처리하는 Target Full이다. DroidSpeak는 같은 구조 모델을 요구하고 C2C는 타깃 쪽 문맥 프리필을 유지하므로, 타깃 문맥 재인코딩 없이 규모를 넘는 이 설정의 주 표 비교에서는 제외했다. 주 실험은 4배 압축으로 타깃 문맥 KV 슬롯의 약 1/4만 남기고 최근 32개 위치를 포함한다. Cartographer와 Allocator는 SearchQA 5,000개로, Compiler는 고정 500개로 4에포크 학습한다.
효율 실험에서 ACCT의 KV 변환은 6개 방향 모두 측정한 모든 길이에서 타깃 프리필보다 빨랐다. 약 1K 토큰에서는 1.5~8.6배, 약 19K 토큰에서는 6.5~21.2배 빨랐고, 가장 긴 문맥에서 변환 시간은 타깃 프리필 시간의 4.7~15.3%에 그쳤다. 문맥이 길어질수록 타깃이 모든 토큰을 전체 네트워크에 통과시키는 비용은 커지지만, ACCT는 이미 있는 소스 표현에서 공유 경량 계산으로 타깃 상태를 만들기 때문에 격차가 커진다. 과제 성능에서는 4배 압축에도 여러 과제에서 손실이 작았고 일부 과제는 Target Full을 넘었다. Qwen3 전이는 SearchQA만으로 학습했는데도 TriviaQA, MMLU, WikiText2, PubMedQA에서 Target Full 대비 개선을 보였고, 6개 방향 모두 PIQA 성능을 상당히 유지했다. 다만 독해, 다중 홉 추론, 일부 언어모델링에서는 Target Full과의 격차가 남았다. 표 1의 셀별 수치는 제공된 본문에 수치로 나열되지 않아 정성적 경향만 확인된다.
세부 분석에서 4배 압축을 2배로 완화하면 양방향 대부분 과제가 좋아졌고, 역방향에서는 6개 문맥 과제가 모두 개선됐다. 1배 설정은 Cartographer와 Allocator를 함께 제거하고 Compiler만 남긴 것인데, 양방향 오픈도메인 QA에서 2배·4배 선택 전이가 1배 전체 보존보다 더 좋았다. 즉 예산이 같다면 무작정 많이 남기는 것보다 학습된 선택이 더 효과적일 수 있다. Random으로 Cartographer 순위를 무작위화하면 후속 구성 요소를 다시 학습해도 여러 과제가 크게 나빠졌고, 층·헤드별 균등 배분은 일부 벤치마크에서 학습 배분보다 나았지만 오픈도메인 QA와 MMLU 등에서는 학습 배분이 이점을 보였다. 보정 네트워크를 제거한 Bridge-only보다 전체 Compiler가 오픈도메인 QA와 MMLU를 개선하고 WikiText2 PPL을 낮췄으며, 역방향에서는 평가한 모든 과제에서 이점이 있었다. 컴파일된 상태는 PIQA에서 Native KV에 거의 맞먹고 TriviaQA, PubMedQA, WikiText2에서는 양방향 모두 Native KV를 넘었다.
개발자 관점에서 ACCT는 같은 계열의 작은 모델과 큰 모델을 라우팅하면서 긴 문맥을 반복해서 넣는 서빙 구조에 의미가 있다. 소스가 이미 문맥을 처리한 뒤 타깃이 바뀌는 경우, 타깃 프리필을 줄이고 KV 저장량도 4배 압축할 수 있는 선택지가 된다. 다만 같은 모델 계열, 토큰-ID 매핑 공유, 방향별 인터페이스 별도 학습, 고정된 소스·타깃 모델이라는 전제를 확인해야 한다. 저자들도 전이 자체는 같은 계열 안에서 평가했고, 이득이 오픈도메인 QA에 더 크며 독해·다중 홉·일부 언어모델링에서는 격차가 남는다고 밝힌다. 또한 주 표에서 DroidSpeak와 C2C를 직접 비교하지 않았고, 문맥 커버리지와 표현 정밀도에 대한 과제 요구가 전이 효과를 좌우한다고 설명한다. 예산을 늘리면 성능은 좋아지지만 KV 비용이 커지므로, 4배·2배 같은 압축률과 최근 토큰 예약량을 워크로드에 맞춰 검증해야 한다.