Comments (17)
比如我要启一个服务端,我怎么能在接收到请求的时候用上deepspeed的多卡推理呢
同问, 你现在有解决方案吗
from chatglm_lora_multi-gpu.
THUDM/ChatGLM3@f1852ec
可以看看chatglm官方github给的方案,如果还是跑不通,在发issue,我来做整合
from chatglm_lora_multi-gpu.
比如我要启一个服务端,我怎么能在接收到请求的时候用上deepspeed的多卡推理呢
同问, 你现在有解决方案吗
THUDM/ChatGLM3@f1852ec
可以看看chatglm官方github给的方案,如果还是跑不通,在发issue,我来做整合
from chatglm_lora_multi-gpu.
比如我要启一个服务端,我怎么能在接收到请求的时候用上deepspeed的多卡推理呢
同问, 你现在有解决方案吗
THUDM/ChatGLM3@f1852ec 可以看看chatglm官方github给的方案,如果还是跑不通,在发issue,我来做整合
Chatglm3官方仍然是个 demo, 也没有使用 deepspeed多卡推理, 如果使用deepspeed --num_gpus 进行启动的话,程序中写的web 服务 端口 比如 8080 会被加载 多次,导致端口占用报错,
from chatglm_lora_multi-gpu.
比如我要启一个服务端,我怎么能在接收到请求的时候用上deepspeed的多卡推理呢
同问, 你现在有解决方案吗
THUDM/ChatGLM3@f1852ec 可以看看chatglm官方github给的方案,如果还是跑不通,在发issue,我来做整合
Chatglm3官方仍然是个 demo, 也没有使用 deepspeed多卡推理, 如果使用deepspeed --num_gpus 进行启动的话,程序中写的web 服务 端口 比如 8080 会被加载 多次,导致端口占用报错,
我抽空解决下,不过估计要到元旦了
from chatglm_lora_multi-gpu.
from chatglm_lora_multi-gpu.
好的, 全网找不到一个 将deepspeed单机多卡部署为如fastapi服务的代码, 😭 确实很难
…
---原始邮件--- 发件人: @.> 发送时间: 2023年12月25日(周一) 晚上6:04 收件人: @.>; 抄送: @.@.>; 主题: Re: [liangwq/Chatglm_lora_multi-gpu] 推理问题 (Issue #46) 比如我要启一个服务端,我怎么能在接收到请求的时候用上deepspeed的多卡推理呢 同问, 你现在有解决方案吗 @.*** 可以看看chatglm官方github给的方案,如果还是跑不通,在发issue,我来做整合 Chatglm3官方仍然是个 demo, 也没有使用 deepspeed多卡推理, 如果使用deepspeed --num_gpus 进行启动的话,程序中写的web 服务 端口 比如 8080 会被加载 多次,导致端口占用报错, 我抽空解决下,不过估计要到元旦了 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
已更新代码,查看最新更新部分
from chatglm_lora_multi-gpu.
from chatglm_lora_multi-gpu.
但是 这个代码是用HF 多gpu推理推理的,并没有用deepspeed进行多gpu推理
…
---原始邮件--- 发件人: @.> 发送时间: 2024年1月3日(周三) 下午2:41 收件人: @.>; 抄送: @.@.>; 主题: Re: [liangwq/Chatglm_lora_multi-gpu] 推理问题 (Issue #46) 好的, 全网找不到一个 将deepspeed单机多卡部署为如fastapi服务的代码, 😭 确实很难 … ---原始邮件--- 发件人: @.> 发送时间: 2023年12月25日(周一) 晚上6:04 收件人: @.>; 抄送: @.@.>; 主题: Re: [liangwq/Chatglm_lora_multi-gpu] 推理问题 (Issue #46) 比如我要启一个服务端,我怎么能在接收到请求的时候用上deepspeed的多卡推理呢 同问, 你现在有解决方案吗 @.*** 可以看看chatglm官方github给的方案,如果还是跑不通,在发issue,我来做整合 Chatglm3官方仍然是个 demo, 也没有使用 deepspeed多卡推理, 如果使用deepspeed --num_gpus 进行启动的话,程序中写的web 服务 端口 比如 8080 会被加载 多次,导致端口占用报错, 我抽空解决下,不过估计要到元旦了 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.> 已更新代码,查看最新更新部分 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.>
更新了两个文件夹,一个是openai api模式多卡用的Accelerate做的多卡并发推理,速度应该可以的
一个是deepspeed多卡batch推理的
如果你一定要deepspeed+openai api模式这个需要再等等了,感觉速度和Accelerate做的多卡并发推理差不了多少
from chatglm_lora_multi-gpu.
from chatglm_lora_multi-gpu.
因为deepspeed infer提供了 张量并行的配置 而hf和acc是没有的
…
---原始邮件--- 发件人: @.> 发送时间: 2024年1月3日(周三) 下午3:26 收件人: @.>; 抄送: @.@.>; 主题: Re: [liangwq/Chatglm_lora_multi-gpu] 推理问题 (Issue #46) 但是 这个代码是用HF 多gpu推理推理的,并没有用deepspeed进行多gpu推理 … ---原始邮件--- 发件人: @.> 发送时间: 2024年1月3日(周三) 下午2:41 收件人: @.>; 抄送: @.@.>; 主题: Re: [liangwq/Chatglm_lora_multi-gpu] 推理问题 (Issue #46) 好的, 全网找不到一个 将deepspeed单机多卡部署为如fastapi服务的代码, 😭 确实很难 … ---原始邮件--- 发件人: @.> 发送时间: 2023年12月25日(周一) 晚上6:04 收件人: @.>; 抄送: @.@.>; 主题: Re: [liangwq/Chatglm_lora_multi-gpu] 推理问题 (Issue #46) 比如我要启一个服务端,我怎么能在接收到请求的时候用上deepspeed的多卡推理呢 同问, 你现在有解决方案吗 @.*** 可以看看chatglm官方github给的方案,如果还是跑不通,在发issue,我来做整合 Chatglm3官方仍然是个 demo, 也没有使用 deepspeed多卡推理, 如果使用deepspeed --num_gpus 进行启动的话,程序中写的web 服务 端口 比如 8080 会被加载 多次,导致端口占用报错, 我抽空解决下,不过估计要到元旦了 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.> 已更新代码,查看最新更新部分 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.> 更新了两个文件夹,一个是openai api模式多卡用的Accelerate做的多卡并发推理,速度应该可以的 一个是deepspeed多卡batch推理的 如果你一定要deepspeed+openai api模式这个需要再等等了,感觉速度和Accelerate做的多卡并发推理差不了多少 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
最简单的办法就是重写下面方法:
@app.post("/chat", response_model=ChatCompletionResponse)
async def create_chat_completion(request: ChatCompletionRequest):
这个方法每次接收到前端请求都用python cmd的方式来deepspeed inference这个问题(这部分代码项目里面也有)
这个方法你不需要改太多东西
第二种方法就是集成deepspeed和accelerate,可以直接通过python方式启动一个服务
这个是有难度的(这部分如果你不想自己开发需要等些时间)
from chatglm_lora_multi-gpu.
deepspeed的类似openai api接口调用问题
这个问题其实就是grpc服务请求问题
1.deepspeed本质就是一个多卡多节点的服务管理器
2.deepspeed是launch服务的脚本,所以启动服务每次都需要在py文件前面这个指令
3.如果希望把deepspeed服务起一个长连接的占用服务作为推理的服务,理论就是需要基于deepspeed的服务管理做开发
4.这部分其实deepspeed又做了deepspeedmii的开发,所以如果需要可以直接用这个框架起一个resful服务,然后再用fastgpt或者openapi包更上层api就可以了https://github.com/microsoft/DeepSpeed-MII/tree/main/mii/legacy/examples/local
5.deepspeedmii现在有几个问题:
a.不支持chatglm模型架构(我看了下它的实现这个问题不大,网络加载用的是transformer,做并发推理用的deepspeed理论和架构关系不大)
b.这个框架在做task时候调用了huggingface的hub api也就是每一次都会去判断hub上这个模型的作用和你给的task是否相符合;这个如果外网不好的朋友用起来会很抓狂
c.加载本地模型部分它也用到了hub做cache时间更新管理,一样的如果外网不好的朋友这个用起来很难受
d.这个模型的实现是路就是用了deepspeed的launch包了一层multi gpu服务接口,然后对服务状态做了管理(比如模型内存、状态)这部分如果对grpc熟悉的朋友解决起来几天时间应该够
e.如果用legacy模式上面讲的入口就在deploy方法,这部分代码在deployment.py文件里面实现,可以进去看看,看看怎么样可以把和hub结合代码关闭
from chatglm_lora_multi-gpu.
这部分之所以要起一个deepspeed的长服务原因就在于
如果用deepspeed *.py方式每次起服务,会消耗大量的模型加载初始化时间
而如果用mii.deploy或者是mii.server方式相当于是一个异步阻塞服务,模型一直在内存中初始化也一直在进程中
可以同时服务多个客户端,并且可以充分利用deepspeed做的各种加速优化
from chatglm_lora_multi-gpu.
from chatglm_lora_multi-gpu.
from chatglm_lora_multi-gpu.
deepspeed代码做了chatglm适配改了一版本;能跑起来了,但是模型编码适配有些没对齐结果有些问题
有兴趣的可以参考看怎么优化
https://github.com/liangwq/deepspeedmii_chatglm_qwen/tree/main
from chatglm_lora_multi-gpu.
from chatglm_lora_multi-gpu.
Related Issues (20)
- 如何训练自己数据集 HOT 1
- 显存占用问题 HOT 2
- 你的README.md与Chatglm_lora_multi-gpu/data HOT 1
- 运行web_ui.py,报错:NameError: name 'LoraConfig' is not defined HOT 1
- 运行 web_feadback.py 报错 HOT 6
- deepspeed和lora HOT 4
- 模型是否存在信息泄露 HOT 4
- alps import error HOT 1
- 多卡并行问题 HOT 1
- chatglm用deepspeed多卡推理问题 HOT 1
- chatglm做图应用怎么使用 HOT 1
- 多卡deepspeed模式 HOT 2
- Deepspeed并未生效 HOT 1
- langchain版本是多少 HOT 1
- huggingface_hub.utils._validators.HFValidationError HOT 3
- 解析相应报错 HOT 3
- 看下我的搜索结果对不对
- clip retrieval 成功运行app.py,但是不显示streamlit界面 HOT 2
- Chatglm_lora_multi-gpu/APP_example/real_time_draw/realtime_draw_01.py HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chatglm_lora_multi-gpu.