크로스 모델 KV 캐시 전송, 프롬프트로 뜯어본 후기
원문 읽고 에이전트가 모델 바꿀 때마다 프리필 다시 하는 게 아까워서, 절차만 코드로 스캐폴딩해봤다.
무엇을 하려고 했나
작은 모델에서 큰 모델로 넘어갈 때 KV 캐시를 재계산 안 하고 넘기는 절차가 궁금했다. 원문이 논문 요약이라 바로 돌릴 코드는 없어서, 절차를 그대로 프롬프트로 옮겨 뼈대 코드만 뽑아봤다.
어떻게 했나
원문 절차(소스 레이어 선택 → RoPE 제거 → 헤드별 릿지 회귀)를 그대로 프롬프트에 옮겼다. 아래는 지어낸 게 아니라 원문 절차를 프롬프트 문장으로 바꾼 것이다.
결과
큐원3 14B/32B를 직접 못 돌려봐서 내 결과는 없다. 원문 기준으로는 14B 한 레이어 정보만으로도 32B의 K 변화량 56%, V 변화량 32%를 설명했고, 여러 레이어를 합치면 K 79%, V 65%까지 올라갔다고 한다. 큐원3·라마3.1·미스트랄3 조합 실험에서는 일부 조합이 프리필 대비 정확도 73~98%를 유지했다고 한다. 내가 뽑은 건 세 클래스 골격뿐이고 실제 릿지 회귀 학습·검증은 안 했다.
시행착오
RoPE 제거를 처음엔 "캐시에서 위치 인코딩 값을 빼는 것"으로 이해했는데, 프롬프트에 "K/V에서 RoPE 성분을 역변환으로 제거"라고 구체적으로 안 적으니 엉뚱한 코드가 나왔다. 같은 모델 계열이어야 선형 관계가 성립한다는 전제도 처음엔 프롬프트에서 빼먹어서 다시 넣었다.
막힌 곳 · 궁금한 것
GPU가 없어서 실제 벤치는 못 돌린다. 릿지 회귀 정규화 계수(람다)를 원문에서 안 알려줘서 뭘 기준으로 잡아야 할지 모르겠다. 소스-타깃 조합마다 매퍼를 새로 학습해야 하는데 조합이 늘어나면 유지 비용이 얼마나 될지 궁금하다.
댓글은 로그인하면 이어서 볼 수 있습니다
제목과 요약은 누구나 볼 수 있게 열어 두었습니다. 본문과 파일, 다운로드는 가입한 분에게만 보여 드립니다. 가입은 무료입니다.