昨天的一个学术交流活动中我讲了ChatGPT的科普,在和医学生的交流过程中,我自己也对一些问题有了点新的思考,有些也是在之前也有一些想法的,但是现在串起来了。
1.大模型翻译VS传统机器翻译
在讨论中,有人说自己认为大模型(例如ChatGPT)的翻译会比传统机器翻译好,我相信很多人也会有这种感觉。
但是,另一个很重要的结论是,在很多具体的任务上,大模型的性能一般是比传统小模型差的(所以现在有小模型评估大模型,也有大模型评估小模型,这不又可以套娃了),大模型的强大在于大部分任务什么都可以做和强大的语言理解能力。
在机器翻译领域,一些研究表明ChatGPT的翻译其实也没有很厉害。其实这可能依然是评价指标的问题。传统的BLUE等方法某种程度上更关注单词级别的准确性,虽然高阶的BLU可以衡量句子的流畅性,但整体来说仍然不够。而大模型,特别是RLHF之后的大模型和人类对齐的比较好,虽然在传统指标上可能比传统方法弱,但整体来说会让人更舒服(有研究表明,因为ChatGPT的很多输出不按“规范”来,所以采用人工评估后性能往往会提升很多)
2.上下文学习的输入输出对
上下文学习真的是鬼魅般的存在(你之前说集成、蒸馏是鬼魅般的存在,所以计算机里没有硬件,全是鬼城是吗[bushi])
为什么在不修改模型参数,单纯输入的时候给几个示例,效果就会好很多呢?研究这一点不知道耗费了多少人的头发。
影响上下文学习的一个因素就是示例的输入输出对。例如“我喜欢吃草莓”->“正面情感”
但比较神奇的是,提供示例的输入输出对对性能的影响倒没有那么大,很多研究表明输入、输出的分布对性能影响会更大一些。
当然,上一句话的“神奇”实际上单纯是针对一般人来说的,稍微理解点原理其实也不难解释,毕竟大模型本身的内化的知识往往是更重要的(一些研究表明大模型其实对于你给他的知识的理解和应用其实是不足的,很多时候不能抵消内化的知识造成的影响),所以示例很可能只是告诉模型输出可能有哪些之类的结构信息,然后大模型主要根据结构信息和内化知识回答问题。
为什么谈这个东西呢?因为之前看过一篇文章,认为谷歌的一篇研究和其他一般研究得出的结论相反。但事实是有些不一样的。
要研究输入输出对没那么重要,一个很重要的实验就是把标签反过来,一般来说,“我喜欢吃草莓”对应“正面情感”,我们对比实验就让“我喜欢吃草莓”对应“负面情感”。
这时候,一般的研究会认为这是因为标签引入了噪声,毕竟实际的标签是“正面情感”。但我们可以换一个思路,即我们不把“正面情感”“负面情感”看成和语义相关的东西,而只是单纯的两个不同的符号串。
谷歌的对比实验就是认为“我喜欢吃草莓”的标签就是“负面情感”(当然,还包括语义完全无关标签,例如“我喜欢吃草莓”对应于“大河”)
所以两者的结论当然不同,或者说两者研究的目标就是不相同的,谷歌的那篇研究的目的是为了研究大模型能否突破语义的干扰得到纯粹的输入-输出映射关系。