试着给 DFlash2 的草稿模型做微调

上一篇说到,DFlash2 在 V100 上跑起来了,写英文和代码快,中文反而略慢一点。我就想,能不能把草稿模型调一调,让它更会猜中文,也更会猜我平时让 Agent 干的那些活。

草稿模型猜得准不准,看的是它和大模型合不合拍。所以思路很直接:拿大模型自己说过的话来教它。我手上正好攒了不少让 Agent 干活的对话,其中有一部分就是这个模型自己写的。挑出来洗一洗,把带密码、密钥的去掉,就成了训练数据。

第一版调了好几轮,结果都在原版附近打转,最好的一轮也只好了零点几个百分点。放到服务里实际回放一遍,速度还是比不过 MTP。后来回头看人家原版是怎么训的:几十万条样本,训好几轮。我们只有几千条,大概是人家的千分之三。说白了,量差得太远。

另外几个 Agent 帮我翻了翻论文和社区里的经验,发现有一类做法更对路:训练时只算到草稿第一次猜错为止,后面的不管。反正验证的时候一猜错,后面猜的也用不上。照这个思路改了以后,第一次有了点像样的进步,大约好了一个百分点。训更久没用,只看标准答案也没更好。

下一步就是扩数据。翻出来能用的对话是原来的好几倍。没想到真正卡住的不是显卡,是硬盘:每条导出来的中间结果都很大,全存下来哪块盘都放不下。最后是在转换时顺手压一压,体积小了很多,再在 NAS 上找了块空地方放。等这几天的测试跑完,就让 V100 晚上加班导数据。

顺便还试了一下让草稿模型“按概率猜”,而不是只猜最可能的那个。猜中的确实多了一些,但每一步也慢了,还在比。

具体的过程和数字都记在项目笔记里,这里就不列了。