大模型的技术迭代速度远超预期。2025-2026年,几项关键技术正在重塑模型的能力边界:MoE(混合专家)架构大幅降低推理成本、长上下文技术突破百万Token窗口、推理加速让部署成本下降数倍。
这篇文章梳理这些前沿方向的核心论文和工程实践,尝试回答一个问题:这些技术离实际可用还有多远?
一、MoE架构:用更少的计算做更多的事
核心思想
传统的Dense模型(如早期的Qwen、Llama),每次推理都会激活全部参数。一个70B参数的模型,每个Token的计算量就是70B级别的。
MoE(Mixture of Experts)的思路是:模型虽然总参数量很大,但每次推理只激活其中一小部分。
# Dense模型
输入 → [全部参数 70B] → 输出
每次计算量: 70B
# MoE模型(如DeepSeek-V3: 总参数671B,激活37B)
输入 → Router(门控网络) → 选择Top-K个专家
→ [专家1] [专家5] [专家12] (每次只激活2-3个专家)
→ 合并输出
每次计算量: ~37B(但总知识量等效671B)
DeepSeek的MoE设计
DeepSeek-V3是目前MoE架构最成功的工程实践之一。它的关键设计:
- 细粒度专家:256个小专家而不是8个大专家,路由更精确
- 共享专家:1个始终激活的共享专家,存储通用知识
- 负载均衡:无辅助损失的负载均衡策略(Auxiliary-loss-free),避免部分专家过热/闲置
- Multi-head Latent Attention(MLA):压缩KV缓存,减少内存占用
工程影响
| 指标 | Dense 70B | MoE 671B (DeepSeek-V3) |
|---|---|---|
| 总参数量 | 70B | 671B |
| 每Token激活参数 | 70B | 37B |
| 推理速度 | 基准 | ~2x 快 |
| 模型能力 | 基准 | 显著更强 |
| 显存需求 | ~140GB | ~350GB(需要多卡) |
二、长上下文技术
2024年初128K是上限,2025年百万Token级别的上下文开始出现。这背后是几项关键技术的突破。
1. RoPE位置编码外推
Rotary Position Embedding(RoPE)是目前主流的位置编码方案。但模型在短序列上训练后,直接推理长序列会失效。
解决方案:NTK-aware Scaling
# 原始RoPE的频率基数
base = 10000
# NTK-aware外推:动态调整频率基数
# 使得低频分量保持不变(负责远距离关系),高频分量压缩(负责局部关系)
scale_factor = context_length / training_length
new_base = base * (scale_factor ** (dim / (dim - 2)))
# 例如:从4K外推到128K
# scale = 128000 / 4096 = 31.25
# 频率基数从10000调整到约500000
这种方法的优点是零成本:不需要重新训练,只改推理时的位置编码参数。但超过一定倍数(通常10x以上)效果会明显下降。
2. Ring Attention
标准Attention的内存复杂度是O(n²),百万Token的序列需要天文数字的显存。
Ring Attention的思路是分布式注意力:将长序列切分到多个设备上,每个设备只处理自己的那段,通过环形通信交换KV信息。
# 传统Attention
# 序列长度100万,需要在单个设备上计算完整的100万x100万注意力矩阵
# 内存需求:约3.7TB(FP16),不可能
# Ring Attention(8个设备)
# 每个设备处理12.5万Token
# 通过环形传递KV缓存,每步只需要计算12.5万x12.5万的注意力
# 内存需求:每个设备约58GB,可行
设备1: [Token 0-125K] ←→ 设备2: [Token 125K-250K]
↑ ↓
设备8: [Token 875K-1M] ←→ 设备3: [Token 250K-375K]
... 环形通信 ...
3. KV Cache压缩
长上下文推理的另一个瓶颈是KV Cache。每个Token都需要缓存其Key和Value向量,128K上下文的KV Cache可以占到几十GB显存。
主要压缩方案:
- GQA(Grouped Query Attention):多个Query Head共享一组KV Head,缩减KV缓存至原来的1/4 ~ 1/8
- MLA(Multi-head Latent Attention):DeepSeek提出,将KV压缩到低维潜空间,缓存量减少数十倍
- H2O(Heavy-Hitter Oracle):动态淘汰不重要的KV Cache条目,只保留"高频命中"的Key
- 量化KV Cache:将FP16的KV缓存量化为INT4/INT8
# KV Cache大小计算
# 模型: 32层, 隐藏维度4096, 32个Head
# 标准MHA: 每Token缓存 = 2 * 32层 * 4096维 * 2字节(FP16) = 512KB
# 128K Token: 512KB * 128K = 64GB
# 使用GQA (8组): 每Token缓存 = 512KB / 4 = 128KB
# 128K Token: 128KB * 128K = 16GB
# 使用MLA (压缩比1/16): 每Token缓存 ≈ 32KB
# 128K Token: 32KB * 128K = 4GB ← 可在单卡上运行
三、推理加速技术
1. 投机解码(Speculative Decoding)
大模型推理的瓶颈不是计算,而是内存带宽——每生成一个Token都要从显存加载整个模型的权重。投机解码的思路是用一个小模型"猜"未来几个Token,然后让大模型并行验证。
# 传统自回归解码
# 每步生成1个Token,需要完整的一次前向传播
Token1 → Token2 → Token3 → Token4 → Token5
↑ ↑ ↑ ↑ ↑
大模型 大模型 大模型 大模型 大模型
# 5步,5次大模型推理
# 投机解码
# 小模型快速猜4个Token,大模型一次验证
Token1 → [小模型猜: T2, T3, T4, T5]
→ 大模型并行验证4个Token
→ 接受T2✓, T3✓, T4✗ → 从T4重新生成
# 1步小模型 + 1步大模型 ≈ 生成3个Token
# 加速比: ~2-3x
2. 连续批处理(Continuous Batching)
传统的静态批处理中,一个batch中最短的请求完成后也要等最长的请求。连续批处理允许动态加入和移出请求:
# 静态批处理
Batch = [请求A(100Token), 请求B(500Token), 请求C(200Token)]
→ 请求A在第100步完成,但GPU资源浪费到第500步才释放
# 连续批处理 (vLLM, TGI等框架)
Step 100: 请求A完成,空出位置 → 立即填入请求D
Step 200: 请求C完成,空出位置 → 立即填入请求E
→ GPU利用率接近100%
3. PagedAttention
vLLM框架提出的PagedAttention,用操作系统"虚拟内存分页"的思想管理KV Cache:
- KV Cache按固定大小的"页"分配,而不是为每个请求预分配最大长度
- 避免了内存碎片和预分配浪费
- 支持请求间共享KV Cache(如共享System Prompt)
- 实测可提升2-4x的吞吐量
四、这些技术的工程落地现状
| 技术 | 成熟度 | 已落地产品 | 门槛 |
|---|---|---|---|
| MoE架构 | 成熟 | DeepSeek-V3, Qwen-MoE | 训练端高,推理端可用 |
| 128K上下文 | 成熟 | 多数主流模型 | API直接可用 |
| 百万Token上下文 | 早期 | Kimi(实验) | 效果不稳定 |
| KV Cache压缩 | 成熟 | GQA/MLA已集成 | 模型内置,透明 |
| 投机解码 | 可用 | vLLM支持 | 需要额外小模型 |
| 连续批处理 | 成熟 | vLLM, TGI | 部署框架内置 |
| PagedAttention | 成熟 | vLLM | 部署框架内置 |
五、对应用开发者的影响
作为AI应用开发者,你不需要自己实现这些底层技术,但需要理解它们的影响来做出更好的技术选型:
- MoE模型API更便宜:同等能力下,MoE模型的API定价通常更低。选型时不要只看参数量,看实际效果和价格。
- 长上下文≠好用:128K上下文不意味着你应该把128K的文本全塞进去。大部分场景下,RAG(检索最相关的几段)比塞全文效果更好、更便宜。
- 自部署选vLLM:如果你要自己部署模型,vLLM几乎是当前唯一的选择。它集成了PagedAttention、连续批处理、投机解码等优化,比原生HuggingFace推理快3-5倍。
- 关注推理成本而非训练成本:对于应用开发者,训练是一次性的,推理是持续性的。推理优化带来的成本节省是倍数级的。