CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 vllm serve "defog/sqlcoder-70b-alpha" --tensor-parallel-size 8 --gpu-memory-utilization 0.9 --max-model-len 8192 --cpu-offload-gb 0 --swap-space 8
在使用 vLLM 部署模型时,命令看起来整体没有明显的错误,但是有几个细节可能需要注意,以确保部署顺利:
1. CUDA_VISIBLE_DEVICES 设置
你将 CUDA_VISIBLE_DEVICES 设置为 0,1,2,3,4,5,6,7,这意味着你希望使用 8 张 GPU。如果你确实有 8 张 GPU(并且这些 GPU 的编号从 0 到 7),这部分设置是没问题的。
但是,确保以下几点:
- 确认
CUDA_VISIBLE_DEVICES设置的 GPU 是否正确连接并且可以使用。 - 如果在多台机器上部署,确保每台机器的 GPU 都配置好,并且 CUDA 环境能够识别所有的 GPU。
2. --tensor-parallel-size 8
--tensor-parallel-size 8 表示将张量并行化到 8 个 GPU 上。这个设置和你的 CUDA_VISIBLE_DEVICES 参数相符,但是有几点需要确认:
- 你是否已经确认模型可以支持 8-way 的张量并行?某些模型可能没有完全优化以支持高并行度。
- 每个 GPU 的显存和模型大小相匹配。
--tensor-parallel-size 8会将模型划分到 8 个 GPU 上,确保每个 GPU 都有足够的显存来加载模型和处理数据。
3. --gpu-memory-utilization 0.9
这个参数设置了每个 GPU 最大的显存使用比例为 90%。如果 GPU 上的显存容量较大(例如 24GB 或 40GB),通常设置为 0.9 是安全的,但如果显存较小,或者你有多个进程在同时使用 GPU,可能会导致 Out of Memory 错误。
建议:
- 确保每个 GPU 上的显存足够,并且没有其他进程占用显存。
- 如果遇到内存溢出,可以尝试调整该值,或者逐步减少每个 GPU 的显存使用。
4. --max-model-len 8192
--max-model-len 8192 指定了模型支持的最大输入长度为 8192 tokens。这个值需要与你的模型大小、显存和并行度相匹配。
- 确保你的模型可以支持该长度(通常较大的模型对输入长度的限制较少,但需要确认模型结构是否适配这么长的序列)。
- 若模型出现无法处理大长度输入的情况,可以适当减小该值。
5. --cpu-offload-gb 0
--cpu-offload-gb 0 设置了不将任何内存数据从 GPU 卸载到 CPU。通常,在显存不足时会使用 CPU 扩展内存,如果你的 8 个 GPU 显存足够使用,这个参数设置为 0 是可以的。
- 如果在执行时遇到内存溢出,可能需要考虑增加
--cpu-offload-gb的值,将部分内存数据转移到 CPU 上以释放 GPU 内存。
6. --swap-space 8
这个参数表示设置 8GB 的交换空间。如果显存不足时,vLLM 会使用交换空间来扩展内存。建议使用这个选项来预防意外的内存不足情况。
- 确保服务器有足够的硬盘空间来支持交换空间,尤其是在使用大模型时。
- 过多依赖交换空间可能会导致性能下降,因为硬盘速度比 GPU 内存慢得多。
总结:
- 这个命令在配置上看起来是正确的,前提是你有 8 张 GPU,显存足够,并且已经确保硬件和软件环境支持这些设置。
- 请注意检查显存是否足够,特别是与输入序列长度和张量并行化相关的部分。
- 确保系统有足够的交换空间和 CPU 内存可用,以防万一模型需要更多的资源。
7万+

被折叠的 条评论
为什么被折叠?



