📚 模块1:什么是微调,为什么这么昂贵?

1.1 微调的概念定义

微调是一个机器学习模型的过程,该模型先前在大量数据语料库上进行了通用任务的训练(预训练),通过在较小的、有针对性的数据集上进行额外训练,来适应或专精于特定任务。

在大型语言模型(LLM)的背景下,这意味着采用像GPT-2、Llama 3、Mistral或Qwen这样的模型——它们在数十亿网页文本上进行了训练——并调整它们以回答技术支持问题、生成产品描述、将法律术语翻译成通俗语言,甚至采用特定的幽默或正式语调。

微调不是从头开始。模型已经具备了语言、语法、基本推理和一些推理能力的通用知识。微调"教导"模型以特定的、情境化的方式应用这些知识,以实现具体目标。

1.2 为什么传统微调如此昂贵?

尽管功能强大,但现代LLM的完整微调(full fine-tuning)存在技术和经济挑战,使得大多数开发人员、独立研究人员和小企业无法承受。这些挑战可以总结为三个关键维度:

a) 内存需求(显存)

当前的LLM规模从数亿到数千亿参数不等。在训练期间,每个参数都必须作为32位浮点数(FP32)或16位(FP16/BF16)数字存储在GPU内存(显存)中。这意味着:

  • 一个FP16格式的70亿参数(7B)模型仅存储权重就需要大约14 GB
  • 在训练期间,除了权重外,还必须存储梯度(与权重大小相等)和优化器(如Adam,它为每个参数存储两个额外副本:动量和平方动量)。这会使内存需求增加三到四倍。

因此,训练一个7B模型可能轻易需要56 GB或更多的显存,需要多个高性能GPU(如A100或H100)并行运行。

b) 计算成本和训练时间

训练一个完整的LLM涉及在每个优化步骤中执行数百万次数学运算。即使使用加速硬件,训练时间也可能延长数天或数周,具体取决于数据集和模型大小。这转化为云成本,每个实验可能超过数百或数千美元。

c) 灾难性遗忘的风险

当在微调期间更新所有模型参数时,存在重大风险,即模型会"遗忘"在预训练期间获得的通用知识,特别是如果微调数据集较小或不能代表通用知识。这种被称为灾难性遗忘的现象,可能会严重降低模型在与专业化无关任务上的性能。


Course Info

Course: AI-course3

Language: ZH

Lesson: Module1