Hantera Azure OpenAI-tjänstkvot

Kvoten ger flexibiliteten att aktivt hantera allokering av hastighetsgränser mellan distributionerna i din prenumeration. Den här artikeln går igenom processen för att hantera din Azure OpenAI-kvot.

Förutsättningar

Viktigt!

För att visa kvoter och distribuera modeller krävs rollen Cognitive Services Usages Reader . Den här rollen ger den minimala åtkomst som krävs för att visa kvotanvändning i en Azure-prenumeration. Mer information om den här rollen och de andra rollerna du behöver för att få åtkomst till Azure OpenAI finns i vår azure-guide för rollbaserad åtkomst (Azure RBAC).

Den här rollen finns i Azure Portal under Åtkomstkontroll för prenumerationer>(IAM)>Lägg till rolltilldelningssökning> för Cognitive Services Usages Reader. Den här rollen måste tillämpas på prenumerationsnivå, den finns inte på resursnivå.

Om du inte vill använda den här rollen ger prenumerationsrollen Läsare motsvarande åtkomst, men den ger även läsbehörighet utöver det som behövs för att visa kvot- och modelldistribution.

Introduktion till kvot

Azure OpenAI:s kvotfunktion möjliggör tilldelning av hastighetsgränser till dina distributioner, upp till en global gräns som kallas din "kvot". Kvoten tilldelas till din prenumeration per region, per modell i enheter med TPM (Token per minut). När du registrerar en prenumeration på Azure OpenAI får du standardkvoten för de flesta tillgängliga modeller. Sedan tilldelar du TPM till varje distribution när den skapas, och den tillgängliga kvoten för den modellen minskas med det beloppet. Du kan fortsätta att skapa distributioner och tilldela dem TPM tills du når din kvotgräns. När det händer kan du bara skapa nya distributioner av den modellen genom att minska TPM som tilldelats till andra distributioner av samma modell (vilket frigör TPM för användning) eller genom att begära och godkännas för en modellkvotökning i önskad region.

Kommentar

Med en kvot på 240 000 TPM för GPT-35-Turbo i USA, östra kan en kund skapa en enda distribution av 240 000 TPM, 2 distributioner med 120 000 TPM vardera eller valfritt antal distributioner i en eller flera Azure OpenAI-resurser så länge deras TPM uppgår till mindre än 240 000 totalt i den regionen.

När en distribution skapas mappas den tilldelade TPM direkt till den hastighetsgräns för token per minut som tillämpas på dess slutsatsdragningsbegäranden. En hastighetsgräns för begäranden per minut (RPM) tillämpas också vars värde anges proportionellt till TPM-tilldelningen med hjälp av följande förhållande:

6 RPM per 1 000 TPM.

Flexibiliteten att distribuera TPM globalt inom en prenumeration och region har gjort det möjligt för Azure OpenAI Service att lätta på andra begränsningar:

  • Maximalt antal resurser per region ökas till 30.
  • Gränsen för att skapa högst en distribution av samma modell i en resurs har tagits bort.

Tilldela kvot

När du skapar en modelldistribution har du möjlighet att tilldela token per minut (TPM) till den distributionen. TPM kan ändras i steg om 1 000 och mappas till de TPM- och RPM-hastighetsgränser som tillämpas på distributionen enligt beskrivningen ovan.

Om du vill skapa en ny distribution inifrån Azure AI Studio väljer du Distributioner>Distribuera modell>Distribuera basmodell>Välj modell>bekräfta.

Skärmbild av distributionsgränssnittet för Azure AI Studio

Efter distributionen kan du justera TPM-allokeringen genom att välja och redigera din modell från sidan Distributioner i Azure AI Studio. Du kan också ändra den här inställningen från kvotsidan för hanteringsmodell>.

Viktigt!

Kvoter och gränser kan komma att ändras för den senaste informationen finns i vår artikel om kvoter och begränsningar.

Modellspecifika inställningar

Olika modelldistributioner, även kallade modellklasser, har unika maximala TPM-värden som du nu kan styra. Detta representerar den maximala mängden TPM som kan allokeras till den typen av modelldistribution i en viss region.

