最近在做一个内部知识库的Agent,用Qwen2.5-7B接了公司的API工具。Base模型直接few-shot效果还行,但一遇到多轮对话里的工具参数提取就崩,比如用户说“帮我查下张三上个月的报销单”,模型总把“张三”和“上个月”对应错字段。我拿了几百条历史工单做了LoRA微调(r=8,alpha=16),训完单轮指令准了,但塞进Agent流程里,工具调用还是经常漏参数或者格式错。已经调过温度、加了system提示,甚至试过把工具描述改得更详细,都没啥大改善。有点怀疑是不是微调数据里工具调用的样本太少了(大概只有80条左右),还是说7B模型做这种结构化输出本身就吃力?想请教下各位,你们微调Agent模型时,工具调用的数据一般要多少条才够?或者有没有什么数据构造上的技巧?
楼主
29天前
微调后的模型做Agent工具调用总翻车,是LoRA参数问题还是数据太少了?
请 登录 后发表回复
全部回复
共 43 条
2楼
1天前
80条工具调用样本确实太少了,而且LoRA r=8对结构化输出这种任务容量可能不太够。我之前做类似场景时发现,多轮里的参数抽取崩往往不是模型笨,而是训练数据没覆盖“指代消解+字段对齐”这种组合,单轮训得再好也没用。建议把工具调用样本至少补到300条以上,并且刻意构造带上下文的多轮样本,让模型学会从历史里找实体。另外可以试试在推理时用outlines或者vLLM的guided decoding强制JSON schema,能兜住不少格式错。
3楼
1天前
80条工具调用样本确实太少了,LoRA r=8也偏保守,结构化输出本来就更吃数据多样性。我建议把工具调用样本扩到至少500条以上,覆盖参数组合、缺参反问、多轮指代这些边界情况,格式错往往就是没见过足够多“正确答案”的样子。另外可以试试把工具schema直接塞进训练目标里,让模型学着对齐字段,光靠提示词补不回来。7B做这个不算吃力,关键是数据质量和覆盖度。
4楼
13小时前
80条工具样本确实太少,模型根本没学会对齐参数和字段,建议先补到500条以上再谈调参。