书接上回,我们在忙碌人士的LLM入门课 | OpenAI大神讲解大语言模型的原理,如何训练LLM(1)介绍了LLM的基本原理,一个简单的例子理解是LLM以及LL如何实现文本生成。
那么,LLM为什么能进化为一个类似ChatGPT的助手呢?
首先,在基本原理中,大模型参数是经过训练的,这个阶段的训练被称之为预训练。经过预训练的模型具备了预测下一个单词的能力,所以可以生成“通顺”的文本。
现在,需要第二个阶段,称之为“微调”,fine-tuning。在这个阶段需要使用新的数据来训练,因为我们想获得的是一个能够满足我们“提问”的助手,而不是对于整个文本世界的概率预测。
那么,微调的数据是怎么产生的?是公司动用大量的人员,给他们标注指南,然后要求人们提问题,并为这些问题撰写答案。比如上图里描述的,先问一个问题,然后给定一个理想的答案。
预训练的数据是整个互联网可触及的文本,质量可能比较低;但是在微调阶段,重视质量而不是数量。
经过预训练和微调之后,相当于是大模型“遵循”了微调给定的文本形式结构,比如你问LLM,你能帮我就某个问题写一个代码吗?经过微调的模型,可以知道是“如何以代码的形式”来回答这个问题。
总结一下,预训练阶段是一个初始的训练过程,这个过程是和“知识”,有关,经过训练后,LLM具备了世界图景/世界知识(虽然我们并不知道千亿级别的参数是如何“理解”这个世界的),而微调阶段是我们所谓的对齐,是关于格式的,让LLM能够和人们的意愿对齐。
以ChatGPT为例,首先是预训练获取知识,这个阶段是年为单位的,因为训练的成本非常贵,需要专门的GPUs,这不是你能自己买到,这个过程,就是把所有知识“压缩”到这个神经网络中,压缩到数以千计的参数之中。
然后是,微调阶段。先生成标注指示,告诉人们如何对内容进行标注,然后就是雇很多人来生成数据,这个过程在机器上的成本比较低,但在人力上比较贵(所以据说ChatGPT的微调训练数据是非洲的“劳动人民”标注的),这个阶段可以每周进行,然后结果一系列评估,监控不正确的响应,就可以部署为一个聊天助手。然后放出来供大家使用,收集错误然后继续微调。
但是,其实还有第三个阶段,就是比较结果微调。
相比于主动生成答案,人类可能更加擅长“比大小”,在OpenAI中这一步也被称为RLHF,从人类反馈中Human Feedback进行强化学习Reforcement Learning。
流浪地球2中提到过人在回路,我认为这个翻译很不错。
当然,这个过程并不是全部都交给人类,就像上图,你可以移动滑块,让人为变成人机协同,甚至可以最终AI全部接手标注工作。
这是一个LLMs的排行榜,类似于一个聊天机器人的竞技场。可以看到排名靠前的模型基本都是闭源的大公司LLM。
但是这些模型你无法下载他们参数,也无法使用他们进行微调。你只能通过网页或者API调用这些模型。
目前这也是行业生态,开源模型的效果比较差,还是在追赶闭源模型,但是针对特定的应用场景,开源模型似乎也已经足够了。
领取专属 10元无门槛券
私享最新 技术干货