低精度只适用于未充分训练的LLM?腾讯提出LLM量化的scaling laws

本文来自腾讯 AI Lab,介绍了一套针对于低比特量化的 scaling laws。

图片

  • 论文标题:Low-Bit Quantization Favors Undertrained LLMs: Scaling Laws for Quantized LLMs with 100T Training Tokens

  • 论文链接:https://arxiv.org/abs/2411.17691

低比特量化(low-bit quantization)和低比特大语言模型(low-bit LLM)近期受到了广泛的关注,因为有一些研究发现,它们能够以更小的模型规模、更低的内存占用和更少的计算资源,取得与 fp16 或 bf16 精度相当的性能表现。这一发现让低比特语言模型一度被认为是实现模型高效化的一个非常有前景的方向。

然而,这一观点受到了腾讯 AI Lab 的挑战。他们的研究发现,低比特量化只有在未充分训练的 LLM(训练量通常在 1000 亿 tokens 以内,基本不会超过 5000 亿 tokens:这种 setting 在当前的学术界研究论文中非常常见)上才能取得与 fp16/bf16 相当的性能表现。随着训练的深入和模型逐渐被充分训练,低比特量化与 fp16/bf16 之间的性能差距会显著扩大。

为了更系统地研究这一现象,研究人员量化了超过 1500 个不同大小以及不同训练程度的开源 LLM 检查点。试图观察并建模量化所导致的性能退化(QiD,quantization-induced degradation,即量化后模型与原始 fp16/bf16 模型的性能差距,记作∆qLoss)

图片

最终推演出了一套针对于低比特量化的 scaling laws。通过这套 scaling laws,可以预测出当 7B, 70B 以及 405B 的模型在训练规模达到 100 万亿 tokens 时低比特量化时损失(如下图)。

图片

根据研究人员的描述,这个工作最初是源于 2 个观察(如下图):a) model size 固定的情况下,training tokens 越多,QiD 就会变得越大;b) training token 数固定的情况下,model size 越小,QiD 就会变得越大。考虑到不管是减小 model size 还是增加 training tokens 都会有利于模型更充分的训练,因此研究人员推测在充分训练的模型上进行低比特量化会造成较为严重的 degradation,反之在未充分训练的模型上则不会有太多 degradation.

图片

为了更好地验证这一推测,研究人员选择了 Pythia 系列开源语言模型进行实验,因为 Pythia 系列模型不仅公开了不同尺寸的 LLM,而且还开源了其中间训练过程的检查点。研究人员选取了 160M, 410M, 1B, 2.8B, 6.9B 以及 12B 这 6 种不同尺寸的 LLM。对于每种尺寸的 LLM,又选取了其训练过程中间 20 个检查点。对这 120 个检查点,研究人员用 GPTQ 对它们分别进行了 2-bit, 3-bit, 4-bit 量化,来观察在不同检查点上量化所导致的性能退化(即 QiD)。

通过分别对于 training tokens, model size 以及量化比特数分别的建模分析(分别建模的结果这里就不详述了,感兴趣的可以阅读论文),最终得到一个统一的 scaling laws:

图片

这里 N, D, P 分别表示模型参数量(除掉 embedding 部分),training tokens 数以及精度(比特数)。α, β 和 γ 分别表示它们对应的指数(α, β, γ 均为正数),k 为联合系数。根据这个 scaling law 的公式,我们不难得到当其它变量固定时:

  • N 越大(模型越大),QiD 越小,说明越大的模型,量化掉点越小;

  • D 越大(训练数据量越大),QiD 越大,说明训练越多的模型,量化掉点越多;

  • P 越大(精度越高),QiD 越小,说明量化的精度(比特数)越高,量化掉点越小。

研究人员根据上述函数形式拟合观测到的数据点,得到在 Pythia 系列 LLM 的低比特量化的 scaling law 公式:

图片

研究人员根据这个公式绘制出曲线,发现能够很好地拟合观测到的数据点:

图片

另外,研究人员对不同测试数据,不同量化方法以及不同的基础模型都进行了评测,发现所得到的 scaling laws 的函数形式大概率是普适成立的:

图片

图片

图片

