面包屑图标 当前位置: 首页
AI资讯
热点详情

入局AI基础设施:程序员必须了解的系统设计与挑战知识

AI热点日报
AI热点日报时间:2026-05-29
热点解读

AIInfra以GPU为核心,颠覆传统CPU架构。深度学习框架PyTorch降低门槛,但模型训练面临显存瓶颈与通信开销,需模型并行与计算通信重叠。推理优化采用CUDAGraph、KV缓存、流式响应及批处理以降低成本并提升效率。

AI Infra 正重塑技术格局,传统程序员如何快速转型?本文揭秘 AI 系统设计的核心挑战与实战经验。

核心内容:
1. AI Infra 与传统 Infra 的硬件架构差异
2. GPU 计算革命带来的系统设计范式转变
3. 千亿参数大模型训练中的实战经验总结

优tech分享

AI Infra 和传统 Infra 到底有什么本质区别?程序员好不容易积累下来的技术栈和方法论,还能不能复用到 AI 系统架构设计上?

大模型技术爆发之后,AI Infra 已经成为基础设施领域绕不开的核心战场。过去一年多,基础架构算法工程团队落地了多个大模型应用——语音合成、内容理解多模态、生成式推荐,把大模型从训练到推理的全链路跑通了。踩坑无数,但也攒下不少经验。这篇文章就来聊聊传统后台工程师积累的那些技术和方法论,怎么延续和迁移到 AI 系统里,同时系统性拆解 AI Infra 在硬件、软件、训练和推理几个维度上的挑战。

1

硬件演进

经济基础决定上层建筑——软件层面的架构设计,永远脱离不了硬件约束。所以,了解现代 AI 硬件特性是必须要补的一课。

1.1 从CPU为中心到GPU为中心

传统基础设施以 CPU 为核心,通过多线程和微服务构建分布式系统,处理高并发请求(比如 Web 服务)。这些方面已经有一套成熟的方法论了(像"海量服务之道")。主要处理的是逻辑事务,瓶颈通常卡在网络 I/O 和 CPU 核心数量上。发展到现在,硬件其实很少成为 CPU 系统设计的制约了。

而 AI Infra 的核心是 GPU,设计目标从逻辑事务处理转向了高吞吐浮点计算。这时候,CPU 多线程被 GPU 并行计算替代,内存被显存替代。举个例子,H20 单卡 96GB 显存,可以提供 44TFlops 的单精度浮点运算,算力和访存带宽是主流 CPU 的几十倍甚至几百倍。每台机器装 8 卡就是 768GB 显存,另外还有 CPU 192核384线程 + 2.3TB 内存。

为什么 GPU 成了主角?因为 LLM 大模型每生成一个 token,都需要把全量模型参数读一遍。传统的 CPU + 内存的算力和带宽根本扛不住这么恐怖的计算密度,计算和通信必须全部转移到 GPU 内部完成。CPU 退化成了数据搬运工和"辅助处理器"。

为了更直观地理解这个计算密度,我们直接算一笔账:不考虑计算延时,LLM 大模型生成一个 token 的耗时公式为

以 DeepSeek-R1-671B-A37B-FP8 模型为例,计算一个 token 耗时,H20 是 37B × 1byte ÷ 4000GB/s = 9ms,换到 CPU 则是 37B × 1byte ÷ 64GB/s = 578ms——差距一目了然。

1.2 从"去IOE"到"AI大型机"

很明显,我们正身处新一轮烈火烹油的硬件革命进程中,各种专用硬件、专用网络层出不穷。DeepSeek-R1 和 QWen3-235B 这些千亿级参数模型,训练时需要千卡 GPU 集群协同,通过专用网络互联构建"AI超算",它的设计逻辑和当年的 IBM 大型机惊人地相似——用硬件集中化换取极致性能和可靠性。

传统 Infra 的分布式理念在这个时代好像失灵了。传统后台追求横向扩展,而 AI Infra 反而呈现出"AI 大型机"的特性。原因在于:传统服务可以容忍毫秒级延迟,但 AI 集群不行——GPU 的算力是 CPU 的几百倍,微秒级的等待都会造成巨大算力损耗,所以必须硬件高度集成。可以预见,未来 1-3 年,这种专用硬件+网络的集中式架构很难有太大改变。

回头看历史,我们总在寻求科技平权。之前推动"去IOE"(IBM小型机、Oracle数据库、EMC存储),用分布式廉价 x86 PC 机替代集中式高端硬件,本质上是靠软件创新重构高可用+低成本的互联网基础设施。"AI大型机"是技术发展的必经之路,但绝不是终极形态。长期(比如5年)来看,必然会出现"AI 去 NVIDIA 化",重演"去 IOE"的历史逻辑。

