다음을 통해 공유


대규모 언어 모델 API 요청의 캐시된 응답 가져오기

적용 대상: 모든 API Management 계층

llm-semantic-cache-lookup 정책을 사용하여 이전 요청과 프롬프트의 벡터 근접성 및 지정된 점수 임계값에 따라 구성된 외부 캐시에서 LLM(대규모 언어 모델) API 요청에 대한 응답의 캐시 조회를 수행합니다. 응답 캐싱은 백 엔드 LLM API에 부과된 대역폭 및 처리 요구 사항을 줄이고 API 사용자가 느끼는 대기 시간을 낮춥니다.

참고 항목

참고 항목

정책 문에 제공된 순서대로 정책의 요소 및 자식 요소를 설정합니다. API Management 정책을 설정하거나 편집하는 방법에 대해 자세히 알아봅니다.

지원되는 모델

Azure AI 모델 유추 API 또는 타사 유추 공급자를 통해 제공되는 OpenAI 호환 모델을 통해 사용할 수 있는 Azure API Management에 추가된 LLM API와 함께 정책을 사용합니다.

정책 문

<llm-semantic-cache-lookup
    score-threshold="score threshold to return cached response"
    embeddings-backend-id ="backend entity ID for embeddings API"
    embeddings-backend-auth ="system-assigned"             
    ignore-system-messages="true | false"      
    max-message-count="count" >
    <vary-by>"expression to partition caching"</vary-by>
</llm-semantic-cache-lookup>

특성

특성 설명 필수 항목 기본값
점수 임계값 점수 임계값은 들어오는 프롬프트가 저장된 응답을 반환하기 위해 캐시된 프롬프트와 얼마나 가깝게 일치해야 하는지를 정의합니다. 값의 범위는 0.0에서 1.0까지입니다. 값이 낮을수록 일치 항목의 의미 체계 유사성이 높아질 수 있습니다. 자세히 알아보기. 해당 없음
embeddings-backend-id 백 엔드 포함 API 호출에 대한 ID입니다. 해당 없음
embeddings-backend-auth API 백 엔드를 포함하는 데 사용되는 인증입니다. 예. system-assigned로 설정해야 합니다. 해당 없음
ignore-system-messages 부울입니다. (권장)로 true 설정하면 캐시 유사성을 평가하기 전에 채팅 완료 프롬프트에서 시스템 메시지를 제거합니다. 아니요 거짓
max-message-count 지정된 경우 캐싱을 건너뛴 후 남은 대화 메시지 수입니다. 아니요 해당 없음

요소들

이름 설명 필수 항목
vary-by 값이 캐싱을 분할하는 런타임 시 결정되는 사용자 지정 식입니다. 여러 개의 vary-by 요소가 추가되면 값이 연결되어 고유한 조합을 만듭니다. 아니요

사용

사용법 참고 사항

  • 이 정책은 정책 섹션에서 한 번만 사용할 수 있습니다.
  • 애플리케이션 기반 값을 score-threshold 미세 조정하여 적절한 민감도를 사용하여 쿼리에 대해 캐시된 응답을 반환할 시기를 결정합니다. 0.05와 같은 낮은 값으로 시작하고 캐시 적중 횟수의 누락 비율을 최적화하도록 조정합니다.
  • 점수 임계값이 0.2를 초과하면 캐시 불일치가 발생할 수 있습니다. 중요한 사용 사례에 더 낮은 값을 사용하는 것이 좋습니다.
  • 특정 사용자 또는 사용자 그룹 식별자를 사용하여 지정하여 vary-by 캐시 항목에 대한 사용자 간 액세스를 제어합니다.
  • embeddings 모델에는 프롬프트 볼륨 및 프롬프트를 수용하기에 충분한 용량과 충분한 컨텍스트 크기가 있어야 합니다.
  • 프롬프트 공격으로부터 보호하기 위해 프롬프트 쉴드를 사용하여 llm-content-safety 정책을 추가하는 것이 좋습니다.
  • 캐시 조회 직후 에 속도 제한 정책(또는 키별 속도 제한 정책)을 구성하는 것이 좋습니다. 이렇게 하면 캐시를 사용할 수 없는 경우 백 엔드 서비스가 오버로드되지 않도록 할 수 있습니다.

예제

해당 llm-semantic-cache-store 정책이 있는 예

다음 예제에서는 정책과 함께 llm-semantic-cache-lookup 정책을 사용하여 llm-semantic-cache-store 유사성 점수 임계값이 0.05인 의미상 유사한 캐시된 응답을 검색하는 방법을 보여 줍니다. 캐시된 값은 호출자의 구독 ID로 분할됩니다.

참고 항목

캐시 조회 후에 호출 횟수를 줄이고 캐시가 없을 경우 백엔드 서비스 과부하를 방지하기 위해 레이트 제한 정책(또는 키별 레이트 리밋 정책)을 추가하세요.

<policies>
    <inbound>
        <base />
        <llm-semantic-cache-lookup
            score-threshold="0.05"
            embeddings-backend-id ="llm-backend"
            embeddings-backend-auth ="system-assigned" >
            <vary-by>@(context.Subscription.Id)</vary-by>
        </llm-semantic-cache-lookup>
        <rate-limit calls="10" renewal-period="60" />
    </inbound>
    <outbound>
        <llm-semantic-cache-store duration="60" />
        <base />
    </outbound>
</policies>

정책 작업에 대한 자세한 내용은 다음을 참조하세요.