Azure OpenAI On Your Data

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 cosa è Azure OpenAI On Your Data?

Azure OpenAI On Your Data consente di eseguire modelli di IA avanzati, ad esempio GPT-35-Turbo e GPT-4 sui dati Enterprise senza dover eseguire il training od 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 On Your Data usando un'API REST, tramite l'SDK o l'interfaccia basata sul Web in Studio del Servizio OpenAI di Azure. È 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).

Sviluppo con Azure OpenAI On Your Data

Diagramma che mostra un flusso di lavoro di esempio.

In genere, il processo di sviluppo usato con Azure OpenAI On Your Data è il seguente:

  1. Inserimento: caricare file usando Azure OpenAI Studio o l'API di inserimento. Ciò consente di eseguire il cracking, suddividere e incorporare i dati in un'istanza di Azure AI Search che può essere usata dai modelli di Azure Open AI. Se si ha un'origine dati supportata esistente, è anche possibile connetterla direttamente.

  2. Sviluppo: dopo aver provato Azure OpenAI On Your Data, iniziare a sviluppare l'applicazione usando l'API REST e gli SDK, disponibili in diversi linguaggi. Verranno create richieste e finalità di ricerca da passare al Servizio OpenAI di Azure.

  3. Inferenza: dopo la distribuzione dell'applicazione nell'ambiente preferito, verranno inviate richieste ad Azure OpenAI, che eseguirà diversi passaggi prima di restituire una risposta:

    1. Generazione di finalità: il servizio determinerà la finalità della richiesta dell'utente per determinare una risposta corretta.

    2. Recupero: il servizio recupera blocchi rilevanti di dati disponibili dall'origine dati connessa eseguendo una query su di essa. Ad esempio, usando una ricerca semantica o vettoriale. Parametri come il rigore e il numero di documenti da recuperare vengono utilizzati per influenzare il recupero.

    3. Applicazione di filtri e riclassificazione : i risultati della ricerca dal passaggio di recupero vengono migliorati classificando e filtrando i dati per perfezionare la pertinenza.

    4. Generazione della risposta: i dati risultanti vengono inviati insieme ad altre informazioni, ad esempio il messaggio di sistema al modello linguistico di grandi dimensioni (LLM), e la risposta viene inviata all'applicazione.

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

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

Per usare completamente Azure OpenAI On Your Data, è necessario impostare uno o più ruoli controllo degli accessi in base al ruolo di Azure. Per altre informazioni, vedere Usare Azure OpenAI On Your Data 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

Sono presenti un limite di caricamento e alcune avvertenze sulla struttura dei documenti e su come potrebbero 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, è bene 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 for MongoDB basato su vCore 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 usato Azure AI Search. Quando si scelgono le origini dati seguenti, i dati vengono inseriti in un indice di Azure AI Search.

Dati inseriti tramite Azure AI Search Descrizione
Azure AI Search Usare un indice di Azure AI Search esistente con Azure OpenAI On Your Data.
Caricare file (anteprima) Caricare i file dal computer locale per essere archiviati in un database di Archiviazione BLOB di Azure e inseriti in Azure AI Search.
URL/Indirizzo Web (anteprima) Il contenuto Web degli URL viene archiviato in Archiviazione BLOB di Azure.
Archivio BLOB di Azure (anteprima) Caricare file da Archiviazione BLOB di Azure da inserire in un indice di Azure AI Search.

Diagramma dei servizi di indicizzazione vettoriale.

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

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

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

In questo modo sono disponibili più opzioni per la distribuzione della soluzione.

È possibile eseguire la distribuzione in copilota in Copilot Studio (anteprima) direttamente da Studio di Azure OpenAI, consentendo di portare esperienze di conversazione in vari canali, ad esempio Microsoft Teams, siti Web, Dynamics 365 e altri canali del servizio Azure 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 On Your Data.

Nota

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

Uso di Azure OpenAI On Your Data 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 Uso di Azure OpenAI On Your Data in modo sicuro.

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 Azure AI Search, è possibile modificare le impostazioni aggiuntive seguenti in Studio o nell'API di inserimento.