2

软件演进

说完硬件体系的革命,再来看看软件层面的变化。

跟传统后台应用的增删查改不同,AI 应用的新范式是模型训练和推理。训练就是通过海量数据拟合出一个复杂的神经网络模型,推理则是利用训练好的模型进行运算,输入新数据得到新结论。

举个简单的例子:训练是根据<年龄, 身高>的分布,用最小二乘法拟合模型 y = ax + b;推理就是利用这个模型,输入一个新年龄来预测身高。

2.1 深度学习框架

工欲善其事,必先利其器。传统后台应用依赖 tRPC 或 Spring 等微服务框架,帮我们屏蔽负载均衡、网络通信这些底层细节,让我们把精力放在业务实现上。

AI 应用也有类似的工具——深度学习框架。没有它,我们可能得陷在茫茫数学深渊里,挣扎在痛苦的 GPU 编程泥潭中。有了深度学习框架,才能把全部精力花在模型设计和创新上,而不用关心底层实现细节,极大降低了 AI 应用的门槛。

大家可能听说过 TensorFlow、PyTorch 这些框架。现在是 2025 年,不用纠结选哪个——PyTorch 就是 AI 模型训练和推理的事实标准。开源模型和代码几乎都是 PyTorch 一边倒。

得益于动态计算图自动微分和丰富的 Tensor 操作算子,PyTorch 能快速帮我们实现模型设计。只需要描述模型结构+待学习的网络参数,完全不用关心数学计算和 GPU 编程的细节。

2.2 GPU 编程

绝大多数 AI 应用确实不需要我们手写数学计算的 GPU 代码。但如果有模型创新的需求,学习 GPU 编程就很有必要了。比如 Meta 发布的 HSTU 生成式推荐模型,核心的 hstu_attn 计算如果用 PyTorch 框架算子组合实现,时间复杂度是 O(M * N²),M 和 N 同一数量级,相当于 O(N³)。但通过自定义内核可以优化到 O(N²)。

在 GPU 核心上运行的代码片段叫内核(kernel)。编写高性能的 CUDA 内核需要丰富经验,学习曲线很陡。原因在于我们习惯了传统 CPU 编程的串行计算思维,通过多线程提高并发;而 GPU 采用 SIMT 架构,有大量计算单元和数万个线程,但分组后的线程同一时刻只能执行相同的指令——这和传统 CPU 的串行思维、不同线程处理不同任务的方式存在根本冲突,所以 GPU 编程学习难度大。

现在推荐用 Triton 编程语言来完成 GPU kernel 开发。它提供类似 Python 的语法,无需深入理解 GPU 硬件细节(比如线程调度、共享内存管理),而且和 PyTorch 深度学习框架的生态结合更好。推荐 Triton-Puzzles-Lite 这个项目作为入门学习材料。

2.3 Python 编程

就像客户端开发离不开 Kotlin/Objective-C,AI Infra 的第一编程语言就是 Python。PyTorch 深度学习框架的设计哲学强调 Python 优先。

以前大部分模型可以轻松导出 ONNX、TorchScript 等用 C++ 部署,但现在对模型的细粒度优化和控制越来越多——比如 KV Cache、MoE/模型并行、复杂的 if/for 控制流、自定义 Triton 算子等——模型越来越难脱离 Python 的控制进行部署。不少开发者也从" C++ Boy"变成了"Python Boy"。

3

模型训练的挑战

我们一直在追求更大的模型。DeepSeek-R1 有数千亿参数,用了数十万亿 token 的训练数据,涉及算力、存储、通信等多维度的工程挑战。有了 PyTorch 深度学习框架,只是 AI 应用落地的万&里长征第一步。接下来聊聊深度学习框架之上,模型训练到底会碰到哪些硬骨头。

3.1 存得下

DeepSeek-R1 模型大小 = 670GB,一台 GPU 服务器有 8 张 H20 卡,总共 768GB 显存,单机似乎放得下一个完整的模型。那为什么整个行业还要投入大量人力物力,顶着通信延时造成的算力损耗,去建设分布式 GPU 集群?核心原因是单台 GPU 服务器"存不下"。

3.1.1 显存刺客:中间激活

看下面的模型示意图,x1/x2/x3/x4 这些中间变量就是"中间激活"。它们是神经网络前向传播的"堆栈帧"——记录每一层处理后的数据快照,确保反向传播时可以回溯梯度,根据预测误差调整模型权重,最小化损失函数。

