Qwen: Qwen3 Embedding 4B
Qwen3-Embedding-4B 將文字表示為語意向量,可用於多語言檢索、程式碼搜尋、分類與分群。這個 4B 模型支援 32K 詞元的序列長度,以及 32 至 2,560 維的自訂向量。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
Qwen3-Embedding-4B 是 Qwen 嵌入與重排序系列中的 4B 文字嵌入版本。它以密集型 Qwen3 基礎模型為基礎,將一段文字轉換為代表其意義的數值表徵。Qwen 列出的應用包括文字檢索、程式碼檢索、分類、分群與平行文本探勘。當應用程式需要尋找相關段落、將相似紀錄分組,或比較不同語言的文字時,可以使用這個模型。模型輸出的是嵌入向量,而非對話回覆或改寫後的文件。
這個指定版本的序列長度為 32K 個詞元,嵌入維度最高為 2,560。它透過 Matryoshka Representation Learning 支援 32 至 2,560 維的自訂輸出。選擇的向量長度會影響表徵的儲存與比較方式,因此同一個集合中的查詢向量與文件向量,應維持一致的長度。Qwen3-Embedding-8B 的模型規模不同,最高維度為 4,096;這個輸出大小與 8B 模型的身分,都不能套用到 4B 版本。既有索引也應維持自身一致的表徵設定。
開發團隊說明它支援超過 100 種語言,其中包含程式語言,並提供多語言、跨語言與程式碼檢索。例如,客服中心的搜尋可以比較使用者問題與多種語言撰寫的段落,再傳回主題相符的原始段落。程式碼搜尋則可以比較自然語言描述與相關函式及其文件。準備文字時,請保留有意義的標題、領域術語與識別碼,並維持每個已建立表徵的段落與來源之間的關聯,讓應用程式能顯示相符的資料。
Qwen3-Embedding-4B 能依指令調整表徵。Qwen 建議為每個查詢提供一句任務描述,依預期的檢索關係量身撰寫,並建議在多語言情境使用英語指令。直接使用模型的範例,在任務描述前放置 Instruct:,在查詢文字前放置 Query:。其中用於檢索的文件,編碼時不加入這段查詢指令。自行撰寫的實用指令,可以指定尋找能解釋已回報錯誤的文件段落,或尋找實作所述行為的原始碼片段。這會讓表徵朝向應用程式的問題調整,而不是要求模型撰寫答案。
官方範例會將查詢與文件文字編碼,使用餘弦相似度比較嵌入向量,並示範對最後一個詞元的隱藏狀態進行池化後再正規化。在這個較底層的範例中,輸入會依選定的 8,192 詞元設定截斷;文件記載的模型序列長度仍為 32K。處理長篇資料時,請先決定要為哪些段落建立表徵,並確認截斷不會在未察覺的情況下丟棄查詢所需的部分。儲存向量時,搭配穩定的來源參照,將準備好的查詢與集合比較,再依相似度順序傳回相關段落。
Qwen 的嵌入模型採用雙編碼器方式,獨立的重排序模型則使用交叉編碼器評估查詢與文件的配對。發布說明介紹了這些模組的搭配方式:先以嵌入向量找出初步候選項目,再由重排序模型細化順序。Qwen3-Embedding-4B 本身提供的是單一文字的表徵。它的向量不是重排序分數、已驗證的陳述,也不是生成的答案。若最終流程會根據檢索資料回答問題,所選的來源段落仍是交給後續階段使用的證據。
Ailoot Ultra · 嵌入向量 POST /v1/embeddings qwen/qwen3-embedding-4b
qwen/qwen3-embedding-4b入門
Qwen3-Embedding-4B 將文字表示為語意向量,可用於多語言檢索、程式碼搜尋、分類與分群。這個 4B 模型支援 32K 詞元的序列長度,以及 32 至 2,560 維的自訂向量。
- 接受的輸入
- 文字 · token_ids
- 結果
- embedding
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 嵌入向量 POST /v1/embeddings
- 輸入
text,token_ids- 輸出
embedding- 輸出格式
- json
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 qwen/qwen3-embedding-4b | 預設值— |
欄位input | 類型string|string[]|integer[]|integer[][] | 要求必填 | 值與限制 項目數下限: 1 條件: 批次不得為空,且各項目類型須一致。Token ID 須為非負整數。 輸入額度: 最大值: 32,768 · 文字單位: 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 | 規格32768 |
參數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": "qwen/qwen3-embedding-4b", "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='qwen/qwen3-embedding-4b',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 qwen/qwen3-embedding-4b
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
FAQ · Qwen: Qwen3 Embedding 4B
- 可以使用哪些輸入與結果?
POST /v1/embeddings·qwen/qwen3-embedding-4b:text,token_ids→embedding- 請求使用哪些欄位?
POST /v1/embeddings·qwen/qwen3-embedding-4b:model,input,encoding_format,provider- 適用哪些限制?
POST /v1/embeddings·qwen/qwen3-embedding-4b:input.budget.maximum:32768(UTF8 位元組);input.min_items:1