Spring AI 프롬프트 캐싱 및 채팅 메모리: 토큰은 어디로 가는가 — LLM 비용 관리 2/4
이 섹션에서는 AI 모델의 출력, 대화 기록 및 반복적인 정적 콘텐츠와 관련된 비용을 제어하는 데 중점을 둡니다. 출력 및 추론 토큰은 입력 토큰보다 훨씬 비싸며, 일부 모델은 출력에 대해 최대 8배 더 비쌉니다. 추론 프로세스는 더 높은 출력 요율을 발생시키는 숨겨진 "사고" 토큰을 생성할 수 있습니다. Spring AI는 maxTokens와 같이 공급자 독립적인 길이 제한을 제공하며, 추론 노력을 관리하기 위한 공급자별 설정을 제공합니다. 각 요청마다 전체 채팅 로그를 다시 보내는 대화 기록은 입력 토큰 비용을 빠르게 증가시킵니다. 기록을 저장하고 다시 보내는 것은 작은 대화라도 시간이 지남에 따라 상당한 토큰 사용으로 이어질 수 있음을 의미합니다. Spring AI는 지정된 수의 메시지 슬라이딩 창을 사용하여 대화 기록을 관리하기 위해 MessageWindowChatMemory를 제공합니다. 매우 긴 세션의 경우, VectorStoreChatMemoryAdvisor는 기록을 벡터 저장소에 저장하고 관련 메시지만 검색하여 대안을 제공합니다. 시스템 프롬프트 또는 도구 정의와 같은 반복적인 정적 콘텐츠는 캐싱 없이 모든 요청에 대해 요금이 부과됩니다. 프롬프트 캐싱은 처리된 프롬프트 접두사를 재사용을 위해 저장하여 이러한 비용을 줄입니다. Anthropic 및 AWS Bedrock은 사용자가 캐싱 전략을 지정할 수 있도록 허용하며, OpenAI는 특정 토큰 수 이상의 요청에 대해 프롬프트를 자동으로 캐싱하지만, 캐시 쓰기에 이제 수수료가 부과됩니다. Ollama와 같은 로컬 모델은 GPU 처리 시간을 절약하기 위해 캐싱을 사용하여 속도를 향상시키지만, 줄일 수 있는 토큰당 요금이 없습니다. 이러한 모델에서 비용 최적화를 위해서는 캐싱에 대한 명시적인 계획과 캐시 키 관리가 중요합니다.
maxTokens와 같이 공급자 독립적인 길이 제한을 제공하며, 추론 노력을 관리하기 위한 공급자별 설정을 제공합니다. 각 요청마다 전체 채팅 로그를 다시 보내는 대화 기록은 입력 토큰 비용을 빠르게 증가시킵니다. 기록을 저장하고 다시 보내는 것은 작은 대화라도 시간이 지남에 따라 상당한 토큰 사용으로 이어질 수 있음을 의미합니다. Spring AI는 지정된 수의 메시지 슬라이딩 창을 사용하여 대화 기록을 관리하기 위해MessageWindowChatMemory를 제공합니다. 매우 긴 세션의 경우,VectorStoreChatMemoryAdvisor는 기록을 벡터 저장소에 저장하고 관련 메시지만 검색하여 대안을 제공합니다. 시스템 프롬프트 또는 도구 정의와 같은 반복적인 정적 콘텐츠는 캐싱 없이 모든 요청에 대해 요금이 부과됩니다. 프롬프트 캐싱은 처리된 프롬프트 접두사를 재사용을 위해 저장하여 이러한 비용을 줄입니다. Anthropic 및 AWS Bedrock은 사용자가 캐싱 전략을 지정할 수 있도록 허용하며, OpenAI는 특정 토큰 수 이상의 요청에 대해 프롬프트를 자동으로 캐싱하지만, 캐시 쓰기에 이제 수수료가 부과됩니다. Ollama와 같은 로컬 모델은 GPU 처리 시간을 절약하기 위해 캐싱을 사용하여 속도를 향상시키지만, 줄일 수 있는 토큰당 요금이 없습니다. 이러한 모델에서 비용 최적화를 위해서는 캐싱에 대한 명시적인 계획과 캐시 키 관리가 중요합니다.