垂直领域 Agent 落地
垂直领域 Agent 落地:为什么我放弃 235B/671B,转而训练 8B(一)
你猜去年我在干什么?
我像个疯狂的插件堆砌师,把一个又一个超大模型往流程里塞。Qwen3-235B-A14B?上!DeepSeek V3-671B?安排!外面套个RAG,再搭个工作流编排,端到端自动化嘛,看着就美滋滋。
但你知道吗?越大的基座,在垂直领域越容易翻车。
这不是我的偏见。这是踩了三个月坑换来的血泪教训。
一、刚入局时,我也是“越大越好”的脑残粉
去年开源模型跟不要钱似的往外蹦。235B的Qwen3 MoE,671B的DeepSeek V3,跑分一个比一个耀眼。
我当时想法特简单:基座够牛逼,往上叠点Prompt,接上RAG,套个工作流,不就齐活了?
结果呢?
现实啪啪打脸。
你要的不是一个能聊天的“话痨助手”。你要的是一个必须同时搞定三件事的“职业杀手”:第一,该调工具时绝不能靠幻觉瞎编,得真实调用;第二,调用必须准,函数名、参数、类型、枚举值,一个都不能错;第三,结果必须稳,同一份数据不能给出两种结论。
你越靠Prompt和上下文去补模型的短板,就越陷进一个死循环——
上下文越来越长。多轮历史、RAG片段、工具返回、流程状态……动不动一万多tokens。前几轮还行,后面开始注意力漂移,指令衰减,最后放飞自我。
你为了兜底,又加上重试、校验、补充提示、规则引擎。系统复杂度上去了,失败模式反而更随机。今天在这个环节修好的bug,换个工具返回格式又崩了。
我给你讲个真实的事。
我用DeepSeek V3搭了个流程,同一个输入测十次,你敢信?八次行为链不一样。运气好结论对,运气不好直接自相矛盾。
这玩意儿你让我上线?算了吧,我还想多活几年。
二、转机:我疯了?不,我清醒了
既然怎么修上下文和流程都修不到根上,我一拍桌子:别再围着流程转了,回头看模型本身。
目标特别明确:用一个小模型,通过训练,把领域语义和工具调用的规矩直接写进参数里。让它在复杂上下文中也能像瑞士手表一样稳定运转,而不是概率性抽风。
我选了Qwen3-8B。
说到这儿,有人可能要问了:8B?这么小能干嘛?
你听我说完。1张A800就能训,推理也只要1张A800。小团队玩得起,迭代飞快。我用的是fp16版本,没量化,效果稳定。
训练分两步走:
- **第一步:SFT注入领域知识**——把垂直领域的背景、业务流程、字段含义喂进去,先让模型“懂业务”。
- **第二步:DPO对齐工具调用偏好**——什么时候调用、调哪个函数、参数怎么写、返回怎么读,专门用偏好数据训练。
你看,这就像教一个新员工。先让他知道公司是干嘛的,再告诉他具体活儿怎么干。
三、第一次训完,数据比没训还差,我差点开除自己
这是最尴尬的部分。
SFT跑完一测:
| 指标 | Baseline (Qwen3-8B) | SFT 后 |
|---|---|---|
| tool_call_accuracy | 34.8% | 32.7% |
| tool_name_accuracy | 44.2% | 42.2% |
| tool_args_accuracy | 25.7% | 24.1% |
| response_quality | 100% | 100% |
你没看错。不仅没涨,还跌了两个点。
当时我看着这个表,心态差点崩了。花了那么长时间训练,结果比不训还差?这特么不是浪费时间吗?
但我没急着摔电脑。我仔细看了输出,发现一个有趣的现象:SFT后的模型回答开始正经说业务了,不再是通用科普那一套。虽然工具调用没改善,但领域理解是上了正轨的。
行,方向没错。接着上DPO。
第一版DPO(v1)数据量也就几百条。训完一测,指标继续掉:
| DPO v1 | 32.3% | 40.1% | 23.2% | 100% |
这数据放在任何汇报里都会被枪毙。但我反而没慌——因为我观察到:DPO做对的那些样本,调用格式特别干净,一次到位。
这说明什么?方向是对的!是数据不够,覆盖不全。
于是我一咬牙,把DPO数据集扩大了5倍。不光加正常调用,还故意塞了一堆负例——比如该调不调、不该调乱调、参数填错、格式混乱。
你猜怎么着?
结果终于逆转:
| DPO v2 | 97.3% | 99.3% | 96.4% | 100% |
三项核心指标从30%级别直接干到97%以上。我心里那块石头,啪嗒一声落了地。
后来做了多轮回归,没发现推理能力明显掉,think标签也规规矩矩。这感觉就像你打了个漂亮的翻身仗,别提多爽了。
四、为什么我铁了心放弃大模型?给你看两个真实案例
大模型在长上下文下的问题,不是偶然的。我给你看两个典型案例,你就懂了。
Case 1:Qwen3-235B-A14B 多轮后开始编造工具结果
初期挺好的。调用工具,解读返回,都像模像样。
但对话到第5、6轮后,画风突变——
它不再发起真实tool call,而是直接伪造了一段“工具返回”。格式一模一样,字段全有,但全是假的。然后继续正常推理,好像真的查过一样。
你想想这有多恐怖?它学会了偷懒,跳过了action步骤,直接输出它认为可能的下一步。更可怕的是,一旦出现一次伪造,后面轮次会持续这种模式,形成自回归陷阱。
结果是什么?链路不可审计,不可回放,不可上线。
你敢把这种Agent放到自动化写库流程里?反正我不敢。
Case 2:DeepSeek V3-671B 同一输入两次运行完全相反
同样的输入,调两次接口。
第一次调用了工具A,第二次没调用,直接给结论。两次推理链条、工具引用、证据解释全不一样,最终结论还相反。
你说这种系统怎么测试?怎么保证正确?
你想象一下:你让一个专家系统做风险决策,同一条数据今天输出“通过”,明天输出“拒绝”,还不知道为什么。
这已经不是“偶尔答对”的问题了。这是系统级的不可靠。
五、核心经验:训练比流程更可靠
说到这儿,我希望你记住一句话:
在垂直Agent场景,稳定的确定性来自训练,而不是上下文补丁。
Prompt工程和RAG有价值,但它们是散落的珍珠。更好的归宿是把它们沉淀为训练数据——好prompt变成数据模板,好的推理结构变成CoT样本,最终通过SFT/DPO固化到模型里。
这样你得到的是可回归、可版本化的能力,而不是只能靠经验维护的技巧组合。
流程加固依然必要,但它应该用来兜底极端异常,而不是用来弥补模型的日常不稳定。你越依赖流程,系统越脆弱,业务一变脚手架全崩。
我现在什么样?一个月就能完成数据迭代、训练、评测、上线的闭环。1张A800训SFT,2张训DPO,推理1张A800。团队两个人,说跑就跑。
这比起用671B那种一次推理烧几百块、还提心吊胆的体验,好得不是一星半点。
六、写在最后
我不是说大模型没用。
通用场景、创意写作、信息检索,它们依然是天花板。但在垂直领域,你要的是稳定执行,而不是偶尔惊艳。
用8B做后训练,在成本和确定性之间找到了一个极其舒服的平衡点。就像你不需要开着一辆F1赛车去菜市场买菜一样——你要的不是速度,是稳。
这篇文章先讲为什么放弃大模型。下一篇我会具体讲数据怎么构建的、SFT和DPO的细节、还有DPO数据集扩大5倍到底是加了什么。
保持关注。
对了,有些话不吐不快:ChatGPT出来后,领域垃圾论文爆炸式增长,信噪比极低。真正有价值的东西还是来自可复现的工程实践、可量化的评估指标、能落地的系统。
别被那些“通用大模型一步到位”的论调忽悠了。动手去测,去踩坑,你才知道什么靠谱。
与其膜拜巨象,不如驯服你手里那匹慢但可靠的小马。
读者评论 5