Zarządzanie limitem przydziału usługi Azure OpenAI

Limit przydziału zapewnia elastyczność aktywnego zarządzania alokacją limitów szybkości we wdrożeniach w ramach subskrypcji. W tym artykule przedstawiono proces zarządzania limitem przydziału usługi Azure OpenAI.

Wymagania wstępne

Ważne

Wyświetlanie limitu przydziału i wdrażanie modeli wymaga roli Czytelnik użycia usług Cognitive Services. Ta rola zapewnia minimalny dostęp niezbędny do wyświetlania użycia przydziału w ramach subskrypcji platformy Azure. Aby dowiedzieć się więcej na temat tej roli i innych ról, musisz uzyskać dostęp do usługi Azure OpenAI, zapoznaj się z naszym przewodnikiem dotyczącym dostępu opartego na rolach (RBAC) platformy Azure.

Tę rolę można znaleźć w witrynie Azure Portal w obszarze Subskrypcje>Kontrola dostępu (IAM)>Dodawanie wyszukiwania przypisania> roli dla czytelnika użycia usług Cognitive Services. Ta rola musi być stosowana na poziomie subskrypcji, nie istnieje na poziomie zasobu.

Jeśli nie chcesz używać tej roli, rola Czytelnik subskrypcji zapewni równoważny dostęp, ale przyzna również dostęp do odczytu poza zakresem tego, co jest potrzebne do wyświetlania limitu przydziału i wdrożenia modelu.

Wprowadzenie do limitu przydziału

Funkcja limitu przydziału usługi Azure OpenAI umożliwia przypisywanie limitów szybkości dla wdrożeń— do limitu globalnego nazywanego "limitem przydziału". Limit przydziału jest przypisywany do subskrypcji na podstawie poszczególnych regionów w jednostkach tokenów na minutę (TPM). Po dołączeniu subskrypcji do usługi Azure OpenAI otrzymasz domyślny limit przydziału dla większości dostępnych modeli. Następnie przypiszesz moduł TPM do każdego wdrożenia podczas jego tworzenia, a dostępny limit przydziału dla tego modelu zostanie zmniejszony o tę kwotę. Możesz nadal tworzyć wdrożenia i przypisywać je modułu TPM do momentu osiągnięcia limitu przydziału. W takim przypadku można utworzyć tylko nowe wdrożenia tego modelu, zmniejszając moduł TPM przypisany do innych wdrożeń tego samego modelu (w ten sposób zwalniając moduł TPM do użycia) lub żądając i zatwierdzając zwiększenie limitu przydziału modelu w żądanym regionie.

Uwaga

W przypadku limitu przydziału 240 000 MODUŁÓW TPM dla GPT-35-Turbo w regionie Wschodnie stany USA klient może utworzyć pojedyncze wdrożenie 240 000 modułów TPM, 2 wdrożenia 120 000 TPM każdy lub dowolną liczbę wdrożeń w jednym lub wielu zasobach usługi Azure OpenAI, o ile ich moduł TPM sumuje się do mniej niż 240 tys. w tym regionie.

Po utworzeniu wdrożenia przypisany moduł TPM będzie bezpośrednio mapowany na limit liczby tokenów na minutę wymuszany na żądaniach wnioskowania. Limit szybkości żądań na minutę (RPM) będzie również wymuszany, którego wartość jest ustawiana proporcjonalnie do przypisania modułu TPM przy użyciu następującego współczynnika:

6 OBR./min na moduł TPM 1000.

Elastyczność globalnego dystrybuowania modułu TPM w ramach subskrypcji i regionu umożliwiła usłudze Azure OpenAI Service złagodzenie innych ograniczeń:

  • Maksymalna liczba zasobów na region jest zwiększana do 30.
  • Limit tworzenia nie więcej niż jednego wdrożenia tego samego modelu w zasobie został usunięty.

Przypisywanie limitu przydziału

