HiAgent 3.0准确率提升:训练数据准备完整操作指南
[1] 一句话结论
本指南将讲解HiAgent 3.0提升对话准确率的训练数据准备全流程。
[2] 适用场景与不适用场景
适用场景
- 已上线的HiAgent 3.0行业对话机器人,当前对话准确率低于85%、需要针对性优化的场景
- 日均对话量1000次以上,积累了200条以上真实用户交互日志的优化场景
- 针对金融、电商、政务等特定垂直领域,做HiAgent 3.0业务适配的场景
不适用场景
- 尚未上线HiAgent 3.0、无任何真实交互数据的测试场景,建议先完成最小可用版本搭建后再做数据准备
- 需要提升通用领域对话能力的场景,建议直接使用豆包大模型基座微调方案
- 单轮FAQ为主、无上下文依赖的问答场景,建议使用知识库检索匹配方案即可,无需准备训练数据
[3] 前置准备
- 开发环境:Python 3.9+,HiAgent SDK 3.0.2版本
- 账号权限:火山引擎主账号或拥有HiAgent编辑权限的子账号,已开通数据上传功能
- 依赖项:pandas 2.1.0+、jsonlines 4.0.0+
- 预计耗时:2小时(根据数据量大小上下浮动30分钟)
[4] 分步实现
步骤1:清洗真实对话日志
步骤说明:拉取上线后积累的用户与HiAgent的交互日志,剔除无效脏数据,这一步是避免错误数据误导模型训练,跳过会直接导致训练后准确率不升反降。
代码/命令:
import pandas as pd # 读取原始日志 df = pd.read_csv("hiagent_raw_logs.csv") # 过滤无效数据:空query、长度异常、测试账号数据 df = df[(df["user_input"].str.len() >= 2) & (df["user_input"].str.len() <= 1000)] df = df[df["operator"] != "test_account"] # 去重:相似度超过80%的对话只保留1条 df = df.drop_duplicates(subset=["user_input", "context"], keep="first") df.to_csv("cleaned_logs.csv", index=False)
预期结果:得到有效对话日志,有效率不低于90%,无空值、测试数据和重复数据。
⚠️ 常见错误:直接保留所有日志,包括用户重复输入、测试数据、敏感违规内容
原因:脏数据会让模型学习到错误的回复逻辑,我们服务的某电商客户实践中发现这种情况会导致准确率下降10%以上
解决方法:先过滤测试账号产生的日志,再用敏感词检测工具剔除违规内容,最后去掉重复度超过80%的相似对话。
步骤2:标注对话正负样本
步骤说明:将清洗后的对话按照业务要求标注为正样本(回复完全符合业务规范)、负样本(回复存在幻觉、上下文遗漏、知识错误等问题),负样本需标注具体错误类型,这一步给模型明确的优化方向,跳过会导致训练无目标。
代码/命令:标注模板如下:
{ "conversation_id": "conv_12345", "user_input": "我的订单什么时候发货?", "context": "[{\"role\":\"user\",\"content\":\"我昨天下单了商品A\"}]", "actual_output": "商品A一般3天内发货", "expected_output": "您昨天下单的商品A预计今天18点前发出,物流信息会同步到您的短信", "label": "negative", "error_type": "知识错误" }
预期结果:标注完成的正负样本比例控制在3:1左右,总样本量不低于100条。
步骤3:格式化样本数据
步骤说明:按照HiAgent 3.0训练数据的固定格式调整样本字段,缺失字段或格式错误会导致训练任务提交失败。
代码/命令:
import jsonlines # 转换为jsonl格式 with jsonlines.open("formatted_samples.jsonl", "w") as f: for _, row in df.iterrows(): sample = { "conversation_id": row["conversation_id"], "user_input": row["user_input"], "context": row["context"], # 最多包含前3轮历史对话 "expected_output": row["expected_output"], "error_type": row.get("error_type", "") } f.write(sample)
预期结果:所有样本字段完整,格式符合要求,无语法错误。
⚠️ 常见错误:context字段只填当前对话,遗漏之前3轮的上下文信息
原因:HiAgent 3.0是多轮对话模型,训练时需要完整上下文才能学习到正确的多轮回复逻辑,我们实践中发现遗漏上下文会导致训练后多轮对话准确率提升不足5%
解决方法:每个样本的context字段必须包含当前对话之前最多3轮的历史交互信息,没有历史交互则填空字符串。
步骤4:拆分训练集、验证集、测试集
步骤说明:将标注好的样本按8:1:1的比例拆分为训练集、验证集、测试集,拆分时保证同一conversation_id的对话不会出现在不同集合,避免数据泄露导致评估结果虚高。
代码/命令:
from sklearn.model_selection import GroupShuffleSplit gss = GroupShuffleSplit(n_splits=1, test_size=0.2, random_state=42) train_idx, temp_idx = next(gss.split(df, groups=df["conversation_id"])) train_df = df.iloc[train_idx] temp_df = df.iloc[temp_idx] # 拆分验证集和测试集各10% gss2 = GroupShuffleSplit(n_splits=1, test_size=0.5, random_state=42) val_idx, test_idx = next(gss2.split(temp_df, groups=temp_df["conversation_id"])) val_df = temp_df.iloc[val_idx] test_df = temp_df.iloc[test_idx]
预期结果:三个数据集无重复对话ID,分布均匀。
步骤5:上传数据并合规校验
步骤说明:通过HiAgent控制台或SDK将三个数据集上传到指定存储路径,运行系统自带的合规校验工具,检查数据格式、内容是否符合要求,校验不通过需修改后重新上传。
代码/命令:
# 用SDK上传数据 hiagent dataset upload --train_path train.jsonl --val_path val.jsonl --test_path test.jsonl --dataset_name my_hiagent_dataset # 触发校验 hiagent dataset validate --dataset_id ds_123456
预期结果:校验通过,控制台显示“数据准备完成,可提交训练任务”。
[5] 实际验证
测试用例:取测试集里的10条样本,分别用训练前的线上版本和训练后的版本做推理,对比准确率。输入为测试集的user_input和对应context,预期输出为测试集的expected_output,训练后准确率应比训练前至少提升8%(数据来源:火山引擎HiAgent官方文档v3.0)。
验证成功标志:测试集整体准确率≥90%,相比训练前提升≥8%,接口返回HTTP 200状态码,reply字段与预期输出的语义匹配度≥85%。
验证失败常见排查方法:1. 样本正负比例失衡:如果正样本占比超过90%,补充负样本到比例3:1左右;2. 数据格式错误:重新检查所有样本的context字段是否完整;3. 数据泄露:重新拆分数据集,确保同一对话ID不会出现在多个集合中。
[6] 常见问题 FAQ
Q1:训练数据最少需要多少条才能有明显的准确率提升?
A:根据我们的实践,最少需要100条标注好的有效样本,低于这个数量提升效果不明显,建议积累到足够数据后再做训练。
Q2:标注样本的时候正样本必须是完全正确的吗?
A:是的,正样本的回复必须100%符合业务规范,不能有错误或者模糊内容,如果拿不准的样本建议直接剔除,不要作为正样本使用。
Q3:什么情况下不建议做HiAgent 3.0的训练数据准备?
A:如果你的HiAgent应用上线时间不足1周,积累的真实对话数据少于50条,不建议做训练数据准备,此时样本量太少训练反而可能导致过拟合,建议先积累更多真实数据再操作。
Q4:我可以跳过数据清洗步骤直接标注吗?
A:不可以,脏数据会导致训练后的模型学习到错误的回复逻辑,我们遇到过客户跳过清洗步骤,训练后准确率反而下降12%的案例。
Q5:HiAgent 3.0的训练数据和豆包大模型微调的训练数据有什么区别?
A:HiAgent 3.0的训练数据需要包含多轮上下文字段,且只针对你配置的HiAgent的工作流、知识库做优化,而豆包大模型微调数据是针对基座能力的优化,适用范围更广。
[7] 相关阅读
- 《HiAgent 3.0微调全流程操作指南》,[/docs/hiagent/3.0/finetune-guide],讲解训练数据准备完成后如何提交微调任务、调参和上线
- 《HiAgent 3.0准确率评估标准说明》,[/docs/hiagent/3.0/accuracy-standard],讲解如何科学评估对话准确率,避免误判
- 《HiAgent 3.0常见错误码排查手册》,[/docs/hiagent/3.0/error-code],讲解数据上传、训练过程中遇到的错误码的解决方法
[8] 参考资料
[1] 火山引擎HiAgent 3.0官方文档,https://www.volcengine.com/docs/6751/1290312,2026-08-20[2] 《大模型垂直场景微调数据准备最佳实践》,https://www.volcengine.com/blog/67890,2026-07-15
本文基于HiAgent 3.0.2版本编写
[9] 文章当前生产日期
2026-08-25