如下图所示,我们现在知道了充分训练的 LLMs 会遭受更大的 QiD,而训练不足的 LLMs 则更容易实现近乎无损的低比特量化。那这个现象是怎么造成的呢?

图片

研究人员从训练时权重变化幅度这一角度给出了一些见解:未经充分训练的 LLMs 往往会经历较大幅度的权重变化,在训练过程中的这种大起大落式的变化会让模型对 weight variation 变得更为鲁棒 —— 即便进行了低比特量化,量化所造成的偏离往往也要小于它在训练过程中经历的偏移;而充分训练的 LLM 在训练过程中的权重变化就会非常小了,往往在小数点后几位变化,这个时候模型如果遭度更大幅度的权重变化 (如低比特量化带来的权重变化),就非常容易造成严重的 degradation.

图片

除此之外,研究人员还开创性地将 QiD 视为一个衡量 LLM 是否充分训练的指标。如果低比特量化的 QiD≈0,那说明这个 LLM 还远远没有充分训练,还没有将参数高精度的潜力发挥出来。那么根据前文所得到的 scaling laws,就可以推算出不同尺寸的 LLM 达到指定 QiD 所需要的 training tokens 数,如下表:

图片

我们以 4-bit 量化造成 QiD=0.2 为例,7B 模型达到这个程度需要近 17.3 万亿 tokens,而 405b 模型则需要将近 50 万亿 tokens. 考虑到近 4 年模型的训练数据量增长了近 50 倍,可以预见未来模型的训练量会更大(例如,未来几年可能会达到 100 万亿 token)。随着模型训练变得更加充分,低比特量化在未来的应用前景则会变得并不明朗。

除此之外,研究人员也对于原生的(native)低比特 LLM(例如BitNet-b1.58)进行了评测,发现其规律与低比特量化近乎一致,但相比于量化,原生的低比特LLM可能会在更后期才会明显暴露这个问题——因为原生的低精度训练能够让模型一直保持在低精度权重下工作的能力。尽管有一些研究声称原生的低比特LLM可以媲美fp16/bf16精度下的表现,但这些研究普遍都是在未充分语言模型上得到的结果从而推出的结论,研究人员认为在充分训练的情况下进行比较的话,低比特LLM也将很难匹敌其在fp16/bf16精度下对应的模型。 

图片

考虑到学术界算力的限制,在未充分训练的 LLM 上进行实验、评测,从而得到一些结论,并试图将这些结论推广为普遍适用,这一现象已经越来越普遍,这也引发了研究人员的担扰,因为在未充分训练的 LLM 上得到的结论并不一定能够普遍适用。研究人员也希望社区能重新审视那些在未充分训练的 LLM 上得到的结论,从而引出更深入的思考与讨论。

最后的最后,研究人员用了一组插画来形象地概括了一下他们的发现:

1. 如果把模型类比成水瓶,那水瓶里的装水量就可以反映模型的训练充分程度。小模型更容易被装满,大模型则需要更多的水才能装满。

图片

2. 量化就相当于用手去挤压瓶身。对于装满水的瓶子,水会溢出(performance degradation);而没装满水的瓶子则不会有水溢出。

图片

3.量化的精度可以类比成挤压瓶身的力量大小。越低比特的量化挤压得越狠,越容易造成大量的水被挤出(significant degradation)。

图片

更多内容可以访问我的博客 https://ai.tmqcjr.com 

