Claude Platform Docs
MensagensCapacidades do modelo

Embeddings

Embeddings de texto são representações numéricas de texto que permitem medir a similaridade semântica. Este guia apresenta os embeddings, suas aplicações e como usar modelos de embedding para tarefas como busca, recomendações e detecção de anomalias.

Antes de implementar embeddings

Ao selecionar um provedor de embeddings, há vários fatores que você pode considerar dependendo de suas necessidades e preferências:

  • Tamanho do conjunto de dados e especificidade de domínio: tamanho do conjunto de dados de treinamento do modelo e sua relevância para o domínio que você deseja incorporar. Dados maiores ou mais específicos do domínio geralmente produzem melhores embeddings dentro do domínio
  • Desempenho de inferência: velocidade de consulta de embeddings e "latency" (latência) de ponta a ponta. Esta é uma consideração particularmente importante para implantações de produção em larga escala
  • Personalização: opções para treinamento contínuo em dados privados ou especialização de modelos para domínios muito específicos. Isso pode melhorar o desempenho em vocabulários únicos

Como obter embeddings com a Anthropic

A Anthropic não oferece seu próprio modelo de embedding. Um provedor de embeddings com uma ampla variedade de modelos e recursos é a Voyage AI by MongoDB.

A Voyage AI cria modelos de embedding e "rerankers" (reclassificadores). Seus modelos de embedding incluem modelos de uso geral, multimodais, contextualizados e específicos de domínio.

O restante deste guia é para a Voyage AI, mas você deve avaliar uma variedade de fornecedores de embeddings para encontrar o mais adequado ao seu caso de uso específico.

Modelos disponíveis

A Voyage AI oferece os seguintes modelos de embedding de texto:

Geração mais recente

ModeloComprimento de contextoDimensão do embeddingDescrição
voyage-4-large32.0001024 (padrão), 256, 512, 2048A melhor qualidade de recuperação de uso geral e multilíngue. Consulte a postagem do blog sobre o Voyage 4 para detalhes.
voyage-432.0001024 (padrão), 256, 512, 2048Otimizado para qualidade de recuperação de uso geral e multilíngue. Equilibra qualidade e eficiência. Consulte a postagem do blog sobre o Voyage 4 para detalhes.
voyage-4-lite32.0001024 (padrão), 256, 512, 2048Otimizado para latência e custo. Consulte a postagem do blog sobre o Voyage 4 para detalhes.
voyage-code-432.0001024 (padrão), 256, 512, 2048Otimizado para recuperação de código e aplicações de codificação agêntica. Consulte a postagem do blog sobre o voyage-code-4 para mais detalhes.
voyage-4-nano32.0002048 (padrão), 256, 512, 1024Modelo de pesos abertos (licença Apache 2.0) que você baixa do Hugging Face e executa por conta própria. Não disponível por meio da Atlas Embedding and Reranking API. Consulte a postagem do blog sobre o Voyage 4 para mais detalhes.

Geração anterior

Para o status do ciclo de vida de cada modelo e a substituição recomendada, consulte Model deprecations, lifecycle states, and support na documentação do MongoDB.

ModeloComprimento de contextoDimensão do embeddingDescrição
voyage-3-large32.0001024 (padrão), 256, 512, 2048Geração anterior do voyage-4-large. Consulte a postagem do blog sobre o voyage-3-large para mais detalhes.
voyage-3.532.0001024 (padrão), 256, 512, 2048Geração anterior do voyage-4. Consulte a postagem do blog sobre o voyage-3.5 para mais detalhes.
voyage-3.5-lite32.0001024 (padrão), 256, 512, 2048Geração anterior do voyage-4-lite. Consulte a postagem do blog sobre o voyage-3.5 para mais detalhes.
voyage-code-332.0001024 (padrão), 256, 512, 2048Geração anterior do voyage-code-4. Consulte a postagem do blog sobre o voyage-code-3 para mais detalhes.
voyage-finance-232.0001024Otimizado para recuperação e RAG na área de finanças. Consulte a postagem do blog sobre o voyage-finance-2 para mais detalhes.
voyage-law-216.0001024Otimizado para recuperação e RAG na área jurídica. Consulte a postagem do blog sobre o voyage-law-2 para mais detalhes.

