在選擇嵌入提供商時,您可以根據自己的需求和偏好考慮以下幾個因素:
Anthropic 不提供自己的嵌入模型。Voyage AI 是一家嵌入提供商,擁有涵蓋上述所有考量因素的多樣化選項和功能。
Voyage AI 製作最先進的嵌入模型,並為金融和醫療保健等特定產業領域提供客製化模型,或為個別客戶提供專屬的微調模型。
本指南的其餘部分針對 Voyage AI,但您應該評估各種嵌入供應商,以找到最適合您特定使用案例的選擇。
Voyage 建議使用以下文字嵌入模型:
Voyage 4(最新一代)
| 模型 | 上下文長度 | 嵌入維度 | 說明 |
|---|---|---|---|
voyage-4-large | 32,000 | 1024(預設)、256、512、2048 | 最佳的通用和多語言檢索品質。詳情請參閱部落格文章。 |
voyage-4 | 32,000 | 1024(預設)、256、512、2048 | 針對通用和多語言檢索品質進行最佳化。在品質和效率之間取得平衡。詳情請參閱部落格文章。 |
voyage-4-lite | 32,000 | 1024(預設)、256、512、2048 | 針對延遲和成本進行最佳化。詳情請參閱部落格文章。 |
voyage-4-nano | 32,000 | 1024(預設)、256、512、2048 | 開放權重模型(Apache 2.0 授權),可在 Hugging Face 上取得。詳情請參閱部落格文章。 |
前一代
| 模型 | 上下文長度 | 嵌入維度 | 說明 |
|---|---|---|---|
voyage-3-large | 32,000 | 1024(預設)、256、512、2048 | 最佳的通用和多語言檢索品質。詳情請參閱部落格文章。 |
voyage-3.5 | 32,000 | 1024(預設)、256、512、2048 | 針對通用和多語言檢索品質進行最佳化。詳情請參閱部落格文章。 |
voyage-3.5-lite | 32,000 | 1024(預設)、256、512、2048 | 針對延遲和成本進行最佳化。詳情請參閱部落格文章。 |
voyage-code-3 | 32,000 | 1024(預設)、256、512、2048 | 針對程式碼檢索進行最佳化。詳情請參閱部落格文章。 |
voyage-finance-2 | 32,000 | 1024 | 針對金融檢索和 RAG 進行最佳化。詳情請參閱部落格文章。 |
voyage-law-2 | 16,000 | 1024 | 針對法律和長上下文檢索及 RAG 進行最佳化。同時也提升了所有領域的效能。詳情請參閱部落格文章。 |
此外,建議使用以下多模態嵌入模型:
| 模型 | 上下文長度 | 嵌入維度 | 說明 |
|---|---|---|---|
voyage-multimodal-3.5 | 32,000 | 1024(預設)、256、512、2048 | 豐富的多模態嵌入模型,可將交錯的文字、圖片和影片向量化。包含影片支援,是首個生產級影片嵌入模型。詳情請參閱部落格文章。 |
voyage-multimodal-3 | 32,000 | 1024 | 豐富的多模態嵌入模型,可將交錯的文字和內容豐富的圖片(如 PDF 截圖、投影片、表格、圖表等)向量化。詳情請參閱部落格文章。 |
需要協助決定使用哪個文字嵌入模型嗎?請查看常見問題。
若要存取 Voyage 嵌入:
export VOYAGE_API_KEY="<your secret key>"您可以使用官方的 voyageai Python 套件或 HTTP 請求來取得嵌入,如下所述。
可以使用以下指令安裝 voyageai 套件:
pip install -U voyageai然後,您可以建立一個客戶端物件並開始使用它來嵌入您的文字:
import voyageai
vo = voyageai.Client()
# 這將自動使用環境變數 VOYAGE_API_KEY。
# 或者,您可以使用 vo = voyageai.Client(api_key="<your secret key>")
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 將是一個包含兩個嵌入向量的列表,每個向量包含 1024 個浮點數。執行上述程式碼後,兩個嵌入將會顯示在螢幕上:
[-0.013131560757756233, 0.019828535616397858, ...] # embedding for "Sample text 1"
[-0.0069352793507277966, 0.020878976210951805, ...] # embedding for "Sample text 2"在建立嵌入時,您可以為 embed() 函式指定其他幾個引數。
如需有關 Voyage Python 套件的更多資訊,請參閱 Voyage 文件。
您也可以透過請求 Voyage HTTP API 來取得嵌入。例如,您可以在終端機中透過 curl 指令發送 HTTP 請求:
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"
}'您將收到的回應是一個包含嵌入和 token 使用量的 JSON 物件:
{
"object": "list",
"data": [
{
"embedding": [-0.013131560757756233, 0.019828535616397858 /* ... */],
"index": 0
},
{
"embedding": [-0.0069352793507277966, 0.020878976210951805 /* ... */],
"index": 1
}
],
"model": "voyage-4",
"usage": {
"total_tokens": 10
}
}如需有關 Voyage HTTP API 的更多資訊,請參閱 Voyage 文件。
Voyage 嵌入可在 AWS Marketplace 上取得。在 AWS 上存取 Voyage 的說明可在 Voyage AWS Marketplace 文件中找到。
以下簡短範例展示如何使用嵌入。
假設您有一個包含六份文件的小型語料庫可供檢索
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.",
]首先,使用 Voyage 將每份文件轉換為嵌入向量
import voyageai
vo = voyageai.Client()
# 嵌入文件
doc_embds = vo.embed(documents, model="voyage-4", input_type="document").embeddings嵌入讓您能夠在向量空間中進行語義搜尋/檢索。給定一個範例查詢,
query = "When is Apple's conference call scheduled?"接下來,將其轉換為嵌入,並根據嵌入空間中的距離進行最近鄰搜尋,以找到最相關的文件。
import numpy as np
# 嵌入查詢
query_embd = vo.embed([query], model="voyage-4", input_type="query").embeddings[0]
# 計算相似度
# Voyage 嵌入向量已正規化為長度 1,因此點積
# 與餘弦相似度是相同的。
similarities = np.dot(doc_embds, query_embd)
retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])請注意,input_type="document" 和 input_type="query" 分別用於嵌入文件和查詢。更多規格說明可在 Voyage Python 函式庫中找到。
輸出將是第 5 份文件,它確實是與查詢最相關的文件:
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.如果您正在尋找關於如何使用嵌入進行 RAG(包括向量資料庫)的詳細 cookbook 集合,請查看 RAG cookbook。
請造訪 Voyage 的定價頁面以取得最新的定價詳情。
Was this page helpful?