긴 문맥 처리에서 대형 언어 모델이 느려지는 이유
의 답변 생성 속도는 긴 문맥에서 계산 능력보다 메모리 이동 속도에 더 크게 막힌다. 모델이 한 단어씩 이어서 만드는 에서는 이전 단어들의 를 계속 불러와야 한다.
이 데이터가 빠른 처리 장치 안쪽 메모리로 들어오기 전에 상대적으로 느린 에서 많이 이동해야 해서 실행이 멈칫한다. 문맥이 수천 토큰으로 길어질수록 표준 Multi-Head Attention은 각 Query 헤드마다 별도의 Key/Value 쌍을 두기 때문에 메모리 통행량이 크게 늘어난다.
Multi-Query Attention은 모든 Query 헤드가 하나의 Key/Value 쌍을 공유해 메모리 부담을 크게 줄이는 방향이다. LLaMA 3와 Mistral 같은 최신 구조는 이런 메모리 병목을 줄이기 위해 주의 구조를 바꾸는 흐름 위에 있다.
핵심 포인트
- 긴 문맥에서는 이 계산 능력보다 에 막힐 수 있다.
- 은 이전 토큰의 를 계속 읽어야 한다.
- 문맥이 길어질수록 표준 Multi-Head Attention은 메모리 이동량을 크게 늘린다.
- Multi-Query Attention은 여러 Query 헤드가 하나의 Key/Value 쌍을 공유해 메모리 부담을 줄인다.
- 에서는 긴 기록을 그대로 넣기보다 필요한 문맥만 고르는 설계가 중요하다.