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

资讯详情

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

TRL AsyncGRPOTrainer 安装时 vLLM 与 transformers 依赖冲突怎么解决?

TRL AsyncGRPOTrainer 安装时 vLLM 与 transformers 依赖冲突怎么解决? TRL AsyncGRPOTrainer 安装时 vLLM 与 transformers 依赖冲突怎么解决【免费下载链接】trlTrain transformer language models with reinforcement learning.项目地址: https://gitcode.com/GitHub_Trending/tr/trl在 TRL 中准备使用experimental.async_grpo.AsyncGRPOTrainer时一个绕不开的问题是依赖安装这个 trainer 要求vllm0.22.0和transformers5.2.0而文档明确说明vllm与transformers目前存在相互冲突的依赖约束。如果安装顺序或方式不对pip 的依赖解析会让其中一个包退回到另一个包要求的版本导致环境不满足 trainer 的要求。本文按项目文档给出解决这一冲突的安装顺序、验证方式以及安装完成后可以直接运行的最小验证路径。AsyncGRPOTrainer 的版本要求与冲突来源AsyncGRPO 文档开头给出的硬性要求是This trainer requiresvllm0.22.0andtransformers5.2.0. For distributed training, only FSDP2 is supported (DeepSpeed ZeRO is not).Currently,vllmandtransformershave conflicting dependency constraints. To work around this, install vLLM first and then force-install transformers.也就是说冲突不是环境偶然出现的而是文档承认的现状两个包对彼此版本的约束无法被 pip 同时满足官方给出的解决办法是先装 vLLM再强制安装 transformers。理解冲突来源还需要两个事实TRL 核心包的基础依赖是transformers4.56.2见 pyproject.toml这满足 TRL 大部分 trainer但低于 AsyncGRPOTrainer 要求的5.2.0。trl[vllm]extra 只声明vllm0.19.1,0.28.0pyproject.toml而通用 vLLM 集成文档也说明 TRL 当前支持 vLLM0.19.1到0.28.0的版本区间vllm_integration.md。AsyncGRPO 的下限0.22.0高于这个区间下界。因此直接pip install trl或pip install trl[vllm]之后环境里的 transformers 很可能仍停在4.x或低于5.2.0的版本不满足 AsyncGRPOTrainer 的要求反过来先固定 transformers 再装 vLLM又会触发文档所述的约束冲突。两个文档给出的版本口径不同AsyncGRPO 只给下限0.22.0通用集成给0.19.1–0.28.0区间文档没有给出唯一推荐的具体版本号选版本时以这两处口径为准。解决冲突的安装顺序按 async_grpo_trainer.md 给出的 workaround依次执行两条命令顺序不能颠倒pip install vllm0.22.0 pip install transformers5.2.0 --no-deps第一条先安装 vLLM让 pip 按 vLLM 自己的依赖树解析环境包括它要求的 transformers 版本。第二条用--no-deps强制安装transformers5.2.0即跳过 transformers 自身的依赖解析避免 pip 为了调和冲突把 transformers 降回去。两条命令都不改动 GPU、不删除文件副作用仅限于 Python 包环境的安装与版本变更。建议在新建的虚拟环境里执行避免与已有项目环境混装。如果此前已经通过 安装文档装过 TRLpip install trl或pip install -e .不需要重装 TRL 本身只需按上述顺序把 vLLM 和 transformers 版本提到要求之上即可。验证安装结果安装完成后按下面两步核对1. 查看实际安装的版本。用pip show确认两个包满足要求输出示例中的版本号为示意实际以你环境中的输出为准pip show vllm transformers核对标准来自文档vLLM 版本不低于0.22.0transformers 版本不低于5.2.0。2. 确认 trainer 的内置检查不再报错。AsyncGRPOTrainer 在实例化时会检查 vLLM 版本版本缺失或不满足要求时抛出明确的ImportError原文见 async_grpo_trainer.pyvLLM 0.22.0 is required to use the default Async GRPO weight transfer. Install it with: pip install vllm0.22.0看到这条消息说明 vLLM 没装或版本低于0.22.0回到上一节第一条命令即可weight_transfer.py里的 版本检查 同样给出这条安装指引。不再出现该错误、且版本核对通过依赖冲突即按文档口径解决。安装完成后运行最小训练示例依赖装好不等于环境可用AsyncGRPO 文档的 Quick start给出了最小的端到端验证路径。该 trainer 把 rollout 生成交给独立的 vLLM 服务进程所以vLLM server 和 trainer 必须运行在不同的 GPU 上用CUDA_VISIBLE_DEVICES划分。以文档中 2 GPU 为例模型与数据集均为文档自带示例终端 1在 GPU 0 启动 vLLM serverVLLM_SERVER_DEV_MODE1与 NCCL weight transfer 是 AsyncGRPO 必需的CUDA_VISIBLE_DEVICES0 VLLM_SERVER_DEV_MODE1 vllm serve Qwen/Qwen3-4B \ --max-model-len 4096 \ --logprobs-mode processed_logprobs \ --weight-transfer-config {backend:nccl}终端 2创建训练脚本train_async_grpo.py文档示例from datasets import load_dataset from trl.experimental.async_grpo import AsyncGRPOTrainer from trl.rewards import accuracy_reward dataset load_dataset(trl-lib/DeepMath-103K, splittrain) trainer AsyncGRPOTrainer( modelQwen/Qwen3-4B, reward_funcsaccuracy_reward, train_datasetdataset, ) trainer.train()然后在 GPU 1 启动训练CUDA_VISIBLE_DEVICES1 accelerate launch train_async_grpo.py能成功启动 vLLM server 并进入训练循环说明依赖版本组合vllm0.22.0transformers5.2.0在你的环境里实际可用。如果训练阶段遇到分布式相关报错注意该 trainer 的明确限制分布式训练只支持 FSDP2DeepSpeed ZeRO 不支持这一点在依赖装完后才会体现出来。边界与下一步本方案针对的是 AsyncGRPOTrainer 所需的新版依赖组合。普通GRPOTrainer等走通用 vLLM 集成的 trainer 只要求 vLLM0.19.1–0.28.0不需要强制transformers5.2.0可按 vLLM 集成文档的pip install trl[vllm]常规路径安装两个场景的安装方式不要混用。--no-deps意味着 transformers 自身的依赖不会被 pip 解析安装文档的推荐顺序已考虑这一点若环境里其他包因 transformers 升级出现异常按具体报错对应包处理即可文档未提供额外说明。依赖与版本问题排除后具体参数max_staleness、max_inflight_tasks、GPU 划分等的取舍参考 AsyncGRPO 文档的 Overview 与 AsyncGRPOConfig 部分。【免费下载链接】trlTrain transformer language models with reinforcement learning.项目地址: https://gitcode.com/GitHub_Trending/tr/trl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表