embedding 節點將文字欄位映射為高維稠密向量,用於語義檢索、聚類和向量索引構建等下遊任務。本文介紹 embedding 節點的配置參數、輸入輸出格式和使用樣本。
功能說明
embedding 節點調用 AI 模型,將文字欄位映射為高維稠密向量。每條記錄獨立計算,不改變行數。
適用情境:
為semantic-cluster、sample等下遊節點提供向量輸入。
構建 Dataset 中的 Embedding 列(如
question_embedding)。構建向量搜尋索引。
節點配置
在 Pipeline JSON 中,embedding 節點的基本配置如下。
{
"id": "node_1",
"type": "embedding",
"parameters": {
"field": "<欄位名>",
"model": "<模型名>",
"as": "<輸出資料行名>",
"output": "<輸出資料行列表>"
}
}參數說明
參數 | 類型 | 是否必選 | 預設值 | 說明 |
| String | 是 | 無 | 待向量化的文字欄位名。 |
| String | 否 |
| Embedding 模型名稱,預設適合多語言通用情境。 |
| String | 否 |
| 輸出 Embedding 列名,預設在原欄位名後拼接 |
| String | 否 |
| 輸出資料行,多列以英文逗號分隔。 |
輸入與輸出
輸入要求
上遊節點輸出的任意列資料。
必須包含
field參數指定的欄位,且欄位類型為文本。
輸出說明
列名 | 類型 | 來源 | 說明 |
| - | 透傳或新增 |
|
| array(double) | 新增 | 文本 Embedding 向量。 |
行數變化:1:1 變換,不增減行數。
field 欄位值為 NULL 的行將被過濾,不出現在輸出中。
效果預覽
處理前(3 條記錄):
question | input | output |
什麼是機器學習? | 請解釋 | 機器學習是... |
如何學習Python? | 入門 | 推薦從官方教程... |
什麼是深度學習? | 簡述 | 深度學習是... |
處理後(3 條記錄),field = "question":
question | input | output | question_embedding |
什麼是機器學習? | 請解釋 | 機器學習是... | [0.12, -0.34, 0.56, ...] |
如何學習Python? | 入門 | 推薦從官方教程... | [0.78, 0.23, -0.11, ...] |
什麼是深度學習? | 簡述 | 深度學習是... | [-0.45, 0.67, 0.89, ...] |
行數不變(3 到 3),每行新增 Embedding 向量列。列名預設為 {field}_embedding,可通過 as 參數自訂。
使用樣本
樣本一:基礎向量化
對 question 欄位產生 Embedding,輸出資料行名自動命名為 question_embedding。
{
"id": "n3",
"type": "embedding",
"parameters": {
"field": "question"
}
}樣本二:自訂輸出資料行名和模型
對 content 欄位產生 Embedding,自訂輸出資料行名為 content_vec,使用 text-embedding-v3 模型。
{
"id": "n3",
"type": "embedding",
"parameters": {
"field": "content",
"as": "content_vec",
"model": "text-embedding-v3"
}
}樣本三:Pipeline 組合(去重後向量化)
先精確去重,再產生 Embedding。前置去重可顯著減少向量化計算量。
{
"nodes": [
{ "id": "n1", "type": "project", "parameters": { "question": "a", "output": "c" } },
{ "id": "n2", "type": "dedup-exact", "parameters": { "field": "question" } },
{ "id": "n3", "type": "embedding", "parameters": { "field": "question" } }
]
}樣本四:多欄位分別向量化
串聯多個 embedding 節點實現多欄位向量化,每次調用僅處理一個欄位。
{
"nodes": [
{ "id": "n1", "type": "project", "parameters": { "question": "a", "input": "b", "output": "c" } },
{ "id": "n2", "type": "embedding", "parameters": { "field": "question" } },
{ "id": "n3", "type": "embedding", "parameters": { "field": "output", "as": "output_embedding" } }
]
}注意事項
推薦用法
在去重或採樣之後使用 embedding 節點。Embedding 產生為遠程 GPU 推理調用,前置降量可顯著減少計算成本。
如果上遊已有 dedup-semantic 節點,可直接使用其
__dedup_emb擴充列作為向量輸入,無需重複調用 embedding 節點。預設模型
sls-multilang-600m-i32k-o1024適合多語言通用情境。通過
as參數自訂輸出資料行名,避免與已有列衝突。NULL 值的行會被過濾。如需保留,在上遊先做 NULL 值處理。
邊界與異常
情境 | 行為 |
| 校正失敗,Pipeline 無法運行。 |
| 該行被過濾,不出現在輸出中。 |
模型名稱無效 | 運行時報錯。 |
文本過長超出模型限制 | 由模型決定(截斷或報錯)。 |
| 運行時報錯。 |
輸入資料為空白 | 正常返回空結果集。 |