重命名: deepseek论文md加_abstract后缀, 消除与pdf同名冲突(修复SilverBullet 404)

This commit is contained in:
ylhan
2026-09-20 17:52:13 +08:00
parent 14c280ffee
commit f5b825bd4a
34 changed files with 66 additions and 66 deletions
@@ -0,0 +1,153 @@
# 让专家各守本行:面向稀疏架构大语言模型的专家专精微调
> **原文标题**:Let the Expert Stick to His Last: Expert-Specialized Fine-Tuning for Sparse Architectural Large Language Models
> **arXiv**:[2407.01906](https://arxiv.org/abs/2407.01906) | **发布**:2 Jul 2024(v1),5 Jul 2024(v2)
> **作者/机构**:Zihan Wang(在 DeepSeek 实习期间完成)、Deli Chen、Damai Dai、Runxin Xu、Zhuoshu Li、Y. Wu | DeepSeek(深度求索)AI
> **原文 PDF**:[01-ESFT-专家专精微调-2407.01906.pdf](./01-ESFT-专家专精微调-2407.01906.pdf)
## 一、摘要(全文翻译)
参数高效微调(Parameter-Efficient Fine-Tuning, PEFT)是在资源受限条件下定制大语言模型(Large Language Model, LLM)的关键手段。尽管面向稠密架构 LLM 已经出现了多种 PEFT 方法,但面向稀疏架构 LLM 的 PEFT 研究仍然严重不足。在本工作中,我们研究面向混合专家(Mixture-of-Experts, MoE)架构 LLM 的 PEFT 方法,本文内容主要包含三个方面:(1)我们考察了定制任务中被激活专家的分散程度,发现针对某一特定任务的路由分布往往高度集中,而不同任务之间被激活专家的分布则差异显著。(2)我们提出专家专精微调(Expert-Specialized Fine-Tuning, ESFT),它微调与下游任务最相关的专家,同时冻结其他专家与模块;实验结果表明,我们的方法不仅提升了微调效率,而且能够匹配甚至超越全参数微调的性能。(3)我们进一步分析了 MoE 架构对专家专精微调的影响。我们发现,专家粒度更细的 MoE 模型更有利于选出与下游任务最相关的专家组合,从而同时提升训练效率与训练效果。我们的代码开源于 https://github.com/deepseek-ai/ESFT 。
## 二、核心贡献
1. **刻画 MoE 的任务专精现象**:同一任务激活的专家高度集中,不同任务激活的专家集合几乎不重叠,为按任务选专家提供依据。
2. **提出 ESFT**:只微调与任务最相关的专家、冻结其余参数,性能与全参数微调持平甚至更优,通用能力退化更小。
3. **两种专家相关性评分**:平均门控分数(ESFT-Gate)与词元选择比例(ESFT-Token),可按任务择优。
4. **大幅降本**:相比 FFT 存储最多省 90%、训练时间最多省 30%;每任务每层平均只训练 66 个专家中的 2–15 个。
5. **揭示架构与方法的耦合**:细粒度专家切分是 ESFT 生效的前提,专家合并为粗粒度后 ESFT 衰减比 FFT 更严重。
6. **厘清参数取舍**:通用能力下降主要源于训练共享参数,只训练任务相关的非共享专家性价比最高。
## 三、方法与技术要点
### 3.1 预备知识:Transformer 中的混合专家层
MoE 层替换前馈网络(FFN),每层含多个结构相同的专家,词元按亲和度只被分配给其中一部分。第 $l$ 层第 $t$ 个词元的输出为
$$\mathbf{h}_{t}^{l}=\sum_{i=1}^{N}\left(g_{i,t}\text{FFN}^{n}_{i}(\mathbf{u}_{t}^{l})\right)+\mathbf{u}_{t}^{l},\qquad s_{i,t}=\text{Softmax}_{i}\left(\mathbf{u}_{t}^{l\top}\mathbf{e}_{i}^{l}\right)$$
其中 $N$ 为专家总数,$g_{i,t}=s_{i,t}$ 当且仅当它进入 TopK 集合,否则为 0。DeepSeekMoE 另引入细粒度专家切分与共享专家隔离(共享专家处理所有词元、承载公共知识):
$$\mathbf{h}_{t}^{l}=\sum_{i=1}^{K_{s}}\text{FFN}^{s}_{i}(\mathbf{u}_{t}^{l})+\sum_{i=1}^{N}\left(g_{i,t}\text{FFN}^{n}_{i}(\mathbf{u}_{t}^{l})\right)+\mathbf{u}_{t}^{l}$$
其中 $K_{s}$ 为共享专家数。
### 3.2 探针实验:MoE 中确实存在任务专精
探针实验考察非共享专家在各任务上的使用情况(涵盖数学、代码、意图识别、摘要、法条判决、翻译等),结论有二:**同一任务的路由高度集中**——门控值归一化后排序,极少数专家承担了大部分门控值;**不同任务激活的专家差异显著**——同任务两个样本共享的 Top-6 专家数在对角线接近 6、非对角线接近 0。这正是可按任务单独优化一部分专家的动机。
### 3.3 ESFT:数据采样 → 专家相关性评分 → 选择与微调
**数据采样**:从训练集随机抽取子集 $D_{s}$ 仅用于挑选专家;经验上 32 个拼接样本、每个长度 4096($2^{17}$ 词元)已足够稳定(附录 C)。
**专家相关性评分**:给出两种基于词元亲和度的度量。平均门控分数(ESFT-Gate)衡量专家对采样数据的平均亲和度:
$$g_{i}^{l}=\frac{1}{N_{s}}\sum_{j=1}^{N_{s}}\frac{1}{L_{j}}\sum_{k=1}^{L_{j}}g_{i,k}^{l}$$
词元选择比例(ESFT-Token)衡量专家被选中的词元占比:
$$r_{i}^{l}=\frac{1}{N_{s}}\sum_{j=1}^{N_{s}}\frac{1}{L_{j}}\sum_{k=1}^{L_{j}}\frac{\mathbb{1}\left(g_{i,k}^{l}>0\right)}{K}$$
其中 $\mathbb{1}(\cdot)$ 为指示函数、$K$ 为每词元激活的专家数;前者看亲和度强弱,后者看调用频率。
**专家选择与微调**:每层设阈值 $p\in(0,1]$,把专家按评分从高到低累加,直到累计占比超过 $p$,得到该层待训练专家集合 $E_{s}^{l}$:
$$\sum_{i\in E_{s}^{l}}R_{i}^{l}\geqslant p,\qquad R_{i}^{l}\in\{r_{i}^{l},\ g_{i}^{l}\}$$
关键:训练与推理时词元仍可路由到任意专家,但只有 $E_{s}^{l}$ 内专家会被更新,其余专家与模块全部冻结——既保留路由能力与专精结构,又把可训练参数压到极小。
### 3.4 实验设置
骨干为 DeepSeek-V2-Lite,先在不含数学与代码的对齐数据上训练得到 vanilla 模型以保留其原始水平。评测覆盖**模型增强**(数学、代码)与**模型适配**(意图识别、摘要、法条判决、低资源翻译),后者用 GPT-4(gpt-4-1106-preview)打 0–10 分或精确匹配;通用能力用 MMLU、TriviaQA、HellaSwag、ARC-Challenge、IFEval、CEval、CLUEWSC。关键超参如下:
| 项目 | 设置 |
|---|---|
| 骨干 | DeepSeek-V2-Lite,每层 66 个细粒度专家 |
| 基线 | FFT、LoRA(除词元嵌入与语言建模头外全部参数) |
| 数据配比 | 任务数据 : 对齐数据 = 1:1(所有方法) |
| 批大小 / 序列长度 | 32 / 4096 |
| 训练步数 | 每任务最多 500 步,每 100 步评测 |
| 学习率 | FFT 3e-5、LoRA 1e-4、ESFT 1e-5 |
| LoRA | rank = 8,scaling = 2 |
| ESFT 阈值 $p$ | ESFT-Gate 0.1、ESFT-Token 0.2 |
| 硬件 | 2 节点 × 8 张 Nvidia A100 PCIe |
## 四、主要实验结果
**表 1 定制能力(模型增强 + 模型适配)**
| 方法 | MATH | GSM8K | HumanEval | MBPP | Intent | Summary | Law | Translation | 平均 |
|---|---|---|---|---|---|---|---|---|---|
| Vanilla | 19.6 | 55.9 | 42.1 | 44.6 | 16.8 | 58.6 | 17.1 | 14.5 | 33.6 |
| FFT | **23.4** | **66.4** | 42.1 | 42.2 | **78.8** | **69.4** | 47.0 | **38.4** | **51.0** |
| LoRA | 20.6 | 58.9 | 39.6 | 44.8 | 67.8 | 64.7 | 39.7 | 23.1 | 44.9 |
| ESFT-Token(本文) | 22.6 | 66.0 | 41.5 | 42.6 | 75.6 | 65.4 | 45.7 | 36.2 | 49.4 |
| ESFT-Gate(本文) | 23.2 | 64.9 | **43.3** | 41.8 | 78.6 | 65.8 | **49.1** | 35.2 | 50.2 |
**表 2 通用能力(跨训练实验平均,标准差跨任务统计)**
| 方法 | CLUEWSC | TriviaQA | IFEval | MMLU | CEval | HellaSwag | ARC | 平均 |
|---|---|---|---|---|---|---|---|---|
| Vanilla | 81.5 | 67.7 | 42.5 | 57.5 | 59.9 | 74.0 | 53.7 | 62.4 |
| FFT | 80.9±1.1 | 65.9±0.7 | 34.2±4.1 | 55.5±1.0 | 58.8±0.9 | 67.9±3.8 | 48.4±2.4 | 58.8±1.3 |
| LoRA | 74.3±7.7 | 63.4±5.4 | 38.7±2.5 | 55.5±1.2 | 57.0±1.5 | 72.8±1.9 | 51.8±2.3 | 59.1±2.5 |
| ESFT-Token | 80.9±0.9 | **66.7±1.8** | **40.7±1.3** | **57.1±0.5** | **59.6±0.8** | 72.3±3.6 | **52.9±1.5** | **61.5±1.1** |
| ESFT-Gate | **81.4±1.1** | 66.5±2.3 | 40.2±1.5 | 57.0±0.4 | 59.5±0.8 | 68.2±9.9 | 51.5±3.1 | 60.6±2.3 |
**表 3 训练共享/非共享参数的消融(✓ 表示训练该类参数)**
| 非共享专家 | 共享专家 | 非专家参数 | 可训练参数 | 专精能力 | 通用能力 | 平均 |
|---|---|---|---|---|---|---|
| 全部(ALL) | ✓ | ✓ | 15.7B | **51.0** | 58.8 | 54.9 |
| 相关子集 | ✓ | ✗ | 1.85B | 49.8 | 60.7 | 55.3 |
| 相关子集 | ✗ | ✗ | 1.4B | 49.4 | **61.5** | **55.4** |
| ✗ | ✓ | ✗ | 450M | 47.4 | 61.2 | 54.3 |
| ✗ | ✓ | ✓ | 1.3B | 49.0 | 60.0 | 54.5 |
| 相关子集 | ✓ | ✓ | 2.7B | 50.8 | 60.3 | 55.6 |
| ✗(不训练) | ✗ | ✗ | — | 33.8 | 62.4 | 48.1 |
**表 4 相关性评分选出的专家 vs. 随机专家(Δ 为替换为随机专家后的变化)**
| 方法 | MATH | GSM8K | HumanEval | MBPP | Intent | Summary | Law | Translation | 平均 |
|---|---|---|---|---|---|---|---|---|---|
| ESFT-Token | 22.6 | 66.0 | 41.5 | 42.6 | 75.6 | 65.4 | 45.7 | 36.2 | 49.4 |
| Δ(随机) | −1.0 | −3.7 | −2.5 | +0.2 | −2.6 | −1.7 | +1.3 | −13.5 | −2.8 |
| ESFT-Gate | 23.2 | 64.9 | 43.3 | 41.8 | 78.6 | 65.8 | 49.1 | 35.2 | 50.2 |
| Δ(随机) | −1.7 | −3.2 | −4.3 | +1.6 | −5.0 | +0.3 | −2.9 | −20.4 | −4.4 |
**表 5 计算效率(各任务平均)**
| 方法 | 训练时间 | 训练参数存储 |
|---|---|---|
| ESFT-Token | 19.8 分钟 | 2.57 GB |
| ESFT-Gate | 20.9 分钟 | 3.20 GB |
| FFT | 28.5 分钟 | 28.6 GB |
| LoRA | 16.5 分钟 | 少于 ESFT(论文未给出具体数值) |
定制能力上 ESFT 明显领先 LoRA、与 FFT 同档:ESFT-Gate 平均 50.2 逼近 FFT 的 51.0,远高于 LoRA 的 44.9,HumanEval 最佳、4 个适配任务中 3 个接近最佳;通用能力上 ESFT 退化最小,平均 61.5(Token)/ 60.6(Gate),高于 LoRA 的 59.1 与 FFT 的 58.8。差距在于数学增强(GSM8K 66.0/64.9 vs. FFT 66.4)与低资源翻译(36.2/35.2 vs. 38.4)——它以极小参数预算逼近 FFT,而非全面取胜。附录 H 另显示,在专精任务上训练后 FFT 与 LoRA 的数学/代码平均性能分别下降 9.0 与 12.4,ESFT 不足 1。
## 五、结论、局限与影响
- **结论**:不同领域任务由不同专家组合处理,这为稀疏架构的 PEFT 提供了天然的选择维度:只微调任务最相关的专家即可大幅降本,同时在下游任务上持平甚至超越全参数微调、更好保住通用能力。策略有二——要专精能力就训练全部共享参数加任务相关非共享专家;要兼顾专精、通用与效率则只训练任务相关的非共享专家。
- **局限性**:方法只在 DeepSeek-V2-Lite 上验证(其他细粒度 MoE 模型难以获取),结论能否迁移仍需检验;且缺少规模与结构对齐、仅专家粒度不同的模型,粗细粒度对比只能用绑定专家组的模拟方式完成。
- **影响**:ESFT 把稀疏架构从算力负担变成定制资源,为 MoE 大模型的低成本垂类落地提供即插即用的路径,也印证了「专家粒度越细、PEFT 空间越大」的架构耦合。
## 六、关键术语对照表
| English | 中文 |
|---|---|
| Expert-Specialized Fine-Tuning (ESFT) | 专家专精微调 |
| Parameter-Efficient Fine-Tuning (PEFT) | 参数高效微调 |
| Mixture-of-Experts (MoE) | 混合专家 |
| Full-Parameter Fine-Tuning (FFT) | 全参数微调 |
| Low-Rank Adaptation (LoRA) | 低秩适配 |
| Fine-grained Expert Segmentation | 细粒度专家切分 |
| Shared Expert Isolation | 共享专家隔离 |
| Average Gate Score (ESFT-Gate) | 平均门控分数 |
| Token Selection Ratio (ESFT-Token) | 词元选择比例 |
| Expert Relevance Score | 专家相关性分数 |
| Expert Affinity | 专家亲和度 |
| Gate Value / Routing | 门控值 / 路由 |
| Coarse-grained Expert | 粗粒度专家 |
| Task Specialization | 任务专精(化) |
| Model Enhancement / Model Adaptation | 模型增强 / 模型适配 |