안녕하세요, BQ개발자입니다.
지난 편에서 상황별 최적 모델 선택으로 비용은 관리했다고 했는데요, 이제 또 다른 고민이 생깁니다.
"같은 질문이 계속 들어온다면 매번 새로 계산할 필요가 있을까?"
개발자라면 누구나 생각하는게 바로 최적화입니다.
"한국 맛집 추천해줘"라는 질문이 하루에 100번 들어온다면, 첫 번째 답변을 캐시해두고 나머지 99번은 바로 반환하면 되지 않을까요?
비용도 1/100로 줄고, 응답 속도도 극적으로 빨라집니다. 완벽한 최적화처럼 보이죠.
하지만 실제로는 사용자 경험이 망가집니다.
⚡ 같은 답변이 오히려 위험한 이유
핵심 문제는 LLM의 본질적 특성과 사용자 기대의 불일치입니다.
문제 1: 미묘한 차이의 무시
- "한국 맛집 5개"와 "한국 맛집 10개"는 벡터 공간에서 거의 동일하게 처리됩니다. 문맥적 유사도가 매우 높거든요.
- 그래서 캐시 히트가 발생하고, 10개를 요청했는데 5개만 받게 되는 황당한 상황이 벌어져요.
문제 2: LLM의 비결정적 특성 파괴
- LLM은 같은 입력에도 매번 다른 답변을 만들어냅니다. 이건 버그가 아니라 **의도된 설계**예요.
- 확률적 샘플링을 통해 다양성과 창의성을 확보하는 거죠. 특히 창의적 글쓰기나 브레인스토밍에서는 이런 다양성이 핵심 가치입니다.
"마케팅 아이디어 10개"를 요청했을 때, 매번 같은 답변이 나온다면 AI를 쓸 이유가 없어요.
🧠 왜 이런 함정에 빠질까?
전통적인 소프트웨어에서는 같은 입력 = 같은 출력이 당연했습니다. 함수의 기본 원리니까요.
하지만 LLM은 다릅니다. 확률 기반 시스템이거든요. 매번 조금씩 다른 경로로 답변을 생성하면서, 그 다양성 자체가 가치인 경우가 많아요.
캐시는 이런 본질적 특성을 완전히 무시해버립니다. LLM을 일반적인 결정론적 함수처럼 취급하는 거죠.
그럼 캐시를 아예 포기해야 할까요? 그건 또 아닙니다. 무엇을 캐시할 것인가의 문제예요.
전체 질문-답변을 캐시하는 대신, 변하지 않는 공통 부분만 캐시하는 방법이 있습니다.
예시: 파이썬 프로그래밍 질문에 답하기 위해 매번 파이썬 매뉴얼 전체를 프롬프트에 포함한다고 가정해봅시다.
기존 방식
: 매뉴얼 + 질문 전체를 매번 새로 처리
컨텍스트 캐싱
: 매뉴얼 부분은 캐시하고, 질문 부분만 새로 처리
매뉴얼은 질문이 바뀌어도 동일하니까, 이 부분만 재사용하는 거예요. 답변의 다양성은 유지하면서도 비용은 절약할 수 있습니다.
결국 캐시는 일관성과 창의성 사이의 트레이드오프입니다.
- FAQ 응답: 일관성이 중요 → 캐시 적용
- 창의적 콘텐츠: 다양성이 중요 → 캐시 지양
무엇을 얻기 위해 무엇을 포기할 것인지 의식적으로 선택하는 게 핵심이에요.
💡 팁: 캐시 적용 전에 해당 작업이 "일관성 vs 창의성" 중 어느 쪽이 더 중요한지 먼저 판단하는것추천합니다!
하지만 여기까지 해도 또 다른 문제가 남습니다. "AI가 어제 우리가 얘기한 거 기억 안 나?"
다음 편에서는 "메모리 - AI는 어떻게 기억하는가"를 다뤄보겠습니다.
---
여러분의 좋아요와 공유는 사랑입니다 🥰
#BQ개발자 #LLM애플리케이션 #캐시전략 #AIEngineering
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4