全部產品
Search
文件中心

Cloud Monitor:dedup-semantic(語義去重)

更新時間:May 01, 2026

精確去重和近似去重無法識別"表述不同但含義相同"的文本(例如"今天天氣怎麼樣"與"今日氣候如何")。dedup-semantic 節點通過 Embedding 模型將文本映射為向量,比較向量距離判定語義相似性,去除語義重複的記錄。

工作原理與適用情境

dedup-semantic 對指定欄位計算 Embedding 向量,將向量距離在閾值以內的記錄歸為語義重複簇,每簇保留一條代表性記錄。

適用情境

  • 表述不同但語義相同的文本去重。

  • 多語言情境下的跨語言語義去重。

  • 高品質 AI 訓練資料集的精細化去重。

  • 通常作為 精確去重近似去重 之後的最後一道去重工序。

節點配置

{
  "id": "node_1",
  "type": "dedup-semantic",
  "parameters": {
    "field": "<欄位名>",
    "threshold": "<距離閾值>",
    "model": "<模型名>",
    "output": "<輸出資料行列表>",
    "global": true,
    "workspace": "<工作空間>",
    "dataset": "<資料集>",
    "column_name": "<Dataset列名>"
  }
}

參數說明

參數

類型

必填

預設值

說明

field

String

去重依據的欄位名,須為文本類型。

threshold

String

"0.1"

向量距離閾值,取值範圍 0~1,數值越小越嚴格。

model

String

"sls-multilang-600m-i32k-o1024"

Embedding 模型名稱。

output

String

*

節點輸出資料行,多個列名以逗號分隔。*(預設)表示保留全部列(含擴充列)。指定列名時僅輸出資料行出的列。

global

Boolean

false

是否開啟全域去重。設定為 true 時,節點與 Dataset 中的歷史資料進行跨批次去重。

workspace

String

條件必填

Dataset 所在工作空間。當 globaltrue 時必填。

dataset

String

條件必填

Dataset 名稱。當 globaltrue 時必填。

column_name

String

field 相同

Dataset 中語義去重的列名。僅在全域去重模式下生效,用於指定 Dataset 中與 field 對應的列。

閾值選擇建議

閾值

嚴格程度

說明

"0.05"

非常嚴格

僅過濾幾乎同義的表述。

"0.1"

推薦預設

適合大多數語義去重情境。

"0.15" ~ "0.2"

較寬鬆

可能誤刪相關但不同義的文本。

"0.3" 及以上

過於寬鬆

不推薦,容易造成大量有效資料被誤刪。

輸入和輸出

輸入要求

  • 接收上遊節點輸出的任意列資料。

  • 要求資料中包含 field 參數指定的欄位,且該欄位為文本類型。

輸出資料行

列名

類型

來源

說明

output 指定列

原始類型

透傳

* 表示保留全部原始輸入列。

__dedup_emb

array(double)

新增

文本 Embedding 向量。可被下遊 semantic-cluster 節點直接複用,避免重複計算。

__dedup_rid

bigint

新增

批內行標識,供內部使用。

行數變化

M -> N(M >= N)。語義相似的記錄歸為一簇,每簇保留一條,輸出行數小於或等於輸入行數。

效果預覽

以下樣本展示 field = "question"threshold = "0.1" 時的去重效果。

處理前(5 條)

question

input

output

什麼是機器學習?

請解釋

機器學習是...

機器學習的定義是什嗎?

概述

ML是一種通過資料訓練...

如何入門Python編程?

指南

推薦從官方教程開始...

Python零基礎怎麼學?

入門

建議先學基礎文法...

什麼是深度學習?

簡述

深度學習是機器學習的子集...

處理後(3 條)

question

input

output

__dedup_emb

__dedup_rid

什麼是機器學習?

請解釋

機器學習是...

[0.12, -0.34, ...]

1

如何入門Python編程?

指南

推薦從官方教程開始...

[0.56, 0.78, ...]

3

什麼是深度學習?

簡述

深度學習是機器學習的子集...

[-0.11, 0.45, ...]

5

"什麼是機器學習?"與"機器學習的定義是什嗎?"語義等價(向量距離小於 0.1),歸為一簇保留一條;"如何入門Python編程?"與"Python零基礎怎麼學?"同理。5 條資料去重後保留 3 條。__dedup_emb 列可供下遊 semantic-cluster 節點直接複用。

使用樣本

樣本一:批內語義去重

對當前批次內的 question 欄位進行語義去重,使用預設閾值 "0.1"

{
  "id": "n4",
  "type": "dedup-semantic",
  "parameters": {
    "field": "question",
    "threshold": "0.1"
  }
}

樣本二:全域語義去重

開啟全域去重,與 Dataset 中的歷史向量進行跨批次語義比對。

{
  "id": "n4",
  "type": "dedup-semantic",
  "parameters": {
    "field": "question",
    "threshold": "0.1",
    "global": true,
    "workspace": "my-ws",
    "dataset": "my-ds"
  }
}

樣本三:三級去重完整管道

按照 精確去重 -> 近似去重 -> 語義去重的順序逐級去重。前置精確和近似去重可大幅減少語義去重的輸入資料量,降低 Embedding 計算成本。

{
  "nodes": [
    {
      "id": "n1",
      "type": "project",
      "parameters": {
        "question": "a",
        "input": "b",
        "output": "c"
      }
    },
    {
      "id": "n2",
      "type": "dedup-exact",
      "parameters": {
        "field": "question"
      }
    },
    {
      "id": "n3",
      "type": "dedup-fuzzy",
      "parameters": {
        "field": "question",
        "threshold": "3",
        "global": true,
        "workspace": "my-ws",
        "dataset": "my-ds"
      }
    },
    {
      "id": "n4",
      "type": "dedup-semantic",
      "parameters": {
        "field": "question",
        "threshold": "0.1",
        "global": true,
        "workspace": "my-ws",
        "dataset": "my-ds"
      }
    }
  ]
}

樣本四:自訂 Embedding 模型

指定 text-embedding-v3 模型,設定更嚴格的閾值 "0.05",通過 column_name 顯式指定 Dataset 中的列名。

{
  "id": "n4",
  "type": "dedup-semantic",
  "parameters": {
    "field": "question",
    "threshold": "0.05",
    "model": "text-embedding-v3",
    "global": true,
    "workspace": "my-ws",
    "dataset": "my-ds",
    "column_name": "question"
  }
}

使用建議與邊界行為

使用建議

重要

語義去重需要 GPU 推理計算 Embedding,計算成本較高。建議在 dedup-exactdedup-fuzzy 之後使用,前置去重可大幅減少輸入資料量。推薦管道順序:dedup-exact -> dedup-fuzzy -> dedup-semantic

  • 預設閾值 "0.1" 適合大多數情境,數值越小越嚴格。

  • __dedup_emb 擴充列可供下遊 semantic-cluster 節點直接複用,避免重複計算 Embedding。

  • 全域去重適用於增量入庫情境,需確保 Dataset 已開啟向量索引。

  • 無需在 dedup-semantic 前單獨調用 embedding 節點,該運算元內部已包含 Embedding 產生邏輯。

邊界與異常

情境

行為

field 缺失

校正失敗,Pipeline 不會啟動。

threshold 超出 [0, 1] 範圍

校正失敗,Pipeline 不會啟動。

globaltrue 但缺少 workspacedataset

校正失敗,Pipeline 不會啟動。

Embedding 模型不可用

運行時報錯。

field 欄位值為 NULL

該行不參與去重,不出現在輸出中。

輸入資料為空白

正常返回空結果集。