主要观点总结
文章讨论了当前AI在文学创作上表现欠佳的原因,介绍了作者对使用文学和阿毗达磨数据微调中小模型的观察和体验。文章包括六个关键点:阿毗达磨数据的LOSS较低、阶梯型LOSS对高质量文学数据是正常的、文学数据的LOSS高的原因、验证集LOSS不下降未必是早停的标准、训练文学能力最好基于base模型,以及推理时调高温度、top-p并不是解决之道。
关键观点总结
关键观点1: 阿毗达磨数据的LOSS较低
阿毗达磨数据中的重复内容和文学数据的高LOSS进行了比较。
关键观点2: 阶梯型LOSS对高质量文学数据是正常的
文学数据的特点导致训练过程中验证集LOSS在第一个epoch内显著下降,之后保持稳定。
关键观点3: 文学数据的LOSS高的原因
文学作品的创作要求意外与合理的结合,而模型的训练过程难以完全捕捉这种特点,导致文学数据的LOSS较高。
关键观点4: 验证集LOSS不下降未必是早停的标准
对于文学创作任务,验证集LOSS长时间不下降并不意味着模型已经充分学习,特别是在处理高质量文学数据时。
关键观点5: 训练文学能力最好基于base模型
作者建议基于base模型训练文学的写作能力,而不是基于开发者SFT过的模型。
关键观点6: 推理时调高温度、top-p并不是解决之道
虽然调高温度和改变top-p值是一种常见的提高生成多样性的方法,但作者认为这并不是解决AI在文学创作上表现欠佳的有效方法。
正文
文学数据更普遍的情况是:训练集LOSS,在每一个epoch之内,都几乎看不见任何明显的下降趋势(注意:我说的是数据不重叠的情况下),到下一个epoch,有一个断崖式下跌,然后持平,是标标准准的阶梯式。而验证集LOSS,只在第一个epoch的开始有显著的下降,时间很短,通常在一个epoch之内就无法下降了。
这和数据类型有关。文学数据是“反常的数据”。
通常,训练大模型的目标,是让大模型的回答接近标准答案。比如我们问:中国的首都是哪里?大模型回答:北京。这就是一个很好的回答。但是你让大模型搞文学创作,这个回答就彻底失败了。说到这儿,我需要插一句,人们通常泛泛地说“写作能力”,但“文学写作能力”和“公文写作能力”完全是两码事。换句话说,有两种写作能力:一种是有答案有模板有固定套路的写作能力;一种是无答案无模板无固定套路的写作能力。——这么说其实比较粗糙,文学写作也有规律,有标准,但那种规律和标准是潜在的。这里不展开。
总之,你讲一个故事,讲第一句话别人就知道结尾——撅起屁股就知道你要拉什么屎,故事就彻底失败了。但大模型训练的,不就是“撅起屁股知道要拉什么屎”的能力吗?
给一个句子,大模型接下一个句子,它当然倾向给概率高的。你训练数学、训练代码,都是有标准答案,离标准答案越近,模型表现就越好。但如果训练模型的文学写作,给一句话,如果大模型接的是出现概率极高的下一句话,这句话大概率不是文学。
举个例子,给大模型一句,“你讲一个故事,讲第一句话别人就知道结尾”,让模型输出排名前20的后续4-5个token,你在里面绝对找不到“——撅起屁股”。因为大模型通常觉得不应该这么接。但这种接法是文学的。文学的接龙是,你根本没想到会接这么一句话,但接上之后,发现并不突兀,甚至很贴切。