Além disso, a Voyage AI oferece os seguintes modelos de embedding multimodais. Chame esses modelos com multimodal_embed() em vez de embed():

ModeloComprimento de contextoDimensão do embeddingDescrição
voyage-multimodal-3.532.0001024 (padrão), 256, 512, 2048Modelo de embedding multimodal avançado que pode vetorizar texto, imagens e vídeos intercalados. Inclui suporte a vídeo como o primeiro modelo de embedding de vídeo de nível de produção. Consulte a postagem do blog sobre o voyage-multimodal-3.5 para mais detalhes.
voyage-multimodal-332.0001024Geração anterior do voyage-multimodal-3.5. Vetoriza texto intercalado e imagens ricas em conteúdo, como capturas de tela de PDFs, slides, tabelas, figuras e muito mais. Consulte a postagem do blog sobre o voyage-multimodal-3 para mais detalhes.

Os seguintes modelos de embedding de chunks contextualizados produzem vetores em nível de chunk que capturam o contexto completo do documento sem aumento manual de metadados. Chame esses modelos com contextualized_embed() em vez de embed():

ModeloComprimento de contextoDimensão do embeddingDescrição
voyage-context-4120.0001024 (padrão), 256, 512, 2048Embeddings de chunks contextualizados otimizados para qualidade de recuperação de uso geral e multilíngue. Consulte a postagem do blog sobre o voyage-context-4 para mais detalhes.
voyage-context-3120.0001024 (padrão), 256, 512, 2048Geração anterior do voyage-context-4. Consulte a postagem do blog sobre o voyage-context-3 para mais detalhes.

O limite de 120.000 tokens se aplica quando você define enable_auto_chunking como true. Caso contrário, o número total de tokens em todas as entradas não pode exceder 32.000.

A Voyage AI também oferece rerankers, que recebem uma consulta e uma lista de documentos e os retornam classificados por relevância em relação à consulta. Chame esses modelos com rerank():

ModeloComprimento de contextoDescrição
rerank-332.000Maior precisão. Recomendado para a maioria das aplicações. Consulte a postagem do blog sobre o rerank-3 para mais detalhes.
rerank-3-lite32.000Otimizado para latência e custo. Consulte a postagem do blog sobre o rerank-3 para mais detalhes.
rerank-2.532.000Geração anterior do rerank-3. Consulte a postagem do blog sobre o rerank-2.5 para mais detalhes.
rerank-2.5-lite32.000Geração anterior do rerank-3-lite. Consulte a postagem do blog sobre o rerank-2.5 para mais detalhes.

Precisa de ajuda para decidir qual modelo usar? Consulte Voyage AI embedding and reranking models overview na documentação do MongoDB.

Primeiros passos com a Voyage AI

Para acessar os modelos da Voyage AI, crie uma chave de API de modelo no MongoDB Atlas:

  1. Crie uma conta do MongoDB Atlas ou faça login.
  2. No seu projeto do Atlas, selecione AI Model APIs na barra de navegação, clique em Create model API key, dê um nome à chave e clique em Create.
  3. Defina a chave de API como uma variável de ambiente por conveniência:
export VOYAGE_API_KEY="<your model API key>"

Para mais detalhes, consulte Voyage AI quick start na documentação do MongoDB.

Você pode obter os embeddings usando o pacote Python oficial voyageai ou requisições HTTP, conforme descrito nas seções a seguir. A Voyage AI também tem um cliente TypeScript oficial. Para usá-lo com uma chave de API de modelo do Atlas, defina sua opção environment como https://ai.mongodb.com/v1, conforme descrito em TypeScript client na documentação do MongoDB.

Biblioteca Python da Voyage AI

Instale o pacote voyageai usando o comando a seguir. Para usar uma chave de API de modelo do Atlas, você precisa da versão 0.3.7 ou posterior.

pip install -U voyageai

Em seguida, você pode criar um objeto cliente e começar a usá-lo para gerar embeddings dos seus textos:

import voyageai

vo = voyageai.Client()
# Isso usará automaticamente a variável de ambiente VOYAGE_API_KEY.
# Como alternativa, você pode usar vo = voyageai.Client(api_key="<your model API key>")

texts = ["Sample text 1", "Sample text 2"]

result = vo.embed(texts, model="voyage-4", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])

