Skip to Content
LLM Infra 工程实战第 16 章 从 Agent 开发者到 Infra 工程师:职业路径

第 16 章 从 Agent 开发者到 Infra 工程师:职业路径

这是本书的最后一章。前面十五章我们从推理引擎聊到显存管理,从 KV Cache 聊到多模态部署,覆盖了 LLM Infra 的核心知识。但知识本身不是目的——你需要一条可执行的路径,把这些知识变成职业竞争力。

我的背景和很多读者类似:前端出身,写了几年 React/Node.js,后来转做 Agent 开发,再慢慢深入到 Infra 层。这一章分享的不是”标准答案”,而是我和身边工程师走过的弯路和心得。

16.1 技能树规划

从 JS/TS 到 Python 的迁移

好消息是,如果你已经有扎实的 JS/TS 经验,Python 本身不是门槛。语法一两周就能上手,真正的挑战是生态的切换

JS 世界里你习惯了 npm、ESM、TypeScript 的类型系统。Python 生态是另一套逻辑:

JS/TS 概念Python 对应注意事项
npm/yarnpip/uv/condauv 是新一代包管理器,速度极快,推荐使用
package.jsonpyproject.toml别再用 requirements.txt 管理正式项目了
TypeScriptPython type hints + mypy可选的类型标注,但大项目里很重要
async/awaitasyncio概念相似,但 Python 的 async 生态不如 JS 成熟
Jestpytest测试框架,几乎所有 Python 项目都用 pytest
ESLintruffruff 是 Rust 写的 Python linter,飞快

需要重点掌握的 Python 库

  • NumPy:不是让你做数学题,而是因为整个 ML 生态都建立在 ndarray 之上。至少理解 shape、dtype、broadcasting
  • PyTorch:后面详细说
  • FastAPI:你的模型服务 90% 概率会用 FastAPI 暴露 HTTP 接口
  • Pydantic:数据验证和序列化,配合 FastAPI 使用
  • asyncio + aiohttp:异步网络编程,高并发服务的基础

一个务实的建议:不要花时间系统学 Python。直接开始写项目,遇到语法不懂的查一下就行。你的编程基础已经够了,Python 的学习曲线对有经验的开发者来说非常平缓。

PyTorch 学习路径:从改代码开始

很多人一提到 PyTorch 就想”从零开始学深度学习”——翻开《动手学深度学习》从线性回归写起。如果你的目标是做 Infra 而不是做研究,这条路太慢了。

推荐的学习路径

  1. 第一周:跑通一个推理脚本

    • 用 Hugging Face transformers 加载一个小模型(比如 Qwen2.5-0.5B)
    • 理解 model.generate() 的参数含义
    • torch.profiler 看看推理时 GPU 在干什么
  2. 第二周:读 transformers 的核心代码

    • modeling_qwen2.py 开始读,理解 Attention、MLP、RMSNorm 这些模块
    • 不用理解数学推导,但要知道 tensor 怎么在各模块之间流动
    • 加一些 print(tensor.shape) 看数据维度的变化
  3. 第三到四周:改一个推理引擎的代码

    • Fork vLLM 或 SGLang,本地跑起来
    • 改一个简单的配置项,比如调整 batch scheduler 的参数
    • 读 KV Cache 管理的代码,对照本书第三章的内容理解实现
  4. 之后:在实际项目中持续加深

    • 需要什么学什么,不要贪多
    • 遇到不理解的数学公式,先 skip,等你需要优化某个 kernel 时再回头学

核心原则:Infra 工程师需要理解的 PyTorch 和 ML 研究员需要理解的 PyTorch 是不一样的。你不需要会写新模型架构,但需要理解现有模型的计算图、知道哪里是性能瓶颈、能读懂和修改模型代码。

CUDA 编程的学习节奏

CUDA 是 LLM Infra 的”硬通货”,但也是最让人望而生畏的部分。实话说,大多数 Infra 工程师的日常工作不需要从头写 CUDA kernel。但你需要能读懂别人写的 kernel,以及在必要时能改

分三个阶段

阶段一:能读懂(1-2 个月)

  • 学习 CUDA 的基本概念:thread、block、grid、shared memory、warp
  • 读一些简单的 kernel:矩阵乘法、softmax、RMSNorm
  • 推荐资源:gpu-mode 社区的入门课程,直接看 CUDA 代码讲解
  • 目标:看到一个 kernel,能说出它在干什么、为什么这么写

