Fix product data eval export format

This commit is contained in:
wuyang6
2026-05-11 15:27:11 +08:00
parent be731caed7
commit f22de8a40b
15 changed files with 414 additions and 71 deletions
@@ -29,6 +29,9 @@ canonical record 是产品数据生成链路的中间元数据格式。它不是
"target": "Agent(tag=\"xxx\")",
"target_type": "agent"
},
"dimensions": {
"complex": false
},
"meta": {
"case_name": "case名称",
"notes": ""
@@ -44,6 +47,7 @@ canonical record 是产品数据生成链路的中间元数据格式。它不是
- 相邻轮时间间隔超过 5 分钟时给 warning。
- `label.target` 必须有值。
- `target_type` 只能是 `agent``function``unknown`
- `dimensions.complex` 必须是布尔值,表示当前 query 是否为复杂任务;它是独立维度,不写入 `label.target`
## 默认导出
@@ -52,7 +56,7 @@ canonical record 是产品数据生成链路的中间元数据格式。它不是
- `records.jsonl`canonical records,一行一条紧凑 JSON。
- `records.csv`:同事流转表格,字段为 `request_id,timestamp,query,prev_session,context,label,是否迁移Function,function`
`records.csv` 中的 `prev_session``context` 是紧凑 JSON 字符串;`prev_session` 中的 `timestamp` 按历史表格习惯输出为字符串。
`records.csv` 中的 `prev_session``context` 是紧凑 JSON 字符串;`prev_session` 中的 `timestamp` 按历史表格习惯输出为字符串。`function` 列会把复杂度和监督标签组合成两行,例如 `complex=false\nAgent(tag="地图导航")`
如果已有 `records.jsonl``records.json`,只需要补表格,可以执行 portable `export_dataset_table.py` 或等价工具;默认仍输出到同目录的 `records.csv`
@@ -60,7 +64,7 @@ canonical record 是产品数据生成链路的中间元数据格式。它不是
训练和评测格式都从 canonical records 转换,不由模型手写:
- `training.jsonl`:每行 `{"system": "...", "instruction": "...", "output": "..."}`,由 `export_training_jsonl.py``data_agent_export_training_jsonl` 生成。
- `eval_planning.csv`:字段为 `request_id,newPrompt,query,类别真实标签,code标签,complex`,由 `export_planning_eval_csv.py``data_agent_export_planning_eval_csv` 生成。
- `training.jsonl`:每行 `{"system": "...", "instruction": "...", "output": "..."}`,由 `export_training_jsonl.py``data_agent_export_training_jsonl` 生成`output` 会输出 `complex=true/false` 加监督标签两行
- `eval_planning.csv`:字段为 `request_id,newPrompt,query,类别真实标签,code标签,complex`,由 `export_planning_eval_csv.py``data_agent_export_planning_eval_csv` 生成`newPrompt` 会包上 `<|im_start|>system/user/assistant` chat template`complex` 列来自 `dimensions.complex`,按评测表习惯输出 `TRUE/FALSE`,不是固定默认值
`instruction``newPrompt` 使用同一套 prompt 模板,默认包含 `[知识注入]``[系统状态]``[对话历史]``[当前query]``[function]`。历史轮次默认最多取 5 轮,且相邻时间间隔不超过 5 分钟。
`instruction``newPrompt` 使用同一套 prompt 主体,默认包含 `[知识注入]``[系统状态]``[对话历史]``[当前query]``[function]`。历史轮次默认最多取 5 轮,且相邻时间间隔不超过 5 分钟。
@@ -9,6 +9,7 @@
### case: case名称
用户: 本轮 query
complex: false
target: Agent(tag='xxx')
notes: 可选,说明覆盖的问题或边界
@@ -16,6 +17,7 @@ notes: 可选,说明覆盖的问题或边界
用户: 前一轮 query
小爱: 前一轮 tts
用户: 本轮 query
complex: false
target: Agent(tag='xxx')
notes: 可选,说明覆盖的问题或边界
```
@@ -26,10 +28,11 @@ notes: 可选,说明覆盖的问题或边界
- `用户:` 表示用户 query。
- `小爱:` 表示小爱回复 tts。
- 最后一个 `用户:` 是本轮 query。
- `complex:` 是复杂度维度,必须独立填写 `true``false`;无法确定时先问用户,不要把它塞进 `target`
- `target:` 是本轮 query 对应的监督标签,必须存在。
- Agent 标签推荐写单引号形式 `Agent(tag='xxx')`,转换工具会规范成 `Agent(tag="xxx")`
- 单轮数据只需要写一行 `用户:`,然后写 `target:`
- 单轮数据只需要写一行 `用户:`,然后写 `complex:``target:`
- 多轮数据需要按照时间顺序写多组 `用户:` / `小爱:`
- 多轮数据的最后一轮只写 `用户:``target:`,不要写最后一轮 `小爱:`
- 多轮数据的最后一轮只写 `用户:``complex:``target:`,不要写最后一轮 `小爱:`
- 如果 `target` 无法确定,不要编造,必须向用户确认。
- 不要手写 `record_id``request_id``timestamp``context`