Podczas tworzenia wdrożenia modelu możesz przypisać tokeny na minutę (TPM) do tego wdrożenia. Moduł TPM można modyfikować w przyrostach wynoszących 1000 i mapować na limity szybkości modułu TPM i obr./min wymuszane we wdrożeniu, jak opisano powyżej.

Aby utworzyć nowe wdrożenie z poziomu usługi Azure AI Studio w obszarze Zarządzanie wybierz pozycję Wdrożenia>Utwórz nowe wdrożenie.

Opcja ustawienia modułu TPM znajduje się na liście rozwijanej Opcje zaawansowane:

Screenshot of the deployment UI of Azure AI Studio

Po wdrożeniu możesz dostosować alokację modułu TPM, wybierając pozycję Edytuj wdrożenie w obszarze Wdrożenia zarządzania>w usłudze Azure AI Studio. Można również zmodyfikować ten wybór w ramach nowego środowiska zarządzania limitami przydziału w obszarze Limity przydziału zarządzania>.

Ważne

Limity przydziału i limity podlegają zmianie, aby uzyskać najbardziej aktualne informacje, zapoznaj się z artykułem limity przydziału i limity.

Ustawienia specyficzne dla modelu

Różne wdrożenia modelu, nazywane również klasami modeli, mają unikatowe maksymalne wartości modułu TPM, które są teraz w stanie kontrolować. Reprezentuje to maksymalną ilość modułu TPM, którą można przydzielić do tego typu wdrożenia modelu w danym regionie. Chociaż każdy typ modelu reprezentuje własną unikatową klasę modelu, maksymalna wartość modułu TPM jest obecnie inna tylko dla niektórych klas modelu:

  • GPT-4
  • GPT-4-32K
  • Text-Davinci-003

Wszystkie inne klasy modeli mają wspólną maksymalną wartość modułu TPM.

Uwaga

Alokacja tokenów przydziału na minutę (TPM) nie jest powiązana z maksymalnym limitem tokenu wejściowego modelu. Limity tokenów wejściowych modelu są definiowane w tabeli modeli i nie mają wpływu na zmiany wprowadzone w module TPM.

Wyświetlanie i żądanie limitu przydziału

Aby wyświetlić wszystkie przydziały przydziałów we wszystkich wdrożeniach w danym regionie, wybierz pozycję Limit przydziału zarządzania>w usłudze Azure AI Studio:

Screenshot of the quota UI of Azure AI Studio

  • Nazwa limitu przydziału: dla każdego typu modelu istnieje jedna wartość limitu przydziału na region. Limit przydziału obejmuje wszystkie wersje tego modelu. Nazwę przydziału można rozszerzyć w interfejsie użytkownika, aby wyświetlić wdrożenia korzystające z limitu przydziału.
  • Wdrożenie: wdrożenia modelu podzielone według klasy modelu.
  • Użycie/limit: dla nazwy limitu przydziału pokazuje, ile przydziału jest używany przez wdrożenia i łączny przydział zatwierdzony dla tej subskrypcji i regionu. Ta ilość używanego limitu przydziału jest również reprezentowana na wykresie słupkowy.
  • Przydział żądania: ikona w tym polu przechodzi do formularza, w którym można przesłać żądania zwiększenia limitu przydziału.

Migrowanie istniejących wdrożeń

W ramach przejścia do nowego systemu przydziału i alokacji opartej na modułach TPM wszystkie istniejące wdrożenia modelu usługi Azure OpenAI zostały automatycznie zmigrowane w celu użycia limitu przydziału. W przypadkach, gdy istniejąca alokacja modułu TPM/RPM przekracza wartości domyślne z powodu wcześniejszych niestandardowych wzrostów limitów szybkości, równoważny moduł TPM został przypisany do wdrożeń, których dotyczy ten wpływ.

Opis limitów szybkości