阶段二:能改(3-6 个月)

  • 拿一个现有的 kernel,尝试做优化(比如增加 shared memory 的利用)
  • 学习 Triton——这是一个比 CUDA C 友好很多的 GPU 编程语言,Python 语法
  • 读 FlashAttention 的 Triton 实现(比 CUDA 版好读很多)
  • 目标:能修复 kernel 里的 bug,能做简单的性能优化

阶段三:能写(6-12 个月+)

  • 从零实现一个自定义 kernel
  • 深入理解 GPU 架构:memory hierarchy、bank conflict、occupancy
  • 用 NSight Compute 做 profiling,理解 roofline model
  • 这个阶段需要持续投入,不是一次性学会的

时间投入的建议:如果你是全职工作,前两个阶段可以利用业余时间完成。第三个阶段需要在实际项目中练手。不要急于求成——很多资深 Infra 工程师也是在工作中逐步积累 CUDA 经验的。

推荐的总体学习顺序

按时间线排列,一个从 Agent 开发者转型到 Infra 工程师的合理节奏:

月 1-2: Python 生态熟悉 + PyTorch 基础 + 跑通推理脚本 月 3-4: 读 vLLM/SGLang 代码 + 理解推理引擎核心概念 月 5-6: CUDA 基础 + Triton 入门 + 写第一个简单 kernel 月 7-9: 开源贡献 + 深入某个方向(量化 / 调度 / 分布式) 月 10-12: 争取一个 Infra 相关的工作项目或岗位

这不是严格的时间表,而是一个大致的节奏参考。有人快有人慢,重要的是保持持续投入。

16.2 开源贡献路径

为什么开源贡献是最好的学习方式

在 LLM Infra 领域,开源贡献的价值远超其他学习方式,原因有三:

  1. 面对真实的工程问题。教程和课程给你的是简化后的问题,开源项目里的 issue 才是真实世界的样子——边界情况、性能退化、兼容性问题。
  2. 代码 review 是最高效的学习。当 vLLM 的核心维护者 review 你的 PR 时,你获得的 feedback 质量远超任何课程。
  3. 可验证的能力证明。招聘时,一个被 merge 的 vLLM PR 比简历上写”精通 CUDA”有说服力一百倍。

从哪些项目开始

vLLM(社区活跃,截至 2026 年初 GitHub 40k+ stars)

  • 最成熟的 LLM 推理引擎
  • Python 为主,核心调度逻辑可读性不错
  • Issue 数量多,good first issue 标签的任务适合新手
  • 社区活跃,PR review 速度快

SGLang(社区活跃,截至 2026 年初 GitHub 10k+ stars)

  • 性能导向的推理框架,一些 benchmark 超过 vLLM
  • 团队更小,贡献者更容易被注意到
  • 对长期活跃贡献者提供 AI 编程工具赞助(Cursor、Claude Code 等)
  • 比 vLLM 更激进地采用新技术

llama.cpp(社区活跃,截至 2026 年初 GitHub 70k+ stars)

  • 纯 C/C++ 实现,量化推理的事实标准
  • 代码质量高,是学习底层实现的好教材
  • 对 C++ 功底有一定要求
  • 支持的硬件平台最多:CPU、CUDA、Metal、Vulkan

贡献路径:从文档到核心

一条被验证过的、渐进式的贡献路径:

Level 1:文档和测试(第 1-2 个 PR)

  • 修正文档里的错误或过时信息
  • 补充缺失的测试用例
  • 改善错误信息的可读性
  • 目的:熟悉项目的 PR 流程、CI 系统、代码规范

Level 2:Bug Fix(第 3-5 个 PR)

  • 从 issue 列表中找复现了的 bug
  • 边界情况处理、错误处理改进
  • 小的性能优化(比如减少不必要的内存拷贝)
  • 这一阶段你会开始理解项目的核心架构

Level 3:Feature(第 5-10 个 PR)

  • 新增对某个模型的支持
  • 实现一个被社区讨论过的功能
  • 参与 RFC 讨论,提出设计方案
  • 此时你已经对项目有较深的理解

