Este documento descreve como criar uma incorporação de texto através da API Text embeddingsda Vertex AI.
A API Vertex AI Text Embeddings usa representações vetoriais densas: gemini-embedding-001, por exemplo, usa vetores de 3072 dimensões. Os modelos de incorporação de vetores densos usam métodos de aprendizagem profunda semelhantes aos usados pelos modelos de linguagem (conteúdo extenso). Ao contrário dos vetores esparsos, que tendem a mapear diretamente palavras para números, os vetores densos são concebidos para representar melhor o significado de um fragmento de texto. A vantagem de usar incorporações de vetores densos na IA generativa é que, em vez de pesquisar correspondências diretas de palavras ou sintaxe, pode pesquisar melhor passagens que se alinham com o significado da consulta, mesmo que as passagens não usem o mesmo idioma.
Os vetores são normalizados, pelo que pode usar a semelhança de cossenos, o produto escalar ou a distância euclidiana para fornecer as mesmas classificações de semelhança.
- Para saber mais sobre as incorporações, consulte a vista geral das APIs de incorporações.
- Para saber mais sobre os modelos de incorporação de texto, consulte o artigo Incorporações de texto.
- Para obter informações sobre os idiomas suportados por cada modelo de incorporações, consulte os idiomas de texto suportados.
Antes de começar
- 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - Escolha um tipo de tarefa para a sua tarefa de incorporações.
- Para saber mais acerca dos limites de taxa, consulte os limites de taxa da IA generativa no Vertex AI.
- Para obter previsões em lote para incorporações, consulte o artigo Obtenha previsões de incorporações de texto em lote
- Para saber mais sobre as incorporações multimodais, consulte o artigo Obtenha incorporações multimodais
- Para ajustar uma incorporação, consulte o artigo Ajuste as incorporações de texto
- Para saber mais sobre a investigação por detrás do
text-embedding-005
e dotext-multilingual-embedding-002
, consulte o artigo de investigação Gecko: Versatile Text Embeddings Distilled from Large Language Models.
Modelos suportados
Modelos Google
Pode obter incorporações de texto através dos seguintes modelos:
Nome do modelo | Descrição | Dimensões de saída | Duração máxima da sequência | Idiomas de texto suportados |
---|---|---|---|---|
gemini-embedding-001 |
Desempenho de última geração em tarefas em inglês, multilingues e de código. Unifica os modelos anteriormente especializados, como o text-embedding-005 e o text-multilingual-embedding-002 , e alcança um melhor desempenho nos respetivos domínios. Leia o nosso relatório técnico para ver mais detalhes. |
até 3072 | 2048 tokens | Idiomas de texto suportados |
text-embedding-005 |
Especializado em tarefas de inglês e código. | até 768 | 2048 tokens | Inglês |
text-multilingual-embedding-002 |
Especializado em tarefas multilingues. | até 768 | 2048 tokens | Idiomas de texto suportados |
Para uma qualidade de incorporação superior, o gemini-embedding-001
é o nosso modelo grande concebido para oferecer o desempenho mais elevado.
Abrir modelos
Pode obter incorporações de texto através dos seguintes modelos:
Nome do modelo | Descrição | Dimensões de saída | Duração máxima da sequência | Idiomas de texto suportados |
---|---|---|---|---|
multilingual-e5-small |
Parte da família de modelos de incorporação de texto E5. A variante pequena contém 12 camadas. | Até 384 | 512 tokens | Idiomas suportados |
multilingual-e5-large |
Parte da família de modelos de incorporação de texto E5. A variante grande contém 24 camadas. | Até 1024 | 512 tokens | Idiomas suportados |
Para começar, consulte o cartão do modelo da família E5. Para mais informações sobre modelos abertos, consulte o artigo Modelos abertos para o MaaS
Obtenha incorporações de texto para um fragmento de texto
Pode obter incorporações de texto para um fragmento de texto através da API Vertex AI ou do SDK Vertex AI para Python.
Limites da API
Para cada pedido, tem um limite de 250 textos de entrada. A API tem um limite máximo de tokens de entrada de 20 000. As entradas que excedem este limite resultam num erro 400. Cada texto de entrada individual está ainda limitado a 2048 tokens. Qualquer excesso é truncado de forma silenciosa. Também pode desativar a truncagem silenciosa definindo autoTruncate
como false
.
Para mais informações, consulte os limites de incorporação de texto.
Escolha uma dimensão de incorporação
Por predefinição, todos os modelos produzem um vetor de incorporação de comprimento total. Para
gemini-embedding-001
, este vetor tem 3072 dimensões e outros
modelos produzem vetores de 768 dimensões. No entanto, através do parâmetro output_dimensionality
, os utilizadores podem controlar o tamanho do vetor de incorporação de saída. Selecionar uma dimensionalidade de saída mais pequena pode poupar espaço de armazenamento e aumentar a eficiência computacional para aplicações posteriores, sacrificando pouco em termos de qualidade.
Os exemplos seguintes usam o modelo gemini-embedding-001
.
Python
Instalação
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 o 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
Go
Saiba como instalar ou atualizar o Go.
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 o 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
Adicione uma incorporação a uma base de dados vetorial
Depois de gerar a incorporação, pode adicioná-la a uma base de dados vetorial, como a pesquisa vetorial. Isto permite uma obtenção de baixa latência e é fundamental à medida que o tamanho dos seus dados aumenta.
Para saber mais sobre a Vector Search, consulte a Vista geral da Vector Search.