Udostępnij za pośrednictwem


Buforowanie monitów

Buforowanie monitów pozwala zmniejszyć ogólne opóźnienie żądań i koszt dłuższych monitów, które mają identyczną zawartość na początku monitu. Komunikat "Monit" w tym kontekście odnosi się do danych wejściowych wysyłanych do modelu w ramach żądania ukończenia czatu. Zamiast ponownie przetwarzać te same tokeny wejściowe w kóło, model może zachować tymczasową pamięć podręczną przetworzonych danych wejściowych, aby poprawić ogólną wydajność. Buforowanie monitów nie ma wpływu na zawartość wyjściową zwracaną w odpowiedzi modelu poza zmniejszenie opóźnienia i kosztów. W przypadku obsługiwanych modeli tokeny buforowane są rozliczane na poziomie 50% rabatu za ceny tokenów wejściowych.

Obsługiwane modele

Obecnie tylko następujące modele obsługują buforowanie monitów za pomocą usługi Azure OpenAI:

  • o1-preview-2024-09-12
  • o1-mini-2024-09-12
  • gpt-4o-2024-05-13
  • gpt-4o-2024-08-06
  • gpt-4o-mini-2024-07-18

Obsługa interfejsu API

Oficjalna obsługa buforowania monitów została po raz pierwszy dodana w wersji 2024-10-01-previewinterfejsu API . Obecnie tylko o1-preview-2024-09-12 modele i o1-mini-2024-09-12 obsługują parametr odpowiedzi interfejsu cached_tokens API.

Wprowadzenie

Aby żądanie skorzystało z buforowania monitu, żądanie musi mieć wartość :

  • Długość co najmniej 1024 tokenów.
  • Pierwsze 1024 tokeny w wierszu polecenia muszą być identyczne.

Po znalezieniu dopasowania między monitem a bieżącą zawartością pamięci podręcznej monitów jest określany jako trafienie pamięci podręcznej. Trafienia pamięci podręcznej będą wyświetlane jako cached_tokens w obszarze prompt_token_details w odpowiedzi na ukończenie czatu.

{
  "created": 1729227448,
  "model": "o1-preview-2024-09-12",
  "object": "chat.completion",
  "service_tier": null,
  "system_fingerprint": "fp_50cdd5dc04",
  "usage": {
    "completion_tokens": 1518,
    "prompt_tokens": 1566,
    "total_tokens": 3084,
    "completion_tokens_details": {
      "audio_tokens": null,
      "reasoning_tokens": 576
    },
    "prompt_tokens_details": {
      "audio_tokens": null,
      "cached_tokens": 1408
    }
  }
}

Po osiągnięciu pierwszych 1024 tokenów pamięci podręcznej wystąpi dla każdego 128 dodatkowych identycznych tokenów.

Pojedyncza różnica znaków w pierwszych 1024 tokenach spowoduje pominięcie pamięci podręcznej, która charakteryzuje się wartością cached_tokens 0. Buforowanie monitów jest domyślnie włączone bez dodatkowej konfiguracji wymaganej dla obsługiwanych modeli.

Co jest buforowane?

Modele serii o1 są tylko tekstem i nie obsługują komunikatów systemowych, obrazów, używania narzędzi/wywoływania funkcji ani strukturalnych danych wyjściowych. Ogranicza to skuteczność buforowania monitów dla tych modeli do części użytkownika/asystenta tablicy komunikatów, które są mniej prawdopodobne, aby mieć identyczny prefiks tokenu 1024.

W przypadku gpt-4o modeli i gpt-4o-mini buforowanie monitów jest obsługiwane w następujących celach:

Obsługiwane buforowanie Opis
Komunikaty Pełna tablica komunikatów: system, użytkownik i asystent zawartości
Obrazy Obrazy zawarte w komunikatach użytkownika, zarówno jako linki, jak i jako dane zakodowane w formacie base64. Parametr szczegółów musi być ustawiony tak samo w żądaniach.
Użycie narzędzia Zarówno tablica komunikatów, jak i definicje narzędzi
Dane wyjściowe ze strukturą Schemat danych wyjściowych ze strukturą jest dołączany jako prefiks do komunikatu systemowego

Aby zwiększyć prawdopodobieństwo wystąpienia trafień pamięci podręcznej, należy określić strukturę żądań, tak aby powtarzała się zawartość na początku tablicy komunikatów.

Czy mogę wyłączyć buforowanie monitów?

Buforowanie monitów jest domyślnie włączone. Nie ma opcji rezygnacji.

Jak działa buforowanie monitów dla wdrożeń aprowizowanych?

W przypadku obsługiwanych modeli wdrożeń aprowizowanych rabat wynosi do 100% buforowanych tokenów wejściowych. Aby uzyskać więcej informacji, zobacz dokumentację aprowizowania przepływności.