尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

verl 如何覆盖 Qwen 模型的 RoPE Scaling 配置以支持更长上下文训练

verl 如何覆盖 Qwen 模型的 RoPE Scaling 配置以支持更长上下文训练 verl 如何覆盖 Qwen 模型的 RoPE Scaling 配置以支持更长上下文训练【免费下载链接】verlverl/HybridFlow: A Flexible and Efficient RL Post-Training Framework项目地址: https://gitcode.com/GitHub_Trending/ve/verl有些模型例如文档中给出的Qwen/Qwen2.5-7B-Instruct这类 Qwen 模型支持 RoPE Scaling但它们的config.json里并没有定义rope_scaling字段。此时模型本身具备扩展上下文的能力而 verl 加载模型时读到的是原始 HF config不会自动补上这段配置。verl 提供的做法是在启动 trainer 时通过override_config覆盖 HF 模型配置把rope_scaling写进去从而支持更长的上下文训练。本文的操作内容即来自 RoPE Scaling override 文档适用对象是启动 PPO 类 trainer 时的模型配置覆盖场景。先确认你的模型属于这种场景判断方法很直接查看模型config.json其中没有rope_scaling字段但模型说明支持 RoPE Scaling例如 yarn 扩展。这种情况下你需要在 verl 侧把配置补上而不是修改模型目录里的config.json。文档给出的 RoPE Scaling 配置示例如下以下示例值来自文档用于展示 yarn 扩展的典型写法{ ..., rope_scaling: { factor: 4.0, original_max_position_embeddings: 32768, type: yarn } }factor、original_max_position_embeddings具体取什么值应依据你所用模型官方支持的长文本扩展配置不要直接照抄文档示例数值当成固定预期。在启动命令中覆盖 actor 模型的 RoPE Scalingverl 的模型配置中有一个通用的override_config字段HF 模型配置定义见 HFModelConfig默认值为空 dict配置说明见 config 文档 中actor_rollout_ref.model.override_config一节。启动 trainer 时用 OmegaConf 的keyvalue追加语法逐层写入actor_rollout_ref.model.override_config.rope_scaling.typeyarn \ actor_rollout_ref.model.override_config.rope_scaling.factor4.0 \ actor_rollout_ref.model.override_config.rope_scaling.original_max_position_embeddings32768 \这几行追加在你的训练启动命令里例如python3 ppo_trainer.py之后的其他参数之后。三个键对应rope_scaling的三个字段type指定 scaling 类型factor指定扩展倍数original_max_position_embeddings指定原始位置上限。文档示例使用yarn类型、factor4.0、original_max_position_embeddings32768。PPO 训练需要同时覆盖 critic 模型PPO 配置下除了 actor 模型还有 critic 模型critic 用的是同样的 HF 模型配置体系文档明确要求对 critic 单独追加一组覆盖critic.model.override_config.rope_scaling.typeyarn \ critic.model.override_config.rope_scaling.factor4.0 \ critic.model.override_config.rope_scaling.original_max_position_embeddings32768 \actor 与 critic 两组的rope_scaling值应保持一致且都取自模型官方支持的扩展配置。verl 如何应用这些覆盖项这段命令能生效的原因可以在代码里核对HFModelConfig在构造时通过AutoConfig.from_pretrained加载本地 HF config随后取出override_config若其中包含model_config键则取该子键否则直接使用override_config本身并调用update_model_config将其写入 config见 HFModelConfig.post_init。update_model_config对嵌套 dict 做递归处理键对应 dict 时递归进入否则直接setattr见 verl/utils/model.py。因此rope_scaling这种两层嵌套的覆盖会被完整写入 HF config而无需改动模型目录中的config.json。判断覆盖是否生效按上述命令正常启动训练即可配置会随 trainer 启动时加载模型阶段一起应用文档没有给出额外的校验命令或固定日志输出训练能够按你的长上下文设置继续运行即为配置已被加载。限制与边界文档给出的覆盖示例只针对 PPO 训练入口下的actor_rollout_ref与critic两个模型其他角色如 reward model文档未给出对应写法不要自行类推。该机制只覆盖训练侧加载的 HF config。rollout 推理引擎侧如何处理 RoPE Scaling文档未说明本文不作结论。走 Megatron 路径时override_config下还另有model_config、moe_config等子配置见 config 文档文档没有验证这些子配置下rope_scaling的写法请勿照搬上述命令到 Megatron 路径而不加核对。参考同一机制的其他覆盖用法例如切换 attention 实现可查阅 attention implementation override 文档。【免费下载链接】verlverl/HybridFlow: A Flexible and Efficient RL Post-Training Framework项目地址: https://gitcode.com/GitHub_Trending/ve/verl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表