转型 AI Infra,我需要学什么
上一篇聊了 AI Infra 是什么,以及为什么后端工程师适合这个方向。
很多人看完后问:道理我都懂,那具体要学什么?
今天就来聊聊这个。
先泼一盆冷水
在列清单之前,我想先说一个重要的事:
你不需要学完所有东西才能入行。
很多人的误区是:我要把 CUDA 学会、把 PyTorch 摸透、把各种框架都研究一遍,然后才能开始找工作。
这是错的。
AI Infra 是一个很宽的领域,没有人什么都懂。实际工作中,你可能只深入其中一个方向:有人专门做调度,有人专门做推理优化,有人专门做训练平台。
正确的学习路径是:先建立基础认知,能干活了再边做边学。
技能清单:分三层
我把 AI Infra 需要的知识分成三层:
┌─────────────────────────────────────────┐
│ 应用层:怎么用 │
│ 部署推理服务、提交训练任务、看监控 │
├─────────────────────────────────────────┤
│ 原理层:为什么 │
│ 调度原理、通信原理、优化原理 │
├─────────────────────────────────────────┤
│ 基础层:是什么 │
│ GPU 基础、Kubernetes、Linux │
└─────────────────────────────────────────┘
从下往上学,先打基础,再理解原理,最后会用。
基础层:这些必须懂
1. GPU 基础知识
作为 AI Infra 工程师,你不需要会写 CUDA 程序,但必须理解 GPU 的基本概念。
必须掌握的概念:
- 显存(VRAM):GPU 的内存。模型参数、中间结果都存在这里。显存不够,模型就跑不起来。
- 算力(TFLOPS):GPU 的计算能力。算力越高,计算越快。
- GPU 利用率:GPU 在干活的时间占比。利用率低说明资源浪费了。
- 显存利用率:显存被占用了多少。
必须会用的工具:
nvidia-smi
这是查看 GPU 状态的命令,相当于 GPU 的 top。你要能看懂它输出的每一行是什么意思。
必须知道的 GPU 型号:
| 型号 | 显存 | 定位 | 备注 |
|---|---|---|---|
| H100 | 80GB | 训练旗舰 | 目前最强,也最贵 |
| A100 | 40GB/80GB | 主力型号 | 用得最多 |
| H20 | 96GB | 中国特供 | 针对出口管制的版本 |
| L40S | 48GB | 推理性价比 | 适合推理场景 |
| RTX 4090 | 24GB | 消费级最强 | 个人和小团队用 |
不需要背参数,但要知道大概的定位和区别。
2. Kubernetes 基础
AI 训练和推理,绝大多数跑在 Kubernetes 上。
如果你是后端工程师,K8s 应该不陌生。如果没用过,需要先补一下基础:
必须理解的概念:
- Pod、Deployment、Service 是什么
- 资源请求(requests)和限制(limits)
- 调度器是怎么工作的
- DaemonSet 的用途
AI Infra 特有的知识点:
- GPU 资源是怎么暴露给 K8s 的(Device Plugin)
- 怎么在 Pod 里使用 GPU
- GPU 调度和 CPU 调度有什么区别
这些后面会专门写文章讲。
3. Linux 基础
这个不多说了,后端工程师的基本功。重点是:
- 进程管理、资源监控
- 网络基础(特别是高性能网络相关的)
- 文件系统和存储
原理层:理解到什么程度就够
1. GPU 调度原理
需要理解的问题:
- K8s 是怎么发现节点上有 GPU 的?
- 调度器是怎么把 Pod 分配到有 GPU 的节点上的?
- 为什么默认只能整卡分配,不能切分?
需要了解的概念:
- Device Plugin:让 K8s 能管理 GPU 的插件
- GPU 拓扑:GPU 之间的连接关系,影响通信效率
2. 分布式训练原理
需要理解的问题:
- 为什么要分布式训练?(一张卡装不下)
- 多张卡之间怎么协作?
- 通信为什么会成为瓶颈?
需要了解的概念:
- 数据并行:每张卡算不同的数据,然后同步梯度
- 模型并行:模型太大,切开放到不同的卡上
- NCCL:GPU 之间通信的库
不需要会写分布式训练代码,但要理解基本原理。
3. 推理优化原理
需要理解的问题:
- 推理和训练有什么区别?
- 为什么批处理(Batching)能提高吞吐?
- 什么是 KV Cache?为什么推理时显存会越用越多?
需要了解的概念:
- Continuous Batching:动态批处理,不用等一批凑齐
- KV Cache:缓存已计算的结果,避免重复计算
- 量化:用更少的位数表示参数,换取更快的速度
应用层:会用就行
1. 部署一个推理服务
实际操作一下,用 vLLM 或者 Ollama 部署一个大模型推理服务。
推荐先用 Ollama,最简单:
# 安装
curl -fsSL https://ollama.com/install.sh | sh
# 跑一个模型
ollama run llama2
然后再试试 vLLM,感受一下生产级推理框架是什么样的。
2. 在 K8s 上跑 GPU 任务
写一个简单的 Pod,申请 GPU 资源:
apiVersion: v1
kind: Pod
metadata:
name: gpu-test
spec:
containers:
- name: cuda-container
image: nvidia/cuda:12.0-base
resources:
limits:
nvidia.com/gpu: 1
command: ["nvidia-smi"]
跑一下,看看是不是真的用到了 GPU。
3. 看懂监控数据
找一个有 GPU 的集群,看看监控大盘。
关注这几个指标:
- GPU 利用率(GPU Utilization)
- 显存使用率(Memory Usage)
- GPU 温度(Temperature)
- 运行的进程(Processes)
推荐的学习顺序
如果让我规划一个学习路径,我会这么安排:
第一阶段:建立感性认识(1-2 周)
目标:知道 GPU 长什么样,能跑通一个简单的 AI 应用。
动作:
- 租一台带 GPU 的云服务器(各云厂商都有按量付费的)
- 装好驱动,跑一下
nvidia-smi - 用 Ollama 部署一个本地大模型,和它聊几句
- 感受一下 GPU 跑起来是什么样的
第二阶段:补基础知识(2-4 周)
目标:理解 GPU 的核心概念,能看懂 K8s GPU 调度。
动作:
- 学习 GPU 基础知识(显存、算力、利用率)
- 学习 K8s Device Plugin 机制
- 在 K8s 上部署一个 GPU 工作负载
- 了解常见的 GPU 型号和区别
第三阶段:深入一个方向(4-8 周)
目标:在某个方向上建立深度。
选择一个方向深入:
- 调度方向:学习 Volcano、GPU 拓扑感知调度
- 推理方向:学习 vLLM、TensorRT-LLM,理解推理优化
- 训练方向:学习 PyTorch DDP、DeepSpeed,理解分布式训练
不需要每个都学,选一个感兴趣的深入。
第四阶段:实战积累(持续)
目标:通过实际项目积累经验。
动作:
- 在当前公司找 AI 相关的项目参与
- 或者通过开源项目积累经验(vLLM、Volcano 等社区都很活跃)
- 写技术文章,输出倒逼输入
常见问题
Q:我需要学 Python 吗?
需要会基础的 Python,能看懂代码就行。AI Infra 大部分工作不需要写 Python,但训练框架(PyTorch)和推理框架(vLLM)都是 Python 的,能看懂有助于排查问题。
Q:我需要学机器学习吗?
不需要系统学习。但建议了解一些基本概念:什么是模型、什么是训练、什么是推理、Transformer 大概是什么结构。不需要会推公式,知道大概原理就行。
Q:没有 GPU 怎么学?
- 云服务器按量付费,学习阶段花不了多少钱
- 有些概念可以先看文档理解,不一定要实操
- Ollama 在 Mac 上也能跑(用 CPU,慢一点但能用)
写在最后
回顾一下今天的内容:
- 基础层:GPU 基础、Kubernetes、Linux
- 原理层:调度原理、训练原理、推理原理
- 应用层:能部署推理服务、能跑 GPU 任务、能看懂监控
学习建议:先建立感性认识,再补理论知识,然后选一个方向深入。
不要想着一口吃成胖子。AI Infra 领域很宽,没有人什么都懂。找到自己的方向,持续深入,就够了。
下一篇,我们开始讲具体的技术内容:AI Infra 技术栈全景图。
本文是「AI Infra 入门」系列的第 2 篇。