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
W przypadku każdego zadania wymagającego wyświetlania dostępnego limitu przydziału zalecamy użycie 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ę. Wdrożenia można tworzyć i przypisywać do TPM nadal 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 programu Azure AI Studio, wybierz pozycję Wdrożenia>modelu Wdróż model>podstawowy Wybierz pozycję Potwierdź model.>>
Po wdrożeniu możesz dostosować alokację modułu TPM, wybierając i edytując model na stronie Wdrożenia w usłudze Azure AI Studio. To ustawienie można również zmodyfikować na stronie Limit przydziału modelu 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.
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:
- Wdrożenie: wdrożenia modelu podzielone według klasy modelu.
- Typ limitu przydziału: dla każdego typu modelu istnieje jedna wartość przydziału na region. Limit przydziału obejmuje wszystkie wersje tego modelu.
- Alokacja przydziału: w nazwie limitu przydziału jest wyświetlany limit przydziału 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 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.
Ważne
Liczba tokenów używana w obliczeniu limitu szybkości jest szacowana częściowo na podstawie liczby znaków żądania interfejsu API. Szacowanie tokenu limitu szybkości nie jest takie samo jak obliczenie tokenu używane do rozliczeń/określania, że żądanie jest poniżej limitu tokenu wejściowego modelu. Ze względu na przybliżony charakter obliczania tokenu limitu szybkości oczekiwane jest zachowanie, że można wyzwolić limit szybkości przed tym, czego można oczekiwać w porównaniu z dokładnym pomiarem liczby tokenów dla każdego żądania.
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.
- REST
- Interfejs wiersza polecenia platformy Azure
- Azure PowerShell
- Azure Resource Manager
- Bicep
- Terraform
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
2023-05-01
Specyfikacja struktury Swagger
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
2023-05-01
Specyfikacja struktury Swagger
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
- Aby zapoznać się z wartościami domyślnymi limitów przydziału dla usługi Azure OpenAI, zapoznaj się z artykułem Limity przydziału i limity