Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Ricerca di intelligenza artificiale di Azure non ospita modelli di incorporamento, quindi una delle sfide è la creazione di vettori per gli input e gli output delle query. È possibile usare qualsiasi modello di incorporamento supportato, ma in questo articolo si presuppone che i modelli di incorporamento di Azure OpenAI siano illustrati.
È consigliabile usare la vettorializzazione integrata, che fornisce la suddivisione in blocchi di dati e la vettorializzazione predefiniti. La vettorizzazione integrata dipende da indicizzatori, set di competenze e competenze predefinite o personalizzate che puntano a un modello eseguito esternamente da Azure AI Search. Diverse competenze predefinite puntano all'incorporamento di modelli in Azure AI Foundry, che rende la vettorizzazione integrata la soluzione più semplice per risolvere la sfida di incorporamento.
Per gestire personalmente la suddivisione in blocchi dei dati e la vettorializzazione, vengono fornite demo nel repository di esempio che illustrano come eseguire l'integrazione con altre soluzioni della community.
Come vengono usati i modelli di incorporamento nelle query vettoriali
Gli input di query sono vettori o testo o immagini convertiti in vettori durante l'elaborazione delle query. La soluzione predefinita in Azure AI Search consiste nell'usare un vettorizzatore.
In alternativa, è anche possibile gestire manualmente la conversione passando l'input della query a un modello di incorporamento preferito. Per evitare la limitazione della velocità, è possibile implementare la logica di ripetizione dei tentativi nel carico di lavoro. Per la demo di Python è stata usata la tenacity.
Gli output delle query sono documenti corrispondenti trovati in un indice di ricerca. L'indice di ricerca deve essere stato caricato in precedenza con documenti con uno o più campi vettoriali con incorporamenti. Indipendentemente dal modello di incorporamento usato per l'indicizzazione, usare lo stesso modello per le query.
Creare risorse nella stessa area
Anche se la vettorializzazione integrata con i modelli di incorporamento di Azure OpenAI non richiede che le risorse si trovano nella stessa area, l'uso della stessa area può migliorare le prestazioni e ridurre la latenza.
Controllare le aree per un modello di incorporamento di testo.
Per supportare query ibride che includono la classificazione semantica o se si vuole provare l'integrazione del modello di Machine Learning usando una competenza personalizzata in una pipeline di arricchimento tramite intelligenza artificiale, selezionare un'area geografica di Azure AI Search che fornisca tali funzionalità.
Generare un incorporamento per una query improvvisata
Il codice Python seguente genera un incorporamento che è possibile incollare nella proprietà "values" di una query vettoriale.
!pip install openai
import openai
openai.api_type = "azure"
openai.api_key = "YOUR-API-KEY"
openai.api_base = "https://YOUR-OPENAI-RESOURCE.openai.azure.com"
openai.api_version = "2024-02-01"
response = openai.Embedding.create(
input="How do I use Python in VS Code?",
engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)
L'output è una matrice vettoriale di 1.536 dimensioni.
Scegliere un modello di incorporamento in Azure AI Foundry
Nel portale di Azure AI Foundry è possibile creare un indice di ricerca quando si aggiungono informazioni al flusso di lavoro dell'agente. Una procedura guidata illustra i passaggi. Quando viene chiesto di fornire un modello di incorporamento che vettorizza il contenuto di testo normale, è possibile usare uno dei modelli supportati seguenti:
- text-embedding-3-large
- text-embedding-3-small
- text-embedding-ada-002
- Cohere-embed-v3-english
- Cohere-embed-v3-multilingual
Il modello deve essere già distribuito ed è necessario disporre dell'autorizzazione per accedervi. Per altre informazioni, vedere Distribuire modelli di intelligenza artificiale nel portale di Azure AI Foundry.
Suggerimenti e consigli per l'integrazione del modello di incorporamento
Identificare i casi d'uso: valutare i casi d'uso specifici in cui l'integrazione del modello di incorporamento per le funzionalità di ricerca vettoriale può aggiungere valore alla soluzione di ricerca. Questi casi d'uso possono includere contenuti di immagini corrispondenti o multimodali con contenuto di testo, ricerca multilingue o ricerca di casi simili.
Progettare una strategia di suddivisione in blocchi: i modelli di incorporamento presentano limiti al numero di token che possono accettare, che introduce un requisito di suddivisione in blocchi di dati per file di grandi dimensioni. Per altre informazioni, vedere Blocchi di documenti di grandi dimensioni per soluzioni di ricerca vettoriale.
Ottimizzare i costi e le prestazioni: la ricerca vettoriale può essere a elevato utilizzo di risorse ed è soggetta a limiti massimi, pertanto è consigliabile vettorizzare solo i campi che contengono un significato semantico. Ridurre le dimensioni del vettore in modo da poter archiviare più vettori per lo stesso prezzo.
Scegliere il modello di incorporamento corretto: selezionare un modello appropriato per il caso d'uso specifico, ad esempio incorporamenti di parole per ricerche basate su testo o incorporamenti di immagini per le ricerche visive. È consigliabile usare modelli con training preliminare come text-embedding-ada-002 da OpenAI o API REST di recupero immagini da Visione artificiale di Azure per intelligenza artificiale.
Normalizzare le lunghezze dei vettori: assicurarsi che le lunghezze del vettore vengano normalizzate prima di archiviarle nell'indice di ricerca per migliorare l'accuratezza e le prestazioni della ricerca di similarità. La maggior parte dei modelli con training preliminare sono già normalizzati, ma non tutti.
Ottimizzare il modello: se necessario, ottimizzare il modello selezionato sui dati specifici del dominio per migliorarne le prestazioni e la pertinenza per l'applicazione di ricerca.
Test e iterazione: testare e perfezionare continuamente l'integrazione del modello di incorporamento per ottenere le prestazioni di ricerca desiderate e la soddisfazione dell'utente.