模型推理是使用已完成的预训练模型执行生成文本或回答问题等任务,而模型训练则是模型最初获得能力的基本过程。可以将推理比作参加期末考试,而训练则是为考试做准备的整个学习、练习和掌握知识的过程。训练LLM,特别是从头开始(通常称为预训练),是一个计算量很大的过程。它包括让模型接触海量数据集,这些数据集通常包含从互联网、书籍和其他来源收集的数TB文本和代码。主要目的是调整模型的内部参数 – 我们在第1章中讨论的数百万或数十亿个值 – 使模型在特定目标上逐步改进。对于大多数LLM,这个目标是预测文本序列中的下一个词。以下是这个过程的简化概述:输入数据: 模型被输入来自训练数据集的文本序列。预测: 根据其当前参数值,模型尝试预测序列中的下一个词(或token)。比较与损失计算: 模型的预测与训练数据中的实际下一个词进行比较。一个“损失函数”计算预测的错误程度。损失值越高表示错误越大。训练的目标是使损失值最小化。 $$ 损失 = \text{衡量差异}(\text{模型预测, 实际数据}) $$参数调整: 这是计算量大的部分。使用梯度下降等算法和反向传播等技术,系统计算每个参数对错误贡献的程度。然后,它将数十亿个参数朝向在下次尝试中减少错误的方向微调。迭代: 步骤1-4重复数百万或数十亿次,在多个周期(epoch)中处理海量数据。每次迭代,模型的参数都会得到改进,它会逐步提升文本预测能力,有效地从看到的数据中学习语法、事实、推理能力和风格模式。这种在海量数据集上对数十亿参数进行迭代改进,需要巨大的计算能力。这不仅涉及存储参数(如在推理中),还涉及存储计算所需的中间值(如梯度和优化器状态),并执行复杂的数学运算来更新参数。此外,训练通常涉及批量处理数据,并且比推理需要显著更多的内存(VRAM和系统RAM)和计算吞吐量(以FLOPS,即每秒浮点运算次数衡量)。这就是为什么训练大型基础模型通常需要大量强大的GPU集群或TPU等专用AI加速器,消耗大量能源和时间。虽然从头开始预训练模型是最耗资源的形式,但另一种常见类型是微调。这涉及取用一个已经预训练好的模型,并在更小、更专门的数据集上进一步训练,以使其适应特定的任务或领域(如医疗文本分析或客户支持)。微调仍然需要调整参数并要求大量硬件,但通常比从零开始预训练所需资源少。区分这一点很重要:通过训练创建或显著调整LLM所需的硬件远远超过简单使用现有模型进行推理的需求。对于大多数与LLM交互的用户,重点将放在推理所需的硬件上,我们之前已经详细说明,并将在下一章中用于估算。