생성형 AI의 답변 속도는 GPU 성능만으로 결정되지 않습니다. 모델의 크기, 입력 문장의 길이, GPU 메모리, 동시에 사용하는 사람의 수, 서버의 메모리 관리 방식도 영향을 줍니다.
이 가운데 KV Cache(KV 캐시·이미 계산한 정보를 메모리에 저장해 다시 사용하는 기술)는 대형 언어모델의 답변 속도와 메모리 사용량을 이해할 때 중요한 기술입니다.
ChatGPT 같은 생성형 AI는 답변을 한 번에 완성하지 않습니다. 이전 문장을 참고하면서 다음 토큰을 하나씩 만들어냅니다. 이 과정에서 이미 계산한 정보를 매번 다시 계산하지 않도록 저장해두는 것이 KV 캐시입니다.
1. KV 캐시란 무엇인가?
KV Cache는 Key-Value Cache의 줄임말입니다.
대형 언어모델이 이전 토큰을 처리하면서 계산한 Key와 Value 값을 메모리에 저장해두었다가 다음 토큰을 생성할 때 다시 사용하는 방식입니다.
쉽게 설명하면 AI가 앞에서 계산한 내용을 임시 메모장에 기록해두는 것과 비슷합니다.
앞에서 이미 계산한 내용을 다시 처음부터 처리하지 않아도 되기 때문에 불필요한 연산을 줄일 수 있습니다.
KV 캐시는 AI가 학습한 지식을 저장하는 공간과는 다릅니다.
AI가 학습하면서 얻은 정보는 모델의 Weight(웨이트·가중치)에 반영됩니다. KV 캐시는 현재 사용자의 질문과 답변을 처리하는 동안 필요한 계산 결과를 임시로 저장하는 역할을 합니다.
2. AI는 왜 답변을 한 번에 만들지 않을까?
대형 언어모델은 완성된 문장을 한꺼번에 출력하지 않습니다.
사용자가 입력한 문장을 Token(토큰·AI가 문장을 처리하기 위해 나누는 작은 정보 단위)으로 변환한 뒤 다음에 어떤 토큰이 나올 가능성이 높은지를 계산합니다.
첫 번째 토큰이 만들어지면 그 결과를 포함해 두 번째 토큰을 계산하고, 다시 세 번째 토큰을 계산합니다.
이 과정을 반복하면서 하나의 답변이 완성됩니다.
이 방식을 Autoregressive Generation(오토리그레시브 생성·앞에서 만든 결과를 참고해 다음 토큰을 순서대로 만드는 방식)이라고 합니다.
답변이 길어질수록 AI가 참고해야 하는 이전 정보도 많아집니다.
이때 앞에서 계산했던 내용을 계속 다시 계산하면 처리시간이 늘어납니다.
KV 캐시는 이미 계산한 값을 저장해두고 다시 사용하기 때문에 이런 반복 작업을 줄일 수 있습니다.
3. Query, Key, Value는 무엇인가?
KV 캐시를 이해하려면 Query, Key, Value라는 용어를 알아두면 좋습니다.
대형 언어모델에서 많이 사용되는 Transformer(트랜스포머·문장 속 정보의 관계를 계산하는 AI 모델 구조)에는 Attention(어텐션·현재 정보와 관련성이 높은 정보를 찾아 집중하는 계산 방식)이 있습니다.
Attention 계산에서 Query, Key, Value가 사용됩니다.
Query(쿼리)는 현재 처리하는 토큰이 어떤 정보를 찾고 있는지를 나타냅니다.
Key(키)는 이전 정보 가운데 어떤 내용이 현재 Query와 관련 있는지 비교하는 기준입니다.
Value(밸류)는 실제 계산에 활용되는 정보입니다.
도서관에서 책을 찾는 상황으로 비유하면 이해하기 쉽습니다.
찾고 싶은 주제가 Query라면 책의 분류 정보가 Key이고, 책 안에 들어 있는 실제 내용이 Value에 해당합니다.
AI는 현재 Query와 이전 토큰의 Key를 비교해 필요한 정보를 찾고 관련성이 높은 Value를 활용합니다.
4. KV 캐시는 어떻게 계산을 줄일까?
AI가 이미 2,000개의 토큰을 처리했다고 가정해보겠습니다.
이제 2,001번째 토큰을 만들어야 합니다.
앞의 2,000개 토큰에서 이미 계산한 Key와 Value를 다시 모두 계산한다면 같은 연산이 반복됩니다.
2,002번째 토큰을 만들 때도 비슷한 문제가 발생합니다.
KV 캐시를 사용하면 앞에서 계산한 Key와 Value를 메모리에 저장해둘 수 있습니다.
새로운 토큰이 들어오면 새로운 부분에 필요한 값을 계산한 뒤 기존 KV 캐시에 추가합니다.
이 때문에 답변이 길어질수록 이전 계산을 재사용하는 효과가 커질 수 있습니다.
KV 캐시 크기를 숫자로 보면
이해를 위한 단순 예시를 들어보겠습니다. 32개 레이어, 8개의 KV Head, Head Dimension 128, FP16(2바이트)으로 KV 캐시를 저장하는 모델이 있다고 가정하면, KV 캐시 크기는 대략 2 × 레이어 수 × 토큰 수 × KV Head 수 × Head Dimension × 바이트 수로 계산할 수 있습니다.
이 가정에서 Context가 8,000 Token이라면 KV 캐시만 약 1.05GB가 필요합니다. Context가 32,000 Token으로 4배 늘어나면 약 4.19GB 수준으로 증가합니다.
이 계산은 원리를 보여주기 위한 단순화된 예시이며 실제 서버에서는 Batch 크기, 모델 구조, 데이터 형식, 메모리 관리 방식과 추가 오버헤드에 따라 값이 달라집니다. 핵심은 KV 캐시의 저장공간이 일반적으로 처리하는 Token 길이에 비례해 커진다는 점입니다.
긴 문서 요약, 코드 분석, 긴 대화처럼 많은 토큰을 처리하는 작업에서 KV 캐시가 중요한 이유입니다.
5. KV 캐시는 왜 메모리를 많이 사용할까?
KV 캐시는 계산량을 줄여주는 대신 메모리를 사용합니다.
AI가 처리하는 토큰이 많아질수록 저장해야 하는 Key와 Value도 증가합니다.
짧은 질문 하나를 처리할 때는 KV 캐시가 차지하는 공간이 상대적으로 작을 수 있습니다.
하지만 수십 페이지의 문서를 입력하거나 오랫동안 대화를 이어가면 저장해야 할 데이터가 많아집니다.
GPU 메모리에는 AI 모델의 가중치만 저장되는 것이 아닙니다.
모델 실행에 필요한 데이터, 사용자 입력, 중간 계산 결과, KV 캐시도 함께 저장됩니다.
따라서 GPU 자체의 계산성능이 충분해도 메모리가 부족하면 긴 문맥을 처리하거나 많은 사용자를 동시에 처리하기 어려울 수 있습니다.
6. 컨텍스트 윈도우와 KV 캐시는 어떤 관계인가?
Context Window(컨텍스트 윈도우·AI가 한 번에 참고할 수 있는 정보의 범위)가 길어지면서 KV 캐시도 더 중요해지고 있습니다.
컨텍스트 윈도우가 크면 긴 보고서나 논문, 계약서, 프로그램 코드 등을 한 번에 넣고 질문할 수 있습니다.
과거 대화를 길게 유지하면서 새로운 질문을 이어갈 수도 있습니다.
하지만 처리하는 토큰이 많아질수록 저장해야 할 KV 캐시도 증가할 수 있습니다.
그래서 AI 모델이 긴 컨텍스트를 지원한다는 것은 단순히 많은 글자를 입력할 수 있다는 의미만은 아닙니다.
실제 서버에서는 긴 문맥을 저장하고 처리할 충분한 GPU 메모리와 효율적인 메모리 관리 기술이 필요합니다.
7. 사용자가 많아지면 KV 캐시는 왜 더 중요할까?
개인 컴퓨터에서 AI를 혼자 실행할 때는 한 사람의 KV 캐시만 관리하면 됩니다.
하지만 상용 AI 서비스에서는 수많은 사람이 동시에 서로 다른 질문을 보냅니다.
각 사용자의 대화 내용이 다르기 때문에 KV 캐시도 사용자별로 필요합니다.
여기서 Concurrency(컨커런시·같은 시간에 동시에 처리할 수 있는 요청 수)가 중요해집니다.
사용자 한 명당 필요한 KV 캐시가 너무 크면 같은 GPU에서 동시에 처리할 수 있는 사용자 수가 줄어듭니다.
반대로 KV 캐시를 효율적으로 관리하면 동일한 GPU에서도 더 많은 요청을 처리할 수 있습니다.
AI 업체 입장에서는 GPU 한 장이 같은 시간에 얼마나 많은 사용자를 처리할 수 있는지가 운영비용과 연결됩니다.
그래서 KV 캐시는 AI 모델의 속도뿐 아니라 서비스 비용에도 영향을 주는 기술입니다.
8. Paged Attention은 무엇인가?
KV 캐시를 효율적으로 관리하는 방법 가운데 하나가 Paged Attention(페이지드 어텐션·KV 캐시를 작은 메모리 블록으로 나누어 관리하는 방식)입니다.
사용자마다 큰 메모리 공간을 미리 확보하면 실제 사용하지 않는 공간이 남을 수 있습니다.
사용자가 접속하고 종료하는 과정이 반복되면 작은 빈 메모리 공간이 여러 곳에 흩어질 수도 있습니다.
이런 현상을 Memory Fragmentation(메모리 단편화·빈 공간이 여러 조각으로 나뉘어 효율적으로 사용하기 어려운 상태)이라고 합니다.
Paged Attention은 KV 캐시 공간을 작은 블록으로 나눠 필요한 만큼만 사용자에게 할당합니다.
사용이 끝난 블록은 회수해 다른 사용자에게 다시 배정할 수 있습니다.
같은 GPU 메모리를 보다 효율적으로 사용할 수 있기 때문에 동시에 처리할 수 있는 요청을 늘리는 데 도움이 됩니다.
9. KV 캐시 양자화란 무엇인가?
KV 캐시 자체의 용량을 줄이는 방법도 있습니다.
KV Cache Quantization(KV 캐시 양자화·Key와 Value 데이터를 더 낮은 정밀도로 저장하는 방식)이 대표적입니다.
높은 비트로 저장하던 데이터를 더 적은 비트로 바꾸면 같은 메모리 공간에 더 많은 KV 캐시를 저장할 수 있습니다.
예를 들어 AI 모델의 가중치를 16비트에서 8비트나 4비트로 줄이는 모델 양자화와 비슷한 개념입니다.
다만 데이터 정밀도를 너무 많이 낮추면 AI가 과거 정보를 활용하는 과정에서 오차가 커질 수 있습니다.
따라서 무조건 작은 비트를 사용하는 것이 좋은 것은 아닙니다.
메모리 사용량을 줄이면서도 답변 품질을 유지할 수 있는 수준을 찾는 것이 중요합니다.
10. KV 캐시는 AI 추론 서버에서 왜 중요한가?
AI 서버의 성능을 평가할 때 GPU의 연산속도만 보는 것은 충분하지 않습니다.
생성형 AI는 모델을 실행하는 동안 가중치를 저장하고, 사용자의 입력을 처리하고, 중간 계산 데이터를 만들고, KV 캐시까지 관리해야 합니다.
GPU가 빠르더라도 메모리가 부족하면 긴 문서를 처리하기 어렵고 동시에 받을 수 있는 사용자 수도 줄어들 수 있습니다.
반대로 KV 캐시를 효율적으로 관리하면 같은 하드웨어에서도 더 많은 요청을 처리할 수 있습니다.
그래서 AI 추론 경쟁은 GPU 성능뿐 아니라 GPU 메모리, HBM(High Bandwidth Memory·고대역폭 메모리), 추론 소프트웨어, KV 캐시 관리 기술까지 함께 봐야 합니다.
KV 캐시는 생성형 AI가 앞에서 계산한 정보를 재사용해 답변 생성을 효율적으로 만드는 기술입니다.
계산을 줄여 속도를 높이는 대신 메모리를 사용하기 때문에 AI 서버에서는 연산성능과 메모리 효율을 동시에 고려해야 합니다.
생성형 AI가 더 긴 문서를 읽고 더 많은 사용자를 동시에 처리하게 될수록 KV 캐시를 얼마나 효율적으로 관리하는지가 실제 서비스 성능과 운영비용을 결정하는 중요한 요소가 될 수 있습니다.