大语言模型的关键技术:
经过漫长的发展,LLM 进化到了当前的状态------通用且有能力的学习者。在这个过程中,人们提出了许多重要的技术,大大提升了 LLM 的能力。在此,我们简要列举了几种重要的技术,这些技术(可能)是导致 LLM 成功的关键。
1.扩展
Transformer 语言模型存在明显的扩展效应 :更大的模型/数据规模和更多的训练计算通常会导致模型能力的提升。作为两个代表性的模型,GPT-3 和 PaLM 通过增加模型规模分别达到了 1750 亿 和 5400 亿。
此外,由于计算预算通常是有限的,可以利用扩 展法则来更高效地分配计算资源。例如,Chinchilla(具有更多的训练 token)通过在相同的计算预算下增加数据规模,优于其对应的模型 Gopher(具有更大的模型规模。然而,
需要注意的是,数据扩展应该经过谨慎的清理过程,因为预 训练数据的质量在模型能力中起着关键作用。
2.训练
由于巨大的模型规模,成功训练一种能力强的 LLM 是非常具有挑战性的。分布式训练算法是学习 LLM 网络参数所必需的,其中通常联合使用各种并行策略。为了支持分布式训练,已经发布了一些优化框架来促进并行算法的 实现和部署,例如 DeepSpeed 和 Megatron-LM。
此外,优化技巧对于训练稳定性和模型性能也很重要,例如 重新开始以克服训练损失激增和混合精度训练。最近,GPT-4 提出开发特殊的基础结构和优化方法,用更小的模型来可靠地预测大模型性能。
3.能力引导
在大规模语料库上预训练之后,LLM具备了作为通用任务求解器的潜在能力。然而,当 LLM 执行一些特定任务时,这些能力可能不会显式地展示出来。作为技术手段,设计合适的任务指令或具体的 ICL 策略可以激发这些能力。例如,通过包含中间推理步骤,CoT提示已被证明对解决复杂的推理任务有效。
此外,我们还可以使用自然语言表达的任务描述对LLM 进行指令微调,以提高LLM 在未见任务上的泛化能力。然而,这些技术主要对应于LLM 的涌现能力,可能对小语言模型的效果不同。
4.对齐微调
由于LLM 被训练用来捕捉预训练语料库的数据特征(包括高质量和低质量的数据),它们可能会为人类生成有毒、偏见甚至有害的内容。因此,有必要使 LLM 与人类价值观保持一致,例如有用性、诚实性和无害性。为此, InstructGPT设计了一种有效的微调方法,使 LLM 能够按照期望的指令进行操作,其中利用了基于人类反馈的强化学习技术。它将人类纳入训练循环中,采用精心设计的标注策略。ChatGPT 实际上采用类似于 InstructGPT 的技术,在产生高质量、无害的回答(例如拒绝回答侮辱性问题)方面表现出很强的对齐能力。
5.工具操作
从本质上讲,LLM是基于海量纯文本语料库进行文本生成训练的,因此在那些不适合以文本形式表达的任务上表现不佳(例如数字计算)。此外,它们的能力也受限于预训练数据,例如无法获取最新信息。
为了解决这些问题,最近提出了一种技术,即利用外部工具来弥补 LLM 的不足。例如,LLM 可以利用计算器进行准确计算, 利用搜索引擎检索未知信息。最近,ChatGPT已经实现 了使用外部插件(现有或新创建的应用程序)的机制,这类似于 LLM 的"眼睛和耳朵"。这种机制可以广泛扩展 LLM 的 能力范围。
此外,许多其他因素(例如硬件升级)也对 LLM的成功做出了贡献。但是,我们主要讨论在开发 LLM 方面的主要技术方法和关键发现。