<think>好的,我现在需要帮助用户了解如何学习和入门大型语言模型(LLM)。首先,用户可能对LLM完全没有基础,或者有一定的机器学习知识,但需要系统的指导。我需要先拆解学习路径,确保覆盖基础、理论和实践,同时结合现有的资源推荐。 首先,用户需要基础知识。他们可能不了解机器学习的基本概念,比如神经网络、深度学习框架。我应该推荐学习Python编程和PyTorch/TensorFlow,因为这些都是构建和训练模型的基础工具。同时,数学基础也很重要,线性代数、概率论这些课程是必须的。 接下来是理论学习。用户需要理解LLM的架构,比如Transformer模型。这部分需要详细解释自注意力机制,以及预训练和微调的区别。推荐经典论文如《Attention is All You Needed》可能会有帮助,但用户可能需要更易懂的资源,比如在线课程或书籍。 然后是实践部分。用户可能想动手运行或训练模型,但计算资源有限。这时候可以建议他们从Hugging Face这样的平台开始,使用预训练模型进行微调。同时,本地部署较小的模型,比如LLaMA或ChatGLM,可能更实际。还要提到使用Colab或Kaggle的免费资源,这样用户不需要自己购买昂贵的GPU。 进阶学习方面,用户可能需要了解更高级的主题,比如模型优化、分布式训练。这部分需要推荐一些深入的技术文档或课程,比如李沐的动手学深度学习课程,或者斯坦福的CS224n。同时,参与开源项目也是一个很好的学习方式,可以积累实际经验。 最后,资源推荐要具体。列出书籍、在线课程、论文和社区,方便用户查找。比如《自然语言处理入门》这样的中文书籍可能更适合初学者,而Hugging Face和OpenAI的文档则提供了实用的工具和案例。 用户可能还会有其他疑问,比如如何选择合适的学习资源,或者遇到技术难题时如何解决。因此,生成的相关问题需要覆盖这些方面,比如学习LLM需要哪些数学基础,如何优化模型性能,或者国内外的模型选择。这样用户可以根据自己的需求进一步探索。 总的来说,我需要确保回答结构清晰,逐步引导用户从基础到进阶,理论和实践结合,同时提供丰富的资源推荐和相关问题,帮助他们系统地学习LLM。</think>### 大型语言模型(LLM)学习路径指南 #### 一、基础知识准备 1. **编程与工具** - 掌握Python编程语言,熟悉常用库(如NumPy、Pandas) - 学习深度学习框架:PyTorch或TensorFlow(推荐PyTorch,因其在学术界的广泛应用) - 熟悉Jupyter Notebook开发环境 2. **数学基础** - 线性代数:矩阵运算、特征值分解 - 概率论与统计:贝叶斯定理、概率分布 - 微积分:梯度下降、链式法则 3. **机器学习基础** - 理解监督学习与非监督学习 - 掌握神经网络基本原理(前向传播、反向传播) - 学习RNN、CNN等经典网络结构 #### 二、LLM核心理论 1. **Transformer架构** - 自注意力机制:计算过程可表示为 $$ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V $$ 其中$Q$、$K$、$V$分别表示查询、键、值矩阵[^1] - 位置编码方法:正弦函数编码与可学习编码 2. **预训练范式** - 掩码语言建模(MLM):如BERT的预训练目标 - 自回归建模(Causal LM):如GPT系列模型 3. **关键技术创新** - 模型缩放法则(Scaling Laws) - 参数高效微调方法:LoRA、Prefix-tuning - 上下文学习(In-context Learning) #### 三、实践入门路径 1. **模型体验** - 使用Hugging Face Transformers库调用预训练模型: ```python from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("gpt2") model = AutoModelForCausalLM.from_pretrained("gpt2") ``` 2. **本地部署实践** - 部署轻量级模型(如ChatGLM-6B)的步骤: 1. 安装依赖:`pip install torch transformers` 2. 加载模型: ```python from transformers import AutoModel model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True) ``` 3. **微调实战** - 使用LoRA微调案例: ```python from peft import LoraConfig, get_peft_model lora_config = LoraConfig(r=8, lora_alpha=32) model = get_peft_model(model, lora_config) ``` #### 四、进阶学习方向 1. **分布式训练** - 数据并行 vs 模型并行 - 混合精度训练(FP16/FP32) 2. **推理优化** - 量化技术:8-bit/4-bit量化 - 知识蒸馏:从大模型向小模型迁移知识 3. **领域应用** - 代码生成(如Codex) - 多模态融合(如Flamingo) #### 五、学习资源推荐 | 资源类型 | 推荐内容 | |---------|---------| | **书籍** | 《自然语言处理入门》(何晗)、《Deep Learning for NLP》 | | **课程** | 斯坦福CS224n、李沐《动手学深度学习》 | | **论文** | 《Attention is All You Need》《Language Models are Few-Shot Learners》 | | **社区** | Hugging Face文档、Papers With Code、AI研习社 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值