购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.4 大模型训练:预训练、模型微调和强化学习

大模型的训练过程大致包含3个步骤,即预训练、模型微调和强化学习。为了方便大家理解,下面用图1-5进行讲解,以ChatGPT模型为例来解释大模型训练的3个步骤 如下。

1.预训练

预训练使用全网公开的文本数据作为原料进行训练,这些数据包括新闻、书籍、论文、维基百科等。采用无监督学习的方式,训练出一个基座模型,在这个过程中,基座模型需要学习人类语言的语法语义,并了解单词和上下文之间的关系,其目的是能够理解人类语言的含义,同时可以生成准确的预测。具体而言,模型会看到一部分文本,基于这部分文本的上下文预测接下来的文本。将预测出来的文本和正确答案进行比较,不断更新神经网络的参数(权重、偏置量),从而逐渐根据上文能够预测下文。随着模型见到的文本越来越多,其预测能力就会越强。由于整个过程特别费时、费力、费钱,因此这个步骤一般都是具有强大算力的大厂完成的。

2.模型微调

通过预训练得到的基座模型的能力是通过上文预测下文,这是因为它“看”了太多的文本,如果输入:“中国的首都是”,它会推测出“北京”。但是它的对话能力并不强。为了让模型具备与人类对话的能力,需要提供人类撰写的高质量对话给它学习,这个过程属于监督学习下的微调。微调的目的是让基座模型能够“适应”对话的场景,并能够胜任与人对话的任务。微调不会大面积改变模型的参数(权重、偏置量),只会改变部分层的部分参数。微调所需要的对话信息也比预训练时的数据更少,因此花费的时间和成本也较低。由于微调的目的是“能够与人对话”,将人类写好的对话内容交给模型学习,也就是人类希望模型按照自己的要求“说话”,这就是监督学习,因此,这个微调过程也称作监督微调(supervised fine-tuning,SFT),微调之后会得到一个“SFT模型”。

3.强化学习

尽管SFT能够根据人类提供的问答对(标注数据)调整模型以改善其表现,但还不能解决实际使用中遇到的复杂场景。就好像师傅教了你武功,但是没有经过实战你还是打不过别人。因此,需要通过强化学习,让大模型根据实际应用中得到的反馈来细化模型的策略。强化学习是一种机器学习方法,它让模型根据环境做出不同的行为,而环境对于这些行为进行反馈,通过对正确行为的奖励让模型学会正确的行为。简单来说,模型不断地与环境互动,对每一个动作的结果进行评估,从而调整其行为。通过这种方式,模型学习识别哪些行为会导致更好的结果。想象你在玩“跳一跳”游戏,每次你控制小人成功跳到下一个方块,游戏就会给你积分作为奖励,这支持你继续使用成功的跳跃方式。如果跳跃失败,小人会掉下去,游戏就结束了。通过这个游戏,你学习调整每次按压屏幕的时间,以达到最佳的跳跃距离。这个过程就是通过奖励来支持正确行为,通过惩罚来避免错误行为,帮助你不断进步。那么对于SFT模型而言,就需要通过强化学习帮助它具备更多实战的能力,所以需要对SFT模型进行提问,并对它的回答进行打分,从而帮助SFT模型学会与人对话。此时我们需要一个奖励模型,这个奖励模型是由微调之后的SFT模型得到的,人类通过对其进行提问,让SFT模型提供多个答案,然后由人类对答案进行排序,告诉模型多个答案中哪个是最优、哪个是次优,通过人类标注反馈给SFT模型让它能够辨别答案的优劣,经过多轮训练之后这个SFT模型就成了奖励模型。奖励模型会根据SFT模型回答问题的质量进行打分,通过强化学习的方式调整SFT模型的回答策略,让其胜任与人对话,并生成最终的模型。

图1-5 大模型的训练过程

总的来说,在大模型的训练过程中,首先进行预训练,利用从互联网上收集的大量公开文本数据(如新闻、书籍、论文、维基百科等),通过无监督学习让模型学习语言的语法语义,并掌握单词与上下文之间的关系。接着,进行模型微调,通过有监督学习的方法,使用高质量的对话数据让模型适应特定的对话场景。最后,通过强化学习进一步细化模型策略,提高其在实际应用中的表现,类似于通过实战训练提升技能,使得模型能更好地与人类进行交流。

需要说明的是,预训练过程中会用到Transformer的模型架构,Transformer的模型架构主要基于自注意力机制,它允许模型在处理输入数据的同时考虑序列中的所有位置,这对于理解整个序列的上下文非常有帮助。它包括两大部分:编码器和解码器。每个编码器层包含自注意力层和前馈网络,而每个解码器层则在这个基础上增加了一个编码器-解码器注意力层,用于关注输入序列的相关部分。在预训练过程中,Transformer通常使用像“遮蔽语言模型”(masked language model,MLM)这样的任务。在这种任务中,输入文本的某些部分被随机遮蔽,并且模型需要预测这些遮蔽的单词,从而学习语言的深层次语义。通过这种方式,Transformer能够捕获语言中的复杂关系,为后续的特定任务微调打下坚实的基础。该模型架构最早在 Attention Is All You Need 论文中提出,在很多书籍和文章中都有对其的讲解和描述,有兴趣的读者可以自行查阅。本书的核心是教读者如何应用,对于Transformer的模型架构和工作原理不展开描述。

训练完成之后的大模型会以一个参数文件的形式存在,以llama2-70b的模型为例,就会生成大约140GB的参数文件 。如果需要该模型进行推理,也就是让大模型接收人类的问题并做出回答,则还需要一个代码文件。Andrej Karpathy(前特斯拉AI和自动驾驶部门负责人,2023年再次加入OpenAI),曾经使用500行的C语言完成了llama2-70b模型的推理

到这里似乎可以对大模型下个定义了,大模型(large model)指的是具有大量参数的深度学习模型,尤其是在执行自然语言处理任务时使用的大型语言模型(large language model,LLM)。这些模型通过深层神经网络结构(如Transformer)来学习和生成文本,能够捕捉和模拟复杂的语言模式。

如果说“模型”用来反映客观世界,那么大模型的“大”主要体现在以下两个方面。

(1)参数数量: 大模型含有数十亿甚至数千亿的参数,这些参数在模型的训练过程中学习并调整,以捕捉输入数据的复杂特征和关系。

(2)数据需求: 这些模型通常需要大规模的数据集进行预训练,如从书籍、网页、新闻文章等中收集的文本数据。通过这些大数据集,模型能够学习丰富的语言知识和文本上下文。

大模型训练完成之后会保存为一个参数文件,配合代码文件可以对模型进行推理,也就是协助人类执行多种任务,如文本生成、翻译、摘要、问答系统等。

用户可以通过本地部署或调用云服务API两种方式来使用这些模型。虽然本地部署提供了完全的控制和定制空间,但它要求用户具备强大的GPU资源,这对于大多数个人用户来说可能成本过高且操作复杂。因此,另一种更为普遍的使用方式是通过调用云服务API。许多AI公司,如国外的OpenAI和Hugging Face,以及国内的阿里巴巴和百度,都提供了这种服务,用户只需通过简单的API调用就可以访问强大的语言模型,执行文本生成、翻译、问答等任务。这种方式不仅降低了技术门槛,还大幅度降低了成本,使得先进的AI技术更加普及和易于接触。 g9KC2kHh23saC/hWFnEVvPqGpNwTPomyveFpNqaWgmxFQCWb/N1Nn1wclgM1BgR2

点击中间区域
呼出菜单
上一章
目录
下一章
×