Azure OpenAI sui dati

Usare questo articolo per informazioni su Azure OpenAI on Your Data, che semplifica la connessione, l'inserimento e l'inserimento dei dati aziendali da parte degli sviluppatori per creare rapidamente copiloti personalizzati (anteprima). Migliora la comprensione dell'utente, accelera il completamento delle attività, migliora l'efficienza operativa e aiuta il processo decisionale.

Che cos'è Azure OpenAI sui dati

Azure OpenAI On Your Data consente di eseguire modelli avanzati di intelligenza artificiale, ad esempio GPT-35-Turbo e GPT-4 sui propri dati aziendali senza dover eseguire il training o ottimizzare i modelli. È possibile chattare e analizzare i dati con maggiore precisione. È possibile specificare le origini per supportare le risposte in base alle informazioni più recenti disponibili nelle origini dati designate. È possibile accedere ad Azure OpenAI sui dati usando un'API REST, tramite l'SDK o l'interfaccia basata sul Web in Azure OpenAI Studio. È anche possibile creare un'app Web che si connette ai dati per abilitare una soluzione di chat avanzata o distribuirla direttamente come copilota in Copilot Studio (anteprima).

Operazioni preliminari

Per iniziare, connettere l'origine dati usando Azure OpenAI Studio e iniziare a porre domande e chattare sui dati.

Nota

Per iniziare, è necessario essere già stati approvati per l'accesso ad Azure OpenAI e avere una risorsa del servizio Azure OpenAI distribuita in un'area supportata con i modelli gpt-35-turbo o gpt-4.

Controlli degli accessi in base al ruolo di Azure per l'aggiunta di origini dati

Per usare completamente Azure OpenAI nei dati, è necessario impostare uno o più ruoli controllo degli accessi in base al ruolo di Azure. Per altre informazioni, vedere Usare Azure OpenAI sui dati in modo sicuro.

Formati di dati e tipi di file

Azure OpenAI on Your Data supporta i tipi di file seguenti:

  • .txt
  • .md
  • .html
  • .docx
  • .pptx
  • .pdf

Esiste un limite di caricamento e ci sono alcune avvertenze sulla struttura dei documenti e su come potrebbe influire sulla qualità delle risposte del modello:

  • Se si converte dati da un formato non supportato in un formato supportato, ottimizzare la qualità della risposta del modello assicurando la conversione:

    • Non comporta una perdita significativa di dati.
    • Non aggiunge rumore imprevisto ai dati.
  • Se i file hanno una formattazione speciale, ad esempio tabelle e colonne o punti elenco, preparare i dati con lo script di preparazione dei dati disponibile in GitHub.

  • Per documenti e set di dati con testo lungo, è consigliabile usare lo script di preparazione dei dati disponibile. Lo script suddivide i dati in modo che le risposte del modello siano più accurate. Questo script supporta anche file e immagini PDF analizzati.

Origini dati supportate

È necessario connettersi a un'origine dati per caricare i dati. Quando si vogliono usare i dati per chattare con un modello OpenAI di Azure, i dati vengono suddivisi in blocchi in un indice di ricerca in modo che i dati pertinenti possano essere trovati in base alle query utente.

Il database vettoriale integrato in Azure Cosmos DB basato su vCore per MongoDB supporta in modo nativo l'integrazione con Azure OpenAI on Your Data.

Per alcune origini dati, ad esempio il caricamento di file dal computer locale (anteprima) o i dati contenuti in un account di archiviazione BLOB (anteprima), viene usata Ricerca di intelligenza artificiale di Azure. Quando si scelgono le origini dati seguenti, i dati vengono inseriti in un indice di Ricerca di intelligenza artificiale di Azure.

Suggerimento

