Skip to main content
W&B Inference는 지원되는 호스팅 모델에서 접두사 캐싱을 사용해 동일한 프롬프트 접두사를 가진 반복 요청을 더 빠르게 처리합니다. 요청이 동일한 백엔드의 이전 요청과 같은 프롬프트 접두사를 공유하면, 모델은 전체 접두사를 다시 계산하는 대신 이전에 계산한 키-값(KV) 캐시를 재사용합니다. 이를 통해 반복되는 프롬프트, 긴 system 프롬프트, 그리고 안정적으로 공유되는 접두사가 있는 워크로드의 지연 시간을 줄일 수 있습니다. 지원되는 모델에서는 접두사 캐싱이 자동으로 적용되므로 요청에서 별도로 활성화할 필요가 없습니다. 이 페이지에서는 접두사 캐싱이 가장 효과적인 경우와 cache_salt를 사용해 캐시 격리를 제어하는 방법을 설명합니다.

접두사 캐싱이 도움이 되는 경우

접두사 캐싱은 긴 공통 접두사를 공유하는 요청을 반복해서 보낼 때 가장 유용합니다. 예를 들면 다음과 같습니다.
  • 여러 요청에서 재사용되는 큰 system 프롬프트
  • 긴 공통 문서 뒤에 서로 다른 사용자 질문이 이어지는 경우
  • 요청별로 작은 변경만 있는 반복적인 평가 프롬프트
  • 대화 이력의 많은 부분이 동일하게 유지되는 multi-turn 워크로드

캐시 격리

일부 환경에서는 서로 다른 사용자나 애플리케이션 간에 캐시가 재사용되지 않도록 해야 할 수 있습니다. cache_salt 파라미터를 사용하면 이를 제어할 수 있습니다. 기본적으로 동일한 프롬프트 접두사를 가진 요청은 백엔드가 허용하는 경우 공유 인프라에서 캐시를 재사용할 수 있습니다. 캐시 재사용을 특정 신뢰 경계로 제한하려면 cache_salt 요청 파라미터를 설정하세요. 요청은 프롬프트 접두사와 cache_salt가 모두 일치할 때만 접두사 캐시를 재사용합니다. 단일 사용자, 테넌트, 세션 또는 애플리케이션 경계 내에서는 캐시를 재사용하되, 다른 호출자 간에는 재사용되지 않게 하려면 cache_salt를 사용하세요.

작동 방식

cache_salt의 사용 여부와 값은 캐시 재사용에 다음과 같이 영향을 줍니다:
  • 동일한 프롬프트 접두사이고 cache_salt가 없으면: 일치하는 요청 간에 캐시가 재사용될 수 있습니다.
  • 동일한 프롬프트 접두사이고 cache_salt도 같으면: 캐시를 재사용할 수 있습니다.
  • 동일한 프롬프트 접두사이지만 cache_salt가 다르면: 캐시는 격리되며 서로 다른 salt 간에는 재사용되지 않습니다.
cache_salt는 지정하는 경우 비어 있지 않은 string이어야 합니다.

예시

다음 예시에서는 cache_salt를 사용해 캐시 재사용이 서로 격리되도록 chat completion 요청을 보내는 방법을 보여줍니다.

응답 동작

요청에서 접두사 캐싱이 활성화되었는지 확인하려면 응답 사용 세부 정보를 확인하세요. 일부 모델에서는 접두사 캐시가 재사용되면 사용 세부 정보에 usage.prompt_tokens_details.cached_tokens의 캐시된 토큰 수가 포함될 수 있습니다. 이 필드의 제공 여부는 모델과 백엔드에 따라 다릅니다. 다음 페이지에서 관련 주제를 다룹니다.