Yolo 비전 선전
선전
지금 참여하기
용어집

프롬프트 캐싱

프롬프트 캐싱으로 AI 효율성을 높이세요! 이 강력한 기술을 사용하여 대기 시간을 줄이고, 비용을 절감하며, AI 앱을 확장하는 방법을 알아보세요.

프롬프트 캐싱은 다음과 같은 배포에 사용되는 특수 최적화 기술입니다. 대규모 언어 모델(LLM)을 배포하는 데 사용되는 특수 최적화 기법으로 추론 지연 시간을 크게 줄이고 계산 비용을 크게 줄여줍니다. 생성형 AI의 맥락에서 프롬프트를 처리하려면 텍스트를 숫자 표현으로 변환하고 모든 토큰 간의 관계를 계산하는 주의 메커니즘을 사용합니다. 프롬프트의 상당 부분이 프롬프트의 상당 부분(예: 긴 시스템 명령어 또는 예제 집합)이 여러 요청에 걸쳐 정적으로 유지되는 경우, 프롬프트 캐싱을 사용하면 시스템에서 해당 정적 상태의 중간 수학적 상태(특히 키-값 쌍)를 저장할 수 있습니다. 텍스트를 저장할 수 있습니다. 새로운 쿼리마다 이러한 상태를 다시 계산하는 대신, 추론 엔진은 추론 엔진은 메모리에서 해당 상태를 검색합니다, 모델이 입력의 새롭고 동적인 부분에만 처리 능력을 집중할 수 있도록 합니다.

메커니즘 및 이점

프롬프트 캐싱의 핵심 메커니즘은 효율적인 컨텍스트 창을 효율적으로 관리하는 것입니다. LLM이 입력을 처리할 때 입력을 처리할 때, 그 시점까지의 텍스트에 대한 모델의 이해를 나타내는 "KV 캐시"(키-값 캐시)를 생성합니다. 그 시점까지. 프롬프트 캐시는 프롬프트의 초기 segment (접두사)를 재사용 가능한 자산으로 처리합니다.

  • 지연 시간 단축: 캐시된 접두사에 대한 계산을 건너뜀으로써 첫 번째 토큰에 대한 시간(TTFT) 이 획기적으로 단축되어 실시간 추론 시나리오에서 실시간 추론 시나리오에서 더 빠른 응답으로 이어집니다.
  • 비용 효율성: 이후 그래픽 처리 장치(GPU) 가 중복 토큰을 처리하는 데 소요되는 시간이 줄어들기 때문에 요청당 필요한 전체 컴퓨팅 리소스가 감소하여 인공지능(AI) 서비스를 실행하는 데 드는 인공 지능(AI) 서비스 운영 비용을 낮춥니다.
  • 처리량 증가: 시스템에서 더 많은 양의 동시 요청을 처리할 수 있습니다. 각 개별 요청에 대한 계산 부담이 최소화되기 때문입니다.

실제 애플리케이션

프롬프트 캐싱은 개발자가 머신 러닝 애플리케이션을 빌드하고 확장하는 방식을 변화시키고 있습니다. 머신 러닝(ML) 애플리케이션을 구축하는 방식을 특히 텍스트 처리량이 많은 애플리케이션을 구축하는 방식을 변화시키고 있습니다.

  1. 컨텍스트 인식 코딩 어시스턴트: 코드 완성 기능을 제공하는 도구에서는 현재 파일과 참조된 라이브러리의 전체 콘텐츠가 현재 파일 및 참조된 라이브러리의 전체 내용이 프롬프트 컨텍스트로 사용되는 경우가 많습니다. 이 "접두사"는 수천 토큰의 길이일 수 있습니다. 프롬프트 캐싱을 사용하면 어시스턴트가 파일 상태를 캐시할 수 있습니다. 개발자가 입력( 새 토큰을 추가)하면 모델은 전체 파일 구조를 다시 읽지 않고 새 문자만 처리하여 1초 미만의 응답 시간을 구현할 수 있습니다. 1초 미만의 응답 시간이 가능합니다.
  2. 문서 분석 및 Q&A: 50페이지 분량의 PDF 매뉴얼에 대한 질문에 답변하도록 설계된 시스템을 생각해 보세요. 매뉴얼에 대한 질문에 답변하는 시스템을 생각해 보세요. 사용 검색 증강 생성(RAG)을 사용하면 매뉴얼의 텍스트가 모델에 입력됩니다. 캐싱이 없으면 사용자가 질문을 할 때마다 모델은 다음을 수행해야 합니다. 전체 매뉴얼과 질문을 다시 처리해야 합니다. 프롬프트 캐싱을 사용하면 설명서를 이해하는 데 필요한 무거운 계산 작업이 매뉴얼을 한 번만 처리하고 저장합니다. 후속 질문은 이 캐시된 상태에 추가되므로, 질문과 답변의 질문에 답하는 상호 작용이 유동적이고 효율적입니다.