Level 4:Core(持续)

  • 核心模块的重构或优化
  • 性能关键路径的改进
  • 帮助 review 其他人的 PR
  • 参与项目方向的讨论

如何读懂大型 C++/CUDA 项目

面对 llama.cpp 或 vLLM 的 CUDA 代码,很多人的第一反应是”完全看不懂”。几个实用技巧:

  1. 从入口点开始。不要试图从头到尾读代码,先找到 main() 或 API 入口,然后沿调用链往下追。
  2. 用 Debug 模式跑。编译 debug 版本,用 GDB(C++)或 Python debugger 加断点,观察实际的执行路径和数据。
  3. 画调用图。用纸笔或工具画出核心函数的调用关系,几个核心模块搞清楚后,其他的就好理解了。
  4. 读 Git 历史git log --oneline --follow <file> 看某个文件的变更历史,从早期的简单版本开始读,比读最新的复杂版本容易得多。
  5. 善用 AI 工具。把一段看不懂的代码丢给 Claude,让它逐行解释。这不丢人,这是效率。

16.3 学习资源索引

课程

必看

  • Andrej Karpathy — Neural Networks: Zero to Hero:从最基础的反向传播讲到 GPT,是理解 transformer 最好的免费课程。不需要全部看完,前几集 + 最后的 GPT 实现就够了。
  • Stanford CS149 — Parallel Computing:理解 GPU 并行计算的原理,对后续学 CUDA 帮助很大。课程主页公开可看。
  • gpu-mode 社区的 GPU 编程课:社区驱动的课程,内容非常实战。从 CUDA 基础到 Triton 优化,每一讲都有代码可以跟着写。YouTube 和 Discord 都有。

推荐

  • Stanford CS229 — Machine Learning:Andrew Ng 的经典课程,适合补 ML 基础。不需要全听,选择和 LLM 相关的部分。
  • NVIDIA Deep Learning Institute 的 CUDA 课程:官方课程,质量有保证,有些需要付费。
  • Hugging Face 的 NLP Course:免费,实战导向,从 tokenizer 到模型训练都有覆盖。

书籍

  • 《Programming Massively Parallel Processors》(Kirk & Hwu):CUDA 编程的圣经级教材。不用从头读,用到哪个章节翻哪个。
  • 《CUDA by Example》:比上一本更易读的入门书。
  • 《Designing Data-Intensive Applications》(Martin Kleppmann):不是 ML 相关的,但分布式系统的思维方式在 LLM Infra 中处处用得到。
  • 《Systems Performance》(Brendan Gregg):性能分析的方法论,适用于任何系统工程师。

博客和技术社区

必关注

  • vLLM Blog(vllm-project.github.io):官方技术博客,新功能和设计决策的第一手资料
  • Hugging Face Blog:模型和推理相关的高质量技术文章
  • GPU MODE Discord:最活跃的 GPU 编程社区之一
  • r/LocalLLaMA(Reddit):本地部署 LLM 的社区,很多实战经验分享

推荐关注的个人 / 团队博客

  • Tri Dao 的论文和博客(FlashAttention 作者)
  • Woosuk Kwon 的技术分享(vLLM 作者)
  • The AI Infra landscape 系列文章

会议和论文

不需要”读论文”成为日常习惯,但有些论文是绕不开的:

  • Attention Is All You Need(2017):Transformer 的原始论文,必读
  • FlashAttention 系列(Tri Dao):理解高效 attention 计算
  • PagedAttention / vLLM 论文:理解现代推理引擎的核心
  • GGML/GPTQ/AWQ 的量化论文:理解量化方法的原理

会议方面,MLSysOSDI/SOSP 上的 ML 系统论文最值得关注。不需要亲自参加会议,论文和视频都是公开的。

16.4 Infra 工程师的日常

理论讲完了,我们来看看一个 LLM Infra 工程师实际在做什么。

一天的工作样本

这是一个比较典型的日子(以部署和维护在线推理服务为例):

早上

  • 看监控面板,检查过夜的指标是否正常——P99 延迟、GPU 利用率、错误率
  • 发现某个模型的 P99 延迟从 2s 涨到了 3.5s,开始排查
  • 查 Grafana 发现是凌晨更新了模型版本后,新版本的 KV Cache 配置不对

