本文来自微信公众号:量子位(ID:QbitAI),作者:梦晨,题图来自:unsplash
对于ChatGPT变笨的原因,学术界又有了一种新解释。
加州大学圣克鲁兹分校一项研究指出:
在训练数据截止之前的任务上,大模型表现明显更好。
论文重点研究了“任务污染”问题,也就是大模型在训练时期就见识过很多任务示例,给人一种AI拥有零样本或少样本能力的错误印象。
也有学者从另一个角度指出,大模型训练后参数冻结,人们不断提出新的任务,也就是输入分布不断变化。如果模型不能不断适应这种变化,就表现成能力慢慢退化。
人们以为只提了个问题AI就能回答,其实对AI来说,是在训练时见过的大多数常见任务。
随着时间推移,人们开始提出更多新问题,AI表现就不行了。
比如对于代码问题,编程语言还在持续发展变化,迟早有一天效率会低到不可接受。
这是所有不具备持续学习能力模型的命运。
任务污染有多严重?
研究团队一共评估了12种模型,从ChatGPT之前的GPT-3系列、OPT、Bloom,到最新的GPT-3.5-turbo、羊驼家族Llama、Alpaca和Vicuna等。
它们都存在类似问题,也就是在训练截止之前的任务上表现明显更好。
评估任务污染非常困难,闭源模型根本不会公布训练数据,大多数开源模型也只是声明了来源,而不发布数据本身。
如果研究者重新爬取互联网数据,也有可能与模型训练时相比发生了变化。
对此,团队采用4种方法来测量任务污染程度:
检查训练数据:直接搜索有没有相应的任务示例。
在开源模型Alpaca和Vicuna上,存在训练数据污染的任务表现就比原版Llama更好的趋势明显。
提取任务示例:通过调整提示词,让模型自己把训练数据中的任务示例背出来。
从GPT-3 davinci-001版本到GPT-3.5-Turbo,这个问题越来越严重了。
下图中X代表模型复述出了训练数据中的原始任务示例,绿色代表经过指令微调的模型没有复述训练数据。
灰色代表未经过指令微调的模型无法根据提示词指示复述训练数据,但不代表问题不存在。
成员推断(只适用于生成任务):检查模型生成的答案是否与原始数据完全相同。
按时间顺序分析:对于已知训练数据收集时间的模型,测量已知发布时间数据集上的表现并使用按时间顺序的证据检查数据污染证据。
前三种方法精度较高,但召回率较低。如果在任务的训练数据中找到数据,则可以肯定它已经看到了示例。
但由于数据格式的变化、关键字的变化以及数据集的大小,使用前三种方法没有找到证据并不意味着数据污染不存在。
第四种方法召回率高但精度低,容易受干扰因素影响。
特别是对于GPT-3系列,目前人们假设其能力提高来自于指令微调,但研究团队认为事实并非如此。
虽然在2021年之前的数据集上,davinci-002比davinci-001的性能有所提高,但在2021年之后的数据集上性能却相应下降,
这表明GPT-3系列的指令微调只适用于某些早期数据集。
最后团队的结论为:
由于任务污染,闭源模型可能会在零样本或少样本评估中表现得比实际好,特别是经过RLHF微调的模型。污染的程度仍不清楚,因此我们建议谨慎行事。
在实验中,对于没有任务污染可能性的分类任务,大模型很少在零样本和少样本设置中表现出相对于大多数基线具有统计学意义的显著改进。
随着时间推移,观察到GPT-3系列模型在许多下游任务的零样本或少样本性能有所增加,这可能是由于任务污染造成的。
即使对于开源模型,检查训练数据的任务污染也很困难。
鼓励公开发布训练数据,以便检查任务污染问题。
有人总结道:
用现有数据训练AI;
人们过多使用AI,以至于改变了现实世界;
AI无法适应改变后的世界,变得低效。
这是一个循环。
论文:https://arxiv.org/abs/2312.16337
参考链接:[1]https://twitter.com/ChombaBupe/status/1741531065032798360
本文来自微信公众号:量子位(ID:QbitAI),作者:梦晨