Gestire la quota del servizio OpenAI di Azure

La quota offre la flessibilità necessaria per gestire attivamente l'allocazione dei limiti di frequenza tra le distribuzioni all'interno della sottoscrizione. Questo articolo illustra il processo di gestione della quota OpenAI di Azure.

Prerequisiti

Importante

Per visualizzare i modelli di quota e distribuzione è necessario il ruolo Lettore utilizzo Servizi cognitivi. Questo ruolo fornisce l'accesso minimo necessario per visualizzare l'utilizzo della quota in una sottoscrizione di Azure. Per altre informazioni su questo ruolo e sugli altri ruoli, è necessario accedere ad Azure OpenAI, vedere la guida all'accesso in base al ruolo di Azure.

Questo ruolo è disponibile nella portale di Azure in Controllo di accesso delle sottoscrizioni>(IAM)>Aggiungere la ricerca di assegnazione> di ruolo per Lettore utilizzo servizi cognitivi. Questo ruolo deve essere applicato a livello di sottoscrizione, non esiste a livello di risorsa.

Se non si vuole usare questo ruolo, il ruolo lettore della sottoscrizione fornirà l'accesso equivalente, ma concederà anche l'accesso in lettura oltre l'ambito di ciò che è necessario per la visualizzazione della quota e della distribuzione del modello.

Introduzione alla quota

La funzionalità di quota di Azure OpenAI consente l'assegnazione di limiti di frequenza alle distribuzioni, fino a un limite globale denominato "quota". La quota viene assegnata alla sottoscrizione in base all'area, in base al modello in unità di token al minuto (TPM). Quando si esegue l'onboarding di una sottoscrizione in Azure OpenAI, si riceverà la quota predefinita per la maggior parte dei modelli disponibili. Si assegnerà quindi il TPM a ogni distribuzione durante la creazione e la quota disponibile per tale modello verrà ridotta di tale importo. È possibile continuare a creare distribuzioni e assegnarle TPM fino a raggiungere il limite di quota. In questo caso, è possibile creare solo nuove distribuzioni di tale modello riducendo il TPM assegnato ad altre distribuzioni dello stesso modello (liberando così TPM per l'uso) oppure richiedendo e approvando l'aumento della quota del modello nell'area desiderata.

Nota

Con una quota di 240.000 TPM per GPT-35-Turbo negli Stati Uniti orientali, un cliente può creare una singola distribuzione di 240.000 TPM, 2 distribuzioni di 120.000 TPM o un numero qualsiasi di distribuzioni in una o più risorse OpenAI di Azure, purché il TPM aggiunga fino a meno di 240.000 totali in tale area.

Quando viene creata una distribuzione, il TPM assegnato eseguirà direttamente il mapping al limite di velocità dei token al minuto applicato alle richieste di inferenza. Verrà applicato anche un limite di frequenza Requests-Per-Minute (RPM) il cui valore viene impostato proporzionalmente all'assegnazione TPM usando il rapporto seguente:

6 RPM per 1000 TPM.

La flessibilità di distribuire TPM a livello globale all'interno di una sottoscrizione e di un'area ha consentito al servizio OpenAI di Azure di allentare altre restrizioni:

  • Le risorse massime per area vengono aumentate a 30.
  • Il limite alla creazione di non più di una distribuzione dello stesso modello in una risorsa è stato rimosso.

Assegnazione della quota

Quando si crea una distribuzione di modelli, è possibile assegnare token al minuto (TPM) a tale distribuzione. TPM può essere modificato in incrementi di 1.000 e verrà eseguito il mapping ai limiti di velocità TPM e RPM applicati alla distribuzione, come illustrato in precedenza.

Per creare una nuova distribuzione da Azure AI Studio in Gestione selezionare Distribuzioni>Crea nuova distribuzione.

L'opzione per impostare il TPM è disponibile nell'elenco a discesa Opzioni avanzate :

Screenshot of the deployment UI of Azure AI Studio

Dopo la distribuzione è possibile modificare l'allocazione TPM selezionando Modifica distribuzione in Distribuzioni di gestione>in Azure AI Studio. È anche possibile modificare questa selezione all'interno della nuova esperienza di gestione delle quote in Quote di gestione>.

Importante

Le quote e i limiti sono soggetti a modifiche, per le informazioni più aggiornate consultare l'articolo quote e limiti.

