《大模型时代:人工智能的新篇章》

306 阅读7分钟

大模型概念

大规模语言模型(Large Language Models,LLM),也称大规模语言模型或大型语言模型,是一种由包含数百亿以上参数的深度神经网络构建的语言模型,使用自监督学习方法通过大量无标注文本进行训练。自2018 年以来,Google、OpenAI、Meta、百度、华为等公司和研究机构都相继发布了包括BERT,GPT 等在内多种模型,并在几乎所有自然语言处理任务中都表现出色。2019 年大模型呈现爆发式的增长,特别是2022 年11 月ChatGPT(Chat Generative Pre-trained Transformer)发布后,更是引起了全世界的广泛关注。用户可以使用自然语言与系统交互,从而实现包括问答、分类、摘要、翻译、聊天等从理解到生成的各种任务。大型语言模型展现出了强大的对世界知识掌握和对语言的理解。

大模型技术生态

人工智能三要素 = 数据 + 算法 + 算力

llm.png

OG.png

2023-11-26-14-22NNpunEB2n86y0q6.png

大规模语言模型训练流程

根据OpenAI 联合创始人Andrej Karpathy 在微软Build 2023 大会上所公开的信息,OpenAI 所使用的大规模语言模型构建流程如图2.2所示。主要包含四个阶段:预训练、有监督微调、奖励建模、强化学习。这四个阶段都需要不同规模数据集合、不同类型的算法,产出不同类型的模型,所需要的资源也有非常大的差别。

image.png

  • 预训练(Pretraining)阶段需要利用海量的训练数据,包括互联网网页、维基百科、书籍、GitHub、论文、问答网站等,构建包含数千亿甚至数万亿单词的具有多样性的内容。利用由数千块高性能GPU 和高速网络组成超级计算机,花费数十天完成深度神经网络参数训练,构建基础语言模型(Base Model)。基础大模型构建了长文本的建模能力,使得模型具有语言生成能力,根据输入的提示词(Prompt),模型可以生成文本补全句子。也有部分研究人员认为,语言模型建模过程中也隐含的构建了包括事实性知识(Factual Knowledge)和常识知识(Commonsense)在内的世界知识(World Knowledge)。根据他们的文献介绍,GPT-3 完成一次训练的总计算量是3640PFlops,按照NVIDIA A100 80G 和平均利用率达到50% 计算,需要花费近一个月时间使用1000 块GPU 完成。

  • 有监督微调(Supervised Finetuning),也称为指令微调(Instruction Tuning),利用少量高质量数据集合,包含用户输入的提示词(Prompt)和对应的理想输出结果。用户输入包括问题、闲聊对话、任务指令等多种形式和任务。

    例如:提示词(Prompt):复旦大学有几个校区?

    理想输出:复旦大学现有4 个校区,分别是邯郸校区、新江湾校区、枫林校区和张江校区。其中邯郸校区是复旦大学的主校区,邯郸校区与新江湾校区都位于杨浦区,枫林校区位于徐汇区,张江校区位于浦东新区。

    利用这些有监督数据,使用与预训练阶段相同的语言模型训练算法,在基础语言模型基础上再进行训练,从而得到有监督微调模型(SFT 模型)。经过训练的SFT 模型具备了初步的指令理解能力和上下文理解能力,能够完成开放领域问题、阅读理解、翻译、生成代码等能力,也具备了一定的对未知任务的泛化能力。由于有监督微调阶段的所需的训练语料数量较少,SFT 模型的训练过程并不需要消耗非常大量的计算。根据模型的大小和训练数据量,通常需要数十块GPU,花费数天时间完成训练。SFT 模型具备了初步的任务完成能力,可以开放给用户使用,很多类ChatGPT的模型都属于该类型,包括:Alpaca、Vicuna、MOSS、ChatGLM-6B 等。很多这类模型效果也非常好,甚至在一些评测中达到了ChatGPT 的90% 的效果。当前的一些研究表明有监督微调阶段数据选择对SFT 模型效果有非常大的影响,因此如何构造少量并且高质量的训练数据是本阶段有监督微调阶段的研究重点。

    目标是构建一个文本质量对比模型,对于同一个提示词,SFT模型给出的多个不同输出结果的质量进行排序。奖励模型(RM 模型)可以通过二分类模型,对输入的两个结果之间的优劣进行判断。RM 模型与基础语言模型和SFT 模型不同,RM 模型本身并不能单独提供给用户使用。奖励模型的训练通常和SFT 模型一样,使用数十块GPU,通过几天时间完成训练。由于RM 模型的准确率对于强化学习阶段的效果有着至关重要的影响,因此对于该模型的训练通常需要大规模的训练数据。Andrej Karpathy 在报告中指出,该部分需要百万量级的对比数据标注,而且其中很多标注需要花费非常长的时间才能完成。图2.3给出了InstructGPT 系统中奖励模型训练样本标注示例。可以看到,示例中文本表达都较为流畅,标注其质量排序需要制定非常详细的规范,标注人员也需要非常认真的对标规范内容进行标注,需要消耗大量的人力,同时如何保持众包标注人员之间的一致性,也是奖励建模阶段需要解决的难点问题之一。此外奖励模型的泛化能力边界也在本阶段需要重点研究的另一个问题。如果RM 模型的目标是针对所有提示词系统所生成输出都能够高质量的进行判断,该问题所面临的难度在某种程度上与文本生成等价,因此如何限定RM 模型应用的泛化边界也是本阶段难点问题。

  • 强化学习(Reinforcement Learning)阶段根据数十万用户给出的提示词,利用在前一阶段训练的RM 模型,给出SFT 模型对用户提示词补全结果的质量评估,并与语言模型建模目标综合得到更好的效果。该阶段所使用的提示词数量与有监督微调阶段类似,数量在十万量级,并且不需要人工提前给出该提示词所对应的理想回复。使用强化学习,在SFT 模型基础上调整参数,使得最终生成的文本可以获得更高的奖励(Reward)。该阶段所需要的计算量相较预训练阶段也少很多,通常也仅需要数十块GPU,经过数天时间的即可完成训练。

挑战

训练模型(创建基础大模型的挑战)

数据:海量训练数据的存储、清理

算力:用于训练和推理的大规模计算集群稳定性、可扩展性

算法:大模型算法效果,需要深厚的技术专业知识

算力:在大规模计算集群上构建复杂算法需要集群性能加速

推理(使用大模型的挑战)

数据:缺少领域/企业知识

数据:最新信息缺失

算法:幻觉问题、提供不需要的信息,缺乏可解释性

算法:偏见,安全