result.embeddings é uma lista de dois vetores de embedding, cada um contendo 1024 números de ponto flutuante. Após executar o código anterior, os dois embeddings são impressos na tela:

[-0.013131560757756233, 0.019828535616397858, ...]   # embedding for "Sample text 1"
[-0.0069352793507277966, 0.020878976210951805, ...]  # embedding for "Sample text 2"

Ao criar os embeddings, você pode especificar alguns outros argumentos para a função embed().

Para mais informações sobre o pacote Python, consulte Accessing Voyage AI models na documentação do MongoDB.

API HTTP da Voyage AI

Você também pode obter embeddings enviando requisições HTTP para a Atlas Embedding and Reranking API. Por exemplo, você pode enviar uma requisição HTTP por meio do comando curl em um terminal:

cURL
curl https://ai.mongodb.com/v1/embeddings \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $VOYAGE_API_KEY" \
  -d '{
    "input": ["Sample text 1", "Sample text 2"],
    "model": "voyage-4",
    "input_type": "document"
  }'

A resposta que você receberia é um objeto JSON contendo os embeddings e o uso de tokens:

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [-0.013131560757756233, 0.019828535616397858 /* ... */],
      "index": 0
    },
    {
      "object": "embedding",
      "embedding": [-0.0069352793507277966, 0.020878976210951805 /* ... */],
      "index": 1
    }
  ],
  "model": "voyage-4",
  "usage": {
    "total_tokens": 10
  }
}

As chaves de API de modelo do Atlas funcionam com ai.mongodb.com, exceto as chaves com escopo para uma região geográfica, que usam o endpoint dessa região. Se, em vez disso, você tiver uma chave de API da plataforma Voyage AI, consulte Migrate your applications to use the Atlas Embedding and Reranking API na documentação do MongoDB.

Para a referência completa de requisição e resposta, consulte Create text embeddings na documentação da Atlas Embedding and Reranking API.

AWS Marketplace

Os modelos da Voyage AI também estão disponíveis no AWS Marketplace por meio do perfil de vendedor do MongoDB. Para instruções, consulte Deploy Voyage AI models using AWS Marketplace na documentação do MongoDB.

Exemplo de início rápido

O breve exemplo a seguir mostra como usar embeddings.

Suponha que você tenha um pequeno corpus de seis documentos dos quais recuperar

documents = [
    "The Mediterranean diet emphasizes fish, olive oil, and vegetables, believed to reduce chronic diseases.",
    "Photosynthesis in plants converts light energy into glucose and produces essential oxygen.",
    "20th-century innovations, from radios to smartphones, centered on electronic advancements.",
    "Rivers provide water, irrigation, and habitat for aquatic species, vital for ecosystems.",
    "Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.",
    "Shakespeare's works, like 'Hamlet' and 'A Midsummer Night's Dream,' endure in literature.",
]

Primeiro, use a Voyage AI para converter cada documento em um vetor de embedding.

import voyageai

vo = voyageai.Client()

# Gerar embeddings dos documentos
doc_embds = vo.embed(documents, model="voyage-4", input_type="document").embeddings

Os embeddings permitem que você faça busca / recuperação semântica no espaço vetorial. Dada uma consulta de exemplo,

query = "When is Apple's conference call scheduled?"

Em seguida, converta-a em um embedding e realize uma busca de vizinho mais próximo para encontrar o documento mais relevante com base na distância no espaço de embeddings.

import numpy as np

# Gera o embedding da consulta
query_embd = vo.embed([query], model="voyage-4", input_type="query").embeddings[0]

# Calcula a similaridade
# Os embeddings da Voyage AI são normalizados para comprimento 1, então o produto escalar
# e a similaridade de cosseno são iguais.
similarities = np.dot(doc_embds, query_embd)

retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])

Observe que input_type="document" e input_type="query" são usados para gerar o embedding do documento e da consulta, respectivamente. Para mais informações sobre input_type, consulte Quando e como devo usar o parâmetro input_type? nas perguntas frequentes.

A saída é o quinto documento, que é de fato o mais relevante para a consulta:

Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.

Se você está procurando um conjunto detalhado de receitas sobre como fazer RAG com embeddings, incluindo bancos de dados vetoriais, confira a receita de RAG.

Perguntas frequentes

Preços

Para os detalhes de preços mais atualizados, consulte Model pricing na documentação do MongoDB.

Was this page helpful?