Questo documento descrive come creare un incorporamento di testo utilizzando l'API Text Embeddings di Vertex AI.
L'API Vertex AI text Embeddings utilizza rappresentazioni vettoriali dense: text-embedding-gecko, ad esempio, utilizza vettori a 768 dimensioni. 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 una porzione di testo. Il vantaggio dell'utilizzo di rappresentazioni distribuite di vettori densi nell'AIA generativa è che, invece di cercare corrispondenze di parole dirette o sintassi, puoi cercare meglio i passaggi in linea con il significato della query, anche se i passaggi non usano la stessa lingua.
- Per saperne di più sugli incorporamenti, consulta la panoramica delle API per l'incorporamento.
- Per saperne di più sui modelli di incorporamento del testo, consulta Incorporamenti del testo.
- Per informazioni sulle lingue supportate da ciascun modello di incorporazione, consulta Lingue di testo supportate.
Prima di iniziare
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Attiva l'API Vertex AI.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Attiva l'API Vertex AI.
Modelli supportati
Puoi ottenere gli incorporamenti di testo utilizzando i seguenti modelli:
Modelli inglesi | Modelli multilingue |
---|---|
textembedding-gecko@001 |
textembedding-gecko-multilingual@001 |
textembedding-gecko@003 |
text-multilingual-embedding-002 |
text-embedding-004 |
Ottieni gli incorporamenti di testo per uno snippet di testo
Puoi ottenere gli incorporamenti di testo per uno snippet di testo utilizzando l'API Vertex AI o
l'SDK Vertex AI per Python. Per ogni richiesta, esiste un limite di 250 testi di input
in us-central1
e in altre regioni il numero massimo di testi di input è 5.
Ogni testo di input ha un limite di token di 2048. Gli input più lunghi di questa lunghezza
vengono troncati silenziosamente. Puoi anche disattivare il troncamento silenzioso impostando autoTruncate
su false
.
Questi esempi utilizzano il modello text-embedding-004
.
REST
Per ottenere gli incorporamenti di testo, invia una richiesta POST specificando l'ID modello del modello del publisher.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- TEXT: il testo per cui vuoi generare gli incorporamenti. Limite: cinque testi fino a un massimo di 2048 token per testo.
- AUTO_TRUNCATE: se impostato su
false
, un testo che supera il limite di token determina la mancata riuscita 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
ed esegui questo comando:
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
ed esegui questo comando:
$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, vedi Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python.
Go
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Aggiungi un incorporamento a un database vettoriale
Dopo aver generato l'incorporamento, 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 ulteriori informazioni sulla ricerca vettoriale, consulta la Panoramica della ricerca vettoriale.
Passaggi successivi
- Per ottenere previsioni batch per gli incorporamenti, consulta Ottenere previsioni batch per gli incorporamenti di testo
- Per saperne di più sugli incorporamenti multimodali, consulta Ottenere incorporamenti multimodali
- Per ottimizzare un incorporamento, consulta Ottimizzare gli incorporamenti di testo.
- Per saperne di più sulla ricerca alla base di
text-embedding-004
etext-multilingual-embedding-002
, consulta il documento di ricerca Gecko: Versatile Text Embeddings Distilled from Large Language Models.