夜雨聆风学习资料网

ARTICLE · 1230600

VERL 源码精读 10:做一个总体的小结吧

VERL 源码精读 10:做一个总体的小结吧

VERL 源码精读 10:做一个总体的小结吧

读源码读到一半,我突然停下来问自己:VERL 这个框架到底干了啥?优势在哪?

大模型做强化学习,得同时管好几个大模型。数据要在生成、打分、更新之间来回倒腾。这就撞上了一个死结:算法变得快,要求框架够灵活;模型动辄几十上百 B,又逼着它必须高效。

单控制器像写单机脚本,改算法特容易。可一到大规模集群,中心调度就成了瓶颈。多控制器吞吐高,但换个算法就得重写一堆同步逻辑。VERL 的解法很干脆:把控制流和计算流拆开。

控制流用单控制器,只管 rollout、打分、训练的先后顺序。计算流交给自带并行能力的 Worker,各自高效干活。这样改算法只动控制流,压榨性能只动计算流,互不干扰。

为了让它们配合好,VERL 还专门做了两套优化。比如参数重分片,因为训练和推理时的参数摆放完全不一样。它只做“布局感知的搬运”,而且只同步变更的分片。再加上异步流水线,让生成和训练重叠起来跑,GPU 不再干等。

说白了,VERL 不是又一套从零写的 RL 算法。它是大模型异构计算后端的 RL 编排底座。以后再扎进源码,先分清哪部分是调度、哪部分是计算,就不容易迷路了。

原文VERL 源码精读 10:做一个总体的小结吧
北京,42分钟前,

相关学习资料