水上-由岐 2025-11-17 16:02 采纳率: 0%
浏览 12

vllm+ray多节点推理大模型无法加载模型

创建docker的指令:docker run -d -v /usr/src:/usr/src -v /lib/modules:/lib/modules -v /dev:/dev -v /data:/data --privileged --cap-add=ALL --pid=host --net host --shm-size=32gb --name vllm_distributed --entrypoint /bin/bash vllm_infer:0805 -c "sleep infinity"
当前使用的是国产的GPU:Iluvatar MR-V100,vllm版本是0.6.3,cuda版本是10.2,ray启动命令为ray start --block --head --port=6379 --num-gpus=1 --object-store-memory=10000000000。配置是双机单卡,ray status能够显示两个节点和2个GPU资源。
启动vllm的server指令为vllm serve /data/models/Qwen2.5-14B-Instruct-GPTQ-Int8 --served-model-name Qwen2.5-14B-Instruct-GPTQ-Int8 --tensor-parallel-size 2 --trust-remote-code --max-model-len 10240 \,但是运行的时候却迟迟不能加载上模型,日志不显示错误,终端返回的是

img

同时查看显存占用,发现占用率异常的低

img

但是把tensor_parallel改成1,单卡的时候能够加载成功并正常运行。请问这是什么原因,求帮助

  • 写回答

3条回答 默认 最新

  • 紫雾凌寒 新星创作者: 人工智能技术领域 2025-11-17 16:10
    关注

    让 “紫雾凌寒” 来帮你回答,本回答结合 DeepSeek

    如果还有问题,请评论或点击头像私信,如果有帮助到您, 请关注、采纳、点赞

    1. 关键点分析
      - 仅给出了创建docker的指令片段,未完整展示整个指令,且不清楚具体在运行时遇到的加载模型失败的详细错误信息。
      - 不知道vllmray的具体版本,以及模型加载的相关环境配置情况。
    2. 解决方案
      - 检查指令完整性:确保创建docker的指令完整,例如完整的指令可能是docker run -d -v /usr/src:/usr/src -v /lib/modules:/lib/modules -v /dev:/dev -v <model_path>:/model <image_name>,其中<model_path>是模型所在主机路径,<image_name>是包含vllmray环境的镜像名称。
      - 查看错误日志:在运行docker容器时,添加--log-driver=json-file --log-opt max-size=10m --log-opt max-file=3等日志配置选项,然后通过docker logs <container_id>查看容器内的日志,以获取模型加载失败的具体原因,比如权限问题、依赖缺失等。例如:
      bash docker run -d --log-driver=json-file --log-opt max-size=10m --log-opt max-file=3 -v /usr/src:/usr/src -v /lib/modules:/lib/modules -v /dev:/dev -v <model_path>:/model <image_name> docker logs <container_id>
      - 检查模型路径映射:确认模型路径在主机和容器内的映射是正确的,容器内能够正确访问到模型文件。
      - 检查环境依赖:确保容器内安装了vllmray运行所需的所有依赖,例如相关的深度学习框架依赖(如PyTorch或TensorFlow)。可以在容器内进入交互模式(如docker exec -it <container_id> bash),然后检查依赖是否安装正确,例如:
      bash docker exec -it <container_id> bash python -c "import vllm; import ray"
      如果出现导入错误,根据错误提示安装相应的依赖包。
    3. 不同方案优缺点
      - 检查指令完整性
      • 优点:简单直接,能首先排除因指令不完整导致的问题。
      • 缺点:如果指令本身完整,可能无法解决深层次的模型加载失败问题。
      • 查看错误日志
      • 优点:能获取到最直接的模型加载失败原因,针对性强。
      • 缺点:可能日志中信息较多,需要仔细排查关键错误信息。
      • 检查模型路径映射
      • 优点:快速定位模型访问问题,较为常见的模型加载失败原因之一。
      • 缺点:如果路径映射正确,还需进一步排查其他原因。
      • 检查环境依赖
      • 优点:全面检查运行环境,确保所有依赖满足要求。
      • 缺点:操作相对繁琐,需要进入容器内检查。
    4. 总结
      - 首先要确保创建docker的指令完整且正确配置了模型路径映射。然后通过查看错误日志获取具体的加载失败原因,再针对性地检查环境依赖等问题,逐步排查找到解决模型无法加载的问题。

    需要注意的是,以上解答基于一般情况,具体问题还需结合更详细的信息进行深入分析。

    希望以上解答对您有所帮助。如果您有任何疑问,欢迎在评论区提出。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月17日