BAAI: bge-m3
BAAI BGE-M3 支援超過 100 種語言的稠密、稀疏詞彙與多向量檢索。其稠密輸出具有 1024 個維度,8192 個 token 的視窗可容納從句子到較長文件的內容,且不要求提供查詢指令。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
BGE-M3 是 BAAI 推出的多語言檢索模型,圍繞三種多功能性設計:多種檢索功能、多種語言以及不同的輸入長度。開發者的文件記載它支援超過一百種語言,輸入長度最多 8192 個 token。其統一模型可提供密集向量、稀疏詞彙權重與多向量表示,讓檢索設計能選用或結合不只一種證據。
三種檢索表示
密集模式將文字對應為單一的 1024 維向量,支援比較查詢與段落所代表的語意。稀疏模式為文字中出現的 token 指派權重,用於詞彙比對。多向量模式以多個向量表示一段文字,並採用 ColBERT 式的互動方式,以更細的層級比較查詢與文件。
這些輸出在搜尋索引中扮演不同角色。密集向量為段落提供單一表示;稀疏的 token 權重對應表保留詞彙訊號;多個向量則提供另一種比較結構。開發者的範例展示了如何回傳所選的表示,並為文字配對計算分數。請將所選的表示與評分方法視為檢索任務中經過刻意設計的一環。
多語言文字與輸入準備
BGE-M3 不需要加入早期 BGE 模型使用的檢索指令。請直接準備查詢與實際的來源段落。多語言知識庫可以讓每個段落保留其原始語言,並附上文件識別碼與語系。檢查結果時,請使用符合預期語言組合的真實使用者問題。
實際任務之一是搜尋以多種語言保存的政策說明、產品說明或技術文件。請保留對問題有意義的名稱、型號與術語。詞彙表示有助於維持這些詞語的比對,密集表示則提供語意證據。檢索到的段落應包含讀者可檢視的文字與來源位置。
較長的文件與切分粒度
8192 個 token 的輸入視窗,讓模型能表示從短句到較長文件的各種素材。請依搜尋應回傳的答案來選擇粒度。完整章節可以保留定義及其例外;較小的段落則能讓特定操作說明更容易被找到。長視窗讓這些選擇成為可能,但向量始終與實際編碼的素材相對應。
讓每個段落與其父文件及版本保持連結。對於篇幅較長的報告,請保留相關圖表或結論的標題與周邊說明。當證據位於內文時,不要只依賴搜尋結果的標題。若來源有所變動,請保留足夠的中繼資料,以更新對應的檢索表示。
混合分數與下游用途
開發者建議先進行混合檢索,再接續獨立的重新排序階段。其範例會計算密集、稀疏與多向量分數,並組成加權組合。請依文件集的問題與詞彙選擇組合方式;範例中顯示的權重並不是適用於所有語料庫的通用設定。
實用的結果是一組候選集,其來源段落仍可取用,並記錄所用的表示與排序方法。獨立的重新排序模型可以精煉這組候選,獨立的文字生成階段則可以運用段落內容。BGE-M3 的稀疏與多向量功能是開發者提供的模型模式;密集嵌入、詞彙輸出與配對分數是不同的產出,而不是可互換的陣列。
Ailoot Ultra · 嵌入向量 POST /v1/embeddings baai/bge-m3
baai/bge-m3入門
BAAI BGE-M3 支援超過 100 種語言的稠密、稀疏詞彙與多向量檢索。其稠密輸出具有 1024 個維度,8192 個 token 的視窗可容納從句子到較長文件的內容,且不要求提供查詢指令。
- 接受的輸入
- 文字 · token_ids
- 結果
- embedding
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 嵌入向量 POST /v1/embeddings
- 輸入
text,token_ids- 輸出
embedding- 上下文
- 8,194 tokens
- 輸出格式
- json
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 baai/bge-m3 | 預設值— |
欄位input | 類型string|string[]|integer[]|integer[][] | 要求必填 | 值與限制 項目數下限: 1 條件: 批次不得為空,且各項目類型須一致。Token ID 須為非負整數。 輸入額度: 最大值: 8,194 · 文字單位: 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 | 規格8194 |
參數multimodal_objects | 規格false |
參數material_types | 規格text, token_ids |
生命週期: synchronous_json
保留每個向量的索引與維度。
即使模型名稱標示為多模態,此指定路徑也不接受圖片物件。
方案
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 標準費率 選取快速模式時
- flex 模式
- 標準費率 選取 flex 模式時
- 最高推理強度
- 標準費率 最高推理強度採用 default 調整值時
Ailoot 費率
各設定的價格
| 設定 | 費率表 | 費用 |
|---|---|---|
| 設定詞元基本費率 | 費率表基本費率 | 費用 輸入 · 輸入 Token $0.00004 / 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": "baai/bge-m3", "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='baai/bge-m3',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 baai/bge-m3
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
FAQ · BAAI: bge-m3
- 可以使用哪些輸入與結果?
POST /v1/embeddings·baai/bge-m3:text,token_ids→embedding- 請求使用哪些欄位?
POST /v1/embeddings·baai/bge-m3:model,input,encoding_format,provider- 適用哪些限制?
POST /v1/embeddings·baai/bge-m3:ctx:8194;input.budget.maximum:8194(UTF8 位元組);input.min_items:1