Se si usa Azure Cosmos DB (ad eccezione dell'API basata su vCore per MongoDB), è possibile essere idonei per l'offerta Azure AI Advantage, che fornisce fino a $6.000 in crediti per la velocità effettiva di Azure Cosmos DB.

Origine dati Descrizione
Azure AI Search Usare un indice di Ricerca di intelligenza artificiale di Azure esistente con Azure OpenAI nei dati.
Azure Cosmos DB L'API di Azure Cosmos DB per Postgres e l'API basata su vCore per MongoDB offrono indicizzazione vettoriale integrata in modo nativo; di conseguenza, non richiedono Ricerca di intelligenza artificiale di Azure. Tuttavia, le altre API richiedono Ricerca di intelligenza artificiale di Azure per l'indicizzazione vettoriale. Azure Cosmos DB per il database vettoriale integrato in modo nativo di NoSQL debutta a metà del 2024.
Caricare file (anteprima) Caricare i file dal computer locale per essere archiviati in un database Archiviazione BLOB di Azure e inseriti in Ricerca di intelligenza artificiale di Azure.
URL/Indirizzo Web (anteprima) Il contenuto Web degli URL viene archiviato in Archiviazione BLOB di Azure.
Archiviazione BLOB di Azure (anteprima) Caricare file da Archiviazione BLOB di Azure da inserire in un indice di Ricerca di intelligenza artificiale di Azure.

Diagramma dei servizi di indicizzazione vettoriale.

Prerequisiti

Limiti

Preparazione dei dati

Usare lo script fornito in GitHub per preparare i dati.

Mapping dei campi indice

Quando si aggiunge l'origine dati di Azure Cosmos DB per MongoDB basata su vCore, è possibile specificare i campi dati per eseguire correttamente il mapping dei dati per il recupero.

  • Dati del contenuto (obbligatorio): uno o più campi forniti da usare per mettere a terra il modello sui dati. Per più campi, separare i valori con virgole, senza spazi.
  • Nome file/titolo/URL: usato per visualizzare altre informazioni quando viene fatto riferimento a un documento nella chat.
  • Campi vettoriali (obbligatorio): selezionare il campo nel database che contiene i vettori.

Screenshot che mostra le opzioni di mapping dei campi dell'indice per Mongo DB.

Eseguire la distribuzione in un copilota (anteprima) o in un'app Web

Dopo aver connesso Azure OpenAI ai dati, è possibile distribuirlo usando il pulsante Distribuisci in Azure OpenAI Studio.

Screenshot che mostra il pulsante di distribuzione del modello in Azure OpenAI Studio.

In questo modo è possibile distribuire un'app Web autonoma per l'utente e gli utenti per interagire con i modelli di chat usando un'interfaccia utente grafica. Per altre informazioni, vedere Usare l'app Web OpenAI di Azure.

È anche possibile eseguire la distribuzione in copilota in Copilot Studio (anteprima) direttamente da Azure OpenAI Studio, consentendo di portare esperienze di conversazione in vari canali, ad esempio Microsoft Teams, siti Web, Dynamics 365 e altri canali di Azure servizio Bot. Il tenant usato nel servizio Azure OpenAI e Copilot Studio (anteprima) deve essere lo stesso. Per altre informazioni, vedere Usare una connessione ad Azure OpenAI nei dati.

Nota

La distribuzione in copilota in Copilot Studio (anteprima) è disponibile solo nelle aree degli Stati Uniti.

Usare Azure OpenAI nei dati in modo sicuro

È possibile usare Azure OpenAI On Your Data in modo sicuro proteggendo i dati e le risorse con il controllo degli accessi in base al ruolo, le reti virtuali e gli endpoint privati di Microsoft Entra ID. È anche possibile limitare i documenti che possono essere usati nelle risposte per utenti diversi con filtri di sicurezza di Ricerca intelligenza artificiale di Azure. Vedere Usare in modo sicuro Azure OpenAI nei dati.

Procedure consigliate

Usare le sezioni seguenti per informazioni su come migliorare la qualità delle risposte fornite dal modello.

Parametro di inserimento

Quando i dati vengono inseriti in Ricerca di intelligenza artificiale di Azure, è possibile modificare le impostazioni aggiuntive seguenti in Studio o nell'API di inserimento.

Dimensioni blocco (anteprima)

Azure OpenAI nei dati elabora i documenti suddividendoli in blocchi prima di inserirli. La dimensione del blocco è la dimensione massima in termini di numero di token di qualsiasi blocco nell'indice di ricerca. Le dimensioni dei blocchi e il numero di documenti recuperati insieme controllano la quantità di informazioni (token) incluse nella richiesta inviata al modello. In generale, la dimensione del blocco moltiplicata per il numero di documenti recuperati è il numero totale di token inviati al modello.

Impostazione delle dimensioni del blocco per il caso d'uso

La dimensione predefinita del blocco è 1.024 token. Tuttavia, data l'univocità dei dati, è possibile che si trovino dimensioni di blocco diverse (ad esempio 256, 512 o 1.536 token) più efficaci.

La regolazione delle dimensioni del blocco può migliorare le prestazioni del chatbot. Anche se la ricerca delle dimensioni ottimali dei blocchi richiede una prova e un errore, iniziare considerando la natura del set di dati. Una dimensione di blocco più piccola è in genere migliore per i set di dati con fatti diretti e meno contesto, mentre una dimensione di blocchi più grande potrebbe essere utile per informazioni più contestuali, anche se potrebbe influire sulle prestazioni di recupero.

Una piccola dimensione di blocco come 256 produce blocchi più granulari. Questa dimensione significa anche che il modello utilizzerà meno token per generare il relativo output (a meno che il numero di documenti recuperati non sia molto elevato), potenzialmente costa meno. I blocchi più piccoli indicano anche che il modello non deve elaborare e interpretare sezioni lunghe di testo, riducendo il rumore e la distrazione. Questa granularità e messa a fuoco rappresentano tuttavia un potenziale problema. Le informazioni importanti potrebbero non essere tra i blocchi recuperati in alto, soprattutto se il numero di documenti recuperati è impostato su un valore basso come 3.

Suggerimento

Tenere presente che la modifica delle dimensioni del blocco richiede che i documenti vengano reinseriti, quindi è utile prima modificare i parametri di runtime come la rigidità e il numero di documenti recuperati. Valutare la possibilità di modificare le dimensioni del blocco se non si ottengono ancora i risultati desiderati:

  • Se si riscontra un numero elevato di risposte, ad esempio "Non so" per le domande con risposte che devono trovarsi nei documenti, è consigliabile ridurre le dimensioni del blocco a 256 o 512 per migliorare la granularità.
  • Se il chatbot fornisce alcuni dettagli corretti ma mancano altri, che diventa evidente nelle citazioni, aumentando le dimensioni del blocco a 1.536 potrebbe aiutare a acquisire informazioni più contestuali.

Parametri del runtime

È possibile modificare le impostazioni aggiuntive seguenti nella sezione Parametri di dati in Azure OpenAI Studio e nell'API. Non è necessario eseguire il ripristino dei dati quando si aggiornano questi parametri.

Nome parametro Descrizione
Limitare le risposte ai dati Questo flag configura l'approccio del chatbot alla gestione delle query non correlate all'origine dati o quando i documenti di ricerca non sono sufficienti per una risposta completa. Quando questa impostazione è disabilitata, il modello integra le risposte con le proprie conoscenze oltre ai documenti. Quando questa impostazione è abilitata, il modello tenta di basarsi solo sui documenti per le risposte. Si tratta del inScope parametro nell'API e impostato su true per impostazione predefinita.
Documenti recuperati Questo parametro è un numero intero che può essere impostato su 3, 5, 10 o 20 e controlla il numero di blocchi di documento forniti al modello linguistico di grandi dimensioni per simulare la risposta finale. Per impostazione predefinita, questa opzione è impostata su 5. Il processo di ricerca può essere rumoroso e talvolta, a causa della suddivisione in blocchi, le informazioni rilevanti potrebbero essere distribuite tra più blocchi nell'indice di ricerca. La selezione di un numero top-K, ad esempio 5, garantisce che il modello possa estrarre informazioni rilevanti, nonostante le limitazioni intrinseche della ricerca e della suddivisione in blocchi. Tuttavia, l'aumento del numero troppo elevato può potenzialmente distrarre il modello. Inoltre, il numero massimo di documenti che possono essere usati in modo efficace dipende dalla versione del modello, in quanto ognuno ha una diversa dimensione del contesto e capacità per la gestione dei documenti. Se si ritiene che le risposte non siano presenti contesto importante, provare ad aumentare questo parametro. Questo è il topNDocuments parametro nell'API e è 5 per impostazione predefinita.
Rigore Determina l'aggressività del sistema nell'applicazione di filtri ai documenti di ricerca in base ai punteggi di somiglianza. Il sistema esegue query in Ricerca di Azure o in altri archivi documenti, quindi decide quali documenti fornire a modelli linguistici di grandi dimensioni, ad esempio ChatGPT. L'applicazione di filtri ai documenti irrilevanti può migliorare significativamente le prestazioni del chatbot end-to-end. Alcuni documenti vengono esclusi dai risultati top-K se hanno punteggi di somiglianza bassi prima di inoltrarli al modello. Questo controllo è controllato da un valore intero compreso tra 1 e 5. L'impostazione di questo valore su 1 indica che il sistema filtra in modo minimo i documenti in base alla somiglianza della ricerca con la query utente. Viceversa, un'impostazione di 5 indica che il sistema filtra in modo aggressivo i documenti, applicando una soglia di somiglianza molto elevata. Se si scopre che il chatbot omette informazioni rilevanti, ridurre la rigidità del filtro (impostare il valore più vicino a 1) per includere più documenti. Viceversa, se documenti irrilevanti distraggono le risposte, aumentare la soglia (impostare il valore più vicino a 5). Si tratta del strictness parametro nell'API e impostato su 3 per impostazione predefinita.

Riferimenti non autorizzati

È possibile che il modello restituisca "TYPE":"UNCITED_REFERENCE" anziché "TYPE":CONTENT nell'API per i documenti recuperati dall'origine dati, ma non inclusi nella citazione. Ciò può essere utile per il debug ed è possibile controllare questo comportamento modificando la rigidità e i parametri di runtime dei documenti recuperati descritti in precedenza.

Messaggio di sistema

È possibile definire un messaggio di sistema per indirizzare la risposta del modello quando si usa Azure OpenAI sui dati. Questo messaggio consente di personalizzare le risposte oltre al modello di generazione aumentata (RAG) di recupero usato da Azure OpenAI sui dati. Il messaggio di sistema viene usato oltre a un prompt di base interno per fornire l'esperienza. Per supportare questo problema, il messaggio di sistema viene troncato dopo un numero specifico di token per garantire che il modello possa rispondere alle domande usando i dati. Se si definisce un comportamento aggiuntivo oltre all'esperienza predefinita, assicurarsi che la richiesta di sistema sia dettagliata e spiega la personalizzazione esatta prevista.

Dopo aver selezionato aggiungi il set di dati, è possibile usare la sezione Messaggio di sistema in Azure OpenAI Studio o il roleInformationparametro nell'API.

Screenshot che mostra l'opzione messaggio di sistema in Azure OpenAI Studio.

Modelli di utilizzo potenziali

Definire un ruolo

È possibile definire un ruolo che si vuole usare per l'assistente. Ad esempio, se si sta creando un bot di supporto, è possibile aggiungere "You are an expert incident support assistant that helps users solve new issues".

Definire il tipo di dati da recuperare

È anche possibile aggiungere la natura dei dati che si sta fornendo all'assistente.

  • Definire l'argomento o l'ambito del set di dati, ad esempio "report finanziario", "documento accademico" o "report sugli eventi imprevisti". Ad esempio, per il supporto tecnico, è possibile aggiungere "È possibile rispondere alle query usando informazioni provenienti da eventi imprevisti simili nei documenti recuperati".
  • Se i dati hanno determinate caratteristiche, è possibile aggiungere questi dettagli al messaggio di sistema. Ad esempio, se i documenti sono in giapponese, è possibile aggiungere "Recuperare i documenti giapponesi e leggerli attentamente in giapponese e rispondere in giapponese".
  • Se i documenti includono dati strutturati come tabelle di un report finanziario, è anche possibile aggiungere questo fatto alla richiesta di sistema. Ad esempio, se i dati contengono tabelle, è possibile aggiungere "Vengono forniti dati sotto forma di tabelle relative ai risultati finanziari ed è necessario leggere la riga della tabella in base alla riga per eseguire calcoli per rispondere alle domande dell'utente".

Definire lo stile di output

È anche possibile modificare l'output del modello definendo un messaggio di sistema. Ad esempio, se si vuole assicurarsi che le risposte dell'assistente siano in francese, è possibile aggiungere un prompt come "You are an AI assistant that helps users who understand French find information. Le domande dell'utente possono essere in inglese o francese. Leggere attentamente i documenti recuperati e rispondere in francese. Tradurre le informazioni dai documenti in francese per garantire che tutte le risposte siano in francese.".

Riconfermare il comportamento critico

Azure OpenAI On Your Data funziona inviando istruzioni a un modello linguistico di grandi dimensioni sotto forma di richieste di risposta alle query utente usando i dati. Se esiste un determinato comportamento critico per l'applicazione, è possibile ripetere il comportamento nel messaggio di sistema per aumentarne l'accuratezza. Ad esempio, per guidare il modello a rispondere solo dai documenti, è possibile aggiungere "Rispondere solo usando documenti recuperati e senza usare le proprie conoscenze. Generare citazioni per i documenti recuperati per ogni attestazione nella risposta. Se non è possibile rispondere alla domanda dell'utente usando documenti recuperati, spiegare il motivo per cui i documenti sono rilevanti per le query utente. In ogni caso, non rispondere usando la propria conoscenza."

Trucchi di Progettazione richieste

Ci sono molti trucchi nella progettazione prompt che è possibile provare a migliorare l'output. Un esempio è la richiesta concatenazione in cui è possibile aggiungere "Si considerino le informazioni dettagliate nei documenti recuperati per rispondere alle query dell'utente. Estrarre le informazioni rilevanti per le query utente dai documenti passo dopo passo e formare una risposta in basso dalle informazioni estratte dai documenti pertinenti."

Nota

Il messaggio di sistema viene usato per modificare il modo in cui l'assistente GPT risponde a una domanda dell'utente in base alla documentazione recuperata. Non influisce sul processo di recupero. Se vuoi fornire istruzioni per il processo di recupero, è preferibile includerli nelle domande. Il messaggio di sistema è solo materiale sussidiario. Il modello potrebbe non essere conforme a tutte le istruzioni specificate perché è stato avviato con determinati comportamenti, ad esempio l'obiettività, ed evitando affermazioni controverse. Un comportamento imprevisto può verificarsi se il messaggio di sistema è in contrasto con questi comportamenti.

Risposta massima

Impostare un limite per il numero di token per risposta al modello. Il limite massimo per Azure OpenAI sui dati è 1500. Equivale a impostare il parametro in API max_tokens.

Limitare le risposte ai dati

Questa opzione incoraggia il modello a rispondere solo usando i propri dati ed è selezionata per impostazione predefinita. Se si deseleziona questa opzione, il modello potrebbe applicare più facilmente le proprie conoscenze interne per rispondere. Determinare la selezione corretta in base al caso d'uso e allo scenario.

Interazione con il modello

Usare le procedure seguenti per ottenere risultati ottimali durante la chat con il modello.

Cronologia conversazioni

  • Prima di avviare una nuova conversazione (o porre una domanda non correlata a quelle precedenti), cancellare la cronologia delle chat.
  • È possibile ottenere risposte diverse per la stessa domanda tra il primo turno di conversazione e i turni successivi perché la cronologia delle conversazioni modifica lo stato corrente del modello. Se si ricevono risposte non corrette, segnalarlo come bug di qualità.

Risposta del modello

  • Se non si è soddisfatti della risposta del modello per una domanda specifica, provare a rendere la domanda più specifica o più generica per vedere come risponde il modello e riframeare di conseguenza la domanda.

  • Il Prompt Chain-of-Thought (a catena di pensieri) si è dimostrato efficace per ottenere il modello di produzione di output desiderati per domande/attività complesse.

Lunghezza della domanda

Evitare di porre domande lunghe e suddividerle in più domande, se possibile. I modelli GPT hanno limiti al numero di token che possono accettare. I limiti dei token vengono conteggiati per: la domanda dell'utente, il messaggio di sistema, i documenti di ricerca recuperati (blocchi), i prompt interni, la cronologia delle conversazioni (se presente) e la risposta. Se la domanda supera il limite di token, verrà troncata.

Supporto multilingue

  • Attualmente, la ricerca di parole chiave e la ricerca semantica in Azure OpenAI On Your Data supportano query nella stessa lingua dei dati nell'indice. Ad esempio, se i dati sono in giapponese, anche le query di input devono essere in giapponese. Per il recupero di documenti multilingue, è consigliabile compilare l'indice con la ricerca Vector abilitata.

  • Per migliorare la qualità della risposta al recupero e al modello delle informazioni, è consigliabile abilitare la ricerca semantica per le lingue seguenti: inglese, francese, spagnolo, portoghese, italiano, germania, cinese(Zh), giapponese, coreano, russo, arabo

  • È consigliabile usare un messaggio di sistema per informare il modello che i dati si trovano in un'altra lingua. Ad esempio:

  • *"*Si è un assistente di intelligenza artificiale progettato per aiutare gli utenti a estrarre informazioni dai documenti giapponesi recuperati. Esaminare attentamente i documenti giapponesi prima di formulare una risposta. La query dell'utente sarà in giapponese ed è necessario rispondere anche in giapponese".

  • Se si dispone di documenti in più lingue, è consigliabile creare un nuovo indice per ogni lingua e creare connessioni separate a OpenAI di Azure.

Streaming di dati

È possibile inviare una richiesta di streaming usando il parametro stream, consentendo l'invio e la ricezione incrementale dei dati, senza attendere l'intera risposta API. Ciò può migliorare le prestazioni e l'esperienza utente, in particolare per dati di grandi dimensioni o dinamici.

{
    "stream": true,
    "dataSources": [
        {
            "type": "AzureCognitiveSearch",
            "parameters": {
                "endpoint": "'$AZURE_AI_SEARCH_ENDPOINT'",
                "key": "'$AZURE_AI_SEARCH_API_KEY'",
                "indexName": "'$AZURE_AI_SEARCH_INDEX'"
            }
        }
    ],
    "messages": [
        {
            "role": "user",
            "content": "What are the differences between Azure Machine Learning and Azure AI services?"
        }
    ]
}

Cronologia conversazioni per risultati migliori

Quando si chatta con un modello, fornendo una cronologia della chat, il modello restituirà risultati di qualità superiore. Non è necessario includere la context proprietà dei messaggi di assistente nelle richieste API per ottenere una migliore qualità della risposta. Per esempi, vedere la documentazione di riferimento sulle API.

Chiamata di funzione

Alcuni modelli OpenAI di Azure consentono di definire strumenti e parametri tool_choice per abilitare la chiamata di funzioni. È possibile configurare la chiamata di funzione tramite l'API /chat/completionsREST. Se entrambe le tools origini dati sono incluse nella richiesta, vengono applicati i criteri seguenti.

  1. Se tool_choice è none, gli strumenti vengono ignorati e vengono usate solo le origini dati per generare la risposta.
  2. In caso contrario, se tool_choice non viene specificato o specificato come auto o un oggetto, le origini dati vengono ignorate e la risposta conterrà il nome delle funzioni selezionate e gli argomenti, se presenti. Anche se il modello decide che non è selezionata alcuna funzione, le origini dati vengono comunque ignorate.

Se i criteri precedenti non soddisfano le esigenze, prendere in considerazione altre opzioni, ad esempio l'API flusso di prompt o Assistenti.

Stima dell'utilizzo dei token per Azure OpenAI nei dati

Azure OpenAI nel servizio di generazione aumentata di recupero dati (RAG) che sfrutta sia un servizio di ricerca (ad esempio Ricerca di intelligenza artificiale di Azure) che la generazione (modelli OpenAI di Azure) per consentire agli utenti di ottenere risposte alle proprie domande in base ai dati forniti.

Come parte di questa pipeline RAG, esistono tre passaggi a livello generale:

  1. Riformula la query dell'utente in un elenco di finalità di ricerca. A tale scopo, effettuare una chiamata al modello con un prompt che include istruzioni, la domanda dell'utente e la cronologia delle conversazioni. Chiamiamo questa richiesta di finalità.

  2. Per ogni finalità, più blocchi di documenti vengono recuperati dal servizio di ricerca. Dopo aver filtrato blocchi irrilevanti in base alla soglia specificata dall'utente di rigidità e reranking/aggregazione dei blocchi in base alla logica interna, viene scelto il numero specificato dall'utente di blocchi di documento.

  3. Questi blocchi di documenti, insieme alla domanda dell'utente, alla cronologia delle conversazioni, alle informazioni sul ruolo e alle istruzioni vengono inviate al modello per generare la risposta finale del modello. Chiamare questo prompt di generazione.

In totale, esistono due chiamate effettuate al modello:

  • Per l'elaborazione della finalità: la stima del token per la richiesta di finalità include quelle per la domanda dell'utente, la cronologia delle conversazioni e le istruzioni inviate al modello per la generazione delle finalità.

  • Per generare la risposta: la stima del token per la richiesta di generazione include quelle per la domanda dell'utente, la cronologia delle conversazioni, l'elenco recuperato di blocchi di documenti, le informazioni sul ruolo e le istruzioni inviate per la generazione.

I token di output generati dal modello (finalità e risposta) devono essere presi in considerazione per la stima totale dei token. Sommando tutte le quattro colonne seguenti, vengono restituiti i token totali medi usati per generare una risposta.

Modello Numero di token di richiesta di generazione Conteggio dei token di richiesta delle finalità Numero di token di risposta Conteggio dei token di finalità
gpt-35-turbo-16k 4297 1366 111 25
gpt-4-0613 3997 1385 118 18
gpt-4-1106-preview 4538 811 119 27
gpt-35-turbo-1106 4854 1372 110 26

I numeri precedenti si basano sul test su un set di dati con:

  • 191 conversazioni
  • 250 domande
  • 10 token medi per domanda
  • 4 turni di conversazione per conversazione in media

E i parametri seguenti.

Impostazione Valore
Numero di documenti recuperati 5
Rigore 3
Dimensioni blocco 1024
Limitare le risposte ai dati inseriti? Vero

Queste stime variano in base ai valori impostati per i parametri precedenti. Ad esempio, se il numero di documenti recuperati è impostato su 10 e la rigidità è impostata su 1, il numero di token andrà in alto. Se le risposte restituite non sono limitate ai dati inseriti, al modello vengono fornite meno istruzioni e il numero di token scenderà.

Le stime dipendono anche dalla natura dei documenti e delle domande poste. Ad esempio, se le domande sono aperte, è probabile che le risposte siano più lunghe. Analogamente, un messaggio di sistema più lungo contribuirà a un prompt più lungo che utilizza più token e, se la cronologia delle conversazioni è lunga, la richiesta sarà più lunga.

Modello Numero massimo di token per il messaggio di sistema Numero massimo di token per la risposta del modello
GPT-35-0301 400 1500
GPT-35-0613-16K 1000 3200
GPT-4-0613-8K 400 1500
GPT-4-0613-32K 2000 6400

La tabella precedente mostra il numero massimo di token che possono essere usati per il messaggio di sistema e la risposta del modello. Inoltre, gli elementi seguenti usano anche i token:

  • Il meta prompt: se si limitano le risposte dal modello al contenuto dei dati di base (inScope=True nell'API), il numero massimo di token più alto. In caso contrario( ad esempio se inScope=False) il valore massimo è inferiore. Questo numero è variabile a seconda della lunghezza del token della domanda dell'utente e della cronologia delle conversazioni. Questa stima include il prompt di base e le richieste di riscrittura delle query per il recupero.

  • Domanda e cronologia utente: variabile ma limitata a 2.000 token.

  • Documenti recuperati (blocchi): il numero di token usati dai blocchi di documenti recuperati dipende da più fattori. Il limite superiore per questo è il numero di blocchi di documenti recuperati moltiplicati per le dimensioni del blocco. Verrà tuttavia troncato in base ai token disponibili per il modello specifico usato dopo aver conteggiato il resto dei campi.

    Il 20% dei token disponibili è riservato per la risposta del modello. Il rimanente 80% dei token disponibili include il meta prompt, la cronologia delle domande e delle conversazioni dell'utente e il messaggio di sistema. Il budget del token rimanente viene usato dai blocchi di documento recuperati.

Per calcolare il numero di token utilizzati dall'input ,ad esempio la domanda, le informazioni sul messaggio/ruolo di sistema, usare l'esempio di codice seguente.

import tiktoken

class TokenEstimator(object):

    GPT2_TOKENIZER = tiktoken.get_encoding("gpt2")

    def estimate_tokens(self, text: str) -> int:
        return len(self.GPT2_TOKENIZER.encode(text))
      
token_output = TokenEstimator.estimate_tokens(input_text)

Risoluzione dei problemi

Per risolvere i problemi relativi alle operazioni non riuscite, cercare sempre gli errori o gli avvisi specificati nella risposta api o in Azure OpenAI Studio. Ecco alcuni degli errori e degli avvisi comuni:

Processi di inserimento non riusciti

Problemi relativi alle limitazioni della quota

Non è stato possibile creare un indice con il nome X nel servizio Y. La quota di indice è stata superata per questo servizio. È necessario prima eliminare gli indici inutilizzati, aggiungere un ritardo tra le richieste di creazione dell'indice o aggiornare il servizio per limiti più elevati.

La quota dell'indicizzatore standard di X è stata superata per questo servizio. Attualmente sono disponibili indicizzatori X standard. È necessario prima eliminare gli indicizzatori inutilizzati, modificare l'indicizzatore 'executionMode' o aggiornare il servizio per limiti più elevati.

Risoluzione:

Eseguire l'aggiornamento a un piano tariffario superiore o eliminare asset inutilizzati.

Problemi di timeout di pre-elaborazione

Impossibile eseguire la competenza perché la richiesta dell'API Web non è riuscita

Impossibile eseguire la competenza perché la risposta della competenza dell'API Web non è valida

Risoluzione:

Suddividere i documenti di input in documenti più piccoli e riprovare.

Problemi con le autorizzazioni

Questa richiesta non è autorizzata a eseguire questa operazione

Risoluzione:

Ciò significa che l'account di archiviazione non è accessibile con le credenziali specificate. In questo caso, esaminare le credenziali dell'account di archiviazione passate all'API e assicurarsi che l'account di archiviazione non sia nascosto dietro un endpoint privato (se un endpoint privato non è configurato per questa risorsa).

Ogni messaggio utente può tradurre in più query di ricerca, tutte inviate alla risorsa di ricerca in parallelo. Questo può produrre un comportamento di limitazione quando il numero di repliche di ricerca e partizioni è basso. Il numero massimo di query al secondo che una singola partizione e una singola replica possono non essere sufficienti. In questo caso, prendere in considerazione l'aumento delle repliche e delle partizioni o l'aggiunta della logica di sospensione/ripetizione dei tentativi nell'applicazione. Per altre informazioni, vedere la documentazione di Ricerca di intelligenza artificiale di Azure.

Supporto di modelli e disponibilità a livello di area

È possibile usare Azure OpenAI nei dati con una risorsa OpenAI di Azure nelle aree seguenti:

  • Australia orientale
  • Brasile meridionale
  • Canada orientale
  • Stati Uniti orientali
  • Stati Uniti orientali 2
  • Francia centrale
  • Giappone orientale
  • Stati Uniti centro-settentrionali
  • Norvegia orientale
  • Sudafrica settentrionale
  • Stati Uniti centro-meridionali
  • India meridionale
  • Svezia centrale
  • Svizzera settentrionale
  • Regno Unito meridionale
  • Europa occidentale
  • Stati Uniti occidentali

Modelli supportati

  • gpt-4 (0314)
  • gpt-4 (0613)
  • gpt-4 (0125)
  • gpt-4-32k (0314)
  • gpt-4-32k (0613)
  • gpt-4 (1106-preview)
  • gpt-35-turbo-16k (0613)
  • gpt-35-turbo (1106)

Se la risorsa OpenAI di Azure si trova in un'altra area, non sarà possibile usare Azure OpenAI nei dati.

Passaggi successivi