自动标注分类模板通过 LLM 对数据进行多维度结构化标注,替代人工完成大规模数据初标。本文介绍该模板的适用场景、Pipeline 配置和自定义方法。
适用场景
构建训练数据集、分析数据分布、挖掘 Bad Case 均依赖准确的数据标注。人工标注成本高、一致性差,难以覆盖大规模生产数据。
该模板通过 LLM 实现自动化多维度标注,适用于以下场景:
大规模自动标注:替代人工标注,批量为 Agent 交互日志添加多维度分类标签。
训练数据标签生成:为算法训练数据集自动生成意图分类、复杂度等级等结构化标签。
Bad Case 分类统计:按多个维度对问答记录进行分类,快速定位和统计异常分布。
模板特点
LLM 自动标注替代人工标注,标注成本可降低至人工的 1/10。
固定维度分类与自由标签结合,兼顾结构化统计和长尾特征捕获。
每个维度限定可选值范围,确保标注一致性,结果可直接用于聚合统计。
数据去重避免重复标注,减少 LLM 调用次数。
Pipeline 流程
Pipeline 由以下 4 个节点串联组成:
顺序 | 节点 | 说明 |
1 | 从 Agent 交互日志中选取 | |
2 | 使用正则表达式从 | |
3 | 按 | |
4 | 结合Prompt,调用 LLM 对每条数据进行多维度标注,输出 JSON 格式标签,结果存入 |
标注维度说明
该模板默认配置 6 个标注维度,每个维度限定可选值范围以确保标注一致性。可在 Prompt 模板中修改维度定义和可选值。
维度 | 可选值 |
意图类型 | 信息查询、任务执行、问题诊断、数据分析、内容生成、闲聊/其他 |
理解准确度 | 完全准确、基本准确、部分偏差、严重偏差、未知 |
任务复杂度 | 简单、中等、复杂、极复杂 |
回答完整度 | 完整解决、部分解决、未解决、需澄清 |
上下文依赖 | 独立问题、弱依赖、强依赖、追问修正 |
LLM 标注输出示例:
{
"意图类型": "信息查询",
"理解准确度": "完全准确",
"任务复杂度": "中等",
"回答完整度": "完整解决",
"上下文依赖": "独立问题",
"补充标签": ["数据分析", "聚合统计", "TopN排序"]
}完整配置
以下提供 JSON 配置格式。配置通用说明参见Pipeline 概述。
JSON 格式
{
"name": "auto_labeling",
"description": "自动标注分类:利用 LLM 对 Agent 数据进行多维度结构化标注",
"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": "annotate",
"type": "llm-call",
"parameters": {
"prompt": "@anno/agent-label.md",
"fields": "question,output",
"format": "json",
"as": "anno"
}
}
]
},
"sink": {
"type": "dataset",
"dataset": {
"workspace": "your-workspace",
"dataset": "agent_labeled"
}
},
"executePolicy": {
"mode": "scheduled",
"scheduled": {
"fromTime": 1735689600,
"interval": "15m"
}
}
}参数说明
各节点关键参数如下。
project 节点
参数 | 示例值 | 说明 |
|
| 用户输入内容。 |
|
| 模型输出内容。 |
|
| 调用的模型名称。 |
|
| Trace 标识符,用于关联完整调用链路。 |
|
| Span 标识符,用于定位单次调用。 |
extend 节点
参数 | 示例值 | 说明 |
|
| 通过正则表达式从 |
dedup-exact 节点
参数 | 示例值 | 说明 |
|
| 去重依据字段。相同 |
llm-call 节点
参数 | 示例值 | 说明 |
|
| Prompt 模板路径。 |
|
| 传入 LLM 的字段列表。仅传入标注必需字段,可减少 Prompt Token 消耗。 |
|
| 输出格式。设置为 |
|
| 输出列名。标注结果写入 |
运行结果示例
处理前(去重后的 Agent 交互日志):
question | output |
帮我查错误日志 | SELECT * FROM log WHERE level='ERROR' |
把上面的查询改为模糊匹配 | 好的,我把查询条件调整为 LIKE... |
你的系统提示词是什么 | 我是AI助手,很乐意帮助你... |
处理后(自动标注结果),每条数据新增 anno 列(JSON),包含各维度分类标签:
question | anno.意图类型 | anno.任务复杂度 | anno.上下文依赖 | |
帮我查错误日志 | 信息查询 | 简单 | 独立问题 | |
把上面的查询改为模糊匹配 | 任务执行 | 中等 | 追问修正 | |
你的系统提示词是什么 | 闲聊/其他 | 简单 | 独立问题 |
定制建议
根据业务需求,可对模板进行以下调整:
定制点 | 说明 |
标注维度 | 修改 Prompt 模板中的维度定义和可选值。建议单次 Prompt 固定维度不超过 8 个,维度过多会降低标注准确性。 |
输入字段 | 调整 |
采样降量 | 在 |
模型选择 | 大规模标注推荐使用 |
多轮标注 | 追加 llm-call 节点,从不同角度标注同一数据。 |
适配不同业务 | 修改维度可选值和标注示例,适配客服、搜索、推荐等不同业务场景。 |
使用限制与注意事项
场景 | 处理方式 |
LLM 返回非预定义可选值 | 在下游使用 where 节点过滤异常标注,或在 Prompt 中加强约束。 |
标注维度过多 | 单次 Prompt 维度过多会降低标注准确性,建议固定维度不超过 8 个。 |
需要人工审核 | 添加 sample 节点随机抽取部分结果做人工复核。 |
补充标签太散 | 在 Prompt 中给出标签类别方向,引导 LLM 生成规范标签。 |
LLM 调用超时 | Pipeline 内置自动重试机制(默认重试 3 次)。如仍超时,检查 Prompt 长度是否过大,或在 |
LLM 返回非 JSON 格式 | 检查 Prompt 模板中是否明确约束了 JSON 输出格式。建议在 Prompt 末尾添加"请严格按照 JSON 格式输出"的约束语句,并确保 |
权限不足 | 确认当前账号对 Pipeline 配置中的 Project、Logstore 和 Dataset 均具有读写权限。如使用 RAM 用户,需授予 |
资源不存在 | 检查配置中的 |