Questo documento descrive come creare un embedding di testo utilizzando l'API Text Embeddings di Vertex AI.
L'API di incorporamento del testo di Vertex AI utilizza rappresentazioni vettoriali dense: ad esempio, text-embedding-gecko 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'AI 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 |
---|---|
textembedding-gecko@001 |
textembedding-gecko-multilingual@001 |
textembedding-gecko@003 |
text-multilingual-embedding-002 |
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
.
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.
L'API ha un limite massimo di token di input pari a 20.000. Gli input che superano questo limite provocano un errore 500. Ogni singolo testo di input è ulteriormente limitato a 2048 token; eventuali eccessi vengono troncati in silenzio. Puoi anche disattivare la troncatura silenziosa impostando autoTruncate
su false
.
Per impostazione predefinita, tutti i modelli producono un output con 768 dimensioni. Tuttavia, i seguenti modelli consentono agli utenti di scegliere una dimensione di output compresa tra 1 e 768. Se selezioni una dimensione di output più piccola, puoi risparmiare memoria e spazio di archiviazione, il che si traduce in calcoli più efficienti.
text-embedding-005
text-multilingual-embedding-002
Gli esempi riportati di seguito utilizzano il modello text-embedding-004
.
REST
Per ottenere gli embedding di testo, invia una richiesta POST specificando l'ID del modello dell'editore.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- TEXT: il testo per cui vuoi generare gli incorporamenti. Limite: cinque testi con un massimo di 2048 token per testo per tutti i modelli tranne
textembedding-gecko@001
. La lunghezza massima del token di input pertextembedding-gecko@001
è 3072. - AUTO_TRUNCATE: se impostato su
false
, il testo che supera il limite di token causa il fallimento della richiesta. Il valore predefinito ètrue
.
Metodo HTTP e URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict
Corpo JSON della richiesta:
{ "instances": [ { "content": "TEXT"} ], "parameters": { "autoTruncate": AUTO_TRUNCATE } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente. Tieni presente che values
è stato troncato per risparmiare spazio.
Comando curl di esempio
MODEL_ID="text-embedding-004"
PROJECT_ID=PROJECT_ID
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/${MODEL_ID}:predict -d \
$'{
"instances": [
{ "content": "What is life?"}
],
}'
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Vertex AI.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Vertex AI.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Vertex AI.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Modello più recente
text-embedding-005
supporta un nuovo tipo di attività CODE_RETRIEVAL_QUERY
, che può essere utilizzato per recuperare blocchi di codice pertinenti utilizzando query in testo normale. Per utilizzare questa funzionalità, i blocchi di codice devono essere incorporati utilizzando il tipo di attività RETRIEVAL_DOCUMENT
, mentre le query di testo incorporate utilizzando CODE_RETRIEVAL_QUERY
.
Per esplorare tutti i tipi di attività, consulta il riferimento del modello.
Ecco un esempio:
REST
PROJECT_ID=PROJECT_ID
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-005:predict -d \
$'{
"instances": [
{
"task_type": "CODE_RETRIEVAL_QUERY",
"content": "Function to add two numbers"
}
],
}'
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Vertex AI.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Vertex AI.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Vertex AI.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Quando utilizzi questi modelli, si applicano le seguenti limitazioni:
- Non utilizzare questi modelli di anteprima in sistemi di produzione o mission-critical.
- Questi modelli sono disponibili solo in
us-central1
. - Le previsioni in batch non sono supportate.
- La personalizzazione non è supportata.
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.