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 possui 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 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.
A Voyage recomenda usar os seguintes modelos de embedding de texto:
Voyage 4 (geração mais recente)
| Modelo | Tamanho do Contexto | Dimensão do Embedding | Descrição |
|---|---|---|---|
voyage-4-large | 32.000 | 1024 (padrão), 256, 512, 2048 | A melhor qualidade de recuperação de uso geral e multilíngue. Consulte o post do blog para detalhes. |
voyage-4 | 32.000 | 1024 (padrão), 256, 512, 2048 | Otimizado para qualidade de recuperação de uso geral e multilíngue. Equilibra qualidade e eficiência. Consulte o post do blog para detalhes. |
voyage-4-lite | 32.000 | 1024 (padrão), 256, 512, 2048 | Otimizado para latência e custo. Consulte o post do blog para detalhes. |
voyage-4-nano | 32.000 | 1024 (padrão), 256, 512, 2048 | Modelo de pesos abertos (licença Apache 2.0) disponível no Hugging Face. Consulte o post do blog para detalhes. |
Geração anterior
| Modelo | Tamanho 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 de uso geral e multilíngue. Consulte o post do blog para detalhes. |
voyage-3.5 | 32.000 | 1024 (padrão), 256, 512, 2048 | Otimizado para qualidade de recuperação de uso geral e multilíngue. Consulte o post do blog para detalhes. |
voyage-3.5-lite | 32.000 | 1024 (padrão), 256, 512, 2048 | Otimizado para latência e custo. Consulte o post do blog para detalhes. |
voyage-code-3 | 32.000 | 1024 (padrão), 256, 512, 2048 | Otimizado para recuperação de código. Consulte o post do blog para detalhes. |
voyage-finance-2 | 32.000 | 1024 | Otimizado para recuperação e RAG de finanças. Consulte o post do blog para detalhes. |
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. Consulte o post do blog para detalhes. |
Além disso, os seguintes modelos de embedding multimodal são recomendados:
| Modelo | Tamanho do Contexto | Dimensão do Embedding | Descrição |
|---|---|---|---|
voyage-multimodal-3.5 | 32.000 | 1024 (padrão), 256, 512, 2048 | Modelo 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 o post do blog para detalhes. |
voyage-multimodal-3 | 32.000 | 1024 | Modelo de embedding multimodal avançado que pode vetorizar texto intercalado e imagens ricas em conteúdo, como capturas de tela de PDFs, slides, tabelas, figuras e muito mais. Consulte o post do blog para detalhes. |
Precisa de ajuda para decidir qual modelo de embedding de texto usar? Confira o FAQ.
Para acessar os embeddings da Voyage:
export VOYAGE_API_KEY="<your secret key>"Você pode obter os embeddings usando o pacote Python voyageai oficial ou requisiçõ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 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 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 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 da Voyage.
Você também pode obter embeddings fazendo requisições à API HTTP da Voyage. Por exemplo, você pode enviar uma requisiçã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": ["Sample text 1", "Sample text 2"],
"model": "voyage-4"
}'A resposta que você receberá é 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 Voyage.
Os embeddings da Voyage estão disponíveis no AWS Marketplace. Instruções para acessar a Voyage na AWS estão disponíveis na documentação do AWS Marketplace da Voyage.
O breve exemplo a seguir mostra como usar embeddings.
Suponha que você tenha um pequeno corpus de seis documentos para 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()
# Gere os embeddings dos documentos
doc_embds = vo.embed(documents, model="voyage-4", input_type="document").embeddingsOs 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 embedding.
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 do Voyage são normalizados para comprimento 1, portanto o produto escalar
# e a similaridade de cosseno são equivalentes.
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. Mais especificações podem ser encontradas em Biblioteca Python da Voyage.
A saída seria o 5º 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 cookbooks sobre como fazer RAG com embeddings, incluindo bancos de dados vetoriais, confira o cookbook de RAG.
Visite a página de preços da Voyage para obter os detalhes de preços mais atualizados.
Was this page helpful?