SW/인공지능

AI 응답 속도, 이렇게 줄였다! LLM을 위한 프롬프트 캐시 기술 완전 정복

얇은생각 2025. 5. 3. 07:30
반응형

더 빠른 AI 응답을 위한 '프롬프트 캐시' – LLM 지연 시간을 줄이는 새로운 접근법

거대 언어 모델(LLM)은 우리가 AI와 소통하는 방식을 근본적으로 바꾸고 있습니다. Claude나 ChatGPT 같은 모델은 점점 더 똑똑해지고 있지만, 여전히 해결해야 할 숙제가 남아 있습니다. 바로 ‘속도’입니다. AI가 답변을 주는 시간이 조금만 길어져도 사용자는 답답함을 느끼죠. 그래서 ‘빠른 응답’은 단순한 기술 문제가 아닌, 사용자 경험의 핵심입니다.

이 글에서는 김민하 연구원이 발표한 논문 *"Prompt Cache: Modular Attention Reuse for Latency Inference"*를 중심으로, 어떻게 하면 AI가 처음 단어를 더 빨리 출력할 수 있을지를 다뤄봅니다. 이 논문은 특히 **첫 토큰 출력까지 걸리는 시간(TTFT)**을 획기적으로 줄이는 데 초점을 맞췄습니다.

 

AI 응답 속도, 이렇게 줄였다! LLM을 위한 프롬프트 캐시 기술 완전 정복

 


 

프롬프트 캐시, 왜 중요할까?

AI와 대화한다고 생각해보세요. 메시지를 입력하고 첫 단어가 나올 때까지 기다리는 그 몇 초. 짧지만 꽤 어색하죠? 수천 명이 동시에 AI를 사용할 때는 이 지연이 체감될 수밖에 없습니다. 프롬프트 캐시는 바로 이 ‘첫 응답의 지연’을 줄여주는 기술입니다.

이런 지연은 대부분 반복적인 연산에서 발생합니다. 모델이 새로운 단어를 생성할 때마다, 이전 프롬프트 전체를 다시 읽고 계산합니다. 같은 내용을 매번 다시 읽는 셈이죠. 이는 시간도, 컴퓨팅 자원도 낭비하는 일입니다.

이를 개선하기 위해 많은 시스템은 KV 캐시를 사용합니다. 이전 토큰의 키와 밸류를 저장해 두는 방식이죠. 하지만 이 방법도 ‘프롬프트 전체’를 저장하진 못합니다. 바로 이 지점을 프롬프트 캐시는 새롭게 접근합니다.

 


 

핵심 아이디어: 자주 쓰는 프롬프트는 미리 저장하자

프롬프트에는 자주 반복되는 문구—시스템 안내문이나 템플릿 같은—가 많습니다. 이런 부분의 결과값을 미리 계산해서 저장해두고, 다시 사용할 수 있다면? 매번 새롭게 계산하지 않아도 되겠죠. 이게 바로 프롬프트 캐시의 기본 개념입니다.

물론, 해결해야 할 문제가 두 가지 있습니다:

  1. 트랜스포머 모델은 위치 정보를 중요하게 여깁니다. 같은 텍스트라도 위치가 다르면 결과도 달라집니다.
  2. 어떤 텍스트가 재사용 가능한지 빠르게 찾아내야 합니다.

 


 

해결 방법: PML(Prompt Markdown Language)

이 문제를 해결하기 위해 연구진은 PML이라는 전용 마크업 언어를 고안했습니다. 프롬프트를 모듈 단위로 나누고, 각 모듈에 고유한 위치 ID를 부여하는 방식입니다.

흥미로운 점은, 모듈이 연속된 위치에 있지 않아도 제대로 작동한다는 사실입니다. 실제 실험에서도 이 방식이 잘 작동하는 것으로 나타났습니다.

여기에 Union Module이라는 특별한 모듈도 도입되었습니다. 여러 개의 옵션 중에서 하나만 선택해 사용할 수 있도록 만든 구조입니다. 모든 옵션은 같은 위치 ID를 공유하기 때문에, 상황에 따라 자유롭게 바꿔 쓸 수 있습니다.

 


 

작동 원리를 예로 설명해보면

‘Cities’라는 스키마를 만든다고 해봅시다. 여기에 CityInfo, TripPlan(duration), Tokyo, Miami 같은 모듈이 있습니다. 그 중 TripPlan은 여행 기간 같은 파라미터를 받는 구조입니다.

프롬프트는 이렇게 구성할 수 있습니다:

schema: Cities
modules: TripPlan(duration=3days), Miami

 

TripPlan과 Miami가 이미 캐시되어 있다면, 모델은 이 부분을 다시 계산할 필요가 없습니다. 새로운 부분만 처리하면 됩니다.

파라미터가 있는 모듈은 자리 표시자를 활용합니다. 실행 시점에 해당 값이 채워지면, 나머지 부분은 그대로 재사용 가능합니다.

 


 

메모리 최적화와 효율적인 엔지니어링

이 논문에서는 PyTorch의 메모리 사용 방식도 개선했습니다. 보통 텐서를 합치면 새로운 메모리를 할당해야 해서 느립니다.

연구진은 버퍼 메모리를 활용해 이미 할당된 공간을 재사용하게 만들었습니다. 덕분에 시간도, 메모리도 절약할 수 있었습니다.

또한 GPU와 CPU 메모리를 함께 활용해 모듈을 저장했습니다. GPU는 빠르지만 용량이 작고, CPU는 느리지만 공간이 넉넉하죠. 두 자원을 함께 활용해 속도와 유연성을 모두 잡았습니다.

 


 

실험 결과: 최대 70배 빠른 응답 속도!

연구팀은 LLaMA 2 7B 모델과 LongBench 데이터셋(평균 5K 토큰)을 사용해 실험을 진행했습니다. 결과는 놀라웠습니다:

  • GPU 메모리를 활용하면 최대 10배 응답 속도 향상
  • CPU 메모리만 사용해도 최대 5배 속도 개선
  • 일부 CPU 환경에서는 무려 70배까지 빨라졌습니다!

 

심지어 프롬프트가 길어져도 속도는 안정적으로 유지되었습니다. 기존 방식은 길어질수록 지연이 기하급수적으로 늘어나지만, 프롬프트 캐시는 선형적으로 증가합니다.

응답 품질도 그대로 유지되었습니다.

 


 

앞으로의 가능성: 더 많은 활용처가 기다린다

프롬프트 캐시는 다음과 같은 영역에서도 큰 도움이 될 수 있습니다:

  • 동시에 더 많은 사용자 응대 가능
  • 중복되는 프롬프트 내용으로 메모리 절약
  • 사용자 맞춤형 프롬프트 쉽게 구현
  • 저사양 기기에서도 대형 모델 운용 가능

 

논문에서는 향후 연구 방향으로 다음과 같은 아이디어도 제시했습니다:

  • 여러 사용자 요청 간 메모리 공유
  • 캐시 데이터를 압축해 메모리 효율 향상
  • 프롬프트 캐시 기반의 새로운 AI 서비스 구조 개발

 


 

마무리: 빠른 응답은 단순한 기술이 아니라 감성입니다

프롬프트 캐시는 단순히 ‘속도를 올리는 기술’이 아닙니다. 우리가 AI에게 기대하는 건 빠른 반응, 즉각적인 공감, 그리고 자연스러운 흐름이죠.

이 기술은 그런 기대에 한 걸음 더 다가갑니다. 똑똑한 설계와 효율적인 시스템이 만나, AI를 더 인간답고, 더 따뜻하게 만드는 일. 바로 그런 이야기를 보여줍니다.

반응형