LLM:微调、蒸馏和提示工程

上一单元介绍了通用 LLM,也称为:

  • 基础 LLM
  • 基本 LLM
  • 预训练的 LLM

基础 LLM 使用足够多的自然语言进行训练,因此可以“了解”大量的语法、词语和成语。基础语言模型可以生成与其训练主题相关的实用句子。此外,基础 LLM 还可以执行传统上称为“创造性”的特定任务,例如写诗。不过,基础 LLM 的生成式文本输出并不能解决其他类型的常见机器学习问题,例如回归或分类。对于这些使用场景,基础 LLM 可以用作平台,而不是解决方案。

将基础 LLM 转换为满足应用需求的解决方案需要执行一个称为微调的过程。称为提炼的辅助过程会生成经过微调的模型的较小(参数更少)版本。

微调

研究表明,基础语言模型的模式识别能力非常强大,有时只需进行相对较少的额外训练,即可学习特定任务。这项额外的训练有助于模型针对特定任务做出更准确的预测。这项额外的训练称为微调,可发挥 LLM 的实用性。

微调会使用特定于应用要执行的任务的示例进行训练。工程师有时只需几百个或几千个训练示例,即可对基础 LLM 进行微调。

尽管训练示例数量相对较少,但标准微调通常需要大量计算。这是因为标准微调涉及在每次反向传播迭代中更新每个参数的权重和偏差。幸运的是,一种名为参数高效微调的更智能的流程可以通过在每次反向传播迭代中仅调整部分参数来微调 LLM。

微调模型的预测结果通常比基础 LLM 的预测结果要好。不过,经过微调的模型包含与基础 LLM 相同数量的参数。因此,如果基础 LLM 包含十亿个参数,则经过微调的版本也将包含十亿个参数。

蒸馏

大多数经过微调的 LLM 包含大量参数。因此,基础 LLM 需要大量的计算资源和环境资源才能生成预测。请注意,其中大部分参数通常与特定应用无关。

蒸馏会创建较小的 LLM 版本。与完整 LLM 相比,提取的 LLM 生成预测的速度要快得多,并且需要的计算资源和环境资源也更少。不过,提炼模型的预测结果通常不如原始 LLM 的预测结果。回想一下,参数较多的 LLM 几乎总是比参数较少的 LLM 生成更好的预测结果。

最常见的提炼形式是使用批量推理来标记数据。然后,这些带标签的数据将用于训练一个更小的新模型(称为“学生模型”),以便以更低的费用提供服务。标记数据可作为较大模型(称为教师模型)将其知识传递给较小模型的渠道。

例如,假设您需要在线恶意评论评分器来自动审核评论。在这种情况下,您可以使用大型离线毒性评分器为训练数据标记。然后,您可以使用这些训练数据提炼出一个足够小且可供服务和处理实时流量的毒性评分器模型。

教师模型有时可以提供比其训练时更多的标记数据。或者,教师模型可以将数值分数(而非二进制标签)传递给学生模型。与二元标签相比,数值得分可提供更丰富的训练信号,使学生模型不仅可以预测正类和负类,还可以预测边界类。

提示工程

提示工程可让 LLM 的最终用户自定义模型的输出。也就是说,最终用户要明确 LLM 应如何对其提示做出回应。

人类善于从示例中学习。LLM 也是如此。向 LLM 显示一个示例称为单样本提示。例如,假设您希望模型使用以下格式输出水果的科:

用户输入水果的名称:LLM 输出该水果的类。

单样本提示会向 LLM 显示上述格式的单个示例,然后要求 LLM 根据该示例完成查询。例如:

peach: drupe
apple: ______

有时,单个示例就足够了。如果是,LLM 会输出有用的预测结果。例如:

apple: pome

在其他情况下,单个示例是不够的。也就是说,用户必须向 LLM 显示多个示例。例如,以下提示包含两个示例:

plum: drupe
pear: pome
lemon: ____

提供多个示例称为少样本提示。您可以将上述问题的前两行视为训练示例。

LLM 能否在不使用示例的情况下提供有用的预测(零样本问题)?有时,但 LLM 喜欢上下文。如果没有上下文,以下零样本提示可能会返回与技术公司而非水果相关的信息:

apple: _______

离线推理

LLM 中的参数数量有时非常多,因此在线推理速度太慢,无法用于回归或分类等实际任务。因此,许多工程团队改为依赖离线推理(也称为批量推理静态推理)。换句话说,训练好的模型不是在服务时响应查询,而是会提前进行预测,然后缓存这些预测。

如果 LLM 只需每周或每月执行一次任务,那么即使 LLM 需要很长时间才能完成任务,也无妨。

例如,Google 搜索使用了 LLM 来执行离线推理,以便缓存 50 多种语言的新冠疫苗 800 多个同义词列表。然后,Google 搜索使用缓存的列表来识别实时流量中与疫苗相关的查询。

以负责任的方式使用 LLM

与任何形式的机器学习一样,LLM 通常存在以下偏差:

  • 对其训练时所用的数据。
  • 对其进行提炼时所用的数据。

按照数据模块公平性模块中介绍的指南,公平且负责任地使用 LLM。

练习:检查您的理解情况

以下关于 LLM 的表述中,哪一项是正确的?
随着用户执行更多提示工程,LLM 中的参数数量会增加。
提炼后的 LLM 包含的参数比其源自的基础语言模型少。
与其训练时所依据的基础语言模型相比,微调后的 LLM 包含的参数更少。