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 você deve 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 legal e de 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 Python oficial voyageai 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, consulte 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, consulte a documentação do Voyage.
Os embeddings do Voyage estão disponíveis no AWS Marketplace. As instruções para acessar o Voyage no AWS estão disponíveis na documentação do Voyage AWS Marketplace.
O seguinte exemplo breve 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 o Voyage para converter cada documento 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 permitem que você faça busca semântica / recuperação no espaço vetorial. Dado um exemplo de consulta,
query = "When is Apple's conference call scheduled?"Em seguida, converta-o em um embedding e conduza 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 input_type="document" e input_type="query" são usados para incorporar o documento e a consulta, respectivamente. Mais especificações podem ser encontradas na seção do pacote Python do 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 do Voyage para os detalhes de preços mais atualizados.
Was this page helpful?