Impostazioni specifiche del modello

Distribuzioni di modelli diverse, dette anche classi di modelli, hanno valori TPM massimi univoci che è ora possibile controllare. Rappresenta la quantità massima di TPM che può essere allocata a quel tipo di distribuzione del modello in una determinata area. Mentre ogni tipo di modello rappresenta la propria classe modello univoca, il valore TPM massimo è attualmente diverso solo per determinate classi di modello:

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

Tutte le altre classi del modello hanno un valore TPM massimo comune.

Nota

L'allocazione dei token di quota al minuto (TPM) non è correlata al limite massimo di token di input di un modello. I limiti dei token di input del modello sono definiti nella tabella dei modelli e non sono interessati dalle modifiche apportate a TPM.

Visualizzare e richiedere la quota

Per visualizzare tutte le allocazioni delle quote tra le distribuzioni in una determinata area, selezionare Quota di gestione>in Azure AI Studio:

Screenshot of the quota UI of Azure AI Studio

  • Nome quota: esiste un valore di quota per area per ogni tipo di modello. La quota copre tutte le versioni del modello. Il nome della quota può essere espanso nell'interfaccia utente per visualizzare le distribuzioni che usano la quota.
  • Distribuzione: distribuzioni di modelli divise per classe modello.
  • Utilizzo/Limite: per il nome della quota, viene illustrata la quota usata dalle distribuzioni e la quota totale approvata per la sottoscrizione e l'area. Questa quantità di quota usata è rappresentata anche nel grafico a barre.
  • Richiesta quota: l'icona in questo campo passa a un modulo in cui è possibile inviare richieste di aumento della quota.

Migrazione di distribuzioni esistenti

Nell'ambito della transizione al nuovo sistema di quota e all'allocazione basata su TPM, tutte le distribuzioni del modello OpenAI di Azure esistenti sono state migrate automaticamente per usare la quota. Nei casi in cui l'allocazione TPM/RPM esistente supera i valori predefiniti dovuti all'aumento del limite di velocità personalizzato precedente, il TPM equivalente è stato assegnato alle distribuzioni interessate.

Informazioni sui limiti di frequenza

L'assegnazione di TPM a una distribuzione imposta i limiti di velocità Token al minuto (TPM) e Requests-Per-Minute (RPM) per la distribuzione, come descritto in precedenza. I limiti di frequenza TPM si basano sul numero massimo di token che vengono stimati per essere elaborati da una richiesta al momento della ricezione della richiesta. Non è uguale al numero di token usato per la fatturazione, che viene calcolato dopo il completamento di tutte le elaborazioni.

Quando ogni richiesta viene ricevuta, Azure OpenAI calcola un numero massimo stimato di token elaborati che include quanto segue:

  • Richiedi testo e conteggio
  • Impostazione del parametro max_tokens
  • Impostazione del parametro best_of

Quando le richieste arrivano nell'endpoint di distribuzione, il conteggio stimato di token max-processed-token viene aggiunto a un numero di token in esecuzione di tutte le richieste reimpostate ogni minuto. Se in qualsiasi momento durante quel minuto, viene raggiunto il valore limite di velocità TPM, altre richieste riceveranno un codice di risposta 429 fino a quando il contatore non viene reimpostato.

I limiti di velocità RPM si basano sul numero di richieste ricevute nel tempo. Il limite di velocità prevede che le richieste vengano distribuite uniformemente in un periodo di un minuto. Se questo flusso medio non viene mantenuto, le richieste possono ricevere una risposta 429 anche se il limite non viene soddisfatto quando misurato nel corso di un minuto. Per implementare questo comportamento, il servizio Azure OpenAI valuta la frequenza delle richieste in ingresso in un breve periodo di tempo, in genere 1 o 10 secondi. Se il numero di richieste ricevute durante tale periodo supera quello previsto al limite RPM impostato, le nuove richieste riceveranno un codice di risposta 429 fino al periodo di valutazione successivo. Ad esempio, se Azure OpenAI monitora la frequenza delle richieste a intervalli di 1 secondo, la limitazione della frequenza si verifica per una distribuzione a 600 RPM se vengono ricevute più di 10 richieste durante ogni periodo di 1 secondo (600 richieste al minuto = 10 richieste al secondo).

Procedure consigliate per il limite di velocità

