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 propria sottoscrizione. Questo articolo illustra il processo di gestione della quota OpenAI di Azure.

Prerequisiti

Importante

Per visualizzare la quota e distribuire i modelli è necessario il ruolo Lettore utilizzo di 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 necessari per accedere a OpenAI di Azure, vedere la Guida al Controllo degli accessi in base al ruolo di Azure.

Questo ruolo è disponibile nel portale di Azure in Sottoscrizioni>Controllo di accesso (IAM)>Aggiungi un'assegnazione di ruolo> cercare Lettore utilizzo di 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à accesso equivalente, ma concederà anche l'accesso in lettura oltre l'ambito di ciò che è necessario per la visualizzazione della quota e la distribuzione dei modelli.

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 e 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. Quindi, si assegnerà 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 assegnare loro 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 all’interno di Azure AI Studio, in Risorse condivise selezionare Distribuzioni>Distribuisci modello>Distribuisci modello di base>Seleziona modello>Conferma.

Screenshot dell'interfaccia utente di distribuzione di Studio AI della piattaforma Azure

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

Importante

Le quote e i limiti sono soggetti a modifiche, per le informazioni più aggiornate consultare l'articolo su 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 token al minuto (TPM) che può essere allocata a quel tipo di distribuzione del modello in una determinata area.

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

Nota

L'allocazione della quota di token 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 Gestione>Quota in Azure AI Studio:

Screenshot dell'interfaccia utente della quota di Studio AI della piattaforma Azure

  • Distribuzione: distribuzioni di modelli divise per classe modello.
  • Tipo quota: esiste un valore di quota per area per ogni tipo di modello. La quota copre tutte le versioni del modello.
  • Allocazione quota: per il nome della quota, mostra la quantità di 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:

  • Testo del prompt 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.

Importante

Il numero di token usato nel calcolo del limite di frequenza è una stima basata in parte sul conteggio dei caratteri della richiesta API. La stima del token del limite di frequenza non corrisponde al calcolo del token usato per la fatturazione o per determinare che una richiesta è inferiore al limite di token di input di un modello. A causa della natura approssimativa del calcolo del token limite di frequenza, si prevede che un limite di frequenza possa essere attivato prima di quanto potrebbe essere previsto rispetto a una misura esatta del numero di token per ogni richiesta.

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 a livello di codice distribuzioni che usano la quota per impostare i limiti di frequenza di token al minuto (TPM). Con l'introduzione della quota è necessario usare la versione 2023-05-01 dell'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 del 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 corrisponde a 1.000 token al minuto (TPM). Un valore pari a 10 corrisponde 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 dal 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 utilizzo e 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 del percorso

Parametro Type Obbligatorio? Descrizione
subscriptionId stringa Richiesto ID sottoscrizione per la sottoscrizione associata.
location string Richiesto Posizione per 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 prova a eliminare una risorsa di OpenAI di Azure dal portale di Azure, se le distribuzioni sono ancora presenti, l'eliminazione viene bloccata fino a quando non vengono eliminate le distribuzioni associate. L'eliminazione delle distribuzioni consente innanzitutto di liberare correttamente le allocazioni delle quote in modo che possano essere usate nelle nuove distribuzioni.

Se tuttavia si elimina una risorsa usando l'API REST o un altro metodo programmatico, sarà possibile evitare la necessità di eliminare prima 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 rimossa. Per attivare una rimozione immediata di una risorsa eliminata per liberare la quota, seguire le istruzioni per la rimozione di una risorsa eliminata.

Passaggi successivi