L'API Vertex AI text-embeddings ti consente di creare un incorporamento di testo utilizzando l'IA generativa su Vertex AI. Le rappresentazioni distribuite di testo sono rappresentazioni numeriche di testo che catturano le relazioni tra parole e frasi. I modelli di machine learning, in particolare i modelli di AI generativa, sono adatti per creare questi incorporamenti identificando pattern all'interno di grandi set di dati di testo. La tua applicazione può utilizzare gli incorporamenti di testo per elaborare e produrre il linguaggio, riconoscendo significati complessi e relazioni semantiche specifiche per i tuoi contenuti. interagisci con gli incorporamenti di testo ogni volta che completi una ricerca su Google o visualizzi consigli per lo streaming di musica.
Ecco alcuni casi d'uso comuni per gli incorporamenti di testo:
- Ricerca semantica: testo di ricerca classificato in base alla somiglianza semantica.
- Classificazione: restituisce la classe di articoli 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: restituisci articoli in cui gli attributi di testo sono meno correlati al testo specificato.
- Interfaccia di conversazione: raggruppa gruppi di frasi che possono generare risposte simili, ad esempio in uno spazio di incorporamento a livello di conversazione.
Gli incorporamenti di testo convertono il testo in array di numeri in virgola mobile, chiamati vettori. Questi vettori sono progettati per catturare 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 di 768 dimensioni. I modelli di incorporazione vettoriale densa usano metodi di deep learning simili a quelli usati dai modelli linguistici di grandi dimensioni. A differenza dei vettori sparsi, che tendono ad associare direttamente le parole ai numeri, i vettori dense sono progettati per rappresentare meglio il significato di una porzione di testo. Il vantaggio dell'utilizzo di incorporamenti vettoriali densi nell'AI generativa è che, invece di cercare corrispondenze dirette di parole o sintassi, puoi cercare meglio i passaggi che si allineano al significato della query, anche se i passaggi non utilizzano la stessa lingua.
- Per scoprire di più sugli incorporamenti, consulta Il multistrumento di Meet AI: rappresentazioni distribuite vettoriali.
- Per seguire un corso sugli arresti anomali di base per il machine learning sugli incorporamenti, consulta Incorporamenti.
- Per scoprire di più su come archiviare incorporamenti vettoriali in un database, consulta la pagina Scopri e la pagina Panoramica di Vector Search
Prerequisiti
Esistono prerequisiti specifici per creare correttamente un incorporamento. Per iniziare, consulta la guida rapida: Provare gli incorporamenti di testo.
Utilizza questo Colab per chiamare i modelli di incorporamento del testo appena rilasciati (
Blocco note Jupyter: chiama i modelli di incorporamento del testo utilizzando Colab o un blocco note Jupyter. |
Esempio di caso d'uso: sviluppare un chatbot per suggerimenti di libri
Se vuoi sviluppare un chatbot per suggerimenti di libri, la prima cosa da fare è utilizzare una rete neurale profonda (DNN) per convertire ogni libro in un vettore di incorporamento, in cui un vettore di incorporamento rappresenta un libro. Puoi inserire, come input nel DNN, solo il titolo del libro o solo il contenuto testuale. In alternativa, puoi utilizzarli 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 riepiloghi e relativo genere e potrebbero avere rappresentazioni per libri come Wuthering Heights di Emily Brontë e Persuasion di Jane Austen simili tra loro (piccola distanza tra le rappresentazioni numeriche). Mentre la rappresentazione numerica per il libro Il grande Gatsby di F. Scott Fitzgerald andrebbe oltre, poiché il periodo di tempo, il genere e il riassunto sono meno simili.
Gli input sono la principale influenza sull'orientamento dello spazio di incorporamento. Ad esempio, se avessimo inserito solo il titolo dei libri, due libri con titoli simili, ma con riassunti molto diversi, potrebbero essere vicini. Tuttavia, se includiamo il titolo e il riepilogo, questi stessi libri sono meno simili (più lontano) nello spazio di incorporamento.
Grazie all'AI generativa, questo chatbot di suggerimenti di libri può riassumere, suggerire e mostrarti libri che potrebbero piacerti (o non ti piace) in base alla tua query.
Modelli supportati
Per sapere quali versioni del modello di incorporamento del testo stabile sono disponibili, consulta Versioni del modello stabile disponibili. Per scoprire quali ultime versioni dei modelli di incorporamento del testo sono disponibili, consulta Modelli più recenti.
Ti consigliamo vivamente di specificare una versione del modello stabile (ad esempio, textembedding-gecko@003
). La versione più recente di un modello è in modalità Anteprima e non è in disponibilità generale (GA).
Poiché la versione più recente è in Anteprima, non è garantito che sia pronta per la produzione.
È particolarmente importante utilizzare una versione stabile del modello, ad esempio textembedding-gecko@003
per le applicazioni che richiedono incorporamenti compatibili con le versioni precedenti. Se la compatibilità con le versioni precedenti non è un problema e vuoi utilizzare la versione più recente del modello, devi specificare @latest
esplicitamente.
Se non viene specificata alcuna versione, il valore predefinito di textembedding-gecko
è textembedding-gecko@003
e textembedding-gecko-multilingual
il valore predefinito è textembedding-gecko-multilingual@001
.
Modelli più recenti
Per l'anteprima sono disponibili due modelli:
text-embedding-preview-0409
text-multilingual-embedding-preview-0409
Questi modelli migliorano rispetto ai modelli precedenti all'interno di benchmark consolidati che coprono varie attività a valle, come il recupero e la classificazione. Per saperne di più, consulta Gecko: incorporamenti di testo versatili distillati da modelli linguistici di grandi dimensioni (LLM).
Questi modelli offrono una qualità di incorporamento migliore, rispettivamente, rispetto ai modelli textembedding-gecko@003
e textembedding-gecko-multilingual@001
. Questi modelli non rispettano la convenzione di denominazione model-name@version
. Specifica questi modelli senza
il suffisso "@version". Ecco un esempio:
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/locations/us-central1/publishers/google/models/text-embedding-preview-0409:predict -d $'{
"instances": [
{ "content": "What is life?"}
],
}'
Oltre a una migliore qualità, i nuovi modelli supportano le seguenti funzionalità:
È supportato un nuovo parametro
outputDimensionality
. Puoi utilizzare questo parametro per ridurre le dimensioni di incorporamento, ad esempio per l'ottimizzazione dello spazio di archiviazione.QUESTION_ANSWERING
FACT_VERIFICATION
Sono supportati due nuovi tipi di attività. Per vedere altri tipi di attività, consulta il riferimento del modello.
L'esempio seguente illustra le nuove funzionalità:
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/locations/us-central1/publishers/google/models/text-embedding-preview-0409:predict -d $'{
"instances": [
{
"task_type": "QUESTION_ANSWERING",
"content": "What is life?"
}
],
"parameters": {
"outputDimensionality": 256
}
}'
Quando utilizzi questi modelli, si applicano le seguenti limitazioni:
- Non utilizzare questi modelli in anteprima su sistemi mission critical o di produzione.
- Questi modelli sono disponibili solo in
us-central1
. - Le previsioni batch non sono supportate.
- La personalizzazione non è supportata.
Ricevi incorporamenti di testo per uno snippet di testo
Puoi ottenere incorporamenti di testo per uno snippet di testo utilizzando l'API Vertex AI o
l'SDK Vertex AI per Python. Per ogni richiesta, è previsto un limite di 250 testi di input
in us-central1
e in altre regioni, il testo di input massimo è 5.
Ogni testo di input ha un limite di token di 2000. 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 textembedding-gecko@003
.
REST
Per ottenere incorporamenti di testo, invia una richiesta POST specificando l'ID modello del modello editore.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- TEXT: il testo per cui vuoi generare incorporamenti. Limite: cinque testi con un massimo di 3072 token per testo.
- AUTO_TRUNCATE: se viene impostato su
false
, un testo che supera il limite di token determina l'esito negativo 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/textembedding-gecko@003:predict
Corpo JSON della richiesta:
{ "instances": [ { "content": "TEXT"} ], "parameters": { "autoTruncate": AUTO_TRUNCATE } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
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/textembedding-gecko@003: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/textembedding-gecko@003:predict" | Select-Object -Expand Content
Dovresti ricevere una risposta in formato JSON simile alla seguente. Tieni presente che values
è stato troncato per risparmiare spazio.
Comando curl di esempio
MODEL_ID="textembedding-gecko@003"
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 di Go riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Go Vertex AI.
Per eseguire l'autenticazione 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 di Java riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le 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 di configurazione di Node.js riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ricevi incorporamenti di testo per uno snippet di testo (modelli di anteprima)
Questa sezione fornisce esempi per i nuovi modelli di incorporamenti:
text-embedding-preview-0409
text-multilingual-embedding-preview-0409
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 di Go riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Go Vertex AI.
Per eseguire l'autenticazione 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 di Java riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le 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 di configurazione di Node.js riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Aggiungere un incorporamento a un database vettoriale
Dopo aver generato l'incorporamento, puoi aggiungere incorporamenti a un database vettoriale, come Vector Search. Ciò consente il recupero a bassa latenza, fondamentale con l'aumento delle dimensioni dei dati.
Per scoprire di più su Vector Search, consulta la pagina Panoramica di Vector Search.
Modifiche all'API per i modelli rilasciati a partire da agosto 2023
Quando utilizzi le versioni del modello rilasciate a partire da agosto 2023, inclusi textembedding-gecko@003
e textembedding-gecko-multilingual@001
, sono disponibili un nuovo parametro del tipo di attività e il titolo facoltativo (valido solo con task_type=RETRIEVAL_DOCUMENT
).
Questi nuovi parametri vengono applicati ai modelli di anteprima pubblica e a tutti i modelli stabili futuri.
{
"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 STS (Semantic Textual Similarity). |
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 documento. |
FACT_VERIFICATION |
Specifica che l'incorporamento della query viene utilizzato per la verifica dei fatti. |
Copertura linguistica per textembedding-gecko-multilingual
modelli.
Il modello textembedding-gecko-multilingual@001
è stato valutato nelle seguenti lingue:
Arabic (ar)
, Bengali (bn)
, English (en)
, Spanish (es)
, German (de)
,
Persian (fa)
, Finnish (fi)
, French (fr)
, Hindi (hi)
, Indonesian (id)
,
Japanese (ja)
, Korean (ko)
, Russian (ru)
, Swahili (sw)
, Telugu (te)
,
Thai (th)
, Yoruba (yo)
e Chinese (zh)
.
{6, {6, {6,} {4, {4, {6,} {4, {6, {4,}, {4, {7, {6,} {f/m, {m, {f/m}, {f/m}, {7, {6, {f/m}/m/}, {4, Belarusian
/ {6, Belarusian
/ {4, {m/m/}/ {7, Basque
/ {6, Belarusian
/ {6, Belarusian
/ {7, Amharic
/ {2, {m/}/ {7, Basque
/ Amharic
)Afrikaans
Albanian
Arabic
Armenian
Azerbaijani
Bengali
Bulgarian
Burmese
Catalan
Cebuano
Chichewa
Chinese
Corsican
Czech
Danish
Dutch
English
Esperanto
Estonian
Filipino
Finnish
French
Galician
Georgian
German
Greek
Gujarati
Haitian Creole
Hausa
Hawaiian
Hebrew
Hindi
Hmong
Hungarian
Icelandic
Igbo
Indonesian
Irish
Italian
Japanese
Javanese
Kannada
Kazakh
Khmer
Korean
Kurdish
Kyrgyz
Lao
Latin
Latvian
Lithuanian
Luxembourgish
Macedonian
Malagasy
Malay
Malayalam
Maltese
Maori
Marathi
Mongolian
Nepali
Norwegian
Pashto
Persian
Polish
Portuguese
Punjabi
Romanian
Russian
Samoan
Scottish Gaelic
Serbian
Shona
Sindhi
Sinhala
Slovak
Slovenian
Somali
Sotho
Spanish
Sundanese
Swahili
Swedish
Tajik
Tamil
Telugu
Thai
Turkish
Ukrainian
Urdu
Uzbek
Vietnamese
Welsh
West Frisian
Xhosa
Yiddish
Yoruba
Zulu
Passaggi successivi
- Scopri come ottimizzare un modello di base.
- Scopri le best practice per l'IA responsabile e i filtri di sicurezza di Vertex AI.