Przypisywanie modułu TPM do wdrożenia powoduje ustawienie limitów szybkości tokenów na minutę (TPM) i żądań na minutę (RPM) dla wdrożenia, zgodnie z powyższym opisem. Limity szybkości modułu TPM są oparte na maksymalnej liczbie tokenów, które są szacowane na przetworzenie przez żądanie w momencie odebrania żądania. Nie jest ona taka sama jak liczba tokenów używanych do rozliczeń, która jest obliczana po zakończeniu całego przetwarzania.

Po odebraniu każdego żądania usługa Azure OpenAI oblicza szacowaną maksymalną liczbę przetworzonych tokenów, która obejmuje następujące elementy:

  • Tekst monitu i liczba
  • Ustawienie parametru max_tokens
  • Ustawienie parametru best_of

Gdy żądania przychodzą do punktu końcowego wdrożenia, szacowana liczba maksymalnie przetworzonych tokenów jest dodawana do uruchomionej liczby tokenów wszystkich żądań resetowanych co minutę. Jeśli w dowolnym momencie w tej chwili zostanie osiągnięta wartość limitu szybkości modułu TPM, kolejne żądania otrzymają kod odpowiedzi 429 do momentu zresetowania licznika.

Limity szybkości obr./min są oparte na liczbie żądań odebranych w czasie. Limit szybkości oczekuje równomiernego dystrybuowania żądań w ciągu jednej minuty. Jeśli ten średni przepływ nie jest utrzymywany, żądania mogą otrzymać odpowiedź 429, mimo że limit nie jest spełniony podczas pomiaru w ciągu minuty. Aby zaimplementować to zachowanie, usługa Azure OpenAI Service ocenia szybkość żądań przychodzących w krótkim czasie, zazwyczaj 1 lub 10 sekund. Jeśli liczba żądań odebranych w tym czasie przekroczy oczekiwany limit obr./min, nowe żądania otrzymają kod odpowiedzi 429 do następnego okresu oceny. Jeśli na przykład usługa Azure OpenAI monitoruje częstotliwość żądań w 1-sekundowych interwałach, ograniczenie szybkości wystąpi w przypadku wdrożenia 600 obr./min, jeśli podczas każdego 1-sekundowego okresu odbieranych jest więcej niż 10 żądań (600 żądań na minutę = 10 żądań na sekundę).

Najlepsze rozwiązania dotyczące limitu szybkości

Aby zminimalizować problemy związane z limitami szybkości, warto użyć następujących technik:

  • Ustaw max_tokens i best_of na minimalne wartości spełniające potrzeby scenariusza. Na przykład nie ustawiaj dużej wartości maksymalnych tokenów, jeśli oczekujesz, że odpowiedzi będą małe.
  • Zarządzanie przydziałami umożliwia zwiększenie modułu TPM we wdrożeniach o dużym natężeniu ruchu oraz zmniejszenie modułu TPM we wdrożeniach z ograniczonymi potrzebami.
  • Zaimplementuj logikę ponawiania prób w aplikacji.
  • Unikaj gwałtownych zmian w obciążeniu. Stopniowo zwiększaj obciążenie.
  • Testuj różne wzorce zwiększania obciążenia.

Automatyzowanie wdrażania

Ta sekcja zawiera krótkie przykładowe szablony ułatwiające rozpoczęcie programowego tworzenia wdrożeń, które używają przydziału do ustawiania limitów szybkości modułu TPM. Wraz z wprowadzeniem limitu przydziału należy użyć wersji 2023-05-01 interfejsu API na potrzeby działań związanych z zarządzaniem zasobami. Ta wersja interfejsu API służy tylko do zarządzania zasobami i nie ma wpływu na wersję interfejsu API używaną do wnioskowania wywołań, takich jak ukończenie, uzupełnianie czatów, osadzanie, generowanie obrazów itp.

Wdrożenie

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/deployments/{deploymentName}?api-version=2023-05-01

Parametry ścieżki

