L0
开炉
5090 环境与显存账本在动手写一行 RL 代码之前,先把这张卡摸清楚:工具链装对、显存算得出、推理跑得起来、评测基线量得到。这一阶段的产出是一个「已知能跑」的环境和一张写下起点分数的纸。
6 节课 · 约 3 小时已完成 0/6
- 1
这条路需要什么:一张 5090 和一份预期管理
原理20 分钟先把话说清楚:单卡 32GB 能做什么、不能做什么,以及为什么这不影响你学会 RL。
- →说出单卡 32GB 在 RL 后训练里的真实位置:能训 0.6B 全参,能 LoRA 到 8B,跑不了 MoE
- →知道为什么 slime / Miles 这类工业框架的最小配置是 8×H100,以及这对你意味着什么
- →给自己定一个能在一周内达成的终点,而不是复现一篇论文
- 2
Blackwell 的工具链地雷:sm_120 到底装什么版本
实验40 分钟5090 是 sm_120,用错一个 wheel 就是「no kernel image is available」。这一节把环境一次装对,并留下验证命令。
- →用三条命令验证 PyTorch 真的认得这张卡,而不是装完就以为好了
- →装出一套 torch + vLLM + TRL 能互相兼容的环境
- →看到常见报错时,一眼判断是驱动、CUDA、wheel 还是算子的问题
- 3
显存账本:32GB 到底放得下什么
计算器45 分钟RL 训练要同时装下策略模型、优化器状态、参考模型和一个推理引擎。这一节把这笔账算清,用计算器验证。
- →手算出「模型参数量 + 精度 + 优化器」需要多少显存,误差在 10% 以内
- →解释为什么 RL 比 SFT 多吃两份显存,以及 GRPO 省掉的是哪一份
- →给定一个模型,判断该走全参、LoRA 还是 QLoRA,并说出 KV cache 该留多少
- 4
第一次推理:把 vLLM 跑起来,量出你的 tok/s
实验35 分钟RL 的墙钟时间大头在采样。先把推理引擎跑起来,测出这张卡的真实吞吐,后面所有时间估算都以它为基准。
- →在 5090 上起一个 vLLM 服务并完成一次批量生成
- →测出 Qwen3-0.6B 在你的机器上的实际生成吞吐(tok/s)
- →知道 gpu_memory_utilization、max_model_len、CUDA graph 各自影响什么
- 5
先量起点:数据集与评测基线
实验35 分钟仅大纲RL 只能证明「比训练前好」。所以第一件事是量出训练前的分数,否则后面所有曲线都没有意义。
- →准备好 GSM8K 的训练/测试切分,并说清为什么不能拿训练集报分
- →写出一个能自动判对错的答案抽取器,并知道它会在哪里误判
- →跑出训练前的 baseline 准确率,写进实验笔记
- 6
token 与 chat template:新手翻车最密集的地方
原理30 分钟仅大纲一半的「RL 不收敛」其实是模板拼错、EOS 没停、mask 错位。这一节把这些坑提前踩掉。
- →手动拼出一条 chat template 的完整 token 序列,并指出哪些位置该算 loss
- →说清 prompt mask、completion mask、padding mask 三者的关系
- →判断「模型不停下来」是模板问题、EOS 问题还是采样参数问题