Claude Platform Docs
MessagesCapacidades 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 que possui uma ampla variedade de opções e recursos abrangendo todas as considerações anteriores é a Voyage AI.

A Voyage AI cria modelos de embedding de última geração e oferece modelos personalizados para domínios específicos da indústria, como finanças e saúde, ou modelos com "fine-tuning" (ajuste fino) sob medida para clientes individuais.

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 recomenda usar os seguintes modelos de embedding de texto:

Voyage 4 (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-4-nano32.0001024 (padrão), 256, 512, 2048Modelo de pesos abertos (licença Apache 2.0) disponível no Hugging Face. Consulte a postagem do blog sobre o Voyage 4 para detalhes.

Geração anterior

ModeloComprimento de contextoDimensão do embeddingDescrição
voyage-3-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-3-large para detalhes.
voyage-3.532.0001024 (padrão), 256, 512, 2048Otimizado para qualidade de recuperação de uso geral e multilíngue. Consulte a postagem do blog sobre o voyage-3.5 para detalhes.
voyage-3.5-lite32.0001024 (padrão), 256, 512, 2048Otimizado para latência e custo. Consulte a postagem do blog sobre o voyage-3.5 para detalhes.
voyage-code-332.0001024 (padrão), 256, 512, 2048Otimizado para recuperação de código. Consulte a postagem do blog sobre o voyage-code-3 para detalhes.
voyage-finance-232.0001024Otimizado para recuperação e RAG em finanças. Consulte a postagem do blog sobre o voyage-finance-2 para detalhes.
voyage-law-216.0001024Otimizado para recuperação e RAG jurídicos e de contexto longo. Também apresenta desempenho aprimorado em todos os domínios. Consulte a postagem do blog sobre o voyage-law-2 para detalhes.

Além disso, a Voyage recomenda os seguintes modelos de embedding multimodais:

ModeloComprimento de contextoDimensão do embeddingDescrição
voyage-multimodal-3.532.0001024 (padrão), 256, 512, 2048Modelo de embedding multimodal rico que pode vetorizar texto, imagens e vídeos intercalados. Inclui suporte a vídeo como o primeiro modelo de embedding de vídeo em nível de produção. Consulte a postagem do blog sobre o voyage-multimodal-3.5 para detalhes.
voyage-multimodal-332.0001024Modelo de embedding multimodal rico que pode vetorizar 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 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 detalhes.
voyage-context-3120.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-3 para detalhes.

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-2.532.000Maior precisão. Recomendado para a maioria das aplicações. Consulte a postagem do blog sobre o rerank-2.5 para detalhes.
rerank-2.5-lite32.000Otimizado para latência e custo. Consulte a postagem do blog sobre o rerank-2.5 para detalhes.

Precisa de ajuda para decidir qual modelo de embedding de texto usar? Confira as Perguntas frequentes da Voyage AI.

Primeiros passos com a Voyage AI

Para acessar os embeddings da Voyage:

  1. Cadastre-se no site da Voyage AI.
  2. Obtenha uma chave de API.
  3. Defina a chave de API como uma variável de ambiente para conveniência:
export VOYAGE_API_KEY="<your secret key>"

Você pode obter os embeddings usando o pacote Python voyageai oficial ou requisições HTTP, conforme descrito nas seções a seguir.

Biblioteca Python da Voyage

Instale o pacote voyageai usando o seguinte comando:

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="<sua chave secreta>")

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 da Voyage, consulte a documentação do pacote Python da Voyage.

API HTTP da Voyage

Você também pode obter embeddings fazendo requisições à API HTTP da Voyage. Por exemplo, você pode enviar uma requisição HTTP por meio do comando curl em um terminal:

cURL
curl https://api.voyageai.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"
  }'

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

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

Para mais informações sobre a API HTTP da Voyage, consulte a documentação da API HTTP da Voyage.

AWS Marketplace

Os embeddings da Voyage estão disponíveis no AWS Marketplace. As instruções para acessar a Voyage na AWS estão disponíveis na documentação da Voyage no AWS Marketplace.

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 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 são normalizados para comprimento 1, portanto 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 embeddings do documento e da consulta, respectivamente. Mais especificações podem ser encontradas em Biblioteca Python da Voyage.

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

Visite a página de preços da Voyage para obter os detalhes de preços mais atualizados.

Was this page helpful?