Condividi tramite


Generare incorporamenti per query di ricerca e documenti

Azure AI Search non ospita modelli di vettorizzazione, quindi una delle sfide è la creazione di incorporamenti per gli input e gli output delle query. È possibile usare qualsiasi modello di incorporamento supportato, ma per i passaggi descritti in questo articolo verranno usati i modelli di incorporamento di Azure OpenAI.

È 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.

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

La vettorizzazione integrata richiede che le risorse si trovino nella stessa area geografica:

  1. Controllare le aree per un modello di incorporamento di testo.

  2. Trovare la stessa area per Azure AI Search.

  3. 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 VSCode?",
    engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)

L'output è una matrice vettoriale di 1.536 dimensioni.

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.

Passaggi successivi