从晶圆厂到 Token:AI 基础设施瓶颈如何重塑软件架构

2026-08-19 42 预计阅读时间: 1 分钟
来源: infoq.com AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:9 分钟

AI 市场的瓶颈已经不只是“模型够不够聪明”。从芯片制造、先进封装,到数据中心供电、网络互联,再到模型推理阶段的 Token 成本,每一层都会影响最终的软件架构。Jordan Nanos 在《From Fab To Token: The State Of The Market》中把这些环节放在同一张图上讨论:硬件供给决定了算力扩张速度,网络决定了 GPU 能否有效协同,而 Tokenomics 则决定了模型能力能否以合理成本交付给用户。

不能只看 GPU 数量

数据中心扩张通常以 GPU 数量或理论 FLOPS 衡量,但这些指标并不能直接代表可用的 AI 服务能力。一个集群能否跑出稳定吞吐,还取决于几类约束:

  • 芯片制造和先进封装能否提供足够的加速器。
  • HBM 等高带宽内存是否成为供应瓶颈。
  • 电力、散热和机架密度是否允许继续扩大部署。
  • 节点之间的网络带宽和延迟是否支持大规模分布式训练与推理。
  • 软件栈能否把硬件利用率维持在可接受水平。

因此,基准测试中的单卡性能和真实系统中的端到端性能之间,可能存在明显差距。尤其是大模型训练,通信、同步和内存访问会吞掉一部分理论计算能力;推理服务则更容易受到 KV cache、批处理策略和请求长度变化的影响。

工程团队需要关注的指标也应从“单个 GPU 每秒多少操作”扩展为“每美元、每瓦、每秒能够生成多少有效 Token”。这会把硬件选择、并行策略和产品定价连接起来。

网络是扩展模型的隐形边界

当模型规模超出单个设备或单台服务器的容量后,系统必须通过张量并行、流水线并行或专家并行来分布计算。此时,网络不再只是基础设施细节,而是模型架构的一部分。

如果每层计算都需要在节点之间频繁交换激活值,网络延迟会直接进入请求的关键路径。带宽不足时,增加更多 GPU 甚至可能带来收益递减:计算资源增加了,但设备在等待通信。

这也解释了为什么“更大的集群”不必然等于“更快的模型”。实际性能受到以下因素共同影响:

  1. 并行切分是否减少跨节点通信。
  2. 通信是否可以与计算重叠。
  3. 批处理是否足以摊薄网络和调度开销。
  4. 模型是否适合使用稀疏专家或其他减少激活计算的结构。
  5. 推理请求是否具有稳定的长度和流量分布。

对软件架构而言,一个重要结论是:模型服务层需要知道硬件拓扑。把所有 GPU 当成同质资源,再用通用负载均衡器随机分发请求,可能会隐藏 NUMA、节点内互联和跨节点网络带来的差异。

从 FLOPS 转向 Tokenomics

用户最终购买的通常不是 FLOPS,而是生成结果。Token 因此成为连接基础设施成本与产品价值的单位。

一次请求的成本并不只由输出 Token 数决定。输入上下文越长,预填充阶段的计算和内存压力越大;输出越长,解码阶段占用加速器的时间越久。并发、缓存命中率、批处理效率和模型量化方式也会改变单位 Token 成本。

可以用一个简化模型快速估算推理成本。下面的 Python 示例只用于预算和敏感性分析,实际生产成本还应加入网络、存储、运维、闲置容量和故障冗余等项目。

运行前只需修改脚本顶部的参数:

from dataclasses import dataclass

@dataclass
class InferenceCost:
    accelerator_hour_usd: float
    accelerators: int
    utilization: float
    input_tokens_per_request: int
    output_tokens_per_request: int
    requests_per_hour: int

    def cost_per_request(self) -> float:
        if not 0 < self.utilization <= 1:
            raise ValueError("utilization must be between 0 and 1")
        hourly_cost = self.accelerator_hour_usd * self.accelerators
        effective_hourly_requests = self.requests_per_hour * self.utilization
        return hourly_cost / effective_hourly_requests

    def cost_per_million_tokens(self) -> float:
        total_tokens = self.input_tokens_per_request + self.output_tokens_per_request
        return self.cost_per_request() / total_tokens * 1_000_000


cost = InferenceCost(
    accelerator_hour_usd=2.50,
    accelerators=8,
    utilization=0.65,
    input_tokens_per_request=2_000,
    output_tokens_per_request=800,
    requests_per_hour=900,
)

print(f"cost/request: ${cost.cost_per_request():.4f}")
print(f"cost/million tokens: ${cost.cost_per_million_tokens():.2f}")

这个模型最适合做三类决策:比较不同硬件租赁价格,评估提高利用率的收益,以及判断上下文长度是否正在推高成本。它也提醒我们,降低成本不一定只能依靠更便宜的芯片;改善批处理、缓存和路由,同样可能产生显著效果。

软件架构需要适应供给约束

当加速器供给紧张时,系统设计应当允许模型和硬件发生变化,而不是把某一种 GPU 或某一个模型规格写死在业务代码中。可以从几个方向入手:

  • 为模型服务定义统一的推理接口,把模型版本、量化格式和硬件放到部署配置中。
  • 记录输入 Token、输出 Token、首 Token 延迟、生成吞吐和 GPU 利用率。
  • 根据请求长度和优先级进行队列隔离,避免长上下文请求拖慢交互式请求。
  • 使用连续批处理、Prefix Cache 或 KV cache 管理降低重复计算。
  • 对高价值请求和后台批任务采用不同的服务等级与成本预算。
  • 在跨节点部署前测量通信开销,确认扩容带来的吞吐增长是否超过网络成本。

基准测试也应尽量贴近实际业务。只测一个固定输入和固定输出长度,无法反映真实流量中的长尾请求。更可靠的测试至少应覆盖不同上下文长度、并发水平、批处理大小和缓存命中率。

落地时的检查清单

从晶圆厂到 Token 的链路说明,AI 系统的性能和经济性是跨层问题。团队在规划下一轮扩容或模型迁移时,可以检查:

  • 是否知道当前供应限制发生在 GPU、HBM、封装、电力还是网络层。
  • 是否同时跟踪延迟、吞吐、利用率和每百万 Token 成本。
  • 是否验证了单机扩容与跨节点扩容的真实收益。
  • 是否把上下文长度、缓存和批处理纳入成本模型。
  • 是否为硬件替换、模型量化和服务降级保留配置空间。

AI 基础设施的竞争不会只由某一代芯片的峰值性能决定。能够把硬件供给、网络拓扑、模型并行和 Token 经济性统一起来的团队,才更容易在成本、规模和用户体验之间做出可持续的取舍。


相关推荐