Alla andra modellklasser har ett gemensamt maximalt TPM-värde.

Kommentar

Kvottoken per minut-allokering (TPM) är inte relaterad till maxgränsen för indatatoken för en modell. Tokenbegränsningar för modellindata definieras i modelltabellen och påverkas inte av ändringar i TPM.

Visa och begära kvot

För en fullständig vy över dina kvotallokeringar mellan distributioner i en viss region väljer du Hanteringskvot> i Azure AI Studio:

Skärmbild av kvotgränssnittet för Azure AI Studio

  • Distribution: Modelldistributioner dividerade med modellklass.
  • Kvottyp: Det finns ett kvotvärde per region för varje modelltyp. Kvoten omfattar alla versioner av modellen.
  • Kvotallokering: För kvotnamnet visar detta hur mycket kvot som används av distributioner och den totala kvot som godkänts för den här prenumerationen och regionen. Den här mängden kvot som används visas också i stapeldiagrammet.
  • Begärandekvot: Ikonen navigerar till ett formulär där begäranden om att öka kvoten kan skickas.

Migrera befintliga distributioner

Som en del av övergången till det nya kvotsystemet och den TPM-baserade allokeringen har alla befintliga Azure OpenAI-modelldistributioner automatiskt migrerats för att använda kvoten. I de fall då den befintliga TPM-/RPM-allokeringen överskrider standardvärdena på grund av tidigare anpassade hastighetsgränsökningar tilldelades motsvarande TPM till de påverkade distributionerna.

Förstå hastighetsbegränsningar

Om du tilldelar TPM till en distribution anges hastighetsbegränsningarna Tokens-Per-Minute (TPM) och Requests-Per-Minute (RPM) för distributionen enligt beskrivningen ovan. TPM-hastighetsbegränsningar baseras på det maximala antalet token som beräknas bearbetas av en begäran när begäran tas emot. Det är inte samma sak som antalet token som används för fakturering, som beräknas när all bearbetning har slutförts.

När varje begäran tas emot beräknar Azure OpenAI ett uppskattat maximalt antal bearbetade token som innehåller följande:

  • Fråga efter text och antal
  • Parameterinställningen max_tokens
  • Parameterinställningen best_of

När begäranden kommer till distributionsslutpunkten läggs det uppskattade maxbearbetade tokenantalet till i ett antal aktiva token för alla begäranden som återställs varje minut. Om TPM-hastighetsgränsvärdet nås någon gång under den minuten får ytterligare begäranden en 429-svarskod tills räknaren återställs.

Viktigt!

Det tokenantal som används i beräkningen av hastighetsbegränsningen är en uppskattning som delvis baseras på antalet tecken i API-begäran. Tokenuppskattningen för hastighetsgräns är inte samma som tokenberäkningen som används för fakturering/att fastställa att en begäran ligger under en modells indatatokengräns. På grund av den ungefärliga karaktären hos beräkningen av token för hastighetsbegränsning är det förväntat att en hastighetsgräns kan utlösas före vad som kan förväntas i jämförelse med en exakt tokenräkningsmätning för varje begäran.

RPM-hastighetsbegränsningar baseras på antalet begäranden som tas emot över tid. Hastighetsgränsen förväntar sig att begäranden fördelas jämnt under en minutsperiod. Om det här genomsnittliga flödet inte underhålls kan begäranden få ett svar på 429 trots att gränsen inte uppfylls när den mäts under en minut. För att implementera det här beteendet utvärderar Azure OpenAI Service antalet inkommande begäranden under en liten tidsperiod, vanligtvis 1 eller 10 sekunder. Om antalet begäranden som tas emot under den tiden överskrider vad som förväntas vid den angivna RPM-gränsen får nya begäranden en 429-svarskod fram till nästa utvärderingsperiod. Om Azure OpenAI till exempel övervakar begärandefrekvensen med 1 sekunds intervall sker hastighetsbegränsning för en 600 RPM-distribution om fler än 10 begäranden tas emot under varje 1 sekund (600 begäranden per minut = 10 begäranden per sekund).