上午

  • 修复 KV Cache 配置,写测试验证,部署到 staging 环境
  • 和 ML 团队开会,他们要上线一个新的 72B 模型,讨论需要多少张 GPU、用什么并行策略
  • 写一个 capacity planning 文档:按预期 QPS 估算需要的 GPU 数量

下午

  • Review 同事的 PR:一个新的请求限流策略
  • 做性能测试:对比 FP8 和 INT8 量化在 H100 上的吞吐差异
  • 更新内部的部署 runbook

晚上(如果 on-call):

  • 收到告警:某个 region 的 GPU 节点 OOM 了
  • 紧急扩容 + 排查原因(某个用户发了超长的 prompt)

需要关注的核心指标

指标含义健康范围
TTFT P50/P99首 token 延迟P99 < 2s
TPOT P50/P99每 token 生成延迟P50 < 50ms
GPU UtilizationGPU 计算利用率60-85%
GPU Memory Usage显存使用率< 90%(留 buffer)
Request Error Rate请求错误率< 0.1%
Queue Depth排队等待的请求数不持续增长
Throughput (tok/s)每秒生成 token 数取决于 SLA

常见的 on-call 问题

按频率排列:

  1. OOM(Out of Memory):最常见。通常是异常长的输入、图片 token 过多、或 batch size 配置不当。
  2. 延迟飙升:可能是 GPU 过热降频、某个请求卡住了、或者模型权重加载出了问题。
  3. GPU 掉卡:物理层面的硬件故障,尤其在大规模集群中概率不低。需要自动检测和自动迁移。
  4. 模型加载失败:新版本的模型权重下载不完整、格式不兼容、显存不够装不下。
  5. 流量突增:某个下游服务突然增加了请求量,需要快速扩容或限流。

与其他团队的协作

LLM Infra 工程师是一个”连接器”角色:

  • 与 ML 研究员:他们训练模型,你负责把模型跑快。你需要理解他们的需求(“这个模型需要 BF16”),他们需要理解你的约束(“线上只有 A100 40GB”)。
  • 与产品团队:他们定义 SLA(“P99 延迟不能超过 3 秒”),你评估可行性和成本。
  • 与平台团队:K8s 集群管理、GPU 调度、网络配置——这些通常由平台团队负责,你需要和他们紧密配合。
  • 与安全团队:模型权重的访问控制、推理日志的隐私合规。

16.5 写在最后

写这本书的初衷很简单:2024 年我开始转做 LLM Infra 时,发现中文社区缺少一本系统性的学习资料。关于 prompt engineering 和 Agent 开发的文章遍地都是,但”怎么让模型跑得快、跑得稳、跑得省钱”这件事,要么是零散的博客文章,要么是假设你已经有 ML 背景的论文。

对于从前端/全栈转过来的工程师来说,最大的心理障碍不是 CUDA 或 PyTorch 本身,而是”我没有 ML 背景,能做这个吗?“。答案是:绝对能。

LLM Infra 的核心是系统工程——理解计算和 I/O 的瓶颈、做好资源调度、保证服务可靠性。这些能力和你之前做 Web 服务、微服务、CI/CD 的经验是相通的。GPU 编程和模型原理是需要新学的部分,但只要你有系统工程的直觉,学习速度会比你预期的快得多。

几点最后的建议:

这个领域的机会窗口仍然很大。 2025-2026 年,几乎所有科技公司都在扩张 AI Infra 团队。有能力部署和优化 LLM 的工程师供不应求。这个窗口不会永远开着,但至少未来两三年,需求只会增加不会减少。

动手比什么都重要。 看完这本书,不要觉得”我还需要再学点什么”。打开一个终端,pip install vllm,跑一个模型。遇到问题,查 issue、问社区、读代码。每解决一个实际问题,你的理解就会深一层。

从应用到基础设施不是终点。 当你能理解模型是怎么从 GPU 上一个 token 一个 token 蹦出来的,当你能看着 CUDA kernel 的 profiling 结果说出”瓶颈在 memory bandwidth”的时候,你看到的不是终点——而是一个新世界的入口。从这里出发,你可以往 GPU 架构、编译器优化、分布式系统等更多方向延伸。

技术的世界没有终点,只有不断打开的新大门。

祝你路上顺利。


全书完。

Last updated on