RRLforge
L0

开炉

5090 环境与显存账本

在动手写一行 RL 代码之前,先把这张卡摸清楚:工具链装对、显存算得出、推理跑得起来、评测基线量得到。这一阶段的产出是一个「已知能跑」的环境和一张写下起点分数的纸。

6 节课 · 约 3 小时已完成 0/6
  1. 1

    这条路需要什么:一张 5090 和一份预期管理

    原理20 分钟

    先把话说清楚:单卡 32GB 能做什么、不能做什么,以及为什么这不影响你学会 RL。

    • 说出单卡 32GB 在 RL 后训练里的真实位置:能训 0.6B 全参,能 LoRA 到 8B,跑不了 MoE
    • 知道为什么 slime / Miles 这类工业框架的最小配置是 8×H100,以及这对你意味着什么
    • 给自己定一个能在一周内达成的终点,而不是复现一篇论文
  2. 2

    Blackwell 的工具链地雷:sm_120 到底装什么版本

    实验40 分钟

    5090 是 sm_120,用错一个 wheel 就是「no kernel image is available」。这一节把环境一次装对,并留下验证命令。

    • 用三条命令验证 PyTorch 真的认得这张卡,而不是装完就以为好了
    • 装出一套 torch + vLLM + TRL 能互相兼容的环境
    • 看到常见报错时,一眼判断是驱动、CUDA、wheel 还是算子的问题
  3. 3

    显存账本:32GB 到底放得下什么

    计算器45 分钟

    RL 训练要同时装下策略模型、优化器状态、参考模型和一个推理引擎。这一节把这笔账算清,用计算器验证。

    • 手算出「模型参数量 + 精度 + 优化器」需要多少显存,误差在 10% 以内
    • 解释为什么 RL 比 SFT 多吃两份显存,以及 GRPO 省掉的是哪一份
    • 给定一个模型,判断该走全参、LoRA 还是 QLoRA,并说出 KV cache 该留多少
  4. 4

    第一次推理:把 vLLM 跑起来,量出你的 tok/s

    实验35 分钟

    RL 的墙钟时间大头在采样。先把推理引擎跑起来,测出这张卡的真实吞吐,后面所有时间估算都以它为基准。

    • 在 5090 上起一个 vLLM 服务并完成一次批量生成
    • 测出 Qwen3-0.6B 在你的机器上的实际生成吞吐(tok/s)
    • 知道 gpu_memory_utilization、max_model_len、CUDA graph 各自影响什么
  5. 5

    先量起点:数据集与评测基线

    实验35 分钟仅大纲

    RL 只能证明「比训练前好」。所以第一件事是量出训练前的分数,否则后面所有曲线都没有意义。

    • 准备好 GSM8K 的训练/测试切分,并说清为什么不能拿训练集报分
    • 写出一个能自动判对错的答案抽取器,并知道它会在哪里误判
    • 跑出训练前的 baseline 准确率,写进实验笔记
  6. 6

    token 与 chat template:新手翻车最密集的地方

    原理30 分钟仅大纲

    一半的「RL 不收敛」其实是模板拼错、EOS 没停、mask 错位。这一节把这些坑提前踩掉。

    • 手动拼出一条 chat template 的完整 token 序列,并指出哪些位置该算 loss
    • 说清 prompt mask、completion mask、padding mask 三者的关系
    • 判断「模型不停下来」是模板问题、EOS 问题还是采样参数问题