大语言模型的构建过程
大语言模型是一种基于 Transformer 结构的神经网络模型。因此,可以将大语言模型看作一种拥有大规模参数的函数,它的构建过程就是使用训练数据对于模型参数的拟合过程。尽管所采用的训练方法与传统的机器学习模型(如多元线性回归模型的训练)可能存在不同,但是本质上都是在做模型参数的优化。大语言模型的优化目标更加泛化,不仅仅是为了解决某一种或者某一类特定任务,而是希望能够作为通用任务的求解器。为了实现这一宏大的目标,大语言模型的构建过程需要更为复杂、精细的训练方法。一般来说,这个训练过程可以分为大规模预训练和指令微调与人类对齐两个阶段。
大规模预训练
一般来说,预训练是指使用与下游任务无关的大规模数据进行模型参数的初始训练,可以认为是为模型参数找到一个较好的“初值点”。这一思想最早在计算机视觉领域被广泛使用,通过使用大规模的图像标注数据集合ImageNet 用于初始化视觉模型的参数。在自然语言处理领域,word2vec采用了类似的预训练思想,使用无标注的文本语料训练可通用的词嵌入模型;后来被 ELMo、BERT和 GPT-1推广到训练可迁移的自然语言任务架构,逐步成为了研发大语言模型的核心技术路径。早期的预训练技术还是聚焦于解决下游某一类的特定任务,如传统的自然语言处理任务。OpenAI 在 GPT-2的论文中,提出通过大规模文本数据的预训练实现通用任务的求解器,并且将这一思路在 GPT-3 中推广到了当时最大的千亿规模。OpenAI 前首席科学家 Ilya Sutskever 在公开采访中指出大规模预训练本质上是在做一个世界知识的压缩,从而能够学习到一个编码世界知识的参数模型,这个模型能够通过解压缩所需要的知识来解决真实世界的任务。在 BERT 等传统预训练模型中