Generare incorporamenti per query di ricerca e documenti

Ricerca di intelligenza artificiale di Azure 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, ma in questo articolo si presuppone che i modelli di incorporamento di Azure OpenAI. Le demo nel repository di esempio toccano i modelli di incorporamento di somiglianza di Azure OpenAI.

Gli attributi delle dimensioni hanno un minimo di 2 e un massimo di 3072 dimensioni per campo vettore.

Nota

Questo articolo si applica alla versione disponibile a livello generale della ricerca vettoriale, che presuppone che il codice dell'applicazione chiami una risorsa esterna, ad esempio Azure OpenAI per la vettorizzazione. Una nuova funzionalità denominata vettorializzazione integrata, attualmente in anteprima, offre la vettorizzazione incorporata. La vettorizzazione integrata dipende da indicizzatori, set di competenze e dalla competenza AzureOpenAIEmbedding o da una competenza personalizzata che punta a un modello che viene eseguito esternamente da Ricerca di intelligenza artificiale di Azure.

Modalità di utilizzo dei modelli

  • Gli input di query richiedono l'invio dell'input fornito dall'utente a un modello di incorporamento che converte rapidamente il testo leggibile in un vettore.

    • Ad esempio, è possibile usare text-embedding-ada-002 per generare incorporamenti di testo e API REST di recupero immagini per incorporamenti di immagini.

    • Per evitare la limitazione della frequenza, è possibile implementare la logica di ripetizione dei tentativi nel carico di lavoro. Per la demo di Python è stata usata la tenacia.

  • 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 usato per l'indicizzazione, usare lo stesso modello per le query.

Creare risorse nella stessa area

Se si desidera che le risorse si trovino nella stessa area, iniziare con:

  1. Un'area per il modello di incorporamento della somiglianza, attualmente in Europa e nel Stati Uniti.

  2. Un'area per Ricerca di intelligenza artificiale di Azure.

  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, prendere nota delle aree che forniscono 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==0.28.1

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 = "2023-05-15"

response = openai.Embedding.create(
    input="How do I use Python in VSCode?",
    engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)

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. Ciò può includere contenuti di immagini corrispondenti con contenuto di testo, ricerche multilingue o ricerca di documenti simili.
  • 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.
  • 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. Prendere in considerazione l'uso di modelli con training preliminare come text-embedding-ada-002 dall'API REST OpenAI o dal recupero di immagini da azure ai Visione 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 somiglianza. La maggior parte dei modelli con training preliminare è già normalizzata, ma non tutte.
  • 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