You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 03:22:14