趋近智
使用标准监督学习 (supervised learning)方法训练神经网络 (neural network)时,需要计算梯度并更新模型架构中的每一个参数 (parameter)。虽然这种方法在小型网络上效果良好,但将其应用于现代语言模型时,会带来严峻的硬件限制。即便是在 10 亿至 70 亿参数之间的小型语言模型,也需要大量的计算资源,这很快就会超过消费级硬件的承受能力。
要理解全量微调 (fine-tuning)为何如此昂贵,必须查看训练期间 GPU 显存 (VRAM)分配的数学事实。显存不仅用于存储模型权重 (weight),其占用空间主要分为四个部分:模型参数、梯度、优化器状态和前向激活值。
当以 16 位精度加载模型时,每个参数占用 2 字节内存。对于一个 70 亿参数的模型,仅权重就消耗大约 14 GB 的显存。在反向传播 (backpropagation)过程中,网络会为每个参数计算梯度,以确定权重更新的方向和幅度。以 16 位精度存储这些梯度又需要 14 GB。
最大的内存瓶颈来自优化器。训练语言模型时使用的标准优化器是 AdamW。它为每个参数维护两个独立的状态:梯度的指数移动平均值和梯度平方的指数移动平均值。为了保持数值稳定性,这些状态通常以 32 位浮点精度存储,每个状态需要 4 字节。这意味着优化器状态为每个参数消耗 8 字节。
使用 AdamW 优化器进行标准全量微调时,每个参数的显存分配分解图。
你可以将全量微调的基础内存需求(以字节为单位)表示为一个简单的公式,其中 代表模型参数的总数:
对于一个 70 亿参数的模型,计算 可以发现,仅仅为了在内存中保留权重、梯度和优化器状态,最低内存需求就达到了 84 GB。这个计算甚至还没包括前向激活值,而激活值的大小会随着训练数据的序列长度和批次大小增加。因此,训练这种规模的模型需要专门的硬件配置,例如通过高速通信链路连接的多块 A100 GPU。
除了直接的硬件限制外,全量微调还会带来显着的存储和部署问题。当你更新网络中的每个权重时,产生的模型与基础模型完全不同。如果你正在开发多个专门的应用,比如一个用于摘要医学文档的模型,另一个用于生成 Python 代码的模型,全量微调要求你为每个任务保存并托管完全独立的模型副本。对于 70 亿参数的模型,这意味着每个任务都要分配 14 GB 的磁盘空间和部署内存。
模型副本的这种线性增长导致了低效的部署架构。在本地环境或小型云服务器上同时将多个大文件加载到内存中是不切实际的。此外,在小型专业数据集上微调所有参数往往会导致灾难性遗忘。模型可能会完美适应新任务,但却丧失了在最初预训练 (pre-training)阶段获得的基础语言推理 (inference)能力。
这些硬件、内存和存储方面的多重限制,使得全量微调在大多数本地开发场景下难以实现且效率低下。通过明确显存是如何分配的(特别是分配给优化器状态和梯度的部分),你可以明白为什么冻结基础模型参数的技术是必要的。保持大部分权重不变可以消除它们对应的梯度和优化器状态,从而大幅减少训练所需的内存占用。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•