大模型微调样本构造trick

面试官:大模型微调如何组织训练样本?

你:大模型训练一问一答,一指令一输出,问题和指令可以作为prompt输入,答案作为输出,计算loss的部分要屏蔽掉pad token。

面试官:多轮对话如何组织训练样本呢?

你:假设多轮为Q1A1/Q2A2/Q3A3,那么可以转化成 Q1—>A1, Q1A1Q2->A2, Q1A1Q2A2Q3->A3三条训练样本。

面试官:这样的话一个session变成了三条数据,并且上文有依次重复的情况,这样会不会有啥问题?

你:数据中大部分都是pad token,训练数据利用效率低下。另外会有数据重复膨胀的问题,训练数据重复膨胀为 session数量*平均轮次数,且上文有重复部分,训练效率也会低下。

面试官:你也意识到了,有什么改进的方法吗?

你:有没有办法能一次性构造一个session作为训练样本呢?(思索)

面试官:提示你下,限制在decoder-only系列的模型上,利用模型特性,改进样本组织形式。



对于这个问题,我们思考下decoder-only模型有啥特点,第一点很关键的是其attention形式是casual的,casual简单理解就是三角阵,单个token只能看到其上文的信息。

如图所示:

猜你喜欢

转载自blog.csdn.net/u013250861/article/details/131686901