Acessar incorporações de texto

Este guia mostra como criar um embedding de texto usando a API Text embeddings da Vertex AI. Nesta página, abordamos os seguintes tópicos:

A API Text embeddings da Vertex AI usa representações vetoriais densas de texto. Esses embeddings são criados usando métodos de aprendizado profundo semelhantes aos usados por modelos de linguagem grandes. Ao contrário dos vetores esparsos, que tendem a mapear palavras diretamente para números, os vetores densos são projetados para representar o significado de um texto. Isso permite que você pesquise trechos que se alinham ao significado de uma consulta, mesmo que não usem as mesmas palavras.

As principais características desses encodings incluem:

  • Alta dimensionalidade: os modelos produzem vetores de alta dimensão. Por exemplo, gemini-embedding-001 usa vetores de 3.072 dimensões. É possível reduzir a dimensionalidade da saída para economizar espaço de armazenamento e aumentar a eficiência computacional.
  • Vetores normalizados: os vetores de saída são normalizados. Assim, você pode usar similaridade por cosseno, produto escalar ou distância euclidiana para receber as mesmas classificações de similaridade.

Para saber mais, consulte os seguintes recursos:

Antes de começar

  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. Escolha um tipo de tarefa para o job de embeddings.
  7. Modelos compatíveis

    Você pode obter embeddings de texto usando os seguintes modelos:

    Nome do modelo Descrição Dimensões de saída Comprimento máximo da sequência Idiomas de texto compatíveis
    gemini-embedding-001 Desempenho de ponta em tarefas de inglês, multilíngues e de código. Ele unifica os modelos especializados anteriores, como text-embedding-005 e text-multilingual-embedding-002, e alcança um desempenho melhor nos respectivos domínios. Leia nosso relatório técnico para mais detalhes. até 3072 2.048 tokens Idiomas de texto compatíveis
    text-embedding-005 Especializado em tarefas de inglês e programação. até 768 2.048 tokens Inglês
    text-multilingual-embedding-002 Especializado em tarefas multilíngues. até 768 2.048 tokens Idiomas de texto compatíveis

    Para uma qualidade de incorporação superior, o gemini-embedding-001 é nosso modelo grande projetado para oferecer a melhor performance. O gemini-embedding-001 aceita uma instância por solicitação.

    Use apenas os nomes dos modelos listados na tabela de modelos compatíveis. Não especifique um nome de modelo sem o sufixo @version nem use @latest, porque esses formatos não são válidos.

    Obter embeddings de texto para um snippet de texto

    É possível receber embeddings de texto para um snippet de texto usando a API Vertex AI ou o SDK da Vertex AI para Python.

    Limites da API

    Cada solicitação é limitada a 250 textos de entrada e um total de 20.000 tokens de entrada. Se uma solicitação exceder o limite de tokens, ela vai retornar um erro 400. Cada texto de entrada individual é limitado a 2.048 tokens, e qualquer excesso é truncado silenciosamente. Para desativar o truncamento silencioso, defina autoTruncate como false.

    Para mais informações, consulte Limites de embeddings de texto.

    Escolher uma dimensão de embedding

    Por padrão, todos os modelos produzem um vetor de embedding de comprimento total. Para gemini-embedding-001, esse vetor tem 3.072 dimensões, e para outros modelos, são 768 dimensões. Para controlar o tamanho do vetor de embedding de saída, use o parâmetro output_dimensionality. Uma dimensionalidade de saída menor pode economizar espaço de armazenamento e aumentar a eficiência computacional para aplicativos downstream, com uma possível compensação na qualidade.

    Os exemplos a seguir usam o modelo gemini-embedding-001.

    Python

    Instalar

    pip install --upgrade google-genai

    Para saber mais, consulte a documentação de referência do SDK.

    Defina variáveis de ambiente para usar o SDK de IA generativa com a 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=global
    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="gemini-embedding-001",
        contents=[
            "How do I get a driver's license/learner's permit?",
            "How long is my driver's license valid for?",
            "Driver's knowledge test study guide",
        ],
        config=EmbedContentConfig(
            task_type="RETRIEVAL_DOCUMENT",  # Optional
            output_dimensionality=3072,  # 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)

    Adicionar um embedding a um banco de dados de vetores

    Depois de gerar o embedding, adicione-o a um banco de dados de vetores, como o Vector Search. Isso permite a recuperação de baixa latência e é essencial à medida que o tamanho dos dados aumenta.

    Para saber mais sobre a pesquisa de vetor, consulte Visão geral da pesquisa de vetor.

    A seguir