这些中间激活为什么成了"显存刺客"?因为它的空间复杂度和输入数据长度正相关,尤其对于 LLM 来说是 O(N²)——正比于输入数据长度的平方,这是一个指数爆炸式的增长。就像函数递归中不断增长的"堆栈帧"导致内存溢出一样,我们遇到了 AI Infra 的 OOM(Out of Memory)挑战

借助 PyTorch 的 profiler 工具,能直观地看到这个 OOM。下图展示了训练过程中不同阶段的显存分配:模型参数、优化器状态、中间激活、梯度。前向传播结束后,显存占用(中间激活)会出现一个尖峰,远大于模型参数本身。

3.1.2 模型并行

传统后台服务用分片(Sharding)策略解决单机存不下的问题。AI Infra 也有类似思路——"模型并行",就是把单个大模型拆成多个子模块,分布到不同 GPU 上协同工作,通过通信来共享数据。拆分策略有好几种:按模型模块划分、按张量划分,或者混合使用。PyTorch 深度学习框架和开源方案 Megatron 都能帮助我们高效地实现模型并行。

3.2 算得快

建设分布式 GPU 集群,一方面是因为单机存不下,另一方面是为了提升训练速度。但简单堆叠机器,算力不一定线性增长。因为分布式训练不是简单地把一个 GPU 的任务分给多个 GPU 各自做——需要协调多个 GPU 机器的计算任务分配,GPU 之间的数据传输会引入网络 IO 和通信开销,反而可能拖慢训练速度。

3.2.1 通信计算重叠

常规训练时序是串联式的,存在很多网络 IO,GPU 利用率低,训练速度慢。我们当然希望 GPU 大部分时间都在计算,而不是花在数据传输或等待其他 GPU 上。

传统后台服务通过多线程或异步 IO 避免阻塞 CPU 主线程;AI Infra 也提出了类似方法论——通信计算重叠。GPU 编程模型中有流(stream)的概念,一个流表示一个 GPU 操作队列,操作按入队顺序依次执行。不同流之间可以并行执行。所以,让计算和通信操作分别加入不同的流,就能做到两者在时间上重叠。比如 TorchRec 的训练流水线就能帮我们实现高效的通信计算重叠。

4

模型推理的挑战

AI 模型训练成本很高——哪怕 DeepSeek 优秀如斯,也要烧掉 500 万美金。但再贵也是一次性的。模型推理的成本反而更高,因为用户越多,推理次数越多,总成本就越高。模型推理面临的挑战和传统 Infra 非常相似,主要是两个:高吞吐(降本)和低延迟(增效)。

4.1 降低延时

现在的 AI 模型越来越多地直面终端用户,需要实时交互——比如文本对话和语音合成。模型推理耗时过高,直接伤害用户体验,导致用户流失和转化率下降。

传统后台服务我们使用连接复用、缓存、柔性等技术来降低响应时间。AI Infra 也有类似的做法。

4.1.1 CUDA Graph

在 GPU 编程模型中,CPU 和 GPU 是异构的。CPU 通过 API(比如 CUDA API)向 GPU 提交任务,然后异步等待计算结果返回。GPU 收到任务后,会执行内核启动、内存拷贝、计算等操作。这个过程中,CPU 与 GPU 之间的通信、驱动程序的处理以及 GPU 任务的调度,都会产生一定的延迟。模型推理需要大量重复的 GPU 操作,每个操作都要重复上述环节,这些非核心的开销会被成倍放大,最终影响响应时间。

传统后台里,我们用 Redis 的 Lua 脚本封装多个操作和计算逻辑,一次提交,减少网络开销。AI Infra 则利用 CUDA Graph 技术,把多个 GPU 操作转化成一个有向无环图(DAG),一次性提交给 GPU 执行,由 GPU 自己管理依赖关系和执行顺序,从而减少 CPU 和 GPU 之间的交互开销。

4.1.2 KV Cache:空间换时间

LLM 大模型推理存在大量矩阵乘法运算,而且高度依赖上下文信息。每次推理都需要把之前生成过的词重新输入模型进行计算——这种方式让复杂度达到 O(N²),其中必然有大量重复计算。

比如,给定"天气",模型逐个预测下一个字,假设接下来两个字是"真好"。将"真"拼接到"天气"后面得到"天气真",再预测"好"。观察后发现,多次预测中,X @ W_KX @ W_V 的结果上半部分都是相同的——这是 LLM 模型结构的特殊设计导致的。这些重复计算的结果可以缓存下来(即 KV Cache),用空间换时间,大幅减少计算量。几乎所有 LLM 推理框架都支持了 KV Cache,比如 vLLM。

4.1.3 流式响应

