从一个 Token 出发,把 Transformer 的整条链路讲顺
这套题训练一种可复算的回答法:先声明讨论的是哪类架构与哪个阶段,再追踪张量和状态,最后把计算、显存、带宽、通信与质量分开记账。十道题连起来,是一遍带边界条件的 Decoder-only 前向与扩展路线。
先看整套知识的坐标,再逐题理解
这不是背答案清单。先用地图确认概念之间的依赖,再沿“白话直觉 → 核心结论 → 原理与取舍 → 常见误区”阅读每个知识点。
先看关键链路,单个知识点才不会变成碎片
面试官追问的方向,往往就是这张图里的下一根箭头:输入怎样变化、状态存在哪里、哪一步最贵、失败怎样被验证。
换一个关键词,或切回“全部章节”。
Token 怎样变成模型能计算的序列
先回答“模型真正看到什么”。这一章把离散编号、连续向量与位置信息分开,避免一上来就把所有东西混成 Embedding。
Token、Token ID 和 Embedding 到底有什么区别?#
先用大白话把它讲明白
Tokenizer(分词器)先按自己的词表与规则把文本编码成 token;Byte Pair Encoding(BPE,字节对编码)等子词方法能把罕见词拆成已有单元。Token ID 只是这些单元在当前词表里的整数索引,ID 相邻不代表语义相近。
输入 Embedding 用 ID 查一行可训练参数,得到 d_model 维向量。相同 ID 在同一组输入权重下查到相同行,但经过 Attention 与 FFN 后的 contextual hidden state(上下文隐藏状态)会随整段输入改变。
输出端的 Language Modeling Head(LM Head,语言模型输出头)把隐藏状态投影成 V 个词表 logits。输入表和输出矩阵可以独立,也可以做 weight tying(权重绑定);绑定是参数化选择,不是 Transformer 的必然定义。
Token 是 tokenizer 选出的离散单元,Token ID 是当前词表索引,Embedding 是按 ID 查到的连续向量;后续层处理的是向量和上下文 hidden state。LM Head 再把最终状态投回词表,输入输出权重是否绑定要看模型配置。
展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP
原理拆解
词表大小 V、隐藏维 d、序列长度 T 时,输入表是 V×d,查表结果是 T×d;全词表输出矩阵通常是 d×V。
若原本输入表与无偏置输出矩阵各自拥有 Vd 个权重,令 W_out=W_inᵀ 可少一块 Vd 权重;输出 bias、维度适配及特殊映射仍要另算,绑定也约束两端共享同一参数。
E=W_in[token_ids]∈ℝ^(T×d),logits=hW_out;绑定时 W_out=W_inᵀ工程取舍
更大词表常会缩短某些文本的 token 序列,却不保证所有语言或领域都更省;它同时扩大 V×d 输入表和全词表输出,参数、logit/Softmax 成本与序列长度要一起权衡。
常见误区
误区是说“Token ID 越接近,词义越接近”。ID 只是词表排序结果,123 和 124 未必有任何语义关系。
面试官可能继续问
追问:BPE 为什么能处理罕见词?词表从 32K 增到 128K 会改哪三笔账?输入输出权重绑定精确少了多少权重、又要求什么形状兼容?
没有位置编码,Self-Attention 会发生什么?RoPE 又在做什么?#
先用大白话把它讲明白
若 Self-Attention 没有 causal mask(因果遮罩)、位置特征或其他非对称结构,把输入 token 同步置换,输出只会跟着同样置换;这种 permutation equivariance(置换等变)本身没有顺序坐标。
因果 Decoder 不完全满足这个前提:第 m 个位置只能看长度为 m 的前缀,计算图已给出隐式位置线索。NoPE 研究表明 causal language model(因果语言模型)即使没有显式位置编码也能学到可读出的位置信息,所以不能说“没有显式位置就绝对不懂顺序”。
Rotary Position Embedding(RoPE,旋转位置嵌入)把 Q 与 K 的成对通道按位置旋转,让点积显式依赖相对相位;标准写法不旋转 V。扩窗会改变位置映射或训练分布,必须联动训练适配、KV 一致性和目标任务评测。
无 Mask 的内容型 Self-Attention 对置换等变;因果 Mask 会提供“前缀有多长”的隐式位置线索,NoPE 因果模型因此可能学到位置。RoPE 则旋转 Q/K,让注意力分数显式带相对相位;扩窗不能只改 max length。
展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP
原理拆解
把每对通道看作二维平面,位置 m 的 Q 乘 R(m),位置 n 的 K 乘 R(n);因 R(m)ᵀR(n)=R(n−m),点积出现相对位移。
Causal Mask 规定“哪些位置可见”,RoPE 等机制规定“怎样把位置或距离放进分数”。两者合同不同;隐式线索是否足够是实验问题,不是二选一教条。
⟨R(m)q,R(n)k⟩=⟨q,R(n−m)k⟩工程取舍
RoPE 计算便宜且适合相对位置,但超出训练长度后的相位分布会漂移;缩放策略能延长窗口,也可能损伤短上下文或高频位置信号。
常见误区
“有因果 Mask 就一定完全不需要显式位置”与“没有显式位置就完全不懂顺序”都过度。Mask 能产生隐式位置线索,却不直接提供 RoPE 那样的相对相位坐标;最终长度泛化要实测。
面试官可能继续问
追问:无 Mask 双向 Attention 与 causal NoPE 的对称性差在哪?为什么 RoPE 作用在 Q/K 而非 V?Position Interpolation 扩窗后为什么还要训练或验证?
一层 Transformer 为什么既要 Attention 又要 FFN
这一章沿残差流走一遍:归一化稳定数值,Attention 跨位置取信息,FFN 在每个位置做非线性变换,残差把它们接成可训练的深网络。
Self-Attention 的 Q、K、V 分别是什么?为什么要除以 √dₖ?#
先用大白话把它讲明白
可把 Query(Q,查询)理解为“当前位置要找什么”,Key(K,键)是“每个可见位置怎样被匹配”,Value(V,值)是“匹配后取回什么”。三者是 hidden state 的不同学习投影,不是把原词向量原样复制三份。
每个 Q 与可见 K 做点积,先除以 √dₖ,再把 causal mask 加到 logits,最后逐行 Softmax 并加权 V。数值稳定实现会先减去该行最大有限 logit;若 Softmax 后直接清零未来概率而不重新归一化,概率和会被破坏。
在 Q、K 各分量近似独立、零均值、方差约 1 的教学假设下,点积方差约为 dₖ;除以 √dₖ 后方差回到约 1,能减轻维度增大造成的 Softmax 饱和。这个推导是尺度直觉,不是对训练激活分布的精确保证。
Q 决定查什么,K 参与匹配,V 被权重汇总。核心式是 softmax(QKᵀ/√dₖ+M)V;√dₖ 来自独立单位方差分量下点积方差随 dₖ 增长的估算,Mask 必须在 Softmax 前进入 logits。
展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP
原理拆解
输入 X 乘 W_Q、W_K、W_V;多头各自在子空间计算,拼接后再乘 W_O。头学到不同模式是训练结果,不是数学上保证彼此正交或承担固定语义。
对长度 T、隐藏维 d 的标准全注意力,QKᵀ 与 AV 主体约为 O(T²d),而 Q/K/V/O 投影约为 O(Td²);短序列或大 d 时不能把整层成本只概括成 T²。
Attention(Q,K,V)=softmax(QKᵀ/√dₖ+M)V工程取舍
全注意力让每个位置直接访问所有允许位置,但 Prefill 的关系数随 T² 增长;窗口或稀疏机制会改可见边,线性注意力会改聚合算子,不能只说“同样答案更快”。
常见误区
“Attention 就是在找最相似的词”太粗;它匹配学习到的 Q/K 子空间并混合 V。注意力权重也不天然等于因果解释、来源引用或事实证据。
面试官可能继续问
追问:为什么多头不等于重复计算?稳定 Softmax 怎样处理整行被 Mask?什么 T/d 组合下投影成本可能超过 score 计算?
为什么现代 LLM 常用 Pre-Norm、RMSNorm 和残差连接?#
先用大白话把它讲明白
残差连接让子层学习“在 h 上增加什么”,并保留一条不经过 Attention/FFN 非线性变换的路径。一个 Decoder Block 有两次相加:Attention 后一次、FFN 后一次;少画任何一条都会把真实梯度路径讲错。
原始 Transformer 使用 Post-LayerNorm(后置层归一化)式结构。Pre-LayerNorm(前置层归一化,Pre-Norm)把 Norm 放进残差分支,分析与实验表明它在初始化时可获得更良性的梯度,常用于深层训练;这不是所有模型都必须采用的唯一配方。
Root Mean Square Layer Normalization(RMSNorm,均方根层归一化)按每个 token 的隐藏维计算均方根并缩放,不做减均值。它形式更简单,但稳定性仍由初始化、残差尺度、学习率、精度与整体架构共同决定。
残差主干保留 h,Pre-Norm 让分支先归一化再做 Attention/FFN,因此每个子层是 h+Sublayer(Norm(h));一个 Block 有两条旁路。RMSNorm 只按隐藏维的均方根缩放而不中心化,常见但不是稳定训练的单一保证。
展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP
原理拆解
代表性 Pre-Norm Block 是 h′=h+Attn(Norm(h)),h_next=h′+FFN(Norm(h′));堆叠结束后许多 decoder 还会接 final Norm,具体以模型定义为准。
RMSNorm 对单个 token 向量 x 除以 √(mean(x²)+ε),再乘可学习增益 g;它不使用 batch 或整个序列的统计量。
RMSNorm(x)=g⊙x/√(mean(x²)+ε)工程取舍
Pre-Norm 往往更易优化深网络,但表示尺度、深度利用和最终 Norm 合同与 Post-Norm 不同;RMSNorm 省去中心化,也不会自动消除学习率、低精度溢出或梯度爆炸。
常见误区
“Norm 把所有 token 归一到同一分布”不准确。常见 RMSNorm/LayerNorm 是对每个 token 的隐藏维做归一化,不是在 batch 或整个序列间求统计量。
面试官可能继续问
追问:原始 Transformer 是 Pre-Norm 还是 Post-Norm?请画出两条完整旁路;RMSNorm 少了哪一步,为什么仍需 ε?
FFN/SwiGLU 在 Transformer 里做什么?它和 Attention 怎样分工?#
先用大白话把它讲明白
Feed-Forward Network(FFN,前馈网络)对每个位置独立使用同一组权重,完成“升维—非线性—降维”。它不会直接让两个 token 互相通信;跨位置混合由 Attention 或其他序列算子完成。
SwiGLU(Swish-Gated Linear Unit,Swish 门控线性单元)有 gate 与 value 两条升维投影:gate 经过 SiLU(Sigmoid Linear Unit)后逐元素乘 value,再由 down projection 降回 d。它不只是把 GELU 换成另一种激活。
FFN 往往占 Block 很大一部分参数和 GEMM;但“知识都存于 FFN”是过度定位。模型行为来自 Embedding、Attention、FFN、残差与训练数据共同作用,单凭参数占比不能证明知识位置。
Attention 负责位置之间的信息混合,FFN 负责每个位置内部的通道变换。SwiGLU 用 SiLU 门控投影乘内容投影,再降回 d;与普通两矩阵 FFN 公平比较时要缩小其中间维,而不是拿同宽度直接比。
展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP
原理拆解
忽略 bias,普通 d→4d→d FFN 约有 8d² 个权重;中间宽 m 的 SwiGLU 有 gate、up、down 三个矩阵,约 3dm。令两者相等得 m≈8d/3≈2.67d。
所有 token 可把 FFN 合并成大 GEMM 并行计算;训练和 Prefill 不能因为 Attention 有 T² 项就忽略 FFN 的矩阵乘成本。
SwiGLU(x)=W_down[SiLU(W_gate x)⊙W_up x];3dm≈8d²⇒m≈8d/3工程取舍
更宽或带门控的 FFN 增加参数与 FLOPs,并可能提升特定训练配方下的质量;公平对比应固定参数或计算预算、数据和训练过程,不能把原论文实验外推成必胜定律。
常见误区
“Attention 是全部知识,FFN 只是一个激活函数”错误;FFN 本身包含多块大矩阵并进行非线性特征变换,但也不能据此断言所有事实都局部存于 FFN。
面试官可能继续问
追问:为什么 FFN 可按 token 并行?普通 4d FFN 与等参数 SwiGLU 的 2.67d 怎样推出来?两者同样设 4d 为什么不是公平参数对比?
同一套权重,为什么 Prefill 和 Decode 像两种程序
推理题要先确定阶段。Prefill 并行处理输入,Decode 每次追加一个 token;KV Cache、GQA 和 IO-aware Kernel 都是围绕这条差异做工程。
KV Cache 缓存了什么?为什么省计算却吃显存?#
先用大白话把它讲明白
自回归 Decode 生成第 t 个 token 时,新 Q 仍要和前缀的 K/V 做注意力。对标准 Decoder self-attention,历史 token 在每层投影得到的 K/V 不会因后续 token 改变,因此可以保存,避免每步把整段前缀重新跑过所有层。
常见实现缓存每层投影后的 K/V;若 K 在写入前已经应用 RoPE,之后读取必须沿用同一位置映射。具体布局、是否融合以及 MLA(Multi-head Latent Attention,多头潜在注意力)等压缩状态都可能不同,不能把一个公式套给所有架构。
缓存省的是历史前缀的重复投影与层计算,不会让每步读取历史变成 O(1)。随着上下文增长,Decode 仍要读越来越长的状态;并发时还要对每条活跃序列的驻留 token 求和。
标准 MHA/GQA Decoder 的 KV Cache 保存每层历史 token 投影后的 K/V,Decode 只追加新 K/V 再读取历史,避免重跑前缀。它把重复计算换成线性增长的运行状态;每步仍读取更长历史,且 MLA、分片、量化与分页要另算物理占用。
展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP
原理拆解
对一个序列、标准 MHA/GQA、完整逻辑模型,忽略对齐和元数据时,容量约为 2×L×T×H_kv×d_head×b;因子 2 是 K 与 V,变长并发应把 T 改成 ΣT_i。
例:L=32、T=32768、H_kv=8、d_head=128、BF16 的 b=2,逻辑 KV=4,294,967,296 bytes=4 GiB/序列。Tensor/Context Parallel 分片、尾块、scale 与 allocator 会改变每 rank 的物理账。
KV_logical_bytes≈2·L·T·H_kv·d_head·b;并发变长时 T→Σ_iT_i工程取舍
不缓存会重复运行前缀;全缓存则消耗 HBM 容量和读带宽。KV 量化、offload、滑窗、prefix sharing 与分页各自改变精度、传输、可见历史、去重或分配,不能合并成一个“压缩率”。
常见误区
KV Cache 既不是模型权重副本,也不意味着单 token Decode 变成常数成本;它是每个活跃序列的分层状态,容量线性增长,读取工作也随有效历史增长。
面试官可能继续问
追问:上面的 4 GiB 怎样逐项复算?为什么这是逻辑全局账而非单 rank 实占?Prefix Cache、Beam Search 与单请求 KV 各自复用什么?
MHA、MQA、GQA 的核心区别是什么?为什么 GQA 常用于推理?#
先用大白话把它讲明白
Multi-Head Attention(MHA,多头注意力)通常令每个 Query 头拥有对应 K/V 头;Multi-Query Attention(MQA,多查询注意力)保留多 Q 头但让它们共享一组 K/V;Grouped-Query Attention(GQA,分组查询注意力)则让每组 Q 头共享一组 K/V。
设 H_q=32、H_kv=8,若可整除,每 4 个 Q 头共享一组 K/V。相对 32 个 KV 头,标准逻辑 KV 容量与历史 K/V 读量约降到 1/4;这不是端到端延迟必然 4×,也没有把 32 个 Q 输出头删掉。
减少 K/V 头还会缩小 K/V projection,但 Attention 的 Q 头输出与主要 QK/AV 关系计算仍围绕 H_q 展开。长历史、低 batch Decode 往往更受 KV 读带宽影响,因此更容易体现容量与带宽收益。
MHA、GQA、MQA 的差别是 H_kv 从通常等于 H_q、减少为若干组,到 1;Q 头仍可保持不变。GQA 主要减少 K/V 投影、缓存与 Decode 历史读取,是质量与带宽的折中,不会自动把全注意力 Prefill 线性化。
展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP
原理拆解
若 H_q 能被 H_kv 整除,每组 Q 头数是 H_q/H_kv;32Q/8KV 的逻辑 KV 是 32Q/32KV 的 1/4,但端到端收益还含 Q/O 投影、FFN、调度与 kernel。
GQA 论文把已有 MHA checkpoint 继续训练为 MQA/GQA,报告使用原预训练计算量的 5% 做 uptraining;这说明转换需要训练,不是删掉 K/V 权重即可保持等价。
group_size=H_q/H_kv(H_q mod H_kv=0);KV ratio=H_kv/H_q工程取舍
更少 KV 头降低状态与带宽,却增强 Q 头之间的共享约束;模型质量、kernel 支持、并行分片与真实长度分布共同决定最优 H_kv。
常见误区
MQA 不是单头 Attention,GQA 也没有消除 T² 的稠密关系数。它们共享 K/V 表示;Prefill 是否变快与 Decode 能快多少必须分阶段测。
面试官可能继续问
追问:32Q/8KV 为什么是 4 个 Q 头一组?哪部分 FLOPs 和字节会下降、哪部分不变?GQA uptraining 的 5% 口径指什么?
FlashAttention 为什么更快?它是近似 Attention 吗?#
先用大白话把它讲明白
朴素实现会把 T×T score 和 probability 中间矩阵写到 High Bandwidth Memory(HBM,高带宽显存),再读回来做 Mask、Softmax、Dropout 与 V 聚合。长序列时,这些中间张量的搬运和峰值内存会非常昂贵。
FlashAttention 用 tiling(分块)把 Q/K/V 放入片上 SRAM/寄存器,按块维护 online softmax(在线 Softmax)的行最大值、归一化和与加权输出,不把完整 T×T 稠密矩阵落到 HBM。反向再从保存的统计量与 Q/K/V 重算所需块。
论文所说 exact 指稠密路径在实数算术下计算同一个 Attention 定义,没有做低秩或稀疏近似。浮点加法不满足结合律,改变分块和归约顺序可能产生舍入差异,所以 exact 不等于不同 kernel 必须 bitwise identical(逐位一致)。
FlashAttention 是 IO-aware 的算法级精确 Attention:用分块、在线 Softmax 与反向重计算避免落盘完整 T×T 中间矩阵,主要减少 HBM 读写和辅助存储。它仍做稠密全注意力的二次算术,也不承诺浮点逐位一致。
展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP
原理拆解
每个 query 行维护运行最大值 m 和指数和 ℓ;新 score block 到来后,先更新最大值,再按 exp(m_old−m_new) 重缩放旧累计量,不能把各块独立 Softmax 后直接拼接。
原始论文定理给出 O(T²d) FLOPs,并把输入输出之外的辅助内存降为随序列线性;真实速度仍取决于 shape、dtype、mask、dropout、GPU 与 kernel 版本。
m′=max(m,m_b),ℓ′=e^(m−m′)ℓ+Σ_j e^(s_bj−m′)工程取舍
融合 Kernel 更复杂,对块大小、寄存器/SRAM、序列形状和 GPU 架构敏感;并非每个小 shape 都能获得同样加速。
常见误区
“FlashAttention 把计算从 O(T²) 变成 O(T)”和“exact 就是逐位相同”都错误。它不物化二次中间矩阵,但稠密 QK/AV 关系数仍是二次,浮点重排允许小误差。
面试官可能继续问
追问:为何各块独立 Softmax 不能拼接?反向为什么重算反而可能更快?FlashAttention 与滑窗或 block-sparse Attention 组合后,哪一部分才是近似/稀疏?
从 Dense 到 MoE,再到训练预算
最后两题把单层放回整机预算:MoE 用条件计算扩大参数容量,Scaling Law 用实验规律决定参数、数据与计算怎样配比。
MoE 为什么“参数很多但每个 Token 只算一小部分”?代价在哪里?#
先用大白话把它讲明白
Mixture of Experts(MoE,混合专家)常把部分 Dense FFN 换成多个专家。Router(路由器)给每个 token 的 hidden state 打分并选 Top-k routed experts(路由专家),只执行选中的分支;共享专家、哪些层替换、k 与合并方式都由具体架构决定。
Softmax 后 Top-k 是一种代表性实现,不是 MoE 定义本身。Switch Transformer 使用 Softmax 与 Top-1、固定 expert capacity(专家容量)并可能跳过溢出 assignment;DeepSeek-V3 则用 Sigmoid affinity、选中后归一化、共享专家、动态 bias 均衡且不丢 token。
若专家跨设备做 Expert Parallelism(专家并行),通常要 dispatch 与 combine 两次跨卡数据交换,常见实现是 All-to-All;若专家都在本地则没有这笔跨设备通信。热点、padding、dropless 不均衡与小批量 expert GEMM 会以不同方式损伤利用率。
MoE 用路由只激活少数专家,扩大总参数容量而控制 routed FFN 的单 token 计算。代价是全部专家权重的安置、路由不均、小 expert batch、跨设备 dispatch/combine 与训练稳定性;Softmax、容量、aux loss 和丢 token 都不是通用必选项。
展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP
原理拆解
代表性 token-choice Top-k 可把选中专家输出按 gate 权重合并;router 可用 Softmax 或 Sigmoid,权重可在选中集合再归一化,也可有 shared expert,因此回答前要声明实现。
若 E=8、k=2,每个 token 只给 2/8 个 routed experts 产生 assignment;“25%”只描述该路由专家池,不代表整个模型 FLOPs 是 Dense 模型的 25%,因为 Attention、共享层、Router 与通信仍在。
代表性路由:y=Σ_{i∈Top-k(x)}g_i(x)·Expert_i(x)工程取舍
更多专家增加总参数与潜在专业化,k 增大则增加 assignment、专家计算和通信;capacity-based 可 padding/drop,dropless 保留 assignment 却仍承担负载不均。质量与吞吐都需按具体路由和拓扑实测。
常见误区
“每个 token 没选中的专家就不用存”通常错误。服务副本仍需在 GPU、其他设备或分层存储中安置完整专家池;临时按 token 调权重会引入不可忽略的传输与调度成本。
面试官可能继续问
追问:E=8、k=2 的 25% 为什么不是整模型计算比例?Switch 的 overflow 与 dropless 有何差别?何时才会出现两次 All-to-All?
Scaling Law 在说什么?为什么只堆参数不一定划算?#
先用大白话把它讲明白
Scaling Law(规模定律)是在固定或相近的模型族、数据分布、Tokenizer、优化器与训练制度内,用许多不同规模实验拟合参数 N、训练 token D、计算 C 与验证 Loss 的经验关系。它是局部统计模型,不是“参数一大就必然涌现某能力”的数学定理。
Compute-optimal(训练计算最优)研究在固定 FLOPs 档位里改变 N 与 D,寻找 Loss 较低的组合。Chinchilla 用 70B 参数、约 1.4T token,在与 280B Gopher 相近训练计算预算下取得更好结果;著名的约 20 token/参数来自这个案例,不是所有数据和架构的固定常数。
训练最优也不等于全生命周期最优:若模型会被调用很多次,较小模型多训练一些可能用更高一次性训练成本换更低长期推理成本。MoE 又把总参数与每 token 激活计算拆开,Dense 曲线与 6ND 不能按总参数直接照搬。
Scaling Law 是特定训练制度下 Loss 随 N、D、C 变化的经验拟合。固定训练预算要联合选择参数与 token;Chinchilla 说明当时一些模型偏大而训练不足,但 20 token/参数不是定律。训练最优、推理最优和 MoE 口径必须分开。
展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP
原理拆解
Dense Decoder 常用 C≈6ND 做数量级估算:N 通常取每 token 参与主要前后向计算的非 Embedding Dense 参数,D 是训练 token;Attention、词表投影、激活重算、稀疏路由与实现会改变常数和口径。
例:7B Dense 模型训练 1T token,粗算 6×7×10⁹×10¹²=4.2×10²² FLOPs。这个数不是 GPU 小时;还需有效吞吐、利用率、通信、容错与重算才能换成墙钟和成本。
C_train≈6ND(Dense 数量级);7B×1T⇒约 4.2×10²² FLOPs工程取舍
更大 N 可能提升容量却抬高训练与每次推理成本;更大 D 受数据质量、重复与许可约束。真实决策要用本项目的数据和模型族重新做小规模 isoFLOP 拟合,再加入部署需求。
常见误区
“Scaling Law 能精确预测下一代通用能力”与“Chinchilla 永远等于 20 token/参数”都不对。拟合系数依赖数据、架构、优化器、尺度区间与目标 Loss,跨制度外推必须重新验证。
面试官可能继续问
追问:7B×1T 的 4.2×10²² 怎样算?为何不能把 MoE 总参数直接放进 6ND?当调用量达到十亿级时,训练最优为什么可能偏向更小模型和更多 token?