Skip to content

数学基础 ​

做 AI 系统研究,数学的要求是理解含义、看懂公式、会算复杂度,不需要会证明定理。课内的线性代数、概率论、高等数学认真学好就够用,这一页告诉你哪些内容最常用,以及帮你建立直觉的资料。

线性代数(最重要) ​

为什么重要:神经网络的计算几乎全是矩阵乘法。理解矩阵乘法的形状变化和计算量,是分析模型推理开销的基础。

要掌握的内容

内容在 AI 里的用处
向量、矩阵、矩阵乘法及其形状规则每一层神经网络、注意力计算
矩阵乘法的计算量(m×k 的矩阵乘 k×n 的矩阵,约需 2mkn 次浮点运算)估算模型推理的计算量(FLOPs)
点积、余弦相似度、范数向量检索、注意力分数
线性变换的几何意义理解 embedding 空间
特征值、奇异值分解(SVD)降维(PCA)、模型压缩(用 SVD 做低秩近似);LoRA 微调也利用了低秩结构:用两个小矩阵的乘积表示权重的增量

资料

  • 3Blue1Brown《线性代数的本质》:用动画讲清几何直觉,强烈推荐先看这个,再看课本会容易得多。
  • MIT 18.06 线性代数(Gilbert Strang):经典课程,B 站有中文字幕版。
  • MIT 18.065(矩阵方法在数据分析和机器学习中的应用):学完 18.06 后的进阶,讲 SVD、PCA 和神经网络。

概率与统计 ​

为什么重要:模型的输出是概率分布;实验结果要用统计量描述;请求到达过程要用概率建模。

内容在 AI 和系统里的用处
随机变量、期望、方差实验结果的平均值和波动
常见分布:伯努利、高斯、泊松、指数请求到达(泊松过程)、噪声建模(扩散模型)
条件概率、贝叶斯公式理解生成模型和分类器
最大似然估计模型训练的目标函数从哪来
分位数、置信区间P99 延迟、误差棒
softmax 与交叉熵大模型的输出层和损失函数

资料:课内教材为主;想要更直观的讲解可以看 Harvard Stat 110(Joe Blitzstein,B 站有中文字幕版)。

微积分与优化 ​

为什么重要:模型训练就是用梯度下降最小化损失函数。

内容用处
导数、偏导数、梯度反向传播
链式法则反向传播的核心,计算图上逐层求导
梯度下降及其变体(SGD、Adam)训练神经网络
凸函数与局部最优理解优化为什么能收敛或不收敛

资料:3Blue1Brown《微积分的本质》;3Blue1Brown 的“神经网络”系列视频用动画讲清了反向传播。

一本书串起来 ​

Mathematics for Machine Learning(Deisenroth、Faisal、Ong 著,可免费下载 PDF):专门讲机器学习需要的线性代数、解析几何、矩阵分解、向量微积分、概率和优化,最后用 PCA、线性回归、SVM 等例子把数学用起来。适合学完课内数学后系统梳理一遍。

系统方向要会的“估算” ​

做 AI Infra 研究时经常需要快速估算,这些都只需要中学数学:

  • 模型权重占多少显存:参数量 × 每个参数的字节数。7B 参数的模型用 FP16(2 字节)存储约需 14 GB,用 INT4(0.5 字节)约需 3.5 GB。
  • KV Cache 占多少显存:2(K 和 V)× 层数 × KV 头数 × 每头维度 × 序列长度 × 批大小 × 每个数的字节数。
  • 生成速度的上限:解码阶段每生成一个 token 都要把全部权重从显存读一遍,所以单个请求(batch=1)的解码速度上限大约是“显存带宽 ÷ 模型大小”。批处理时读一遍权重可以同时为多个请求各生成一个 token,总吞吐可以超过这个值。

练习:查一个你知道的模型(比如 Qwen3-8B)的配置文件 config.json,算出它的权重大小和 8K 上下文时单个请求的 KV Cache 大小。

