全部產品
Search
文件中心

Cloud Monitor:多樣性採樣

更新時間:May 01, 2026

多樣性採樣模板通過三級去重(精確、近似、語義)和語義聚類分組採樣,從海量 Agent 互動日誌中提取具有代表性的資料子集,用於構建評測資料集或訓練樣本。

業務情境

構建 AI Agent 評測資料集或訓練樣本時,直接隨機採樣容易被熱門問題主導,導致樣本分布偏斜。多樣性採樣模板通過三級去重和語義聚類採樣解決這一問題:

  • 消除冗餘:三級去重(精確、近似、語義)逐級過濾重複資料,計算代價遞增但前置步驟已大幅削減資料量。

  • 保證多樣性:語義聚類將資料按含義分組,每組採樣確保覆蓋不同語義類別。

  • 控制規模:通過聚類簇數和每簇採樣量精確控制輸出規模。

適用人群:

  • 演算法工程師:構建訓練資料集、選取微調樣本。

  • 評測工程師:構建評測 Benchmark、執行版本對比評測。

  • 產品經理:瞭解使用者問題的語義分布。

功能特性

特性

說明

三級去重

精確、近似、語義三級遞進過濾,計算代價遞增但資料量遞減,整體效率最優。

語義聚類

保證輸出樣本的語義多樣性,避免熱門問題主導採樣結果。

分層採樣

支援按分組維度進行定量或按比例採樣,確保樣本覆蓋各語義類別。

低成本語義處理

使用低成本向量語義產生,無需 LLM 調用,適合大規模語義計算。

Pipeline 流程

多樣性採樣 Pipeline 包含以下運算元,按順序依次執行:

順序

運算元

階段

說明

1

project(欄位選取)

欄位選取

從原始日誌中提取所需欄位,如使用者輸入、模型輸出、模型名稱等。

2

extend(欄位擴充)

欄位擴充

通過Regex從輸入欄位中提取使用者提問原文。

3

dedup-exact(精確去重)

精確去重

移除完全重複的記錄,計算成本最低。

4

dedup-fuzzy(近似去重)

近似去重

移除字面相似的記錄,閾值越小越嚴格。

5

dedup-semantic(語義去重)

語義去重

移除語義重複的記錄,同時產生 __dedup_emb 向量列供下遊複用。

6

semantic-cluster(語義聚類)

語義聚類

複用 __dedup_emb 向量列,將資料聚為指定數量的簇。

7

sample(隨機採樣)

分組採樣

__cluster_id 分組,每簇採樣指定數量的記錄。

完整配置

多樣性採樣模板支援 API(JSON)配置方式。更多資訊,請參見資料處理(Pipeline)

API 配置(JSON)

以下為完整的 Pipeline JSON 配置樣本,需要將 source 中的日誌庫資訊替換為實際值。

{
  "name": "diversity_sampling",
  "description": "多樣性採樣:三級去重 + 語義聚類 + 分組採樣,構建代表性評測資料集",
  "source": {
    "type": "logstore",
    "logstore": {
      "project": "your-project",
      "logstore": "your-agent-logstore",
      "query": "serviceName:your-agent-service and *"
    }
  },
  "pipeline": {
    "nodes": [
      {
        "id": "select_fields",
        "type": "project",
        "parameters": {
          "input": "attributes.input.value",
          "output": "attributes.output.value",
          "model": "attributes.gen_ai.model_name",
          "trace_id": "traceId",
          "span_id": "spanId"
        }
      },
      {
        "id": "extract",
        "type": "extend",
        "parameters": {
          "question": "regexp_extract(input, '(?s)使用者提問原文:\\s*(.*?)\\s*,\\s*\"files\"', 1)"
        }
      },
      {
        "id": "exact_dedup",
        "type": "dedup-exact",
        "parameters": { "field": "question" }
      },
      {
        "id": "fuzzy_dedup",
        "type": "dedup-fuzzy",
        "parameters": { "field": "question", "threshold": "3" }
      },
      {
        "id": "semantic_dedup",
        "type": "dedup-semantic",
        "parameters": { "field": "question", "threshold": "0.1" }
      },
      {
        "id": "cluster",
        "type": "semantic-cluster",
        "parameters": { "field": "__dedup_emb", "n": 100 }
      },
      {
        "id": "sample_per_cluster",
        "type": "sample",
        "parameters": { "n": 1, "by": "__cluster_id" }
      }
    ]
  },
  "sink": {
    "type": "dataset",
    "dataset": {
      "workspace": "your-workspace",
      "dataset": "agent_diverse_sample"
    }
  },
  "executePolicy": {
    "mode": "run_once",
    "run_once": {
      "fromTime": 1735689600,
      "toTime": 1735776000
    }
  }
}

