开发者社区 > ModelScope模型即服务 > 自然语言处理 > 正文

Distributed package doesn't have NCCL built in

环境:windows11 python3.10 按照要求安装了环境,pip install "modelscope[nlp]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.htmlpip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118,运行报错Distributed package doesn't have NCCL built in,查询资料发现windows系统不支持NCCL 需要改为gloo,请问是在代码的哪一处改?或者有其他解决方法?

展开
收起
1074116699475850 2023-06-16 21:35:45 907 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    NCCL 是 NVIDIA 提供的用于实现 GPU 加速的通信库,目前主要用于分布式训练。然而,NCCL 并不支持在 Windows 操作系统上运行,因此需要使用其它的通信库来替代 NCCL。在 PyTorch 中,可以将分布式后端设置为 "gloo",来使用 Gloo 通信库来替代 NCCL。

    为了替换 PyTorch 中的后端为 "gloo",可以在 PyTorch 代码的开头添加以下代码:

    scheme
    Copy
    import os
    os.environ['NCCL_SOCKET_IFNAME'] = 'eth0' # 替换为你的网络接口名称
    os.environ['NCCL_IB_DISABLE'] = '1'
    os.environ['NCCL_DEBUG'] = 'INFO'
    os.environ['MASTER_ADDR'] = 'localhost'
    os.environ['MASTER_PORT'] = '12345' # 替换为你的端口号
    torch.distributed.init_process_group(backend='gloo')
    这里的 backend='gloo' 指定了使用 Gloo 通信库作为分布式后端。这段代码还设置了一些环境变量,用于指定通信参数。需要注意的是,这段代码需要在 PyTorch 初始化之前运行,以保证正确地替换分布式后端。

    2023-07-19 20:59:47
    赞同 展开评论 打赏
  • 您好,如果是 nccl 改 gloo 可以通过修改配置文件中的 megatron: { "world_size": ... "distributed_backend": "gloo", <-- 添加这行 ... }

    2023-06-20 10:23:25
    赞同 展开评论 打赏

包含命名实体识别、文本分类、分词、关系抽取、问答、推理、文本摘要、情感分析、机器翻译等多个领域

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载