기술 구현 개념

프롬프트 캐싱은 LLM 추론 서버 내부에 있지만, 데이터 구조를 이해하면 개념을 명확히 이해하는 데 도움이 됩니다. '캐시'는 기본적으로 주의 상태를 나타내는 텐서(다차원 배열)를 저장합니다.

다음 Python 스니펫을 사용하여 torch 는 키-값 캐시 tensor 형태와 개념을 보여줍니다, 즉, 프롬프트 캐싱 중에 저장되고 재사용되는 것입니다:

import torch

# Simulate a KV Cache tensor for a transformer model
# Shape: (Batch_Size, Num_Heads, Sequence_Length, Head_Dim)
batch_size, num_heads, seq_len, head_dim = 1, 32, 1024, 128

# Create a random tensor representing the pre-computed state of a long prompt
kv_cache_state = torch.randn(batch_size, num_heads, seq_len, head_dim)

print(f"Cached state shape: {kv_cache_state.shape}")
print(f"Number of cached parameters: {kv_cache_state.numel()}")
# In practice, this tensor is passed to the model's forward() method
# to skip processing the first 1024 tokens.

관련 개념 구분하기

올바른 최적화 전략을 적용하려면 프롬프트 캐싱을 다른 용어와 구별하는 것이 중요합니다. Ultralytics 용어집의 다른 용어와 구별하여 올바른 최적화 전략을 적용하는 것이 중요합니다.

  • Vs. 프롬프트 엔지니어링: 프롬프트 엔지니어링은 텍스트 입력의 콘텐츠와 구조를 제작하여 최상의 응답을 유도하는 데 중점을 둡니다. 프롬프트 캐싱은 해당 입력의 계산 실행을 최적화하는 데 중점을 둡니다.
  • Vs. 시맨틱 검색: 시맨틱 검색(캐싱 출력에 자주 사용됨)은 유사한 쿼리를 찾아 미리 작성된 응답을 반환합니다. 프롬프트 캐싱은 여전히 모델을 실행하여 고유한 응답을 생성합니다. 입력 컨텍스트의 읽기만 빠르게 진행합니다.
  • 미세 조정: 미세 조정은 모델 가중치를 영구적으로 변경하여 모델 가중치를 영구적으로 변경하여 새로운 정보를 학습합니다. 프롬프트 캐싱은 모델의 가중치를 변경하지 않고 특정 입력의 활성화 상태를 일시적으로 저장합니다. 세션의 활성화 상태를 임시로 저장합니다.
  • Vs. 모델 정량화: 정량화는 모델 매개변수의 정밀도를 줄여 메모리를 절약하고 전반적인 추론 속도를 높입니다. 프롬프트 캐싱은 입력 데이터를 위한 런타임 최적화이며, 종종 다음과 함께 사용됩니다. 양자화.

프롬프트 캐싱은 기본적으로 자연어 처리(NLP), 효율성 원칙은 보편적입니다. 컴퓨터 비전 컴퓨터 비전(CV), 다음과 같은 모델 YOLO11 과 같은 모델은 아키텍처적으로 속도를 위해 최적화되어 있어 객체 감지 작업에서 높은 프레임 속도를 달성할 수 있도록 보장하며, 자동 회귀 언어 모델에서 사용되는 것과 동일한 유형의 상태 캐싱을 사용하지 않아도 됩니다. 하지만 멀티 모달 모델이 비디오와 텍스트를 함께 처리하도록 진화함에 따라 비디오와 텍스트를 함께 처리하도록 발전함에 따라, 시각적 토큰 캐싱은 다음과 같은 논문에서 설명하는 새로운 연구 분야로 떠오르고 있습니다. arXiv.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기