Questo documento descrive come creare un incorporamento di testo utilizzando Vertex AI API Text Embeddings.
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'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.
- Per scoprire di più sugli incorporamenti, consulta la panoramica delle API di incorporamento.
- Per saperne di più sui modelli di incorporamento del testo, consulta Incorporamenti di testo.
- Per informazioni sulle lingue supportate da ciascun modello di incorporazione, 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 tuo job di incorporamento.
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 |
|
text-embedding-preview-0815 |
Se non hai mai utilizzato questi modelli, ti consigliamo di usare le versioni più recenti.
Per il testo in inglese, utilizza text-embedding-004
. Per il testo multilingue, utilizza
text-multilingual-embedding-002
.
Ottenere 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 oppure
l'SDK Vertex AI per Python. Per ogni richiesta, hai un limite di 250 testi di input
in us-central1
, mentre nelle altre regioni il testo di input massimo è 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; tutti quelli in eccesso vengono troncati automaticamente. Puoi anche disattivare la modalità silenziosa
troncato impostando autoTruncate
su false
.
Per impostazione predefinita, tutti i modelli producono un output con dimensioni 768. Tuttavia, i seguenti modelli consentono agli utenti di scegliere una dimensione di output compresa tra 1 e 768. Selezionando una dimensionalità di output più piccola, gli utenti possono risparmiare memoria e spazio di archiviazione lo spazio di archiviazione a disposizione, per eseguire calcoli più efficienti.
text-embedding-004
text-multilingual-embedding-002
text-embedding-preview-0815
Gli esempi riportati di seguito utilizzano il modello text-embedding-004
.
REST
Per ottenere gli incorporamenti di testo, invia una richiesta POST specificando l'ID modello del modello di publisher.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- TEXT: il testo che deve 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, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta documentazione di riferimento dell'API Python.
Go
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nel Guida rapida di Vertex AI con librerie client. 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 maggiori 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 eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di Vertex AI con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Modello più recente
È disponibile un modello di embedding in anteprima:
text-embedding-preview-0815
Questo modello supporta un nuovo tipo di attività CODE_RETRIEVAL_QUERY
, che può essere utilizzato per
recuperare blocchi di codice pertinenti utilizzando query di 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-preview-0815: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, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta documentazione di riferimento dell'API Python.
Go
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nel Guida rapida di Vertex AI con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di 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 nel Guida rapida di Vertex AI con librerie client. Per ulteriori informazioni, consulta API Java Vertex AI documentazione di riferimento.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di Vertex AI con librerie client. Per ulteriori informazioni, consulta API Node.js Vertex AI documentazione di riferimento.
Per autenticarti in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori 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 su sistemi mission critical o di produzione.
- Questi modelli sono disponibili solo in
us-central1
. - Le previsioni in batch non sono supportate.
- La personalizzazione non è supportata.
Aggiungi un incorporamento a un database vettoriale
Dopo aver generato l'embedding, puoi aggiungerlo a un database di vettori, come Vector Search. Ciò consente il recupero a bassa latenza, ed è fondamentale con l'aumento delle dimensioni dei dati.
Per scoprire di più sulla ricerca vettoriale, consulta la Panoramica della ricerca vettoriale.
Passaggi successivi
- Per scoprire 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 per gli incorporamenti di testo
- Per saperne di più sugli incorporamenti multimodali, consulta Ottenere incorporamenti multimodali
- Per ottimizzare un'evidenziazione, 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.