Ottenere incorporamenti di testo

Questo documento descrive come creare un embedding di testo utilizzando l'API Text Embeddings di Vertex AI.

L'API Vertex AI per gli incorporamenti di testo utilizza rappresentazioni vettoriali dense: ad esempio, text-embedding-005 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.

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.

Prima di iniziare

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Vertex AI API.

    Enable the API

  6. 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 Modelli di embedding di Gemini
textembedding-gecko@001 textembedding-gecko-multilingual@001 text-embedding-large-exp-03-07 (sperimentale)
textembedding-gecko@002 text-multilingual-embedding-002
textembedding-gecko@003
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. Inoltre, per una qualità di incorporamento superiore,text-embedding-large-exp-03-07 è il nostro modello di grandi dimensioni progettato per offrire le prestazioni più elevate.

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. Per i modelli sperimentali, il testo di input massimo è 1. I modelli sperimentali sono disponibili solo in us-central1. L'API ha un limite massimo di token di input pari a 20.000. Gli input che superano questo limite provocano un errore 500. Per la maggior parte dei modelli, ogni singolo testo di input è limitato a 2048 token; eventuali token in eccesso vengono troncati in modo silenzioso. Per text-embedding-large-exp-03-07, ogni singolo testo di input è limitato a 8192 token. Puoi anche disattivare la troncatura silenziosa impostando autoTruncate su false.

Per impostazione predefinita, tutti i modelli producono un vettore di embedding integrale. Per text-embedding-large-exp-03-07, questo vettore ha 3072 dimensioni, mentre altri modelli producono vettori di 768 dimensioni. Tuttavia, i seguenti modelli consentono agli utenti di scegliere una dimensione di output compresa tra 1 e la dimensione di output massima. Se selezioni una dimensione di output più piccola, puoi risparmiare memoria e spazio di archiviazione, ottenendo calcoli più efficienti.

  • text-embedding-004
  • text-embedding-005
  • text-multilingual-embedding-002
  • text-embedding-large-exp-03-07

Gli esempi riportati di seguito utilizzano il modello text-embedding-005.

Gen AI SDK for Python

Installa

pip install --upgrade google-genai
Per scoprire di più, consulta la documentazione di riferimento dell'SDK.

Imposta le variabili di ambiente per utilizzare l'SDK Gen AI con Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=us-central1
export GOOGLE_GENAI_USE_VERTEXAI=True

from google import genai
from google.genai.types import EmbedContentConfig

client = genai.Client()
response = client.models.embed_content(
    model="text-embedding-005",
    contents=[
        "How do I get a driver's license/learner's permit?",
        "How do I renew my driver's license?",
        "How do I change my address on my driver's license?",
    ],
    config=EmbedContentConfig(
        task_type="RETRIEVAL_DOCUMENT",  # Optional
        output_dimensionality=768,  # Optional
        title="Driver's License",  # Optional
    ),
)
print(response)
# Example response:
# embeddings=[ContentEmbedding(values=[-0.06302902102470398, 0.00928034819662571, 0.014716853387653828, -0.028747491538524628, ... ],
# statistics=ContentEmbeddingStatistics(truncated=False, token_count=13.0))]
# metadata=EmbedContentMetadata(billable_character_count=112)

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