參數說明

需要替換的參數:

參數

說明

source.logstore.project

Log Service Project 名稱。

source.logstore.logstore

儲存 Agent 互動日誌的 Logstore 名稱。

source.logstore.query

資料過濾查詢條件,用於篩選目標 Agent 服務的日誌。

sink.dataset.workspace

輸出資料集所在的工作空間名稱。

sink.dataset.dataset

輸出資料集名稱,採樣結果將寫入該資料集。

executePolicy.run_once.fromTime

資料處理的起始時間戳記(Unix 秒)。

executePolicy.run_once.toTime

資料處理的結束時間戳記(Unix 秒)。

以下為各運算元的關鍵參數。完整參數列表請參見對應運算元文檔。

運算元

參數

說明

本模板取值

dedup-exact

field

去重依據欄位。

question

dedup-fuzzy

field

去重依據欄位。

question

threshold

編輯距離閾值,值越小越嚴格。

3

dedup-semantic

field

去重依據欄位。

question

threshold

語義相似性閾值。0.05 極嚴格(僅移除幾乎相同的內容),0.3 較寬鬆(移除相關但不同的內容)。

0.1

semantic-cluster

field

向量列名。複用 dedup-semantic 產生的 __dedup_emb 列,避免重複 Embedding 計算。

__dedup_emb

n

聚類簇數,決定最終輸出的最巨量資料量上限。

100

sample

n

每組採樣數量。

1

by

分組欄位。按 semantic-cluster 產生的 __cluster_id 分組採樣。

__cluster_id

運行結果

以 1000 條原始 Agent 互動日誌為例,經過多樣性採樣 Pipeline 處理後的資料量變化如下:

處理前(1000 條原始日誌):

語義類別

原始數量

典型問題

錯誤記錄檔查詢

350

幫我查錯誤記錄檔、查一下報錯、看看有沒有error…

效能分析

280

統計延遲、分析慢查詢、看下RT分布…

流量統計

200

統計PV、看下訪問量、統計UV…

配置查詢

100

查看配置、看下參數、擷取設定…

安全審計

70

誰在訪問、查看登入記錄、異常IP…

處理後(100 條多樣性採樣):

步驟

資料量

說明

未經處理資料

1000 條

精確去重後

650 條

移除完全重複

近似去重後

400 條

移除字面相似

語義去重後

250 條

移除語義重複

聚類 100 簇

250 條

每條標註 __cluster_id

每簇採樣 1 條

100 條

各語義類別均勻覆蓋

說明

1000 條未經處理資料經處理後輸出 100 條,保留率 10%,但語義覆蓋率接近 100%。最終輸出量由 semantic-cluster 的簇數 nsample 的每簇採樣量 n 共同決定。

定製建議

可根據實際業務情境調整以下參數:

定製點

說明

語義去重閾值

dedup-semanticthreshold 參數:0.05 極嚴格(僅移除幾乎相同的內容),0.3 較寬鬆(可能將相關但不同的問題誤判為重複)。

聚類簇數

semantic-clustern 參數:按需調整(如 50 簇或 200 簇),簇數越多輸出量越大。

每簇採樣量

samplen 參數:設為 3 可擷取更多樣本。

按比例採樣

samplen 參數替換為 ratio,例如 "ratio": 0.5 表示每簇取 50%。

跨批次全域去重

dedup-fuzzydedup-semantic 添加 globalworkspacedataset 參數,實現跨批次去重。

追加 AI 處理

sample 後追加 llm-call 運算元,對採樣結果進行評估或標註。

注意事項

說明

使用多樣性採樣模板時,注意以下事項:

  • 如果資料量小於聚類簇數 n,部分簇可能為空白,實際輸出量將小於 n

  • dedup-semanticthreshold 值過大可能將相關但不同的問題誤判為重複,建議從較小值開始逐步調整。

  • semantic-cluster 必須在 dedup-semantic 之後執行,否則 __dedup_emb 向量列不存在。如果需要獨立聚類(不依賴去重),在 dedup-fuzzy 後添加 embedding 運算元產生向量列,再使用 semantic-cluster