训练过程分为两个步骤 。首先进行“前向传播(forward pass)” , 打开水源并检查水是否从正确的水龙头流出 。然后关闭水源 , 进行“反向传播(backwards pass)” , 松鼠们沿着每根管道竞速 , 拧紧或松开阀门 。在数字神经网络中 , 松鼠的角色由一个称为反向传播的算法来扮演 , 该算法“逆向(walks backwards)”通过网络 , 使用微积分来估计需要改变每个权重参数的程度 。
完成这个过程——对一个示例进行前向传播 , 然后进行后向传播来提高网络在该示例上的性能——需要进行数百亿次数学运算 。而像GPT-3这种大模型的训练需要重复这个过程数十亿次——对每个训练数据的每个词都要进行训练 。OpenAI估计 , 训练GPT-3需要超过3000亿万亿次浮点计算——这需要几十个高端计算机芯片运行数月 。
GPT-3的惊人性能
你可能会对训练过程能够如此出色地工作感到惊讶 。ChatGPT可以执行各种复杂的任务——撰写文章、进行类比和甚至编写计算机代码 。那么 , 这样一个简单的学习机制是如何产生如此强大的模型?
一个原因是规模 。很难过于强调像GPT-3这样的模型看到的示例数量之多 。GPT-3是在大约5000亿个单词的语料库上进行训练的 。相比之下 , 一个普通的人类孩子在10岁之前遇到的单词数量大约是1亿个 。
在过去的五年中 , OpenAI不断增大其语言模型的规模 。在一篇广为传阅的2020年论文中(https://arxiv.org/pdf/2001.08361.pdf) , OpenAI报告称 , 他们的语言模型的准确性与模型规模、数据集规模以及用于训练的计算量呈幂律关系 , 一些趋势甚至跨越七个数量级以上” 。
模型规模越大 , 在涉及语言的任务上表现得越好 。但前提是 , 他们需要以类似的倍数增加训练数据量 。而要在更多数据上训练更大的模型 , 还需要更多的算力 。
2018年 , OpenAI发布了第一个大模型GPT-1于 。它使用了768维的词向量 , 共有12层 , 总共有1.17亿个参数 。几个月后 , OpenAI发布了GPT-2 , 其最大版本拥有1600维的词向量 , 48层 , 总共有15亿个参数 。2020年 , OpenAI发布了GPT-3 , 它具有12288维的词向量 , 96层 , 总共有1750亿个参数 。
今年 , OpenAI发布了GPT-4 。该公司尚未公布任何架构细节 , 但业内普遍认为 , GPT-4比GPT-3要大得多 。
每个模型不仅学到了比其较小的前身模型更多的事实 , 而且在需要某种形式的抽象推理任务上表现出更好的性能 。
例如 , 设想以下故事:一个装满爆米花的袋子 。袋子里没有巧克力 。然而 , 袋子上的标签写着“巧克力”而不是“爆米花” 。山姆发现了这个袋子 。她以前从未见过这个袋子 。她看不见袋子里面的东西 。她读了标签 。
你可能猜到 , 山姆相信袋子里装着巧克力 , 并会惊讶地发现里面是爆米花 。
心理学家将这种推理他人思维状态的能力研究称为“心智理论(Theory of Mind)” 。大多数人从上小学开始就具备这种能力 。专家们对于任何非人类动物(例如黑猩猩)是否适用心智理论存在分歧 , 但基本共识是 , 它对人类社会认知至关重要 。
今年早些时候 , 斯坦福大学心理学家米Michal Kosinski发表了一项研究(https://arxiv.org/abs/2302.02083) , 研究了LLM的能力以解决心智理论任务 。他给各种语言模型阅读类似刚刚引述的故事 , 然后要求它们完成一个句子 , 比如“她相信袋子里装满了” , 正确答案是“巧克力” , 但一个不成熟的语言模型可能会说“爆米花”或其他东西 。
GPT-1和GPT-2在这个测试中失败了 。但是在2020年发布的GPT-3的第一个版本正确率达到了近40% , Kosinski将模型性能水平与三岁儿童相比较 。去年11月发布的最新版本GPT-3将上述问题的正确率提高到了约90% , 与七岁儿童相当 。GPT-4对心智理论问题的回答正确率约为95% 。

文章插图
“鉴于这些模型中既没有迹象表明ToM(心智化能力)被有意设计进去 , 也没有研究证明科学家们知道如何实现它 , 这一能力很可能是自发且自主地出现的 。这是模型的语言能力不断增强的一个副产品 。"Kosinski写道 。
推荐阅读
- 非语言沟通的技巧有哪些 非语言沟通的技巧有哪些
- 网络语言黑胶指什么 黑胶是干什么用的
- 岚语是哪国语言 岚语是什么语言
- 刀郎新歌被业内人士猛批:通俗简陋、阴阳怪气,格局太小了!
- 刚需的通俗说法 刚需和必需的区别
- 阿根廷说什么语言 阿根廷说什么语言为主
- 回族有自己的语言吗 中国回族有自己的语言吗
- 网络流行语沙发是什么意思 网络语言中沙发是什么意思
- 牡丹花语言是什么 牡丹花的语言
- a在c语言中是什么意思 c!=a在c语言中是什么意思
