LLM은 다음 출력 토큰을 정할 때마다, 컨텍스트 안의 모든 토큰을 짝지어 비교합니다. 여기서 컨텍스트란 사용자가 입력한 토큰 + LLM이 지금까지 출력한 토큰을 모두 합친 것이고, 컨텍스트 안의 토큰을 짝지어 비교하는 이 과정을 어텐션(Attention)이라 부릅니다. 컨텍스트 안의 토큰 수가 N개면 비교해야 할 짝의 수가 약 N²개로 늘어납니다. 그래서 컨텍스트에 토큰을 하나 더 넣는 비용은 "단어 하나 추가"가 아니라 "모델이 새로 따라가야 할 비교가 N개 늘어남"에 가깝습니다.
모델은 다음 출력 토큰을 정할 때 "주의력 100점"을 가진 셈인데, 이걸 컨텍스트의 모든 토큰에 나눠 줍니다.
▸ 10 토큰 → 평균 10점씩
▸ 1,000 토큰 → 평균 0.1점씩
▸ 100,000 토큰 → 평균 0.001점씩
그래서 같은 "중요한 단어 하나"라도 주변 토큰이 많아질수록 다른 토큰들 사이에 묻혀 모델 눈에 잘 들어오지 않습니다. 즉 컨텍스트에 토큰이 들어가 있다고 해서, 모델이 그 토큰을 또렷하게 보고 있다는 뜻은 아닙니다.
1M 윈도우의 진실
최근에는 1M 컨텍스트를 지원하는 모델도 등장했지만, 이게 모델의 기억 용량이 그만큼 늘어났다는 뜻은 아닙니다. 모델이 또렷하게 보는 영역인 Smart Zone은 여전히 약 100k 토큰 정도에 머물러 있고, 늘어난 건 사실상 그 뒤의 Dumb Zone(주의력이 흐려져 정보가 묻히는 영역)뿐입니다. 즉 컨텍스트 윈도우를 1M으로 늘려 얻은 효과는 "집어넣을 수 있는 슬롯 수"가 늘어난 것이지, "잘 볼 수 있는 범위"가 늘어난 게 아닙니다.
↓ 슬라이더를 움직여 N이 늘어날 때 관계 수와 시각적 복잡도가 어떻게 변하는지 직접 체감해 보세요.
현재 토큰 수
10
tokens
관계 수 (N²)
100
10 × 10 = 100
상태
집중 구간
주의력이 또렷함
3306090120
10
tokens
관계 100개
또렷함 · 방에 3명
100
tokens
관계 10,000개
버거움 · 강당에 100명
1,000
tokens
관계 1,000,000개
분산 · 콘서트홀 1,000명
⚽ 축구 리그 비유: 토큰 추가 = 팀 추가
리그에 팀이 4개면 풀 리그 경기가 6경기 (4×3/2), 8개면 28경기 (8×7/2), 100개면 약 5,000경기 (100×99/2 = 4,950)가 필요합니다. 리그에 팀을 하나 추가하는 것은 "선수 명단에 팀원 한 명 더하기"가 아니라 새 팀이 기존 모든 팀과 새로 경기를 치러야 함을 뜻하여 파급 효과가 큽니다. 토큰 하나를 추가하는 것도 어텐션에서 비슷한 파급 효과를 일으킵니다.
결론: 컨텍스트에 토큰 하나를 더하는 비용은 "기억할 단어 하나가 늘어나는 것"이 아니라 "모델이 새로 따라가야 할 관계가 N개 늘어나는 것"입니다. 그래서 컨텍스트에 쌓인 토큰 수가 많아질수록 모델은 어디에 집중해야 할지 못 찾고 주의력이 흩어집니다.
📐 숫자 차이 주의: 축구 리그는 같은 두 팀이 한 번만 만나므로 경기 수가 N(N-1)/2 (10팀 = 45경기). 어텐션은 A→B와 B→A를 따로 세고 자기 자신도 포함하므로 N² (10토큰 = 100회). 둘 다 N이 커지면 제곱으로 폭증한다는 점은 같습니다.
핵심 교훈
"컨텍스트를 가득 채움 = 자랑이 아니라 경고 신호" 작업 단위가 바뀌면 /clear로 컨텍스트 비우기