【ray】 分布式计算的搭建和调用以及项目实践

0 RAY相关资料

ray 官网:https://docs.ray.io/en/latest/index.html

Ray分布式计算框架详解:https://zhuanlan.zhihu.com/p/460600694

b站视频:https://www.bilibili.com/video/BV1bP41167x7/

1 ray的简要介绍

Ray是UC Berkeley RISELab新推出的高性能分布式的 Python 框架。该框架能够与 PyTorch 配对,是一款面向AI应用的分布式计算框架。

以100个视频的处理为例,利用ray框架将4台机器连接起来测试。全局调度器将100个任务根据机器性能自动分发给不同的机器,A机器32个任务,B机器16个任务,C机器36个任务,D机器处理16个任务,其中每台机器并行处理。

在这里插入图片描述

2 ray的搭建

1、将Anaconda安装至同一根目录下,将计算引擎放置在同一根目录下,连接同一网络,确保处于同一局域网下(注意:ray框架要求环境安装位置与命名相同才可进行多台服务器集群);

2、在多台服务器中创建相同命名的虚拟环境(以moon为例),python版本为同一版本;

3、进入moon虚拟环境;
输入命令:conda activate moon

4、下载ray及项目所需其他依赖包;
输入命令:pip install ray==2.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

5、查看服务器ip地址,并将其中一台设置为头节点;
输入命令:ray start --head --node-ip-address xx.xx.xx.155

6、查看服务器ip地址,并将其余服务器设置为从节点;
输入命令:
ray start --address=“xx.xx.xx.155:6379”–node-ip-address=“xx.xx.xx.211”
其中–address=“头结点的ip地址:头结点的端口号”,–node-ip-address=“从节点的ip地址”

7、查看集群部署的cpu总核数,若cpu总核数与集群中设置的头节点+从节点的总核数相同,则集群无误。直接在主节点调用计算引擎,即可实现并发;
查看集群部署的cpu总核数命令:ray status

8、终止已启动的进程。
输入命令:ray stop

3 ray的调用

1、在原代码的基础上加入获取正在执行 Python 的系统主机名:
res = socket.gethostbyname(socket.gethostname())
ray.init(_node_ip_address=res)

2、并在需要并行运行的方法前加上:
@ray.remote

3、调用主方法改为
XX.remote
普通方法调用:
在这里插入图片描述

基于ray的分布式方法调用:
在这里插入图片描述

4 实践代码分析

这里我暂时只能展示项目中的代码

4.1 ray的配置

首先,有四台连着局域网的机器:

xx.xx.xx.247
xx.xx.xx.248
xx.xx.xx.249
xx.xx.xx.250

每台机器都需要进入到moon环节

conda activate moon

使用xx.xx.xx.247作为头节点

ray start --head --node-ip-address xx.xx.xx.247

从节点:
xx.xx.xx.248

ray start --address="xx.xx.xx.247:6379" --node-ip-address="xx.xx.xx.248"

xx.xx.xx.249

ray start --address="xx.xx.xx.247:6379" --node-ip-address="xx.xx.xx.249"

xx.xx.xx.250

ray start --address="xx.xx.xx.247:6379" --node-ip-address="xx.xx.xx.250"

4.2 代码中使用ray

下面给是相关代码
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
项目运行后的样子:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

<think>嗯,用户想知道如何在本地进行RayVLLM的分布式部署来支持DeepSeek模型。首先,我需要回忆一下RayVLLM的基本概念。Ray是一个分布式计算框架,而VLLM是专门用于高效推理大型语言模型的库,支持高吞吐量低延迟。结合这两者,应该可以实现模型的分布式部署,提升推理速度。 接下来,用户的需求是本地化部署,所以需要指导他们在本地环境中搭建Ray集群,并配置VLLM来调用DeepSeek模型。可能涉及的步骤包括安装依赖、配置Ray集群、编写分布式推理代码,以及处理模型路径等。 首先,安装必要的库。RayVLLM都需要通过pip安装,但可能需要注意版本兼容性。比如,确保安装的vllm版本支持Ray,并且与DeepSeek模型兼容。然后,配置Ray集群。本地部署的话,可以使用Ray的本地模式,启动多个工作节点,或者直接利用Ray的自动资源管理。 然后,需要加载DeepSeek模型。用户提到的引用[^1][^2]中提到了加载模型的代码,例如使用LLM类从指定路径加载。这里需要确认模型文件的本地路径是否正确,并且模型格式是否与VLLM兼容。可能需要将下载的DeepSeek模型权重放到指定目录,比如引用中的/models/deepseek-r1/路径。 接下来是编写分布式推理代码。利用VLLM的LLM类,设置tensor_parallel_workers参数来指定并行度,这可能依赖于Ray的工作节点数量。需要确保Ray集群已经正确初始化,并且资源足够支持模型的并行计算。 此外,用户可能需要处理模型的分发问题,即确保每个Ray节点都能访问到模型文件。在本地部署中,这可能意味着模型文件需要存放在每个节点的相同路径下,或者使用共享存储。不过,如果所有工作节点都在同一台机器上,可能只需要指定正确的本地路径即可。 还需要考虑性能优化,比如调整batch_size参数,或者利用VLLM的其他配置选项来提高推理速度。同时,检查日志错误信息,确保模型加载推理过程中没有异常。 最后,生成相关问题,帮助用户进一步了解相关主题,比如性能调优、多节点部署、资源监控以及模型量化等。这些问题可以引导用户深入学习解决实际部署中可能遇到的问题。 总结步骤应该是:安装环境→配置Ray→准备模型→编写代码→执行测试→优化调整。过程中需要确保各环节的依赖配置正确,特别是在分布式环境下资源的合理分配模型的正确加载。</think>### Ray与VLLM分布式部署DeepSeek模型本地化教程 #### 一、环境准备 1. 安装基础依赖: ```bash pip install ray vllm>=0.3.0 transformers ``` 2. 验证GPU环境: ```bash nvidia-smi # 确保显示可用GPU信息 ``` #### 二、Ray集群配置 1. 启动本地Ray集群: ```python import ray ray.init(num_gpus=4, num_cpus=8) # 根据实际硬件调整参数 ``` 2. 查看资源状态: ```python print(ray.available_resources()) # 应显示GPUCPU可用量 ``` #### 三、VLLM分布式推理配置 1. 加载DeepSeek模型: ```python from vllm import LLM llm = LLM( model="/models/deepseek-r1/DeepSeek-R1/", # 本地模型路径 tensor_parallel_size=4, # 设置与GPU数量匹配的并行度 trust_remote_code=True ) ``` 2. 创建分布式推理管道: ```python @ray.remote(num_gpus=1) class InferenceWorker: def __init__(self): self.llm = llm def generate(self, prompts): return self.llm.generate(prompts) workers = [InferenceWorker.remote() for _ in range(4)] # 创建4个Worker ``` #### 四、执行分布式推理 ```python prompts = ["人工智能的未来发展是", "量子计算的突破将带来"] results = ray.get([workers[i%4].generate.remote([prompt]) for i, prompt in enumerate(prompts)]) ``` #### 五、性能优化建议 1. 调整批处理大小: ```python llm = LLM(..., max_num_batched_tokens=4096) # 根据显存调整 ``` 2. 启用连续批处理: ```python llm = LLM(..., enable_chunked_prefill=True) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSPhD-winston-杨帆

给我饭钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值