You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置多GPU运行fairseq-interactive执行模型预测?

fairseq-interactive 多GPU运行相关说明

fairseq-interactive 本身没有原生多GPU并行推理支持,默认仅使用单卡运行,实际测试中出现的单卡调用情况属于工具默认设计,并非配置错误。

可落地的多GPU加速生成方案有两种:

  • 方案1:使用支持分布式的fairseq-generate替代
    fairseq 官方对fairseq-generate做了分布式适配,可通过PyTorch自带的分布式启动器拉起多卡任务,推理效率随卡数接近线性提升,参考启动命令:
    CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 \
      $(which fairseq-generate) 预处理后的二进制数据目录路径 \
      --path 训练好的模型checkpoint路径 \
      --batch-size 单卡批大小 \
      --beam 搜索束宽 \
      # 其余生成相关参数(如长度惩罚、最大生成长度、分词规则等)和fairseq-interactive完全通用,按需追加即可
    
    该方案会自动将待推理样本切分到各张卡独立计算,最终每张卡输出自身负责样本的预测结果,后续按样本序号拼接即可得到完整预测集。
  • 方案2:手动切分数据多进程拉起fairseq-interactive
    如果必须依赖fairseq-interactive的输入输出格式(比如适配自定义交互逻辑、已有结果解析脚本是针对interactive输出写的),可以先把待预测的输入文本按GPU总数平均切分成N个分片,给每张卡绑定一个独立的fairseq-interactive进程处理对应分片,最后合并所有分片的结果即可。单进程绑定指定GPU的参考命令:
    # 绑定0号卡处理第1个输入分片
    CUDA_VISIBLE_DEVICES=0 fairseq-interactive 预处理后的二进制数据目录路径 --path 模型checkpoint路径 --batch-size 单卡批大小 < 输入分片_0.txt > 结果分片_0.txt
    # 绑定1号卡处理第2个输入分片
    CUDA_VISIBLE_DEVICES=1 fairseq-interactive 预处理后的二进制数据目录路径 --path 模型checkpoint路径 --batch-size 单卡批大小 < 输入分片_1.txt > 结果分片_1.txt
    
    该方案无需额外改框架代码,适合临时跑批量预测的场景,注意单卡批大小不要设置过大避免显存溢出。

注意:不要直接给fairseq-interactive传入多GPU的CUDA_VISIBLE_DEVICES列表,工具内部没有做分布式通信初始化,传入多卡后只会占用列表中第一张卡跑计算,其余卡只会空占显存,不会参与运算,反而造成资源浪费。

内容的提问来源于stack exchange,提问作者xihajun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 14:06:28