过去一周,开源 AIGC 基础设施最值得关注的变化,不是又多支持了几个新模型,而是训练系统与在线推理服务之间的边界开始变薄。
NVIDIA Dynamo v1.3.0 把强化学习 rollout 所需的 token 直通、权重热更新和 worker 生命周期管理接进分布式推理平台;Hugging Face TRL v1.9.0 则继续拆分异步 rollout、vLLM 客户端与权重同步,并开始处理多轮 Agent 轨迹在重新分词后发生改写的问题。
两边从不同方向逼近同一个工程目标:训练时用来采样轨迹的推理服务,不再是一台临时启动、训练完就丢弃的“生成服务器”,而是逐渐成为可路由、可扩缩、可更新、可观测的长期系统。
本周结论
- Dynamo v1.3.0:新增面向强化学习的 Tokens-in-Tokens-Out、原地权重更新和 worker 管理接口,同时大幅增强 KV-aware Router。
- TRL v1.9.0:GRPO/RLOO 支持流式数据集,AsyncGRPO 增加 message-level rollout,并把 vLLM 通信与权重同步进一步解耦。
- TensorRT-LLM v1.3.0rc22:继续补齐解耦式推理、单模型推测解码和 VisualGen,但它仍是 RC,不应与稳定版能力混为一谈。
- Transformers v5.14.1 / FlashAttention 4 beta23:主要是正确性修复,提醒生产环境不能只追逐 feature release。
Dynamo v1.3.0:推理平台开始直接服务训练循环
NVIDIA 在 7 月 22 日发布 Dynamo v1.3.0。这是一次体量很大的 feature release:v1.2.1 到 v1.3.0 之间合并了 930 个 PR,来自 125 位贡献者。
最值得单独拿出来看的,不是支持模型列表,而是新增的强化学习服务路径。
TITO:避免一次没有意义的文本往返
传统 RL rollout 服务通常复用 OpenAI 风格接口:
训练进程中的 token IDs
→ detokenize 成文本
→ HTTP 请求
→ 服务端再次 tokenize
→ 模型生成
→ 文本响应
→ 训练端再次 tokenize
Dynamo v1.3.0 新增的 Tokens-in-Tokens-Out(TITO)路径直接接收和返回 token ID,同时可返回 completion token IDs、logprobs 和 routed-expert capture。
这不只是省去 tokenizer 时间。对 on-policy RL 来说,训练端必须确认自己计算 advantage 和 log-prob 的 token,正是推理服务实际采样的 token。只要中间经过文本、chat template 或不同版本 tokenizer,token 边界就可能发生变化。TITO 把这条数据链收紧了。
权重更新不再等于重启推理服务
RL 训练会不断产生新权重。如果 rollout worker 每轮都完整重启、重新加载 checkpoint,GPU 空闲时间和集群抖动都会很明显。
Dynamo v1.3.0 的 vLLM、SGLang backend 新增原地权重更新,并统一提供 sleep、wake、显存释放与恢复接口;训练端还可以通过 /v1/rl/workers 发现 rollout worker。NeMo-RL 路径可通过 NCCL 更新权重,大体形成下面这条闭环:
Trainer
├─ 请求 rollout
├─ 接收 token / logprob / expert 信息
├─ 更新策略模型
└─ 向现有 worker 同步新权重
↓
下一轮 rollout
这些 RL 接口目前通过 DYN_ENABLE_RL 显式开启。这个开关很重要:它说明相关能力已经进入正式 release,但仍不是默认生产路径。
Router:Agent 与长上下文正在改变路由目标
Dynamo v1.3.0 对 Router 的改造,是另一条与训练系统相关的主线。
传统负载均衡主要看 worker 当前有多忙;LLM 服务还必须看请求前缀对应的 KV Cache 在哪里。Dynamo 这次把 slot selection 独立成服务,并增加 Branch-Sharded KV Indexer、拓扑感知路由和 (worker, dp_rank) 级 affinity。
官方 release note 给出的数据是:
- compressed radix tree 的 store/remove 事件处理约快 28 倍;
- 多 frontend 场景吞吐提高 13.7%;
- prefix matching 可以跨 shard 并行。
这些是项目方在特定测试条件下报告的数据,不应直接外推到所有生产负载。但架构方向值得关注:当 Agent 请求包含长历史、多轮工具输出,并且训练 rollout 会产生大量共享前缀时,“把请求发给空闲 GPU”不再足够,路由器需要同时理解负载、KV 重合度、拓扑和优先级。
TRL v1.9.0:多轮 Agent rollout 不只是拼接 token
Hugging Face 在 7 月 21 日发布 TRL v1.9.0。这次版本的主要变化集中在 GRPO、RLOO、AsyncGRPO 和蒸馏。
流式数据集终于进入 GRPO / RLOO
过去 GRPO 和 RLOO 依赖 RepeatSampler,把同一个 prompt 重复 num_generations 次,再跨进程组成 group。但 iterable dataset 没有固定长度和随机索引,旧路径会绕过 sampler,可能在没有明显报错的情况下破坏 advantage 分组。
v1.9.0 新增 repeat_iterable_dataset,直接变换数据流而不是重排索引,并要求 iterable dataset 显式设置 max_steps。这让大型或持续生成的数据集可以不先完整落盘:
dataset = load_dataset(
"trl-lib/DeepMath-103K",
split="train",
streaming=True,
)
trainer = GRPOTrainer(
model="Qwen/Qwen3-4B",
args=GRPOConfig(max_steps=1000),
train_dataset=dataset,
reward_funcs=accuracy_reward,
)
这里的关键不只是“支持 streaming”。新版实现还会保持同一 prompt 的 generations 在跨进程 gather 后仍属于正确分组,否则 GRPO 的相对优势计算会从数据层就开始出错。
Message-level rollout:承认对话历史可能被改写
AsyncGRPO 新增可选的 rollout_protocol="message"。它不会默认假设每一轮新消息在 token 层都只是追加,而是重新 tokenize 整段对话,并检查新 token 是否仍以前一轮 token 为前缀。
TRL 把结果分成三类:
- CLEAN:纯追加,可以延续当前训练行;
- REALIGN:最后一段回答出现轻微 token 漂移,覆盖当前行;
- FORK:历史发生真实改写,关闭当前行并新建一条与模型实际输入一致的轨迹。
这个设计触及了 Agent RL 中一个容易被忽略的问题:工具返回、chat template、reasoning block 和消息规范化都可能改变历史文本对应的 token。训练数据如果仍假设轨迹永远是 token append-only,就可能拿错误的上下文去解释后续动作。
vLLM 通信和权重同步继续解耦
TRL v1.9.0 新增小型 VLLMClient,统一负责 readiness、模型长度查询、pause/resume 和权重更新接口;权重同步则抽象成可注入的 WeightTransferProtocol,不再与特定 rollout worker 绑死。
这与 Dynamo 的变化可以拼成一张更完整的图:
| 层次 | Dynamo v1.3.0 | TRL v1.9.0 |
|---|---|---|
| 数据协议 | token IDs、logprobs、expert capture | message/token 两种 rollout 协议 |
| 服务生命周期 | worker discovery、sleep/wake、显存管理 | readiness 与 rollout client |
| 权重更新 | worker 原地更新 | 独立 WeightTransferProtocol |
| 扩展方向 | 路由、Kubernetes、KV locality | GRPO/RLOO、异步 Agent 轨迹 |
两者不是开箱即用的一套联合方案,版本依赖也不完全一致。Dynamo v1.3.0 的 release matrix 仍固定在 vLLM v0.23.0、SGLang v0.5.14;TRL v1.9.0 则已声明支持 vLLM v0.24.0、v0.25.0 和 v0.25.1。真正组合部署前,必须先处理版本和自定义接口兼容性。
TensorRT-LLM rc22:解耦式推理继续下沉
7 月 22 日发布的 TensorRT-LLM v1.3.0rc22 仍是候选版本。
本次值得关注的新增包括:
- disaggregated coordinator 与 multi-process orchestrator fleet;
- 单模型推测解码的 rejection sampling;
- DeepSeek DSpark 与 Laguna DFlash drafter;
- Qwen3-VL 混合图像、视频请求;
- Wan 原生 VAE 路径和 Qwen Image CUDA Graph 修复;
- 自动按模型选择 transceiver runtime,这是一项 breaking change。
它也列出了多项已知问题,包括部分 torch.compile 多 GPU 路径崩溃、DeepSeek-V3.2 FP8 block-scale 在 H200 上 OOM、Kimi K2.5 在 GB300 上的解耦 KV 传输失败等。
因此 rc22 更适合验证 DeepSeek V4、VisualGen 和解耦式推理的新路径,不适合因为“版本号更高”就直接替换生产稳定版。
两个小版本提醒:正确性修复也是性能系统的一部分
Transformers v5.14.1 在 7 月 16 日发布,主要修复 EncoderDecoderCache 辅助生成、带 position bias 的 StaticCache prefill、FP8 kernel 版本和多设备 DeepGEMM。
FlashAttention 4 beta23 在 7 月 22 日发布,只包含两个主要修复:paged-KV block table 越界检查,以及 SM100 上 FP8 e4m3 的准确性问题。
它们没有新架构发布那么醒目,却直接关系到结果是否正确。尤其在 FP8、KV Cache、CUDA Graph 和推测解码叠加后,吞吐数字只有在准确性回归通过的前提下才有意义。
本周判断
如果只记住这一周的三件事,可以是:
- Rollout serving 正在成为独立基础设施。 token 协议、权重更新、worker 管理和路由逐渐从训练脚本中抽离。
- Agent 训练不能再假设轨迹只是不断追加的 token。 多轮消息、工具调用和模板重写需要显式的轨迹对齐机制。
- 训练栈和推理栈的版本矩阵会成为新风险。 TRL、vLLM、SGLang、Dynamo 和 TensorRT-LLM 各自快速迭代,接口看起来相似并不代表可以直接组合。
下一周值得继续观察两个问题:第一,TITO 这类 token 直通协议能否形成跨框架的稳定接口;第二,KV-aware routing 能否在真实 Agent 与 RL rollout 负载下给出可复现的端到端收益。
统计口径:本文覆盖 2026-07-16(含)至 2026-07-24(不含)由项目官方 GitHub 仓库发布的 release,并补充与主线直接相关的正式 release note。RC 与 beta 均已在正文中明确标注;项目方性能数字仅按原始口径引用,不视为跨环境通用结论。