BlogKoszty
Jak zmierzyć, ile naprawdę oszczędza cache promptów
Oszczędności z cache rozczarowują z trzech powodów. Liczby z nagłówków dotyczą tylko tokenów wejściowych odczytanych z cache, a tokeny wyjściowe w ogóle nie trafiają do cache. Zapis do cache zwykle kosztuje więcej niż zwykłe wejście. A wiele zapytań chybia, bo prefiks jest za krótki, zmieniony, wygasł albo nie został jeszcze zapisany. Mierz oszczędność dla każdego zapytania z pól użycia zwracanych przez dostawcę, porównuj ją z tym, ile te same tokeny kosztowałyby bez cache, i uzgadniaj wynik z fakturą, zanim podasz jakąkolwiek liczbę.
Dlaczego liczba z nagłówka zawyża twoją oszczędność
Gdy Anthropic wprowadzał cache promptów w 2024 roku, mówił o obniżce kosztów nawet o 90 procent dla długich promptów, z odczytem z cache za 10 procent bazowej ceny wejścia i zapisem droższym o 25 procent. Obecna dokumentacja podaje dla niektórych nowszych modeli inne stawki odczytu, a OpenAI publikuje własne. Tak czy inaczej, rabat dotyczy tylko tokenów wejściowych z cache.
Hipotetyczny rachunek pokazuje efekt. Wejście to 60 procent wydatków, wyjście 40 procent. Z tokenów wejściowych 70 procent jest odczytywanych z cache po 0,1 ceny bazowej, 10 procent zapisywanych po 1,25 ceny, a 20 procent zostaje bez cache. Wejście kosztuje teraz 0,395 dawnej kwoty, czyli o 60 procent mniej. Cały rachunek spada o około 36 procent, daleko od 90.
Siedem częstych powodów, dla których zapytania chybiają cache
Poniższe szczegóły pochodzą z dokumentacji cache Anthropic i OpenAI w chwili pisania. Sprawdź aktualne strony dla swoich modeli, bo minimalne długości i czasy życia różnią się między modelami.
- Prefiks jest krótszy niż minimalna długość do cache'owania. Anthropic przetwarza takie zapytania bez cache i nie zwraca błędu, więc oba pola cache pokazują zero.
- Coś zmienia się przed punktem cache: znacznik czasu, nazwa użytkownika, przestawione lub zmienione definicje narzędzi. Cache Anthropic idzie w kolejności narzędzia, system, wiadomości, a zmiana na jednym poziomie unieważnia wszystko, co po nim.
- Punkt cache leży na treści, która zmienia się przy każdym zapytaniu, więc każde płaci za zapis, a żadne go nie odczytuje.
- Wpisy wygasają między zapytaniami. W Anthropic domyślny czas życia to pięć minut, odnawiany przy każdym użyciu. W OpenAI dla najnowszych modeli domyślnie 30 minut. Dłuższe czasy życia kosztują więcej przy zapisie.
- Zapytania równoległe startują jednocześnie. Anthropic zaznacza, że wpis jest dostępny dopiero po rozpoczęciu pierwszej odpowiedzi, więc fala identycznych zapytań w całości zapisuje.
- Ruch dzieli się tam, gdzie cache nie jest współdzielony. Anthropic izoluje cache w obrębie workspace na własnym API. OpenAI kieruje ruch według prefiksu, dla starszych modeli zaleca prompt_cache_key i ostrzega, że obciążone klucze powyżej około 15 zapytań na minutę mogą trafiać na inne maszyny.
- Rozmowa wyrasta poza okno wsteczne. Anthropic sprawdza najwyżej 20 bloków przed punktem cache, więc długie tury mogą ominąć ostatni wpis, jeśli nie dodasz drugiego punktu.
Mierz z pól użycia, zapytanie po zapytaniu
Każda odpowiedź mówi, co się stało. Anthropic zwraca cache_read_input_tokens, cache_creation_input_tokens i input_tokens, przy czym input_tokens liczy tylko to, co następuje po ostatnim punkcie cache, więc całe wejście to suma wszystkich trzech. OpenAI raportuje cached_tokens, w modelach sprzed GPT-5.6 zaokrąglone w dół do wielokrotności 128, a w nowszych do dokładnej dopasowanej granicy, oraz w nowszych modelach także cache_write_tokens. Zapisuj te pola dla każdego zapytania razem z funkcją, modelem i klientem, a potem licz dla każdej funkcji trzy wartości:
- 1
Udział odczytów
Tokeny wejściowe z cache podzielone przez wszystkie tokeny wejściowe. To jest trafność, która się liczy, bo jest ważona tokenami, a nie zapytaniami.
- 2
Udział zapisów
Tokeny zapisane do cache podzielone przez wszystkie tokeny wejściowe. Wysoki udział zapisów przy niskim udziale odczytów oznacza, że płacisz dopłatę za wpisy, których nikt nie używa ponownie.
- 3
Oszczędność netto
Ile wszystkie tokeny wejściowe kosztowałyby po stawce bazowej, minus ile kosztowały po faktycznie zastosowanych stawkach odczytu, zapisu i bazowej, podzielone przez całkowite wydatki z wyjściem włącznie.
Uzgodnij wynik z raportem dostawcy
Twoje logi mogą pomijać zapytania, a tabela cen może być nieaktualna. Usage and Cost API Anthropic rozbija użycie tokenów na wejście bez cache, wejście z cache, tworzenie cache i wyjście, z grupowaniem według modelu, workspace i klucza API, a raport kosztów podaje kwoty w dolarach. OpenAI udostępnia panel cache promptów z trafnością odczytów. Porównaj miesięczne sumy z logów z tymi raportami. Rozbieżność wskazuje na niezalogowany ruch, złą cenę albo funkcję oznaczoną pod złą nazwą.
Na własnych serwerach vLLM nie ma rabatu za token. Automatic prefix caching pomija ponowne liczenie wspólnego prefiksu, co skraca prefill i zwalnia czas GPU, a vLLM liczy zapytania i trafienia cache prefiksów. Oszczędność zamienia się w pieniądze dopiero wtedy, gdy dzięki zwolnionej mocy uruchamiasz mniej GPU.
Poprawki, które zwykle zwiększają udział odczytów
- Stałe treści na początek: definicje narzędzi, instrukcje i materiały referencyjne, a wszystko zależne od użytkownika lub zapytania za punkt cache
- Zamroź kolejność i serializację narzędzi, żeby te same narzędzia dawały identyczne bajt po bajcie prefiksy
- Przed falą równoległych zapytań ze wspólnym prefiksem wyślij jedno zapytanie rozgrzewające
- Dłuższy czas życia wybieraj tylko tam, gdzie odstęp między zapytaniami przekracza domyślny, a dopłata za zapis się zwraca
Pytania
Czy warto płacić za dłuższy czas życia cache?
Policz to dla każdego prefiksu. Hipotetycznie prefiks używany trzy razy na godzinę co 20 minut przy domyślnych pięciu minutach w Anthropic za każdym razem wygasa i kosztuje trzy zapisy po 1,25 ceny bazowej, czyli 3,75. Przy opcji godzinnej jeden zapis po 2 i dwa odczyty po 0,1 kosztują razem 2,2. Zanim zaufasz temu rachunkowi, sprawdź aktualne stawki dla swojego modelu.
Czy cache może ujawnić dane jednego klienta innemu?
Obaj dostawcy deklarują, że cache nie jest współdzielony między organizacjami. W obrębie twojej organizacji OpenAI sugeruje osobne wartości prompt_cache_key dla każdego klienta, co rozdziela rozliczanie cache i uniemożliwia sondowanie trafień w cache między użytkownikami. Anthropic izoluje cache w obrębie workspace na własnym API.
Kto powinien odpowiadać za liczby dotyczące cache?
Zespół, do którego należy prompt danej funkcji, bo większość chybień wynika ze struktury promptu. Właściciel platformy lub kosztów powinien publikować udział odczytów i oszczędność netto dla każdej funkcji obok faktury. Cloudsail może przygotować takie raportowanie razem z twoim zespołem platformowym. W przypadku agentów kodujących, którzy z wieloma zapytaniami ponownie wysyłają pliki instrukcji i kontekst repozytorium, te same pomiary są częścią pracy Cloudsail nad kosztami agentów kodujących.
Powiązane usługi
Inżynieria i architektura AI
Asystenci, interfejsy głosowe i agenci w produktach, które sprzedajesz, razem z serwowaniem modeli i wyszukiwaniem pod spodem.
Optymalizacja kosztów LLM
Wydatki na agentów rozbite na zespoły i zadania, a potem obniżone dzięki ustawieniom domyślnym, budżetom i routingowi, które twój zespół platformowy może sam utrzymywać.
Więcej z bloga
Alokacja kosztów LLM
Jak wyjaśnić rachunek za LLM według zespołu, zadania i zaakceptowanego wyniku: oznaczaj zapytania w bramce, wyceniaj je tak, jak wystawiana jest faktura, rozdzielaj koszty wspólne według jawnej reguły i co miesiąc uzgadniaj wynik z finansami.
Budżet opóźnień LLM
Jak ustalić, dlaczego funkcja AI działa wolno: rozbij każde zapytanie na kolejkę, retrieval, model i narzędzia, popraw największy element, na który masz wpływ, i mierz ogon rozkładu pod obciążeniem.
Kontrola jakości routingu LLM
Jak kierować proste zapytania do tańszych modeli, nie ukrywając spadków jakości: testuj router jak klasyfikator, trzymaj fallbacki osobno i zapisuj, który model naprawdę odpowiedział.
Porozmawiaj z inżynierem
Przyjdź z jednym zadaniem, które chcesz usprawnić. Rozmowa trwa 30 minut i nie wymaga dostępu do twoich systemów ani danych.
Rezerwacja odbywa się w Kalendarzu Google.
Wolisz najpierw napisać? Zostaw adres e-mail i kilka zdań, a odpowiemy, proponując terminy.
Sprawdź wersję roboczą w swoim programie pocztowym
Wyślij ją stamtąd, a inżynier odpowie ci osobiście, proponując terminy 30-minutowej rozmowy. Jeśli wersja robocza się nie otworzyła, napisz do nas na adres miki@cloudsail.com.