Ao selecionar um provedor de embeddings, há vários fatores que você pode considerar dependendo de suas necessidades e preferências:
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 é Voyage AI.
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 resto 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.
Voyage recomenda usar os seguintes modelos de embedding de texto:
| Modelo | Comprimento do Contexto | Dimensão de 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 postagem 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 postagem do blog para detalhes. |
voyage-3.5-lite | 32.000 | 1024 (padrão), 256, 512, 2048 | Otimizado para latência e custo. Veja postagem do blog para detalhes. |
voyage-code-3 | 32.000 | 1024 (padrão), 256, 512, 2048 | Otimizado para recuperação de código. Veja postagem do blog para detalhes. |
voyage-finance-2 | 32.000 | 1024 | Otimizado para recuperação e RAG de finanças. Veja postagem do blog para detalhes. |
voyage-law-2 | 16.000 | 1024 | Otimizado para recuperação e RAG de legal e contexto longo. Também melhorou o desempenho em todos os domínios. Veja postagem do blog para detalhes. |
Além disso, os seguintes modelos de embedding multimodal são recomendados:
| Modelo | Comprimento do Contexto | Dimensão de 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 postagem do blog para detalhes. |
Precisa de ajuda para decidir qual modelo de embedding de texto usar? Confira as Perguntas Frequentes.
Para acessar embeddings do Voyage:
export VOYAGE_API_KEY="<your secret key>"Você pode obter os embeddings usando o pacote oficial voyageai Python ou solicitações HTTP, conforme descrito abaixo.
O pacote voyageai pode ser instalado usando o seguinte comando:
pip install -U voyageaiEntão, você pode criar um objeto cliente e começar a usá-lo para incorporar seus textos:
import voyageai
vo = voyageai.Client()
# This will automatically use the environment variable VOYAGE_API_KEY.
# Alternatively, you can use vo = voyageai.Client(api_key="<your secret key>")
texts = ["Sample text 1", "Sample text 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 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 do Voyage, veja a documentação do Voyage.
Você também pode obter embeddings solicitando a API HTTP do 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": ["Sample text 1", "Sample text 2"],
"model": "voyage-3.5"
}'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-3.5",
"usage": {
"total_tokens": 10
}
}
Para mais informações sobre a API HTTP do Voyage, veja a documentação do Voyage.
Os embeddings do Voyage estão disponíveis no AWS Marketplace. As instruções para acessar o Voyage na AWS estão disponíveis aqui.
Agora que sabemos como obter embeddings, vamos ver um breve exemplo.
Suponha que temos 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 usaremos o Voyage para converter cada um deles em um vetor de embedding
import voyageai
vo = voyageai.Client()
# Embed the documents
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. Dado um exemplo de consulta,
query = "When is Apple's conference call scheduled?"convertemos em um embedding e conduzimos 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
# Embed the query
query_embd = vo.embed(
[query], model="voyage-3.5", input_type="query"
).embeddings[0]
# Compute the similarity
# Voyage embeddings are normalized to length 1, therefore dot-product
# and cosine similarity are the same.
similarities = np.dot(doc_embds, query_embd)
retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])Observe que usamos input_type="document" e input_type="query" para incorporar o documento e a consulta, respectivamente. Mais especificações podem ser encontradas aqui.
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 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 do Voyage para obter os detalhes de preços mais atualizados.
Was this page helpful?