Dimensioni blocco (anteprima)

Azure OpenAI On Your Data 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 parametro inScope 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, il valore è impostato 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 parametro topNDocuments 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 parametro strictness 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 i parametri di esecuzione rigidità e 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 On Your Data. Questo messaggio consente di personalizzare le risposte oltre al modello di generazione aumentata (RAG) di recupero usato da Azure OpenAI On Your Data. 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 role_informationparametro 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 desidera usare per l'assistente. Ad esempio, se si sta creando un bot di supporto, è possibile aggiungere "Si è un addetto all'assistenza clienti esperto di incidenti che aiuta gli utenti a risolvere nuovi problemi".

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 degli incidenti". Ad esempio, per il supporto tecnico, è possibile aggiungere "È possibile rispondere alle query usando informazioni provenienti da incidenti 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 il sink di output

È anche possibile modificare l'output del modello definendo un messaggio di sistema. Ad esempio, se si desidera assicurarsi che le risposte dell'assistente siano in francese, è possibile aggiungere un prompt come "Si è un assistente IA che aiuta gli utenti che capiscono il francese a trovare informazioni. 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 le proprie conoscenze".

Trucchi sulla progettazione delle 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 pertinenti per le query utente dai documenti passo dopo passo e formare una risposta di tipo bottom-up 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. Potrebbe verificarsi un comportamento imprevisto 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 On Your Data è 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 verificare la risposta del modello e rimodulare la domanda di conseguenza.

  • 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 immesse devono essere in giapponese. Per il recupero di documenti multilingue, è consigliabile compilare l'indice con la ricerca vettoriale abilitata.

  • Per migliorare la qualità della risposta al recupero e al modello delle informazioni, è consigliabile abilitare la ricerca semantica per le seguenti lingue: inglese, francese, spagnolo, portoghese, italiano, tedesco, cinese(Zh), giapponese, coreano, russo e 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 IA 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à più elevati. Non è necessario includere la proprietà context dei messaggi di assistente nelle richieste API per ottenere una migliore qualità della risposta. Per informazioni dettagliate, vedere la documentazione di riferimento 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 REST /chat/completions. Se entrambe le origini dati tools e 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 flusso di richieste o API assistenti.

Stima dell'utilizzo dei token per Azure OpenAI On Your Data

Azure OpenAI on Your Data Retrieval Augmented Generation (RAG) è un servizio che sfrutta sia un servizio di ricerca (ad esempio Azure AI Search) che la generazione (modelli OpenAI di Azure) per consentire agli utenti di ottenere risposte per le 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 questo prompt 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 il prompt 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 il prompt 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
GPT-35-0301 400
GPT-35-0613-16K 1000
GPT-4-0613-8K 400
GPT-4-0613-32K 2000
GPT-35-turbo-0125 2000
GPT-4-turbo-0409 4000
GPT-4o 4000
GPT-4o-mini 4000

La tabella precedente mostra il numero massimo di token che possono essere usati per il messaggio di sistema. Per visualizzare i token massimi per la risposta del modello, vedere l'articolo sui modelli. 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 Studio di Azure OpenAI. Ecco alcuni degli errori e degli avvisi comuni:

Processi di inserimento non riusciti

Problemi sulle limitazioni di 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 supportare potrebbe non essere sufficiente. 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 Azure AI Search.

Supporto di modelli e disponibilità a livello di area

Paese gpt-35-turbo-16k (0613) gpt-35-turbo (1106) gpt-4-32k (0613) gpt-4 (1106-preview) gpt-4 (0125-preview) gpt-4 (0613) gpt-4o** gpt-4 (turbo-2024-04-09)
Australia orientale
Canada orientale
Stati Uniti orientali
Stati Uniti orientali 2
Francia centrale
Giappone orientale
Stati Uniti centro-settentrionali
Norvegia orientale
Stati Uniti centro-meridionali
India meridionale
Svezia centrale
Svizzera settentrionale
Regno Unito meridionale
Stati Uniti occidentali

**Si tratta di un'implementazione di sola testo

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

Passaggi successivi