Parametr Type Wymagane? opis
accountName string Wymagania Nazwa zasobu usługi Azure OpenAI.
deploymentName string Wymagania Nazwa wdrożenia wybrana podczas wdrażania istniejącego modelu lub nazwa, którą ma mieć nowe wdrożenie modelu.
resourceGroupName string Wymagania Nazwa skojarzonej grupy zasobów dla tego wdrożenia modelu.
subscriptionId string Wymagania Identyfikator subskrypcji skojarzonej subskrypcji.
api-version string Wymagania Wersja interfejsu API do użycia dla tej operacji. Jest zgodna z formatem RRRR-MM-DD.

Obsługiwane wersje

Treść żądania

Jest to tylko podzestaw dostępnych parametrów treści żądania. Pełną listę parametrów można znaleźć w dokumentacji referencyjnej interfejsu API REST.

Parametr Type Opis
sku SKU Definicja modelu zasobów reprezentująca jednostkę SKU.
capacity integer Reprezentuje to ilość przydziału przypisywanego do tego wdrożenia. Wartość 1 równa 1000 tokenów na minutę (TPM). Wartość 10 jest równa 10 000 tokenów na minutę (TPM).

Przykładowe żądanie

curl -X PUT https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-temp/providers/Microsoft.CognitiveServices/accounts/docs-openai-test-001/deployments/gpt-35-turbo-test-deployment?api-version=2023-05-01 \
  -H "Content-Type: application/json" \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
  -d '{"sku":{"name":"Standard","capacity":10},"properties": {"model": {"format": "OpenAI","name": "gpt-35-turbo","version": "0613"}}}'

Uwaga

Istnieje wiele sposobów generowania tokenu autoryzacji. Najprostszą metodą testowania początkowego jest uruchomienie usługi Cloud Shell w witrynie Azure Portal. Następnie należy uruchomić polecenie az account get-access-token. Możesz użyć tego tokenu jako tymczasowego tokenu autoryzacji na potrzeby testowania interfejsu API.

Aby uzyskać więcej informacji, zapoznaj się z dokumentacją referencyjną interfejsu API REST dotyczącą użycia i wdrażania.

Użycie

Aby wykonać zapytanie dotyczące użycia limitu przydziału w danym regionie, dla określonej subskrypcji

GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/locations/{location}/usages?api-version=2023-05-01

Parametry ścieżki

Parametr Type Wymagane? opis
subscriptionId string Wymagania Identyfikator subskrypcji skojarzonej subskrypcji.
location string Wymagania Lokalizacja wyświetlania użycia dla przykładu: eastus
api-version string Wymagania Wersja interfejsu API do użycia dla tej operacji. Jest zgodna z formatem RRRR-MM-DD.

Obsługiwane wersje

Przykładowe żądanie

curl -X GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.CognitiveServices/locations/eastus/usages?api-version=2023-05-01 \
  -H "Content-Type: application/json" \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' 

Usuwanie zasobów

Gdy próba usunięcia zasobu usługi Azure OpenAI zostanie wykonana z witryny Azure Portal, jeśli jakiekolwiek wdrożenia będą nadal usuwane, zostanie zablokowane do momentu usunięcia skojarzonych wdrożeń. Usunięcie wdrożeń pozwala najpierw na prawidłowe zwolnienie alokacji przydziałów, dzięki czemu mogą być używane w nowych wdrożeniach.

Jeśli jednak usuniesz zasób przy użyciu interfejsu API REST lub innej metody programowej, najpierw pomija to konieczność usunięcia wdrożeń. W takim przypadku skojarzona alokacja przydziału pozostanie niedostępna do przypisania do nowego wdrożenia przez 48 godzin do momentu przeczyszczania zasobu. Aby wyzwolić natychmiastowe przeczyszczenie usuniętego zasobu w celu zwolnienia limitu przydziału, postępuj zgodnie z instrukcjami dotyczącymi przeczyszczania usuniętego zasobu.

Następne kroki