扩展:运筹学基础
在线 Notebook
对应的交互式版本可在 Google Colab 打开,统一使用方式见 第0章说明。
难度: 中高级
前置知识: 线性代数、优化基础(第2章)
为什么需要运筹学视角
第 2 章主线解释“训练为什么是优化问题”。运筹学关注的是另一类优化问题:在有限资源和约束条件下,如何做出可执行的系统决策。
本节不是完整的运筹学课程,也不讲线性规划、整数规划或排队论的求解算法。它只提供一个工程建模入口:先把变量、目标和约束说清楚,再讨论系统应该如何取舍。
在 LLM 系统中,这类问题非常常见:
- GPU 资源有限,请求应该如何排队和调度?
- 不同请求应该路由到小模型、大模型、RAG 还是 Agent?
- 预算有限时,如何在质量、延迟和成本之间取舍?
- 高峰流量下,哪些请求应该降级、缓存或转人工?
这些问题不一定通过梯度下降求解,但都属于优化思维的延伸。
资源分配:线性规划
线性规划适合描述“资源有限,收益或成本近似线性”的问题。
一个最简形式可以写成:
其中:
是决策变量,例如不同模型的请求分配量。 是单位成本。 表示资源约束,例如 GPU、预算、延迟容量。
LLM Serving 中的例子:
目标:最小化每日推理成本
约束:P95 延迟不超过阈值,质量不低于阈值,GPU 显存不超过容量
决策:多少请求走小模型,多少请求走大模型,多少请求走缓存这里不要求真实系统都满足线性假设。线性规划的价值是提供一个清晰框架:先定义变量,再定义目标,再定义约束。
离散决策:整数规划
很多工程决策不是连续变量,而是离散选择:
- 是否启用某个模型副本
- 某个请求分配给哪台机器
- 某个工具是否允许 Agent 调用
- 某个服务是否进入降级模式
这类问题可以用整数变量表达:
例如:
x_i = 1 表示启用第 i 个模型副本
x_i = 0 表示不启用严格求解整数规划通常很难,真实工程里也经常使用规则、启发式和在线监控来近似处理。这里的重点是理解离散决策和连续优化不是同一类问题。
序列决策:动态规划
动态规划适合处理“当前决策影响未来状态”的问题。
一个常见的递推直觉是:
其中:
是当前状态。 是行动。 是当前成本。 是行动后的新状态。 是从状态 出发的最优长期成本。
LLM 应用中的类比:
- 多步 Agent 每一步都要决定是否继续调用工具。
- RAG 系统要决定是否继续检索、重排或直接回答。
- 对话系统要决定当前是否追问、回答、拒答或转人工。
这里不展开动态规划算法。它提醒我们:多步系统不能只看当前一步的收益,还要考虑后续状态和累计风险。
排队论:吞吐、等待和服务率
线上服务的延迟不只来自模型计算,也来自排队等待。一个简化的排队视角包含:
- 到达率
:单位时间进入系统的请求数。 - 服务率
:单位时间能处理的请求数。 - 利用率
。
在很多服务系统中,当
- 平均 QPS 不够,必须看峰值 QPS。
- 平均延迟不够,必须看 P95 / P99 延迟。
- 批处理能提高吞吐,但会增加等待时间。
- 限流和优先级不是附加功能,而是稳定性机制。
这直接连接第 8 章的推理优化和生产系统设计。
约束优化:质量、成本、延迟的取舍
LLM 系统很少只优化一个目标。更常见的是:
最小化成本
约束:质量 >= 阈值
约束:P95 延迟 <= 阈值
约束:错误率 <= 阈值
约束:安全风险 <= 阈值这类约束优化比单纯追求“模型更强”更接近生产系统。它会导出很多工程策略:
- 小模型处理简单请求,大模型处理高风险请求。
- 命中缓存时不调用模型。
- 超出预算时降级到短回答或模板回答。
- 延迟接近 SLO 时限制 Agent 步数。
- 高风险工具调用必须人工确认。
和深度学习优化的区别
| 维度 | 深度学习训练 | 运筹学系统决策 |
|---|---|---|
| 变量 | 模型参数 | 资源、路由、调度、开关 |
| 目标 | 降低损失函数 | 降低成本、延迟或风险 |
| 约束 | 数值稳定、显存、训练预算 | SLO、容量、权限、预算 |
| 方法 | SGD、Adam、反向传播 | 线性规划、整数规划、动态规划、启发式 |
| 结果 | 一个模型 | 一个可执行策略 |
两者都属于优化思维,但解决的问题层级不同。第 2 章主线讲“模型如何被训练出来”,运筹学扩展讲“系统如何在约束下运行得更好”。
和第 8 章的连接
第 8 章的工程优化可以看作运筹学在 LLM Serving 中的落地:
- 批处理和调度:排队论和资源分配。
- 模型路由:约束优化和离散决策。
- 缓存策略:成本优化和命中率建模。
- 容量规划:服务率、峰值流量和冗余设计。
- 降级策略:约束冲突时的可执行决策。
因此,第 2 章提供理论入口,第 8 章提供系统落地。
本节小结
- 本节只提供运筹学的工程入口,不替代完整课程。
- 运筹学关注有限资源下的可执行决策。
- 线性规划适合资源分配,整数规划适合开关和路由,动态规划适合序列决策。
- 排队论解释为什么高利用率会带来长尾延迟。
- LLM 系统的真实优化通常是质量、成本、延迟和可靠性的约束优化。
- 运筹学不替代深度学习优化,而是补充系统层面的决策框架。
返回: 第 2 章首页
