考察点
这道题出自字节跳动搜推大模型实习一面,考的不是背诵某个模型的细节,而是横向对比能力:能不能讲清「大家都是 decoder-only Transformer,但各自的刀法切在哪」。面试官想看你知道 GQA、Sliding Window Attention、MoE 这些设计点解决什么问题,以及为什么有的模型全用、有的不用。追问会往 KV cache、长上下文外推、MoE 路由走。
参考答案
先立框架:骨架一样,刀法不同
LLaMA、Qwen、Mistral 三代开源模型的共同点远大于差异:都是 decoder-only、都是 pre-norm + RMSNorm、都用 SwiGLU 类门控 FFN、都用 RoPE 位置编码。这套组合从 LLaMA 开始事实上成了开源模型的「公版」。真正拉开差异的是四个设计点。
差异一:注意力机制怎么省 KV cache
- LLaMA:初代用标准 MHA,从 LLaMA-2 的 70B 开始引入 GQA(分组查询注意力)——多个 Q 头共享一组 K/V 头,KV cache 直接缩小几倍,解码阶段的显存带宽压力明显下降,效果损失很小。
- Qwen:Qwen2 起全尺寸上 GQA,连小模型也不放过——因为小模型常部署在边缘,KV cache 省的是真金白银。
- Mistral:Mistral 7B 的招牌是 SWA(滑动窗口注意力) 配 GQA:每个 token 只关注前面固定窗口(比如 4096)的内容,KV cache 占用与序列长度解耦,长文本推理成本大降。代价是窗口外的直接依赖看不到,靠层叠间接传递。
差异二:Dense 还是 MoE
- LLaMA 全系坚持 dense,走「简单可靠规模化」路线。
- Mistral 的 Mixtral 8x7B 是开源 MoE 的标志性作品:每层 8 个专家、top-2 路由,推理只激活约 1/4 参数,用 dense 模型的推理成本拿到更大模型的容量。
- Qwen 两条线都走:dense 打底,Qwen1.5-MoE 和 Qwen3 系列引入细粒度专家(更多更小的专家 + 共享专家),路由粒度比 Mixtral 更细。
MoE 的隐性成本也要提:显存要装下全部专家,省的是计算不是显存;路由不均会造成负载倾斜,需要负载均衡损失约束。
差异三:长上下文策略
RoPE 大家都用,但外推方法不同:LLaMA-2 到 3 靠加大 RoPE 的 base frequency 加长上下文微调;Qwen 用 NTK-aware 插值等技术把上下文拉长,并把长上下文当核心卖点运营;Mistral 靠 SWA 天然支持长序列但牺牲了全局注意力。这背后是不同的业务判断:Qwen 瞄准文档场景,Mistral 瞄准推理效率,LLaMA 瞄准通用基座。
差异四:工程细节与生态取向
- 词表:Qwen 词表大(15 万+)、多语言压缩率高,中文场景省 token;LLaMA 词表偏英文,中文一个字可能拆成多个 byte 级 token。
- 小模型设计:Qwen 小尺寸会 tie embedding(输入输出共享嵌入矩阵)省参数;LLaMA 不 tie。
- 许可证:LLaMA 是社区许可证有商用限制条款,Qwen 主力版本 Apache 2.0 最宽松,Mistral 部分 Apache 2.0、部分商用需授权。选型时这是绕不开的现实因素。
答题收束
横向看,三家在「公版骨架」上的选择反映了各自的定位:LLaMA 求稳做基座,Qwen 堆实用特性做落地,Mistral 用结构创新换推理效率。能讲清每个差异点背后的取舍,这题就答透了。
可能的追问
1. GQA 为什么效果好损失小?
K/V 头之间冗余本来就高,共享后模型容量损失有限;相比 MQA(全部共享一组 K/V),GQA 保留了多组,是质量和成本的折中点。
2. MoE 推理成本真的低吗?
计算量低(激活参数少),但显存占用是全量的,且小批量推理时专家并行效率差。吞吐高的服务场景受益最大,单用户低并发场景优势打折扣。
3. 为什么现在几乎没人用 ALiBi、可学习位置编码了?
RoPE 的相对位置性质好、外推改造手段成熟(插值、NTK、YaRN),社区工具链全围绕它建,成了事实标准,后来者没必要另起炉灶。