# 托管训练 常见问题

如何还是无法解决,请企微联系海聪AI平台服务热线

# 托管训练如何使用conda

可以使用conda run运行程序,写到托管训练启动命令中,不需要使用 conda activate my_env
例如:

conda run --no-capture-output -n my_env  python test.py

# 如何生效profile中的环境变量

如果在notebook中配置了 profile,在 notebook 打开terminal会自动生效,但是在托管训练启动时不会生效,需要手工显示触发
请在托管训练启动命令中,最前面添加:

. /etc/profile

其它.bashrc 等配置生效类似

# 如果开启RDMA多机训练

目前上海A800机器都支持RDMA网络,在多机训练下,多机间通信速度提升会非常明显,直接影响训练速度的提升
目前已知在非MOE结构大模型下,相较于原无RDMA的A100机器,训练速度提升可达50%

先安装环境:

apt update && apt install -y infiniband-diags perftest ibverbs-providers libibumad3 libibverbs1 libnl-3-200 libnl-route-3-200 librdmacm1

配置环境变量:

export NCCL_PXN_DISABLE=1
export NCCL_SOCKET_IFNAME=eth0
export NCCL_IB_DISABLE=0
export NCCL_NET_GDR_LEVEL=3
export NCCL_IB_HCA=mlx5_1:1,mlx5_2:1,mlx5_3:1,mlx5_4:1
export NCCL_IB_GID_INDEX=3

注:

  • 上面的配置,可以直接写到托管训练启动命令中,也可以写进自己启动脚本中
  • 分布式训练backend必须选择为nccl,不能是gloo

# 如何部署vllm多机推理

仅供临时测试验证用,不允许用这个方式上线使用

以下是2机16卡的例子:
托管训练模式选择EFDL弹性训练(PyTorch Distributed)模式

export GLOO_SOCKET_IFNAME=eth0
export NCCL_SOCKET_IFNAME=eth0

while [ "$LOCAL_RANK" != "0" ]; do
  sleep 10
done

if [ "$RANK" = "0" ]; then
	echo "I am master: ${MASTER_ADDR}"
	ray start --head --port=6379
	sleep 1m
	vllm serve /path/to/Qwen3-235B-A22B --served-model-name rp_ig --tensor-parallel-size 8 --pipeline-parallel-size 2
else
	echo "I am worker"
	ray start --block --address="${MASTER_ADDR}:6379"
fi

如何访问:日志中搜索"I am master",找到它的ip地址,替换下面的MASTER_ADDR即可测试:

curl -X POST 'http://MASTER_ADDR:8000/v1/chat/completions' --header 'Content-Type: application/json' -d '{
    "model": "rp_ig",
    "messages": [{"role": "user", "content": "你是谁"
}
]
}'

# 分布式训练or推理时相关环境变量

当训练模式选择:EFDL弹性训练(PyTorch Distributed)时,会自动注入这些环境变量:

  • MASTER_ADDR:master节点IP
  • MASTER_PORT:master节点端口
  • RANK:每个GPU的序号,全局
  • WORLD_SIZE:全局总GPU数量
  • LOCAL_RANK:本机的GPU序号
  • LOCAL_SIZE:本机GPU数量