Ao selecionar um provedor de embeddings, há vários fatores que você pode considerar dependendo de suas necessidades e preferências:
A Anthropic não oferece seu próprio modelo de embedding. Um provedor de embeddings que tem uma ampla variedade de opções e capacidades abrangendo todas as considerações acima é a Voyage AI.
A Voyage AI cria modelos de embedding de última geração e oferece modelos personalizados para domínios industriais específicos como finanças e saúde, ou modelos ajustados sob medida para clientes individuais.
O restante deste guia é para Voyage AI, mas encorajamos você a avaliar uma variedade de fornecedores de embeddings para encontrar o melhor ajuste para seu caso de uso específico.
A Voyage recomenda usar os seguintes modelos de embedding de texto:
| Modelo | Comprimento do Contexto | Dimensão do Embedding | Descrição |
|---|---|---|---|
voyage-3-large | 32,000 | 1024 (padrão), 256, 512, 2048 | A melhor qualidade de recuperação geral e multilíngue. Veja post do blog para detalhes. |
voyage-3.5 | 32,000 | 1024 (padrão), 256, 512, 2048 | Otimizado para qualidade de recuperação geral e multilíngue. Veja post do blog para detalhes. |
voyage-3.5-lite | 32,000 | 1024 (padrão), 256, 512, 2048 | Otimizado para latência e custo. Veja post do blog para detalhes. |
voyage-code-3 | 32,000 | 1024 (padrão), 256, 512, 2048 | Otimizado para recuperação de código. Veja post do blog para detalhes. |
voyage-finance-2 | 32,000 | 1024 | Otimizado para recuperação e RAG de finanças. Veja para detalhes. |
Além disso, os seguintes modelos de embedding multimodal são recomendados:
| Modelo | Comprimento do Contexto | Dimensão do Embedding | Descrição |
|---|---|---|---|
voyage-multimodal-3 | 32000 | 1024 | Modelo 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. Veja post do blog para detalhes. |
Precisa de ajuda para decidir qual modelo de embedding de texto usar? Confira o FAQ.
Para acessar embeddings Voyage:
export VOYAGE_API_KEY="<sua chave secreta>"Você pode obter os embeddings usando o pacote Python oficial voyageai ou solicitações HTTP, conforme descrito abaixo.
O pacote voyageai pode ser instalado usando o seguinte comando:
pip install -U voyageaiEm seguida, você pode criar um objeto cliente e começar a usá-lo para incorporar seus textos:
import voyageai
vo = voyageai.Client()
# Isso usará automaticamente a variável de ambiente VOYAGE_API_KEY.
# Alternativamente, você pode usar vo = voyageai.Client(api_key="<sua chave secreta>")
texts = ["Texto de exemplo 1", "Texto de exemplo 2"]
result = vo.embed(texts, model="voyage-3.5", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])result.embeddings será uma lista de dois vetores de embedding, cada um contendo 1024 números de ponto flutuante. Após executar o código acima, os dois embeddings serão impressos na tela:
[-0.013131560757756233, 0.019828535616397858, ...] # embedding para "Texto de exemplo 1"
[-0.0069352793507277966, 0.020878976210951805, ...] # embedding para "Texto de exemplo 2"Ao criar os embeddings, você pode especificar alguns outros argumentos para a função embed().
Para mais informações sobre o pacote python Voyage, veja a documentação Voyage.
Você também pode obter embeddings solicitando a API HTTP Voyage. Por exemplo, você pode enviar uma solicitação HTTP através do comando curl em um terminal:
curl https://api.voyageai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $VOYAGE_API_KEY" \
-d '{
"input": ["Texto de exemplo 1", "Texto de exemplo 2"],
"model": "voyage-3.5"
}'A resposta que você obteria é 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-3.5",
"usage": {
"total_tokens": 10
}
}
Para mais informações sobre a API HTTP Voyage, veja a documentação Voyage.
Embeddings Voyage estão disponíveis no AWS Marketplace. Instruções para acessar Voyage na AWS estão disponíveis aqui.
Agora que sabemos como obter embeddings, vamos ver um exemplo breve.
Suponha que temos um pequeno corpus de seis documentos para recuperar
documents = [
"A dieta mediterrânea enfatiza peixe, azeite de oliva e vegetais, acreditada para reduzir doenças crônicas.",
"A fotossíntese nas plantas converte energia luminosa em glicose e produz oxigênio essencial.",
"Inovações do século 20, de rádios a smartphones, centraram-se em avanços eletrônicos.",
"Rios fornecem água, irrigação e habitat para espécies aquáticas, vitais para ecossistemas.",
"A conferência telefônica da Apple para discutir os resultados do quarto trimestre fiscal e atualizações de negócios está agendada para quinta-feira, 2 de novembro de 2023 às 14:00 PT / 17:00 ET.",
"As obras de Shakespeare, como 'Hamlet' e 'Sonho de uma Noite de Verão,' perduram na literatura."
]
Primeiro usaremos Voyage para converter cada um deles em um vetor de embedding
import voyageai
vo = voyageai.Client()
# Incorporar os documentos
doc_embds = vo.embed(
documents, model="voyage-3.5", input_type="document"
).embeddingsOs embeddings nos permitirão fazer busca semântica / recuperação no espaço vetorial. Dada uma consulta de exemplo,
query = "Quando está agendada a conferência telefônica da Apple?"nós a convertemos em um embedding, e conduzimos uma busca de vizinho mais próximo para encontrar o documento mais relevante baseado na distância no espaço de embedding.
import numpy as np
# Incorporar a consulta
query_embd = vo.embed(
[query], model="voyage-3.5", input_type="query"
).embeddings[0]
# Calcular a similaridade
# Embeddings Voyage são normalizados para comprimento 1, portanto produto escalar
# e similaridade de cosseno são os mesmos.
similarities = np.dot(doc_embds, query_embd)
retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])Note que usamos input_type="document" e input_type="query" para incorporar o documento e consulta, respectivamente. Mais especificação pode ser encontrada aqui.
A saída seria o 5º documento, que é de fato o mais relevante para a consulta:
A conferência telefônica da Apple para discutir os resultados do quarto trimestre fiscal e atualizações de negócios está agendada para quinta-feira, 2 de novembro de 2023 às 14:00 PT / 17:00 ET.Se você está procurando por um conjunto detalhado de livros de receitas sobre como fazer RAG com embeddings, incluindo bancos de dados vetoriais, confira nosso livro de receitas RAG.
Visite a página de preços da Voyage para os detalhes de preços mais atualizados.
voyage-law-2 | 16,000 | 1024 | Otimizado para recuperação e RAG jurídico e de contexto longo. Também melhorou o desempenho em todos os domínios. Veja post do blog para detalhes. |