VoyageAI by MongoDB: voyage-4-large
voyage-4-large 是 Voyage AI 用於通用及多語言檢索的混合專家文字嵌入模型。向量共用 Voyage 4 家族空間,讓 Large 產生的語料庫嵌入可透過同家族其他模型的相容查詢嵌入進行搜尋。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
voyage-4-large 是 Voyage AI 在 Voyage 4 系列中的旗艦文字嵌入模型。它將來源段落與查詢表示為數值向量,用於通用與多語言檢索。兩項特色是混合專家模型設計,以及 voyage-4-large、voyage-4、voyage-4-lite 與 voyage-4-nano 共用的嵌入空間。
共用空間:語料庫與查詢可分別選擇模型
製造商描述了非對稱檢索:文件可使用 voyage-4-large 建立嵌入,查詢向量則由另一個 Voyage 4 系列模型準備。例如,以 Large 表示的語料庫可用 voyage-4 查詢搜尋。這讓搜尋兩端能選不同模型,同時維持在文件記載的相容空間中。
因此,實際資料集可以用 Large 準備穩定的文件段落,再獨立選擇查詢端模型。文件在建立或更新語料庫時建立嵌入,查詢則在使用者搜尋時向量化。系列公告描述,在相容系列內更換查詢模型時,不必只為這項變更重新向量化整個文件語料庫。請讓要比較的向量維持相同維度,並採用搜尋系統能共同解讀的表示方式。
混合專家嵌入設計
稠密前饋層會讓每個詞元經過完整參數集處理。voyage-4-large 所述的 MoE 方法使用路由器與專家前饋網路,選擇處理各詞元的專家。這將模型總容量與特定詞元啟用的參數區分開來。Voyage 表示此模型的 MoE 設計採 top-k 路由,啟用比例為 1/10。
製造商的技術說明也描述兩項開發選擇。專家容量會影響超額詞元是否經殘差路徑繞過專家層;團隊選擇可行的最大容量係數,以避免檢索品質損失。在最後訓練階段,先固定路由器參數再合併模型,讓來源模型間的插值不會改變已學到的專家選擇路由。這些是模型準備的特性,與準備輸入時的文字長度或截斷設定不同。
維度與輸出表示
官方模型表指定 32,000 詞元上下文視窗,可選 256、512、1024 與 2048 維嵌入,預設為 1024 維。此系列利用 Matryoshka 學習建立巢狀表示大小,並支援量化選項:32 位元浮點數、有號或無號 8 位元整數,以及打包的二進位輸出。
二進位輸出中,每個位元組包含八個嵌入位元,所以回傳位元組清單的長度是選定維度的八分之一。請將維度與資料型別選擇和索引一起保存,並使用支援該表示的比較方法。較小或壓縮的向量會改變搜尋使用的表示;在資料集採用前,先以實際問題評估回傳的相關段落。
準備文件與查詢輸入
Voyage 建議語料庫段落採用 document 角色,搜尋措辭採用 query 角色。角色選項會在嵌入前加上對應的檢索指令。請保留段落中有用的標題、條件與來源位置,再將回傳向量連同原文與穩定識別碼儲存。
技術知識資料集中,詢問失敗模式的問題應導向描述該模式及相關條件的段落。跨語言文件集請保留來源語言,並以使用者實際搜尋的問題與術語評估。此發布涵蓋技術文件、對話、長文件、程式碼、法律、金融與網頁文字等檢索資料。嵌入找出候選資料,後續重排序或回答階段再使用原文。
上下文、批次與截斷限制
製造商目前的指南允許 voyage-4-large 每次請求最多 1,000 個字串、合計 120,000 個輸入詞元。這與 voyage-4 列出的批次額度不同,但兩者每篇文字的視窗都是 32,000 詞元。預設截斷會縮短超長輸入使其符合視窗;停用截斷後,超長文字會回傳錯誤。
請刻意選擇含有答案的段落邊界,避免長來源在尾端截斷時失去重要限定條件。回傳搜尋結果時保留來源關聯,並檢查實際候選文字,不要把向量接近當成內容已驗證。共用空間相容性適用於文件記載的 Voyage 4 文字系列;上下文化的分塊處理、圖片/影片嵌入及後來的模型版本,仍各有專屬流程。
Ailoot Ultra · 嵌入向量 POST /v1/embeddings voyageai/voyage-4-large
voyageai/voyage-4-large入門
voyage-4-large 是 Voyage AI 用於通用及多語言檢索的混合專家文字嵌入模型。向量共用 Voyage 4 家族空間,讓 Large 產生的語料庫嵌入可透過同家族其他模型的相容查詢嵌入進行搜尋。
- 接受的輸入
- 文字 · token_ids
- 結果
- embedding
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 嵌入向量 POST /v1/embeddings
- 輸入
text,token_ids- 輸出
embedding- 上下文
- 32,000 tokens
- 輸出格式
- json
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 voyageai/voyage-4-large | 預設值— |
欄位input | 類型string|string[]|integer[]|integer[][] | 要求必填 | 值與限制 項目數下限: 1 條件: 批次不得為空,且各項目類型須一致。Token ID 須為非負整數。 輸入額度: 最大值: 32,000 · 文字單位: UTF8 位元組 · Token 單位: token 陣列元素 | 預設值— |
欄位encoding_format | 類型string | 要求選填 | 值與限制 float | 預設值float |
欄位dimensions | 類型integer | 要求不支援 | 值與限制 最小值: 1 | 預設值— |
欄位user | 類型json_value | 要求選填 | 值與限制 條件: 來源允許此 JSON 中繼資料欄位;確切的上游語意依模型而異。 | 預設值— |
欄位session_id | 類型json_value | 要求選填 | 值與限制 條件: 來源允許此 JSON 中繼資料欄位;確切的上游語意依模型而異。 | 預設值— |
欄位trace | 類型json_value | 要求選填 | 值與限制 條件: 來源允許此 JSON 中繼資料欄位;確切的上游語意依模型而異。 | 預設值— |
欄位provider | 類型object | 要求選填 | 值與限制 條件: provider.options 遭拒絕 | 預設值— |
輸入素材組合
text_to_embedding
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數content_type | 規格application/json |
參數required | 規格model, input |
參數input_shapes | 規格string, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[] |
參數encoding_format | 規格float |
參數dimensions_override | 規格false |
參數max_input_budget_units | 規格32000 |
參數multimodal_objects | 規格false |
參數material_types | 規格text, token_ids |
生命週期: synchronous_json
保留每個向量的索引與維度。
即使模型名稱標示為多模態,此指定路徑也不接受圖片物件。
方案
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 標準費率 選取快速模式時
- flex 模式
- 標準費率 選取 flex 模式時
- 最高推理強度
- 標準費率 最高推理強度採用 default 調整值時
Ailoot 費率
各設定的價格
| 設定 | 費率表 | 費用 |
|---|---|---|
| 設定詞元基本費率 | 費率表基本費率 | 費用 輸入 · 輸入 Token $0.00024 / 1K Token 輸出 · 輸出 Token $0 / 1K Token 輸入 · 讀取快取 — / 1K Token 輸入 · 寫入快取 — / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
請求範例
Ailoot Ultra · 嵌入向量
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "voyageai/voyage-4-large", "input": ["First document", "Second document"]}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("data",[]): print(json.dumps({"index":x.get("index"),"embedding":x.get("embedding")}))
PY_RESULT
from openai import OpenAI
import os
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.embeddings.create(model='voyageai/voyage-4-large',input=["First document","Second document"])
print(result)
for item in result.data:print(item.index,item.embedding)
接收並儲存結果
Ailoot Ultra · 嵌入向量
json
保留所有已完成的結果
請保留所有完整傳回的回應、檔案與內容區塊。
保留每個向量及其索引。向量數量必須與輸入數量相同,且維度必須一致。
需要檢查原始回應時
此流程未引入嵌入向量任務端點。
回應欄位
| 欄位 | 類型 |
|---|---|
欄位object | 類型string |
欄位model | 類型string |
欄位data[].index | 類型integer |
欄位data[].embedding | 類型finite float[] |
欄位usage | 類型object |
錯誤與後續步驟
| 回應 | 條件 | 下一步 |
|---|---|---|
回應400 · invalid_request_error | 條件必要欄位、素材表示方式或參數值無效 | 下一步提出新的建立請求前,先修正指定欄位。 |
別名
模型別名
Ailoot Ultra voyageai/voyage-4-large
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
FAQ · VoyageAI by MongoDB: voyage-4-large
- 可以使用哪些輸入與結果?
POST /v1/embeddings·voyageai/voyage-4-large:text,token_ids→embedding- 請求使用哪些欄位?
POST /v1/embeddings·voyageai/voyage-4-large:model,input,encoding_format,provider- 適用哪些限制?
POST /v1/embeddings·voyageai/voyage-4-large:ctx:32000;input.budget.maximum:32000(UTF8 位元組);input.min_items:1