只修改一个关键参数,就会毁了整个百亿参数大模型? | 新程序员

💡 原文中文,约10000字,阅读约需24分钟。
📝

内容提要

研究发现,大语言模型在训练过程中展现了多种独特现象,如语言对齐、语法关系预测和词形转换。这些模型具有良好的跨语言迁移能力,并且在任务微调后能够更好地处理语法成分的对齐关系。此外,大语言模型中的语言对齐现象也适用于其他语言,并且少量的数据就能影响整个模型的性能。研究还发现,大模型的语言核心区和特定维度对模型的性能具有重要影响。这些发现为构建大模型提供了有益的解释和指导。

🔎

延伸解读

语言核心区:大模型中的“命门”

研究发现,大语言模型存在一个对语言能力至关重要的核心参数区。实验显示,扰动该区域中变化最小的3%参数,模型困惑度(PPL)会急剧上升,语言能力几乎完全丧失;而随机扰动其他区域则影响甚微。这表明,尽管模型参数高达百亿,但少数关键参数却决定了整体语言功能的稳定性。这一发现提示,在模型训练和微调中,需特别关注这些核心参数,避免对其造成破坏。

二阶段预训练:数据混合与知识注入的平衡

在进行二阶段预训练时,若想增强模型在特定领域(如医学)的能力,直接注入大量新知识数据可能导致核心参数剧烈变化,从而损害原有语言能力。研究建议,应引入与目标领域相关的背景知识,并将新数据与原始预训练数据按5~10倍比例混合训练,使模型逐步适应,避免核心区域被破坏。这一策略有助于在提升领域性能的同时,保持模型整体稳定性。

微调需谨慎:少量数据与多轮训练的陷阱

大语言模型对少量数据极为敏感。实验表明,使用少量SFT数据进行多轮(如6轮以上)微调,会导致语言核心区参数变化,引发PPL飙升,甚至使模型失效。这与小模型不同,大模型不能对少量数据过度拟合。因此,在微调阶段应控制训练轮次,并采用精细化调整策略,以保护核心参数,维持模型性能。

维度依赖:单个维度扰动即可摧毁模型

研究还发现,模型中某些特定维度对性能影响极大。例如,在LLaMA2-13B中,仅扰动第一层Layer Norm的2100维度,PPL便从5.877骤升至21.42;若将该维度值乘以10,PPL更飙升至数亿,模型输出完全混乱。这表明,大模型存在维度依赖现象,少数关键维度的微小改动即可导致整体功能崩溃。这为理解模型鲁棒性和优化提供了新视角。

❓

Q&A

大语言模型在训练过程中会出现哪些独特现象?

大语言模型在训练过程中展现出语言对齐、语法关系预测和词形转换等独特现象。具体包括:跨语言迁移能力、语法结构层面的对齐特性、微调后语法成分对齐关系提升、知识与语言分离、少量数据显著影响模型性能、语言核心区和特定维度对性能的重要影响等。

为什么少量数据就能显著影响大模型的性能?

大模型对噪音数据高度敏感,少量数据可能引起特定维度的调整,导致模型整体PPL值急剧升高。例如,预训练数据中的连续噪音或SFT指令中不匹配的片段,都可能造成模型性能大幅下降。此外,过度拟合少量数据会导致语言关键区域变化,进而使模型失效。

大模型的语言核心区是什么?它对模型性能有何影响?

语言核心区是大模型中承载语言能力的关键参数区域,这些参数在所有语言二次预训练中变化极小。扰动这些区域(如变化最小的1%-5%参数)会导致PPL值显著上升,甚至使模型语言能力完全丧失。冻结核心区后,模型可通过其他区域补偿部分语言能力,但恢复困难。

在进行二阶段预训练时,如何避免模型能力损失?

二阶段预训练时,若需增强特定领域知识,必须引入与目标领域相关的背景知识,并添加5-10倍原始预训练数据混合训练,让模型逐步适应变化。否则,直接添加纯领域数据可能导致参数大幅变化,触及核心区域,造成模型能力损失。

大模型中的语言与知识是如何分离的?

大模型在预训练中实现了语义层面的一致性,而词汇形式的具体表达重要性降低。模型内部具备语义转换能力,能将词形与中间层语义、语法表示分离。例如,在跨语言迁移中,仅需少量SFT数据即可实现语言能力转换,而知识层面并未显著提升。

为什么微调大模型时不能过度训练?

微调时过度训练(如多个epoch)会导致语言关键区域参数变化,引起PPL飙升,甚至模型失效。与大模型不同,小模型可容忍过度拟合,但大模型对少量数据的过度拟合会损害整体性能,因此需采取精细化调整策略,避免针对少量数据训练过多轮次。

🏷️

标签

➡️

继续阅读