☰ inferserver 的数学基础

全部文档/系列目录

inferserver 的数学基础

这一页写给这样的读者:本科数学学过,但计算过程已经记不清了。所以不假设你记得导数表、方差公式、矩阵乘法规则;每用一个概念,就在原地定义并推出来。

内容只覆盖这个仓库真正用到的数学:softmax、交叉熵 / KL、RMSNorm、线性层、SiLU / SwiGLU、残差、注意力、RoPE、GQA、KV cache、paged attention 的 online softmax、采样、batching 与浮点误差。每一节末尾都标出对应的 Go 代码。

第 15 节是补章:奇异值分解。它不属于每个 token 都要算的公式,但解释了 LoRA 的低秩增量、KV cache 压缩、谱范数误差估计背后共用的那条假设,所以单独讲一遍。

公式用本地 KaTeX 渲染(assets/katex),断网也能看。整个目录是静态 HTML,直接双击打开即可。

怎么读

章节

符号约定

符号含义本项目的值(Qwen3-0.6B)
\(h\)隐藏维度 hidden_size1024
\(L\)层数28
\(H,\ H_{kv}\)Q 头数 / KV 头数16 / 8
\(d\)每头维度 head_dim128
\(V\)词表大小151936
\(B\)每块 token 数(分页)基准代码用 16
\(T\)序列长度—
\(\epsilon\)归一化的数值稳定项\(10^{-6}\)
\(\theta_{\text{base}}\)RoPE 频率基数\(10^6\)

数学公式里下标从 1 开始,Go 代码从 0 开始。看到 \(i\) 与 \(i+1\) 的差异时,先确认是哪种约定。