Questo documento descrive come creare un embedding di testo utilizzando l'API Text Embeddings di Vertex AI.
L'API Vertex AI per gli incorporamenti di testo utilizza rappresentazioni vettoriali dense: ad esempio, text-embedding-005 utilizza vettori di 768 dimensioni. I modelli di embedding di vettori densi utilizzano metodi di deep learning simili a quelli utilizzati dai modelli linguistici di grandi dimensioni. A differenza dei vettori sparsi, che tendono a mappare direttamente le parole in numeri, i vettori densi sono progettati per rappresentare meglio il significato di un testo. Il vantaggio dell'utilizzo di embedding vettoriali densi nell'IA generativa è che, anziché cercare corrispondenze dirette di parole o sintassi, puoi cercare meglio i passaggi in linea con il significato della query, anche se i passaggi non utilizzano la stessa lingua.
I vettori sono normalizzati, quindi puoi utilizzare la somiglianza del coseno, il prodotto scalare o la distanza euclidea per fornire gli stessi ranking di somiglianza.
- Per scoprire di più sugli incorporamenti, consulta la panoramica delle API di incorporamento.
- Per informazioni sui modelli di incorporamento del testo, consulta Incorporamenti di testo.
- Per informazioni sulle lingue supportate da ciascun modello di embedding, consulta Lingue di testo supportate.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
- Scegli un tipo di attività per il job di incorporamento.
Modelli supportati
Puoi ottenere gli embedding di testo utilizzando i seguenti modelli:
Modelli in inglese | Modelli multilingue | Modelli di embedding di Gemini |
---|---|---|
textembedding-gecko@001 |
textembedding-gecko-multilingual@001 |
text-embedding-large-exp-03-07 (sperimentale) |
textembedding-gecko@002 |
text-multilingual-embedding-002 |
|
textembedding-gecko@003 |
||
text-embedding-004 |
||
text-embedding-005 |
Se non hai mai utilizzato questi modelli, ti consigliamo di utilizzare le versioni più recenti.
Per il testo in inglese, utilizza text-embedding-005
. Per il testo multilingue, utilizza
text-multilingual-embedding-002
. Inoltre, per una qualità di incorporamento superiore,text-embedding-large-exp-03-07
è il nostro modello di grandi dimensioni progettato per offrire le prestazioni più elevate.
Ottenere gli incorporamenti di testo per uno snippet di testo
Puoi ottenere gli embedding di testo per uno snippet di testo utilizzando l'API Vertex AI o
l'SDK Vertex AI per Python. Per ogni richiesta, il numero di testi di input è limitato a 250 in us-central1
, mentre nelle altre regioni il numero massimo di testi di input è 5. Per i modelli sperimentali, il testo di input massimo è 1. I modelli sperimentali sono disponibili solo in us-central1
.
L'API ha un limite massimo di token di input pari a 20.000. Gli input che superano questo limite provocano un errore 500. Per la maggior parte dei modelli, ogni singolo testo di input è limitato a 2048 token; eventuali token in eccesso vengono troncati in modo silenzioso. Per text-embedding-large-exp-03-07
,
ogni singolo testo di input è limitato a 8192 token. Puoi anche disattivare la troncatura silenziosa impostando autoTruncate
su false
.
Per impostazione predefinita, tutti i modelli producono un vettore di embedding integrale. Per text-embedding-large-exp-03-07
,
questo vettore ha 3072 dimensioni, mentre altri modelli producono vettori di 768 dimensioni. Tuttavia, i seguenti modelli consentono agli utenti di scegliere una dimensione di output compresa tra 1 e la dimensione di output massima.
Se selezioni una dimensione di output più piccola, puoi risparmiare memoria e spazio di archiviazione, ottenendo calcoli più efficienti.
text-embedding-004
text-embedding-005
text-multilingual-embedding-002
text-embedding-large-exp-03-07
Gli esempi riportati di seguito utilizzano il modello text-embedding-005
.
Gen AI SDK for Python
Installa
pip install --upgrade google-genai
Imposta le variabili di ambiente per utilizzare l'SDK Gen AI con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
Aggiungere un embedding a un database vettoriale
Dopo aver generato l'embedding, puoi aggiungerlo a un database di vettori, come Vector Search. Ciò consente un recupero a bassa latenza ed è fondamentale con l'aumento delle dimensioni dei dati.
Per scoprire di più su Vector Search, consulta la Panoramica di Vector Search.
Passaggi successivi
- Per saperne di più sui limiti di frequenza, consulta Limiti di frequenza dell'IA generativa su Vertex AI.
- Per ottenere previsioni batch per gli incorporamenti, consulta Ottenere previsioni batch degli incorporamenti di testo
- Per scoprire di più sugli embedding multimodali, consulta Ottenere embedding multimodali
- Per ottimizzare un'evidenziazione, consulta Ottimizzare gli incorporamenti di testo
- Per scoprire di più sulla ricerca alla base di
text-embedding-005
etext-multilingual-embedding-002
, consulta il paper di ricerca Gecko: Versatile Text Embeddings Distilled from Large Language Models.