Jak API dla LLM powinny ograniczać żądania, tokeny i współbieżność?
Tłumaczenie automatyczne
Ten artykuł został automatycznie przetłumaczony z angielskiego oryginału.
API dla LLM potrzebuje osobnych limitów liczby żądań, liczby tokenów i współbieżnego przetwarzania. Sam limit żądań na minutę nie ochroni usługi, gdy długości promptów i generowanych odpowiedzi są różne. Dodaj limity wejścia i wyjścia dla pojedynczego żądania, a następnie sprawdź limity przyjmowania żądań względem docelowego opóźnienia.
Dlaczego liczba żądań nie wystarcza
Prompt z 10 tokenami i prompt ze 100,000 tokenów różnią się długością wejścia 10,000 razy. Ich całkowite koszty zależą też od długości odpowiedzi, modelu i pamięci podręcznej. Limit, który traktuje je jednakowo, może dopuścić więcej pracy, niż usługa jest w stanie przetworzyć.
Stosuj kilka ograniczeń razem:
| Limit | Co ogranicza |
|---|---|
| Żądania na minutę | Liczbę wywołań, w tym wiele małych żądań |
| Tokeny wejściowe i wyjściowe | Zmienny zakres przetwarzania i zmienne koszty |
| Żądania współbieżne | Aktywne przetwarzanie, które zużywa zasoby dekodowania i pamięć KV |
| Tokeny na żądanie | Pojedyncze prompty lub odpowiedzi przekraczające przetestowane granice |
Stosuj limity poszczególnych tenantów przed wspólnym limitem całej usługi, aby jeden tenant nie mógł zużyć wszystkich dostępnych zasobów.
Jak działa rezerwacja tokenów
Jedna z możliwych zasad aplikacji polega na rezerwowaniu przy przyjęciu żądania szacowanej liczby tokenów wejściowych oraz maksymalnej dozwolonej liczby tokenów wyjściowych. Żądanie z 2,000 tokenów wejściowych i limitem wyjścia wynoszącym 1,000 rezerwuje 3,000 tokenów. Jeśli wygeneruje 200 tokenów wyjściowych, rzeczywiste zużycie wynosi 2,200; aplikacja zwraca 800.
Oddziel ten przykład od zasad rozliczania dostawcy. OpenAI opisuje własne szacunki limitów żądań i tokenów. Anthropic opisuje osobne limity tokenów wejściowych i wyjściowych. Lokalna rezerwacja nie pozwala przewidzieć, który limit dostawcy zużyje żądanie. Rozliczaj przerwane żądania, gdy dane o zużyciu staną się dostępne, i ograniczaj rezerwacje, których nie da się rozliczyć.
Co sprawdzać pod obciążeniem
Łącz krótkie i długie prompty, krótkie i długie odpowiedzi oraz tenantów działających jednocześnie. Rejestruj czas w kolejce, odrzucone żądania, TTFT, TPOT i zużycie KV cache. Utrzymuj żądania w kolejce tylko przez ograniczony czas; w przeciwnym razie odrzucaj je z jasną zasadą ponawiania. Budżet tokenów na minutę nadal może dopuścić nagły wzrost ruchu, który przekracza pojemność pamięci dla współbieżnych żądań.
Szersze omówienie projektu znajdziesz w sekcji o ograniczaniu częstotliwości żądań w przewodniku inżynierii LLM.