Metodtips för hastighetsbegränsning

För att minimera problem som rör hastighetsbegränsningar är det en bra idé att använda följande tekniker:

  • Ange max_tokens och best_of till de minimivärden som uppfyller behoven i ditt scenario. Ange till exempel inte ett stort maxtokenvärde om du förväntar dig att dina svar ska vara små.
  • Använd kvothantering för att öka TPM för distributioner med hög trafik och för att minska TPM för distributioner med begränsade behov.
  • Implementera logik för omprövning i ditt program.
  • Undvik stora plötsliga ändringar i arbetsbelastningen. Öka arbetsbelastningen gradvis.
  • Testa olika mönster för att öka belastningen.

Automatisera distribution

Det här avsnittet innehåller korta exempelmallar som hjälper dig att komma igång programmatiskt med att skapa distributioner som använder kvot för att ange TPM-hastighetsgränser. Med introduktionen av kvoten måste du använda API-versionen 2023-05-01 för resurshanteringsrelaterade aktiviteter. Den här API-versionen är endast för att hantera dina resurser och påverkar inte den API-version som används för att härleda anrop som slutföranden, chattavslut, inbäddning, bildgenerering osv.

Distribution

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

Sökvägsparametrar

Parameter Type Obligatorisk? beskrivning
accountName sträng Obligatoriskt Namnet på din Azure OpenAI-resurs.
deploymentName sträng Obligatoriskt Det distributionsnamn som du valde när du distribuerade en befintlig modell eller det namn som du vill att en ny modelldistribution ska ha.
resourceGroupName sträng Obligatoriskt Namnet på den associerade resursgruppen för den här modelldistributionen.
subscriptionId sträng Obligatoriskt Prenumerations-ID för den associerade prenumerationen.
api-version sträng Obligatoriskt Den API-version som ska användas för den här åtgärden. Formatet är ÅÅÅÅ-MM-DD.

Versioner som stöds

Begärandetext

Det här är bara en delmängd av de tillgängliga parametrarna för begärandetexten. En fullständig lista över parametrarna finns i REST API-referensdokumentationen.

Parameter Typ Beskrivning
sku Sku Resursmodelldefinitionen som representerar SKU.
capacity integer Detta representerar den mängd kvot som du tilldelar den här distributionen. Värdet 1 är lika med 1 000 token per minut (TPM). Ett värde på 10 är lika med 10 000 token per minut (TPM).

Exempelbegäranden

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"}}}'

Kommentar

Det finns flera sätt att generera en auktoriseringstoken. Den enklaste metoden för inledande testning är att starta Cloud Shell från Azure Portal. Kör sedan az account get-access-token. Du kan använda den här token som din tillfälliga auktoriseringstoken för API-testning.

Mer information finns i REST API-referensdokumentationen för användning och distribution.

Förbrukning

Om du vill köra frågor mot din kvotanvändning i en viss region för en viss prenumeration

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

Sökvägsparametrar

Parameter Type Obligatorisk? beskrivning
subscriptionId sträng Obligatoriskt Prenumerations-ID för den associerade prenumerationen.
location sträng Obligatoriskt Plats för att visa användning för till exempel: eastus
api-version sträng Obligatoriskt Den API-version som ska användas för den här åtgärden. Formatet är ÅÅÅÅ-MM-DD.

Versioner som stöds

Exempelbegäranden

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' 

Resursborttagning

När ett försök att ta bort en Azure OpenAI-resurs görs från Azure Portal om det fortfarande finns några distributioner blockeras tills de associerade distributionerna tas bort. Om du tar bort distributionerna först kan kvotallokeringar frigöras korrekt så att de kan användas i nya distributioner.

Men om du tar bort en resurs med hjälp av REST-API:et eller någon annan programmatisk metod kringgår detta behovet av att ta bort distributioner först. När detta inträffar förblir den associerade kvotallokeringen otillgänglig för att tilldela till en ny distribution i 48 timmar tills resursen rensas. Om du vill utlösa en omedelbar rensning för en borttagen resurs för att frigöra kvoten följer du anvisningarna för att rensa en borttagen resurs.

Nästa steg