Per ridurre al minimo i problemi relativi ai limiti di frequenza, è consigliabile usare le tecniche seguenti:

  • Impostare max_tokens e best_of sui valori minimi che servono alle esigenze dello scenario. Ad esempio, non impostare un valore max-token di grandi dimensioni se si prevede che le risposte siano ridotte.
  • Usare la gestione delle quote per aumentare il TPM nelle distribuzioni con traffico elevato e ridurre il TPM nelle distribuzioni con esigenze limitate.
  • Implementare la logica di ripetizione dei tentativi nell'applicazione.
  • Evitare modifiche brusche nel carico di lavoro. Aumentare gradualmente il carico di lavoro.
  • Testare modelli di aumento del carico diversi.

Automatizzare la distribuzione

Questa sezione contiene brevi modelli di esempio che consentono di iniziare a creare distribuzioni a livello di codice che usano la quota per impostare i limiti di frequenza TPM. Con l'introduzione della quota è necessario usare la versione 2023-05-01 api per le attività correlate alla gestione delle risorse. Questa versione dell'API è solo per la gestione delle risorse e non influisce sulla versione dell'API usata per l'inferenza di chiamate come completamenti, completamenti della chat, incorporamento, generazione di immagini e così via.

Distribuzione

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

Parametri di percorso

Parametro Type Obbligatorio? Descrizione
accountName stringa Richiesto Nome della risorsa OpenAI di Azure.
deploymentName string Richiesto Nome della distribuzione scelto quando è stato distribuito un modello esistente o il nome desiderato per una nuova distribuzione del modello.
resourceGroupName string Richiesto Nome del gruppo di risorse associato per la distribuzione del modello.
subscriptionId string Richiesto ID sottoscrizione per la sottoscrizione associata.
api-version string Richiesto Versione dell'API da usare per questa operazione. Segue il formato AAAA-MM-GG.

Versioni supportate

Testo della richiesta

Si tratta solo di un subset dei parametri del corpo della richiesta disponibili. Per l'elenco completo dei parametri, è possibile fare riferimento alla documentazione di riferimento dell'API REST.

Parametro Tipo Descrizione
sku Sku Definizione del modello di risorse che rappresenta lo SKU.
capacità integer Rappresenta la quantità di quota assegnata a questa distribuzione. Un valore pari a 1 è uguale a 1.000 token al minuto (TPM). Un valore pari a 10 è uguale a 10.000 token al minuto (TPM).

Richiesta di esempi

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

Nota

Esistono diversi modi per generare un token di autorizzazione. Il metodo più semplice per i test iniziali consiste nell'avviare Cloud Shell dalla portale di Azure. Quindi eseguire az account get-access-token. È possibile usare questo token come token di autorizzazione temporaneo per il test dell'API.

Per altre informazioni, vedere la documentazione di riferimento dell'API REST per l'utilizzo e la distribuzione.

Utilizzo

Per eseguire query sull'utilizzo della quota in una determinata area, per una sottoscrizione specifica

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

Parametri di percorso

Parametro Type Obbligatorio? Descrizione
subscriptionId stringa Richiesto ID sottoscrizione per la sottoscrizione associata.
location string Richiesto Posizione in cui visualizzare l'utilizzo, ad esempio: eastus
api-version string Richiesto Versione dell'API da usare per questa operazione. Segue il formato AAAA-MM-GG.

Versioni supportate

Richiesta di esempi

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' 

Eliminazione delle risorse

Quando si tenta di eliminare una risorsa OpenAI di Azure dalla portale di Azure se le distribuzioni sono ancora presenti, l'eliminazione viene bloccata fino all'eliminazione delle distribuzioni associate. L'eliminazione delle distribuzioni consente innanzitutto di liberare correttamente le allocazioni delle quote in modo che possano essere usate nelle nuove distribuzioni.

Tuttavia, se si elimina una risorsa usando l'API REST o un altro metodo programmatico, questa operazione ignora innanzitutto la necessità di eliminare le distribuzioni. In questo caso, l'allocazione della quota associata rimarrà non disponibile per l'assegnazione a una nuova distribuzione per 48 ore fino a quando la risorsa non viene ripulita. Per attivare un'eliminazione immediata di una risorsa eliminata per liberare la quota, seguire le istruzioni per eliminare una risorsa eliminata.

Passaggi successivi

  • Per esaminare le impostazioni predefinite delle quote per Azure OpenAI, vedere l'articolo quote e limiti