Prompt Caching
프롬프트 캐싱이 지연 시간과 비용을 줄여 생성 AI를 어떻게 최적화하는지 알아보십시오. LLM 및 Ultralytics YOLO26을 이용한 실시간 컴퓨터 비전에서의 역할을 배우십시오.
프롬프트 캐싱은 주로 **generative AI**에서 추론 중 비용을 크게 절감하고 응답 속도를 개선하기 위해 사용되는 고급 최적화 전략입니다. Large Language Models (LLMs) 영역에서 텍스트를 처리하려면 입력을 **tokens**이라고 하는 수치 시퀀스로 변환해야 합니다. 종종 상세한 시스템 지시사항, 긴 법률 문서 또는 코드베이스와 같은 대다수의 입력 데이터는 다양한 사용자 쿼리 전반에 걸쳐 정적 상태로 유지됩니다. 새로운 요청마다 이러한 변경되지 않은 섹션을 다시 처리하는 대신, 프롬프트 캐싱은 사전 계산된 수학적 상태(Key-Value 캐시라고도 함)를 메모리에 저장합니다. 이를 통해 **inference engine**은 중복 계산을 건너뛰고 사용자의 프롬프트에서 새롭고 동적인 부분에만 연산 능력을 집중할 수 있습니다.
메커니즘 및 이점#
프롬프트 캐싱의 근본적인 메커니즘은 데이터를 순차적으로 처리하는 **Transformers**의 아키텍처에 의존합니다. 시스템은 프롬프트의 반복되는 접두사를 식별함으로써 고속 메모리에서 해당 attention mechanism 상태를 직접 로드할 수 있습니다.
- 대기 시간 단축: 캐싱은 inference latency, 특히 첫 번째 토큰 생성 시간(TTFT)을 극적으로 낮춰줍니다. 이를 통해 대화형 **chatbots**과 같은 실시간 애플리케이션이 사용자에게 즉각적인 반응을 제공하도록 보장합니다.
- 비용 효율성: Cloud Computing 제공업체는 주로 연산 지속 시간이나 토큰 처리를 기준으로 비용을 청구하므로, 정적 컨텍스트에 대한 무거운 작업을 건너뛰면 상당한 비용 절감으로 이어집니다.
- 처리량 증가: GPU 리소스를 확보함으로써 서버는 더 많은 동시 요청 볼륨을 처리할 수 있으며, 전체 model serving 인프라의 확장성이 더욱 높아집니다.
실제 애플리케이션 사례#
프롬프트 캐싱은 방대한 데이터 컨텍스트를 활용하는 산업을 변화시키고 있습니다.
-
코딩 어시스턴트: 소프트웨어 개발에서 **GitHub Copilot**과 같은 도구는 사용자의 열린 파일 및 저장소 구조에서 방대한 양의 컨텍스트를 활용합니다. 코드베이스의 **embeddings**을 캐싱함으로써 모델은 매 키 입력마다 전체 프로젝트 파일 구조를 다시 분석하지 않고도 실시간 코드 완성 제안을 제공할 수 있습니다.
-
법률 및 의료 분석: 전문가들은 종종 판례 아카이브나 환자 병력 기록과 같은 대규모 정적 문서에 대해 **AI Agents**에 쿼리를 수행합니다. **Retrieval-Augmented Generation (RAG)**를 사용하여 시스템은 관련 텍스트 청크를 검색합니다. 프롬프트 캐싱은 후속 질문을 위해 이러한 검색된 문서의 기초 컨텍스트를 다시 계산할 필요가 없도록 보장하여 Question Answering 워크플로우를 간소화합니다.
컴퓨터 비전에서의 관련성#
전통적으로 텍스트와 연관되어 있지만, 캐싱 개념은 멀티모달 **Computer Vision (CV)**에서도 매우 중요합니다. **YOLO-World**와 같은 모델을 사용하면 사용자가 개방형 어휘 텍스트 프롬프트를 사용하여 객체를 감지할 수 있습니다. 사용자가 클래스 목록(예: "person, backpack, car")을 정의하면 모델은 이러한 클래스에 대한 텍스트 임베딩을 계산합니다. 이러한 임베딩을 캐싱하면 모델이 모든 단일 비디오 프레임에 대해 텍스트 프롬프트를 다시 인코딩할 필요가 없으므로 고속 **Real-Time Inference**가 가능해집니다.
관련 용어 구분#
- Prompt Engineering vs: 프롬프트 엔지니어링은 모델을 안내하기 위해 최적의 텍스트 입력을 설계하는 인간의 노력을 포함합니다. 프롬프트 캐싱은 해당 텍스트에 대한 기계의 처리를 저장하는 백엔드 연산 최적화입니다.
- Prompt Tuning vs: 프롬프트 튜닝은 모델을 작업에 적응시키기 위해 특정 Model Weights(소프트 프롬프트)를 업데이트하는 Transfer Learning 기술입니다. 캐싱은 모델의 파라미터를 변경하지 않으며, 런타임 동안 활성화 상태만 기억합니다.
코드 예시: 비전 컨텍스트에서 텍스트 임베딩 캐싱하기#
다음 Python 스니펫은 ultralytics 패키지를 사용하여 비전 컨텍스트에서 프롬프트를 "캐싱"하는 개념을 보여줍니다. YOLO-World 모델에서 클래스를 한 번 설정하면 텍스트 임베딩이 계산되어 저장(영구 보관)되므로, 모델이 텍스트 설명을 다시 처리하지 않고도 여러 이미지에 대해 효율적으로 예측할 수 있습니다.
from ultralytics import YOLOWorld
# Load a YOLO-World model capable of open-vocabulary detection
model = YOLOWorld("yolov8s-world.pt")
# "Cache" the prompt: Define classes once.
# The model computes and stores text embeddings for these specific terms.
model.set_classes(["helmet", "reflective vest", "gloves"])
# Run inference repeatedly. The text prompt is not re-computed for each call.
# This mimics the efficiency gains of prompt caching in LLMs.
results_1 = model.predict("construction_site_1.jpg")
results_2 = model.predict("construction_site_2.jpg")데이터셋을 관리하고 이러한 최적화된 모델을 배포하기 위해 **Ultralytics Platform**은 데이터 주석 작업, **YOLO26**과 같은 최첨단 모델 학습, 그리고 다양한 Edge AI 장치 전반의 배포 성능 모니터링을 위한 종합적인 환경을 제공합니다.






