MiniMax AI Infra 实习 一面 (1)
Q: 介绍你熟悉的大模型架构,比较它们在注意力结构、训练策略和推理优化上的主要差异?
以LLaMA和DeepSeek-V3为例:
注意力结构:LLaMA使用GQA(Grouped Query Attention),多个query head共享一组KV head,平衡效率和质量。DeepSeek-V3使用MLA(Multi-head Latent Attention),将KV压缩为低维latent,极大减少KV Cache。
训练策略:LLaMA是标准Dense模型训练;DeepSeek-V3使用MoE(细粒度专家+共享专家)+ FP8混合精度 + Multi-Token Prediction辅助目标。
推理优化:GQA通过减少KV head数降低显存;MLA通过低秩压缩KV Cache大幅减少解码时的访存量。
Q: 为什么MoE架构能在参数规模继续扩大的情况下保持训练效率?
MoE模型虽然总参数量大,但每个token只激活部分专家(如8选2),实际计算的参数量远小于总量。因此:
- 单token的计算FLOPs与Dense小模型相当,训练速度不会因总参数增大而线性减慢。
- 模型容量(知识存储能力)随总参数增长,但计算成本只随激活参数增长。
- 稀疏激活使得同等计算预算下可以训练更大容量的模型,获得更好的loss。
Q: MoE的路由机制是怎么工作的?为什么会出现专家负载不均?
路由机制:对每个token,路由网络(通常是一个线性层+softmax)计算其与每个专家的亲和度分数,选择top-k个专家处理该token,输出为各专家结果的加权和。
负载不均原因:路由网络倾向于将更多token分配给少数”强”专家(马太效应),因为这些专家已经学得更好。这导致部分专家过载(计算瓶颈)、部分专家欠训练(参数浪费),形成恶性循环。
Q: 如果专家利用率很低,怎么优化路由策略?
- Auxiliary Loss:添加负载均衡辅助损失,惩罚路由分布的偏斜。
- Expert Choice路由:让专家选择token而非token选专家,保证每个专家处理固定数量token。
- 无辅助损失方法(DeepSeek-V3):通过可学习bias调节路由概率,无需额外loss。
- Token Drop:超出容量的token随机丢弃或分配给其他专家。
- Hash路由/随机路由:确定性分配避免学习偏差。
Q: SFT和RLHF在训练目标上有什么本质区别?为什么SFT后仍需RLHF?
SFT:监督微调,目标是最大化人类标注数据的似然(模仿学习),学的是”如何像人一样回答”。
RLHF:强化学习对齐,目标是最大化人类偏好奖励(学习人类判断),学的是”如何让人满意”。
仍需RLHF的原因:SFT只能学到标注数据的分布,无法泛化人类未覆盖的偏好。SFT可能学到有害但存在于数据中的模式。RLHF通过奖励模型对任意输出评分,能更好地对齐开放式生成的质量、安全性和有用性。
Q: RLHF中PPO的核心优化目标是什么?解释目标函数每一项的意义?
PPO目标函数:L = E[min(r(θ) * A, clip(r(θ), 1-ε, 1+ε) * A)] - β * KL(π_θ || π_ref)
r(θ) = π_θ(a|s) / π_old(a|s):新旧策略的概率比。A:优势函数,衡量动作相对于平均水平的好坏。clip:将概率比限制在[1-ε, 1+ε]内,防止策略更新过大。KL项:约束新策略不偏离参考策略(SFT模型)太远,防止reward hacking。β:KL惩罚系数,平衡奖励最大化和策略稳定性。
Q: 手撕:实现K个有序数组的中位数?
(编程题)