Puoi creare un incorporamento di testo utilizzando l'API Text Embeddings di Vertex AI. Gli incorporamenti di testo sono rappresentazioni numeriche del testo che acquisiscono le relazioni tra parole e frasi. I modelli di machine learning, in particolare quelli di AI generativa, sono adatti per creare questi incorporamenti identificando pattern all'interno di set di dati di testo di grandi dimensioni. La tua applicazione può utilizzare gli incorporamenti di testo per elaborare e produrre il linguaggio e riconoscere significati complessi e relazioni semantiche specifiche per i tuoi contenuti. interagisci con gli incorporamenti di testo ogni volta che completi una Ricerca Google o vedi consigli per lo streaming di musica.
Alcuni casi d'uso comuni per gli incorporamenti di testo includono:
- Ricerca semantica: testo di ricerca classificato per somiglianza semantica.
- Classificazione: restituisce la classe degli elementi i cui attributi di testo sono simili al testo specificato.
- Cluster: elementi del cluster i cui attributi di testo sono simili al testo specificato.
- Rilevamento outlier: restituisce gli elementi in cui gli attributi di testo sono meno correlati al testo specificato.
- Interfaccia conversazionale: raggruppa gruppi di frasi che possono portare a risposte simili, ad esempio in uno spazio di incorporamento a livello di conversazione.
Gli incorporamenti di testo funzionano convertendo il testo in array di numeri in virgola mobile, chiamati vettori. Questi vettori sono progettati per acquisire il significato del testo. La lunghezza dell'array di incorporamento è chiamata dimensionalità del vettore. Ad esempio, un passaggio di testo potrebbe essere rappresentato da un vettore contenente centinaia di dimensioni. Quindi, calcolando la distanza numerica tra le rappresentazioni vettoriali di due parti di testo, un'applicazione può determinare la somiglianza tra gli oggetti.
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 scoprire di più sugli incorporamenti, consulta Il multistrumento di Meet AI: incorporamenti vettoriali.
- Per seguire un corso sugli arresti anomali di ML di base sugli incorporamenti, consulta Incorporamenti.
- Per saperne di più su come archiviare gli incorporamenti vettoriali in un database, consulta la pagina Scopri e la Panoramica della ricerca vettoriale
- Per saperne di più sui modelli di incorporamento del testo, consulta Incorporamenti del testo.
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.
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.
Esempio di caso d'uso: sviluppare un chatbot per i suggerimenti sui libri
Se vuoi sviluppare un chatbot per i suggerimenti di libri, la prima cosa da fare è utilizzare una rete neurale profonda (DNN) per convertire ogni libro in un vettore di incorporamento, dove un vettore di incorporamento rappresenta un libro. Puoi fornire come input alla DNN solo il titolo del libro o solo il contenuto del testo. Oppure puoi usarli entrambi insieme, insieme ad altri metadati che descrivono il libro, come il genere.
Gli incorporamenti in questo esempio potrebbero essere costituiti da migliaia di titoli di libri con riassunti e il relativo genere e potrebbero avere rappresentazioni per libri come Wuthering Heights di Emily Brontë e Persuasion di Jane Austen che sono simili tra loro (a poca distanza tra la rappresentazione numerica). mentre la rappresentazione numerica del libro Il grande Gatsby di F. Scott Fitzgerald andrebbe più avanti, perché periodo di tempo, genere e riassunto sono meno simili.
Gli input sono la principale influenza sull'orientamento dello spazio di incorporamento. Ad esempio, se avessimo inserito solo i titoli dei libri, due libri con titoli simili, ma riepiloghi molto diversi, potrebbero essere vicini. Tuttavia, se includiamo titolo e riepilogo, questi stessi libri sono meno simili (più lontano) nello spazio di incorporamento.
Grazie all'utilizzo dell'AI generativa, questo chatbot per suggerimenti di libri potrebbe riassumere, suggerire e mostrarti libri che potrebbero piacerti (o non ti piacciono) in base alla tua query.
Modifiche alle API per i modelli rilasciati ad agosto 2023 o in una data successiva
Quando utilizzi le versioni del modello rilasciate a partire da agosto 2023, tra cui
text-embedding-004
e textembedding-gecko-multilingual@001
,
è disponibile un nuovo parametro per il tipo di attività e il titolo facoltativo (valido solo con
task_type=RETRIEVAL_DOCUMENT
).
Questi nuovi parametri si applicano ai modelli di anteprima pubblica e a tutti i modelli stabili in futuro.
{
"instances": [
{
"task_type": "RETRIEVAL_DOCUMENT",
"title": "document title",
"content": "I would like embeddings for this text!"
},
]
}
Il parametro task_type
è definito come l'applicazione downstream prevista per
aiutare il modello a produrre incorporamenti di qualità migliore. È una stringa che può assumere
uno dei seguenti valori:
task_type |
Descrizione |
---|---|
RETRIEVAL_QUERY |
Specifica che il testo specificato è una query in un'impostazione di ricerca o recupero. |
RETRIEVAL_DOCUMENT |
Specifica che il testo specificato è un documento in un'impostazione di ricerca o recupero. |
SEMANTIC_SIMILARITY |
Specifica che il testo specificato viene utilizzato per la somiglianza testuale semantica (STS). |
CLASSIFICATION |
Specifica che l'incorporamento viene utilizzato per la classificazione. |
CLUSTERING |
Specifica che l'incorporamento viene utilizzato per il clustering. |
QUESTION_ANSWERING |
Specifica che l'incorporamento delle query viene utilizzato per rispondere alle domande. Utilizza RETRIEVAL_DOCUMENT per il lato del documento. |
FACT_VERIFICATION |
Specifica che l'incorporamento delle query viene utilizzato per la verifica dei fatti. |
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.