🧠✂️ 神经网络脑叶切除:从 LLM 中移除 7 层——速度提升 30%
Source: Dev.to
很抱歉,我需要您提供要翻译的具体文本内容才能进行翻译。请粘贴您想要翻译的文章正文,我会按照要求将其翻译成简体中文并保留原有的格式。
TL;DR
| 移除策略 | 速度 ↑ | 困惑度 Δ | 质量 Δ | 是否可行? |
|---|---|---|---|---|
| 基线(未移除) | – | 1.82 | — | ✅ |
| 移除中间层 #11 | +10 % (59 → 64 tok/s) | 1.89 (+4 %) | –4 % | ✅ |
| 移除 3 个中间层 #10‑12 | +12 % (59 → 66 tok/s) | 2.24 (+23 %) | –23 % | ✅ |
| 移除第一层 #0 | +10 % (59 → 64 tok/s) | 5.74 (+215 %) | –215 % | ❌ |
| 移除 7 个“安全”层 (3, 4, 5, 9, 10, 11, 12) | +30 % (59 → 77 tok/s) | ~1.87 (≈ ‑2.5 %) | –2.5 % | ✅ |
所有测量均为在 MPS 后端上进行 10 次运行(5 次热身)的平均值。
Motivation
初创公司在 GPU 上用于 LLM 推理的支出高达数百万美元。据报道,OpenAI 仅在计算上每天就花费 $700 k。任何能够在 不明显降低质量 的前提下加速模型的优化,都能直接转化为成本节约。
层剪枝是一种简单、硬件无关的实现方式:
- 现代模型拥有数十(甚至上百)层(GPT‑4 约 120+ 层)。
- 并非所有层对最终性能的贡献相同。
- 有些层可以被移除,而模型“几乎感觉不到”。
研究 ShortGPT (2024) 表明,最多可以从 LLaMA‑2 中删除 25 % 的层,且仍保持可接受的性能
Note: 为了完整性展示了 “Aggressive” 设置;在超出平衡配置后,质量会迅速恶化。
Closing Thoughts
- 早期层编码位置信息和基本的标记关系——删除它们会导致灾难性后果。
- 第二层 似乎是语言模式的“结晶点”,使其出乎意料地关键。
- 对于这个小模型来说,中后期层的大量部分是冗余的,提供了一条低成本实现更快推理的途径。
Future work could explore dynamic pruning (activating/deactivating layers per‑prompt) or knowledge‑distillation to bake the redundant layers’ contributions into a slimmer architecture.
所有代码和原始测量日志均已在我的公开 GitHub 仓库中提供(为简洁起见,链接已省略)。
edup
剪枝结果
| 策略 | 移除的层 | 加速 | 质量损失 |
|---|---|---|---|
| 最小 | {3} | ~0.4 % | ~5 % |
| 中等 | {3, 5, 10, 11} | ~1 % | ~18 % |
| 激进 | {3, 4, 5, 9, 10, 11, 12} | ~2.5 % | ~32 % |
最佳策略:移除最不重要的层
# 增加 PPL 的层
# **重要提示:** 切勿移除层 0、2、15——它们是关键点。
正在进行的研究与相关工作
| 年 | 项目 | 重点 |
|---|---|---|
| 2024 | ShortGPT | 移除整个层 |
| 2024 | FinerCut | 移除层内组件 |
| 2024 | SliceGPT | 从权重矩阵中移除行/列 |
| 2025 | LinearPatch | 通过 Hadamard 变换在剪枝后恢复 94 % 质量(arXiv) |
| 2025 | MRP (Maximum Redundancy Pruning) | 自适应移除最冗余的层(arXiv) |
| 2025 | CLP (Automatic segment search) | 寻找最佳移除段落(arXiv) |
将剪枝与量化(INT4/INT8)相结合可以实现更大的加速。
商业影响
- 成本节约: 对于每月 1 万美元的推理 GPU 预算,剪枝可节省 2–3 千美元且质量损失不明显。
- 规模: 在 OpenAI 的规模下,这相当于 数百万美元。
注意事项与考虑因素
- 模型规模: 结果基于 TinyLlama 1.1B;在 7 B / 70 B 模型上可能不同。
- 指标局限性: 困惑度并 未 能覆盖所有质量方面。
- 微调: 剪枝后微调可以恢复部分损失的质量。
- 数据集多样性: 实验仅在单一数据集上进行;需要更广泛的测试。
- 测量误差: MPS 后端的速度波动 ±10 %;需多次运行以获得可靠数据。
- 链式思考退化: 最近的工作(arXiv 2510.22228)表明,即使移除 1–2 层也会破坏多步推理,而简单任务则不受影响。
可复现性
所有实验代码均托管在 GitLab:
git clone https://gitlab.com/molchanov.artem.1994/lobotomyllm
cd lobotomyLlm
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python experiments/run_ablation.py --experiment quick
关键洞见
- 第 2 层 出乎意料地最重要(甚至比第 0 层更关键)。
- 第 3‑5 层 和 第 9‑12 层 大多冗余,可在影响最小的情况下移除。
- 第 15 层 是网络后期的隐藏关键层。
- 实际结果: 移除 7 层(22 → 15)可实现约 32 % 加速,质量损失约 2.5 %。
下一步
- 在 Llama‑3 8B 上运行相同的流水线以获得更强的验证。
- 探索 剪枝 + 量化 的组合。
- 调查 关键层(2 与 15) 实际编码了什么。
如果你喜欢这篇内容,请 订阅、为 GitLab 仓库加星,并 分享给同事。
有问题或建议?请留言或私信。
标签: #MachineLearning #LLM #Optimization #PyTorch #NLP #DeepLearning