AI가 처음 받은 질문을 더 많이 지켜 주면, 답을 쓰며 만든 오래된 계산 흔적도 더 안전해질까? 보관할 자리가 정해져 있다면 두 목표가 충돌할 수 있다. 자리를 어디에 예약하느냐가 남은 자리의 생존 경쟁을 바꾼다.

Random Attention은 입력과 최신 구간을 보호하고 나머지를 무작위로 남긴다. 식은 부록 D에서 왔다.

1,024칸에서 질문 몫을 늘려 보자

9월 4일 공개 코드의 CLI 1024는 정리 후 총량이다. 최신 64칸을 제외하면 960칸이다. 9월 28일 v2의 K 정의와 다르다.

이 배분을 가상 장부로 옮겨 계산했다. 입력 보호에 512칸, 최신 구간에 64칸을 배정하면 무작위 보관 몫은 1,024 − 512 − 64 = 448칸이다. 여기서 한 칸은 해당 레이어·KV 헤드에서 토큰 한 위치의 키·값 항목이다. 글자나 사실 하나의 크기라는 뜻이 아니다.

이제 장부가 찬 뒤의 반복 구간만 보자. 항목 64개가 더 들어오면 정리 직전 총량은 1,088개다. 최신 64개와 보호 입력 512개를 빼면 후보는 512개. 그중 448개를 남기므로, 후보인 특정 항목 하나가 이번 선택을 통과할 확률은 448/512 = 7/8이다. “1,024”는 항상 유지되는 최대 길이가 아니다.

가상 보호 배분 128·512·768칸에서 오래된 항목 하나가 제거 대상이 된 16회를 거친 뒤 남을 확률은 각각 30.55%·11.81%·1.00%다.
파랑 P: 보호 입력. 황토색 R: 무작위 유지 생성 항목. 회색: 최신 64개. V의 가상 배분 계산. 막대는 정리 직후 1,024칸이며 확률이나 바이트가 아니다. 한 레이어·한 KV 헤드의 항목 하나가 16회 모두 삭제 후보인 경우의 잔존 확률이며 정답률이 아니다.

한 번의 작은 위험이 쌓인다

계속 살아남은 항목은 다음 선택에서도 같은 7/8의 조건부 확률로 남는다. 새로 균등하게 뽑는다고 놓으면, 16회 모두 삭제 후보였던 항목 하나가 남을 확률은 (7/8)의 16제곱, 약 11.81%다. 한 번 사라진 항목이 돌아오는 계산은 아니다.

같은 장부에서 입력 보호를 128칸으로 줄이면 무작위 몫은 832칸, 16회 잔존 확률은 약 30.55%다. 768칸으로 늘리면 무작위 몫은 192칸, 잔존 확률은 약 1.00%다. 세 입력 길이는 설명을 위해 고른 값이며 벤치마크 관측치가 아니다. 더 많은 입력을 지키는 비용을 오래된 생성 항목이 나누어 부담하는 셈이다.

16회는 항목이 태어난 뒤의 시간도, 생성 토큰 1,024개의 다른 이름도 아니다. 최신 구간에 머무르거나 처음 장부가 차기를 기다리는 동안은 이 계산의 노출 횟수에 넣지 않는다. 여기서는 각 삭제 선택 직후 남았는지만 본다.

계산은 항목 하나에만 답한다. 문장에 필요한 여러 항목이 모두 남을 확률을 얻으려면 다른 계산이 필요하다. 같은 선택에서 자리는 서로 경쟁하므로 항목들의 생존을 독립이라고 놓고 곱해서도 안 된다. 캐시에 남았다는 사실만으로 모델이 그것을 읽어 정답을 낸다고 결론 낼 수는 없다.

V의 생각: 지킬 것을 먼저 정해야 한다

V는 “무작위로 버려도 괜찮다”보다 “보호할 정보와 감수할 손실을 먼저 정하자”는 질문을 택하겠다. 오래전 한 번 나온 값이 마지막 답을 좌우하는 작업이라면 평균적인 성능만 보아서는 부족하다.

논문 표 3의 57회 전 단발 암호 회수율은 Random Attention 0%, R-KV 83.6%다.

이 반례가 모든 작업에서 다른 방법이 낫다는 뜻은 아니다. V가 확인하고 싶은 것은 실제 용도에서 한 번만 등장한 중요 값, 다시 언급된 값, 긴 입력을 각각 어떻게 처리하느냐다. 같은 총량과 보호 조건에서 최종 정답률·중요 값 회수·지연 시간을 함께 비교하겠다. 중요 값의 손실 없이 원하는 비용 절감이 반복된다면 무작위 선택을 쓸 근거가 생긴다. 반대라면 보호 배분이나 선택법을 바꿔야 한다.

직접 바꿔 계산하기

이 글에서 실행한 것은 표준 Python으로 된 가상 배분 계산뿐이다. 모델·GPU·논문의 실험 코드는 실행하지 않았고 v2 결과를 재현하지 않았다.

계산 코드와 결과 CSV에서 보호 칸 수를 바꿀 수 있다. 코드 파일을 내려받아 python random-attention-retention.py로 실행하면 CSV가 출력된다. B는 정리 직후 총량, r은 최신 구간, P는 입력 보호 몫이며 0 ≤ P < B − r인 예만 다룬다.

캐시와 대화 기억이 헷갈린다면 AI의 캐시와 기억은 어떻게 다를까?에서 먼저 구분해 볼 수 있다.