有时候模型推理延时实在避免不了,还可以从工程交互上想办法。传统后台服务的 RPC 通信是一问一答方式,不太适合语音合成或文本对话场景。因为大模型推理需要几秒到几十秒,如果等到推理结束才展示结果,用户会等得很痛苦。

流式响应就是当模型推理计算得到第一个 token 或第一个音频帧时,立马展示或播放给用户,后续推理结果在已经建立的 TCP 流上继续顺序传输。工程上不再关注整体耗时,而是关注首 token 或首个音频帧的耗时。几乎所有 LLM 推理框架都支持了流式响应。

4.2 提高吞吐量

提高吞吐量是程序员在传统 Infra 领域孜孜不倦的追求——更高的吞吐量意味着更低的机器成本。实现 AI 应用的高吞吐,本质上就是提高昂贵 GPU 的利用率,让 GPU 在单位时间内完成更多任务。

尽管模型推理需要执行万亿次浮点运算,但 GPU 有大量计算单元,单个请求的模型推理很难让 GPU 利用率达到饱和。提高利用率有两个方法:传统批处理和连续批处理。这里的"传统"是相对"连续"这种新型方式而言的。

4.2.1 传统批处理

其实传统后台服务也大量使用批处理——比如 Redis 的 MGet 命令,一次请求完成所有 key 的获取,把 N 次网络往返压缩为 1 次。模型推理的批处理也是类似:多个输入样本打包(batch),把串行的 N 次轻量推理合并为 1 次重量计算,单位时间处理更多请求,提高 GPU 利用率。

"打包输入样本"是个共性需求,大部分推理框架都提供这个功能,比如 Triton Inference Server 的 Batcher。

4.2.2 连续批处理

传统批处理就像"固定班次的公交车":乘客(请求)必须等发车时间(组建一个 batch),发车后所有乘客同步前进。就算有乘客提前下车(短请求完成),车辆也要等所有乘客到达终点(长请求完成)才能返程接新乘客。传统批处理的问题是 GPU 空闲——要等长请求处理完,不能处理新请求。

这个问题在 LLM 应用领域格外突出。不同用户请求的 Prompt 不同,模型回答的长度差异巨大,如果用传统批处理,GPU 空闲率很高。本质上是个任务调度问题——传统后台服务用工作窃取算法(work stealing)解决线程空闲问题,AI Infra 则提出了"连续批处理"来解决。

连续批处理就像"随时随地拼车的顺风车":每辆车(GPU)在行程中可随时上/下客。新乘客(请求)直接加入当前空位(空闲计算单元),已完成的乘客立即下车(释放资源)。几乎所有 LLM 推理框架都支持了连续批处理,比如 vLLM 的 Continuous Batching。

5

结语

AI Infra 面临的工程挑战——计算、存储、通信——大部分都是新时代的老问题。在传统 Infra 领域,我们都能找到对应的场景和解决思路。区别只在于战场从 CPU 转移到了 GPU。传统后台工程师积累下的方法论,依然可以无缝衔接到 AI Infra。说到底,技术的底层逻辑没变,变的是计算密度和硬件形态。谁能快速理解这些变化,谁就能在新的基础设施浪潮中占据先机。

热点追踪提示词
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:入局AI基础设施:程序员必须了解的系统设计与挑战知识要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
来源:https://www.53ai.com/news/LargeLanguageModel/2025081590523.html
ai 人工智能

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关热点
AI热点2026-07-05 19:47
OmniParser基于AI的解析工具

OmniParser是微软AI驱动的SaaS工具,基于YOLOv8和BLIP-2,将UI截图与漫画页面解析为结构化数据,支持UI元素检测、漫画面板分析、对话框及人脸识别,适用于自动化测试、漫画翻译等场景。

AI热点2026-07-05 19:47
通义灵码智能编码助手助你高效编程

通义灵码是贯穿开发全流程的智能编码助手,具备代码智能生成、研发智能问答、多编程语言及编辑器支持、代码安全隐私保障四大核心能力,适用于学生、新手及企业开发者等多类人群,提升编码效率。

AI热点2026-07-05 19:47
基于AI的自动化道路巡逻与资产数据收集方案

基于人工智能的自动化道路巡逻和资产数据收集方案,通过车载相机自动采集路面及周边资产数据,识别裂缝、坑槽等病害并建立数字化台账,同时自动删除隐私图像,实现从被动响应向主动预防的转变,降低巡检成本。

AI热点2026-07-05 19:47
通义智文AI助你高效阅读全网文章

阿里旗下通义智文是一款智能阅读工具,支持网页、论文、图书和自由阅读四种场景,帮助用户快速提取核心观点,节省阅读时间,适合学生、研究人员及职场人士高效处理大量文本。

延伸阅读