读组内论文需要的数学 ​

组内的建模与算法类论文(见读组内论文)用到的数学比深度学习多一些,但入门时只需要看懂含义,不需要会证明。

看懂优化问题 ​

text
min   Σ_k T_k                       目标:所有任务的完成时间之和最小
s.t.  |C_n(t)| ≤ C_n,  ∀ t, n        约束:任意时刻、任意节点,运行的容器数不超过上限
      Σ_n u_n^k = 1,   ∀ k           约束:每个任务恰好调度到一个节点
      u_n^k ∈ {0, 1}                 决策变量只能取 0 或 1
记号读法
min、max要最小化或最大化的目标
s.t.subject to,“满足以下约束”
∀ n对所有的 n 都成立
Σ_{l∈L_c}对集合 L_c 中的所有元素求和
L_c ∩ L_n、L_c \ L_n交集(两边都有的层)、差集(L_c 中有而 L_n 中没有的层)
[x > h](Iverson 括号)条件成立取 1,不成立取 0,LRScheduler 用它组合多个条件

决策变量只能取整数(例如 0 或 1)的叫整数规划,一般很难求最优解;把整数条件放宽成实数(例如 0 到 1 之间)叫松弛,松弛后的线性规划或凸优化问题容易求解,再把小数解取整,是很多近似算法和在线算法的基本套路(ORR 的逐步取整就是这样)。

NP-hard 是什么意思 ​

NP-hard 的问题目前没有已知的多项式时间最优算法,问题规模一大,求最优解的时间就会爆炸式增长。论文证明 NP-hard 的常见方式是归约:说明某个已知的 NP-hard 问题(装箱、背包、集合覆盖等)是自己问题的特例。例如把每个节点看成箱子、每个容器看成物品,调度问题就包含了装箱问题,所以至少和装箱问题一样难。

读论文时记住结论就够了:问题是 NP-hard 的,所以论文转而设计启发式、强化学习或近似算法,而不是求精确最优解。另外,任务逐个到来、不知道未来时,还需要在线算法,这和问题是否 NP-hard 是两回事。

在线算法与竞争比 ​

在线算法要在不知道未来输入的情况下马上做决策。用竞争比衡量它的好坏:最坏情况下,在线算法的代价与“提前知道全部输入的最优解”的代价之比。

经典例子是滑雪租赁问题:租一天雪板花 1 元,买一副花 B 元,你不知道自己还会滑几天。策略“先租 B−1 天,第 B 天还在滑就买”:

  • 如果总共只滑了 d < B 天,花了 d 元,正好等于最优(一直租);
  • 如果滑了 d ≥ B 天,花了 (B−1) + B = 2B−1 元,而最优是第一天就买,花 B 元。

所以这个策略的代价最多是最优的 2 − 1/B 倍,竞争比约为 2。无服务器计算中“容器空闲后还要保留多久”的问题和它很像:保留容器每秒都占内存(相当于租),释放后下次请求要冷启动(相当于买)。OCS 这类论文研究的就是这类权衡。

排队的基本概念 ​

请求到达常用泊松过程建模,相邻请求的间隔服从指数分布(L9 的仿真器就是这样生成任务的)。利特尔法则:系统中平均的请求数 = 到达率 × 每个请求在系统中的平均停留时间。例如每秒到达 10 个请求、每个请求平均停留 0.5 秒,系统中平均就有 5 个请求,可以用来快速检查实验数据是否合理。

资料 ​

  • 《算法导论》第 34 章(NP 完全性)和第 35 章(近似算法):理解 NP-hard 和归约。
  • Stephen Boyd 的 Convex Optimization(可免费下载)和斯坦福 EE364A 课程:线性规划、凸优化、对偶。做在线算法、近似算法方向时再系统学。
  • 练习:用自己的话写出 LDLS 的优化问题(目标、每条约束、决策变量),再说明为什么它包含装箱问题。

作者:崔涵帅、姚智、王振胜、唐志清 · 边缘智能系统实验室