Questo documento descrive come creare un embedding di testo utilizzando l'API Text Embeddings di Vertex AI.
L'API Vertex AI text embeddings utilizza rappresentazioni vettoriali dense: gemini-embedding-001, ad esempio, utilizza vettori tridimensionali. I modelli di incorporamento vettoriale denso 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 ai numeri, i vettori densi sono progettati per rappresentare meglio il significato di un testo. Il vantaggio di utilizzare gli incorporamenti vettoriali densi nell'AI generativa è che, anziché cercare corrispondenze dirette di parole o sintassi, puoi cercare meglio i passaggi che corrispondono al significato della query, anche se 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 saperne di più sugli incorporamenti, consulta la panoramica delle API di incorporamento.
- Per scoprire di più sui modelli di incorporamento di testo, consulta Incorporamenti di testo.
- Per informazioni sulle lingue supportate da ciascun modello di incorporamento, 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - Scegli un tipo di attività per il job di incorporamento.
- Per saperne di più sui limiti di frequenza, consulta la pagina Limiti di frequenza dell'AI generativa su Vertex AI.
- Per ottenere previsioni batch per gli incorporamenti, consulta Ottenere previsioni batch per gli incorporamenti di testo.
- Per scoprire di più sugli embedding multimodali, consulta Ottenere embedding multimodali.
- Per ottimizzare un embedding, vedi Ottimizzare gli embedding di testo.
- Per scoprire di più sulla ricerca alla base di
text-embedding-005
etext-multilingual-embedding-002
, consulta il documento di ricerca Gecko: Versatile Text Embeddings Distilled from Large Language Models.
Modelli supportati
Puoi ottenere incorporamenti di testo utilizzando i seguenti modelli:
Nome modello | Descrizione | Dimensioni di output | Lunghezza massima della sequenza | Lingue di testo supportate |
---|---|---|---|---|
gemini-embedding-001 |
Prestazioni all'avanguardia in attività in inglese, multilingue e di programmazione. Unifica i modelli precedentemente specializzati come text-embedding-005 e text-multilingual-embedding-002 e ottiene prestazioni migliori nei rispettivi domini. Per ulteriori dettagli, leggi il nostro report tecnico. |
fino a 3072 | 2048 token | Lingue di testo supportate |
text-embedding-005 |
Specializzato in attività in inglese e di programmazione. | fino a 768 | 2048 token | Inglese |
text-multilingual-embedding-002 |
Specializzato in attività multilingue. | fino a 768 | 2048 token | Lingue di testo supportate |
Per una qualità di incorporamento superiore, gemini-embedding-001
è il nostro modello di grandi dimensioni progettato per offrire le massime prestazioni.
Ottenere incorporamenti di testo per un frammento di testo
Puoi ottenere incorporamenti di testo per un frammento di testo utilizzando l'API Vertex AI o l'SDK Vertex AI per Python.
Limiti dell'API
Per ogni richiesta, puoi inserire un massimo di 250 testi di input.
L'API ha un limite massimo di token di input di 20.000.
Gli input che superano questo limite generano un errore 400. Ogni singolo testo di input
è ulteriormente limitato a 2048 token; l'eventuale eccesso viene troncato automaticamente. Puoi
anche disattivare il troncamento silenzioso impostando autoTruncate
su false
.
Per ulteriori informazioni, vedi Limiti di incorporamento del testo.
Scegli una dimensione di incorporamento
Per impostazione predefinita, tutti i modelli producono un vettore di embedding a lunghezza intera. Per gemini-embedding-001
,
questo vettore ha 3072 dimensioni, mentre altri modelli producono vettori a 768 dimensioni. Tuttavia, utilizzando il parametro output_dimensionality
, gli utenti possono controllare le dimensioni del vettore di incorporamento di output.
La selezione di una dimensionalità di output più piccola può consentire di risparmiare spazio di archiviazione e
aumentare l'efficienza di calcolo per le applicazioni downstream, sacrificando
poco in termini di qualità.
Gli esempi riportati di seguito utilizzano il modello gemini-embedding-001
.
Python
Installa
pip install --upgrade google-genai
Per saperne di più, consulta la documentazione di riferimento dell'SDK.
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=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
Scopri come installare o aggiornare Go.
Per saperne di più, consulta la documentazione di riferimento dell'SDK.
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=global export GOOGLE_GENAI_USE_VERTEXAI=True
Aggiungere un embedding a un database vettoriale
Dopo aver generato l'embedding, puoi aggiungerlo a un database vettoriale, come Vector Search. Ciò consente il recupero a bassa latenza ed è fondamentale man mano che le dimensioni dei dati aumentano.
Per saperne di più su Vector Search, consulta la panoramica di Vector Search.