基于 vLLM 0.7.1 部署 DeepSeek R1 模型避坑指南
vLLM 近期发布了 DeepSeek R1 的 PP(Pipeline Parallelism)支持,适合进行技术准备工作。假如训练的超大 MoE 上线了,也得做好技术准备工作。把踩坑经验给大家分享一下,希望能够相比于官方文档更白话一点。
Distributed Inference and Serving: https://docs.vllm.ai/en/latest/serving/distributed_serving.html#running-vllm-on-multiple-nodes
Step 0 Prepare weights & Environment
由于权重太大了,即使你网速可以,也不建议直连下载了。大家可以先从 HF 及或代理弄一份权重回来,直连大概率直接超时或者把公网 IP 打爆。我们今天展示的多机多卡 8xH20 (x2) 部署,对应 TP size 8,PP size 2,所以要搞两台这样的机器过来。同时有一个假设:两机的网络互通,不一定需要 IB,储存需要共享(NAS 或 OSS 均可),完成准备工作之后便可以做第一步。
Step 1 Setup up Ray & Cluster
官方文档里面简单带过了这一部分,但这个是我被卡时间太久的问题。首先我说一下官方文档的意思,就是让你准备好两个节点,之间用 ray start 这个 CLI 去建立好 ray 集群。因为后面要用,但是比较坑的有两点,第一点是启动的命令似乎有点点问题,我在前几次尝试的时候都遇到了 Ray 的 autoscaler 报错的问题:
(autoscaler +1m19s) Error: No available node types can fulfill resource request {'node:33.18.26.153': 0.001, 'GPU': 1.0}. Add suitable node types to this cluster to resolve this issue.
(autoscaler +1m54s) Error: No available node types can fulfill resource request {'GPU': 1.0, 'node:33.18.26.153': 0.001}. Add suitable node types to this cluster to resolve this issue.
INFO 02-02 09:39:14 ray_utils.py:212] Waiting for creating a placement group of specs for 150 seconds. specs=[{'node:33.18.26.153': 0.001, 'GPU': 1.0}, ...]. Check `ray status` to see if you have enough resources.
这看起来就很奇怪,因为 vLLM 找 Ray 集群要的 Resource 是 custom resource,'node:33.18.26.153':0.001,这可以理解成 vLLM 优先要 driver 节点。但是这个东西我印象中是需要启动 ray 的时候自己设置的:


