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 o tej roli i innych rolach, musisz uzyskać dostęp do usługi Azure OpenAI, zapoznaj się z naszym przewodnikiem dotyczącym kontroli dostępu opartej na rolach na platformie 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 K modułu TPM, 2 wdrożenia 120 K modułu 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 K 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 portalu usługi Azure AI Foundry, 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 portalu usługi Azure AI Foundry. To ustawienie można również zmodyfikować na stronie Limit przydziałumodelu 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.
Zażądaj większego limitu przydziału
Żądania zwiększenia limitu przydziału można przesłać za pośrednictwem formularza żądania zwiększenia limitu przydziału. Ze względu na duże zapotrzebowanie żądania zwiększenia limitu przydziału są akceptowane i będą wypełniane w kolejności ich odebrania. Priorytet jest przydzielany klientom, którzy generują ruch korzystający z istniejącej alokacji przydziału, a żądanie może zostać odrzucone, jeśli ten warunek nie zostanie spełniony.
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 portalu usługi Azure AI Foundry:
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 tego 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 w przypadku 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.
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.
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).
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, zobacz 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
HTML
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/locations/{location}/usages?api-version=2023-05-01
Zainstaluj interfejs wiersza polecenia platformy Azure. Limit przydziału wymaga .Azure CLI version 2.51.0 Jeśli masz już zainstalowany interfejs az upgrade wiersza polecenia platformy Azure lokalnie, aby przeprowadzić aktualizację do najnowszej wersji.
Aby sprawdzić, która wersja interfejsu wiersza polecenia platformy Azure jest uruchomiona, użyj polecenia az version. Usługa Azure Cloud Shell jest obecnie uruchomiona w wersji 2.50.0, więc w tymczasowej lokalnej instalacji interfejsu wiersza polecenia platformy Azure wymagane jest korzystanie z najnowszych funkcji usługi Azure OpenAI.
Wdrożenie
Azure CLI
az cognitiveservices account deployment create --model-format--model-name--model-version--name--resource-group[--capacity][--deployment-name][--scale-capacity]
[--scale-settings-scale-type {Manual, Standard}][--sku]
Aby zalogować się do lokalnej instalacji interfejsu wiersza polecenia, uruchom az login polecenie:
Azure CLI
az login
Ustawienie pojemności sku-capacity na 10 w poleceniu poniżej tego wdrożenia zostanie ustawione z limitem modułu TPM 10K.
To polecenie jest uruchamiane w kontekście aktualnie aktywnej subskrypcji interfejsu wiersza polecenia platformy Azure. Użyj az-account-set --subscription polecenia , aby zmodyfikować aktywną subskrypcję.
Aby uzyskać więcej informacji, zobacz dokumentację interfejsu wiersza polecenia platformy Azure
Zainstaluj najnowszą wersję modułu Az programu PowerShell. Jeśli masz już zainstalowany lokalnie moduł Az programu PowerShell, uruchom polecenie Update-Module -Name Az , aby zaktualizować do najnowszej wersji.
Aby sprawdzić, która wersja modułu Az programu PowerShell jest uruchomiona, użyj polecenia Get-InstalledModule -Name Az. Usługa Azure Cloud Shell jest obecnie uruchomiona w wersji programu Azure PowerShell, która może korzystać z najnowszych funkcji usługi Azure OpenAI.
To polecenie jest uruchamiane w kontekście aktualnie aktywnej subskrypcji programu Azure PowerShell. Użyj Set-AzContext polecenia , aby zmodyfikować aktywną subskrypcję.
Aby uzyskać więcej informacji na temat New-AzCognitiveServicesAccountDeployment poleceń i Get-AzCognitiveServicesUsage, zapoznaj się z dokumentacją referencyjną programu Azure PowerShell.
JSON
//
// This Azure Resource Manager template shows how to use the new schema introduced in the 2023-05-01 API version to
// create deployments that set the model version and the TPM limits for standard deployments.
//
{
"type": "Microsoft.CognitiveServices/accounts/deployments",
"apiVersion": "2023-05-01",
"name": "arm-je-aoai-test-resource/arm-je-std-deployment", // Update reference to parent Azure OpenAI resource
"dependsOn": [
"[resourceId('Microsoft.CognitiveServices/accounts', 'arm-je-aoai-test-resource')]" // Update reference to parent Azure OpenAI resource
],
"sku": {
"name": "Standard",
"capacity": 10 // The deployment will be created with a 10K TPM limit
},
"properties": {
"model": {
"format": "OpenAI",
"name": "gpt-35-turbo",
"version": "0613" // Version 0613 of gpt-35-turbo will be used
}
}
}
Aby uzyskać więcej informacji, zobacz pełną dokumentację referencyjną usługi Azure Resource Manager.
Bicep
//// This Bicep template shows how to use the new schema introduced in the 2023-05-01 API version to // create deployments that set the model version and the TPM limits for standard deployments.//resourcearm_je_std_deployment'Microsoft.CognitiveServices/accounts/deployments@2023-05-01' = {
parent: arm_je_aoai_resource// Replace this with a reference to the parent Azure OpenAI resourcename: 'arm-je-std-deployment'sku: {
name: 'Standard'capacity: 10// The deployment will be created with a 10K TPM limit
}
properties: {
model: {
format: 'OpenAI'name: 'gpt-35-turbo'version: '0613'// gpt-35-turbo version 0613 will be used
}
}
}
Aby uzyskać więcej informacji, zobacz pełną dokumentację referencyjną Bicep.
Terraform
# This Terraform template shows how to use the new schema introduced in the 2023-05-01 API version to # create deployments that set the model version and the TPM limits for standard deployments.# # The new schema is not yet available in the AzureRM provider (target v4.0), so this template uses the AzAPI# provider, which provides a Terraform-compatible interface to the underlying ARM structures.# # For more details on these providers:# AzureRM: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs# AzAPI: https://registry.terraform.io/providers/azure/azapi/latest/docs## terraform {
required_providers {
azapi = { source = "Azure/azapi" }
azurerm = { source = "hashicorp/azurerm" }
}
}
provider"azapi" {
# Insert auth info here as necessary
}
provider"azurerm" {
# Insert auth info here as necessary
features {
}
}
# # To create a complete example, AzureRM is used to create a new resource group and Azure OpenAI Resource# resource"azurerm_resource_group""TERRAFORM-AOAI-TEST-GROUP" {
name = "TERRAFORM-AOAI-TEST-GROUP"
location = "canadaeast"
}
resource"azurerm_cognitive_account""TERRAFORM-AOAI-TEST-ACCOUNT" {
name = "terraform-aoai-test-account"
location = "canadaeast"
resource_group_name = azurerm_resource_group.TERRAFORM-AOAI-TEST-GROUP.name
kind = "OpenAI"
sku_name = "S0"
custom_subdomain_name = "terraform-test-account-"
}
# # AzAPI is used to create the deployment so that the TPM limit and model versions can be set#resource"azapi_resource""TERRAFORM-AOAI-STD-DEPLOYMENT" {
type = "Microsoft.CognitiveServices/accounts/deployments@2023-05-01"
name = "TERRAFORM-AOAI-STD-DEPLOYMENT"
parent_id = azurerm_cognitive_account.TERRAFORM-AOAI-TEST-ACCOUNT.id
body = jsonencode({
sku = { # The sku object specifies the deployment type and limit in 2023-05-01
name = "Standard",
capacity = 10# This deployment will be set with a 10K TPM limit
},
properties = {
model = {
format = "OpenAI",
name = "gpt-35-turbo",
version = "0613"# Deploy gpt-35-turbo version 0613
}
}
})
}
Aby uzyskać więcej informacji, zobacz pełną dokumentację referencyjną narzędzia Terraform.
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.
Dołącz do serii meetup, aby tworzyć skalowalne rozwiązania sztucznej inteligencji oparte na rzeczywistych przypadkach użycia z innymi deweloperami i ekspertami.