GithubHelp home page GithubHelp logo

推理问题 about chatglm_lora_multi-gpu HOT 17 OPEN

UncleFB avatar UncleFB commented on September 15, 2024
推理问题

from chatglm_lora_multi-gpu.

Comments (17)

shell-nlp avatar shell-nlp commented on September 15, 2024

比如我要启一个服务端,我怎么能在接收到请求的时候用上deepspeed的多卡推理呢

同问, 你现在有解决方案吗

from chatglm_lora_multi-gpu.

liangwq avatar liangwq commented on September 15, 2024

THUDM/ChatGLM3@f1852ec
可以看看chatglm官方github给的方案,如果还是跑不通,在发issue,我来做整合

from chatglm_lora_multi-gpu.

liangwq avatar liangwq commented on September 15, 2024

比如我要启一个服务端,我怎么能在接收到请求的时候用上deepspeed的多卡推理呢

同问, 你现在有解决方案吗

THUDM/ChatGLM3@f1852ec
可以看看chatglm官方github给的方案,如果还是跑不通,在发issue,我来做整合

from chatglm_lora_multi-gpu.

shell-nlp avatar shell-nlp commented on September 15, 2024

比如我要启一个服务端,我怎么能在接收到请求的时候用上deepspeed的多卡推理呢

同问, 你现在有解决方案吗

THUDM/ChatGLM3@f1852ec 可以看看chatglm官方github给的方案,如果还是跑不通,在发issue,我来做整合

Chatglm3官方仍然是个 demo, 也没有使用 deepspeed多卡推理, 如果使用deepspeed --num_gpus 进行启动的话,程序中写的web 服务 端口 比如 8080 会被加载 多次,导致端口占用报错,

from chatglm_lora_multi-gpu.

liangwq avatar liangwq commented on September 15, 2024

比如我要启一个服务端,我怎么能在接收到请求的时候用上deepspeed的多卡推理呢

同问, 你现在有解决方案吗

THUDM/ChatGLM3@f1852ec 可以看看chatglm官方github给的方案,如果还是跑不通,在发issue,我来做整合

Chatglm3官方仍然是个 demo, 也没有使用 deepspeed多卡推理, 如果使用deepspeed --num_gpus 进行启动的话,程序中写的web 服务 端口 比如 8080 会被加载 多次,导致端口占用报错,

我抽空解决下,不过估计要到元旦了

from chatglm_lora_multi-gpu.

shell-nlp avatar shell-nlp commented on September 15, 2024

from chatglm_lora_multi-gpu.

liangwq avatar liangwq commented on September 15, 2024

好的, 全网找不到一个 将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.

shell-nlp avatar shell-nlp commented on September 15, 2024

from chatglm_lora_multi-gpu.

liangwq avatar liangwq commented on September 15, 2024

但是 这个代码是用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.

shell-nlp avatar shell-nlp commented on September 15, 2024

from chatglm_lora_multi-gpu.

liangwq avatar liangwq commented on September 15, 2024

因为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.

liangwq avatar liangwq commented on September 15, 2024

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.

liangwq avatar liangwq commented on September 15, 2024

这部分之所以要起一个deepspeed的长服务原因就在于
如果用deepspeed *.py方式每次起服务,会消耗大量的模型加载初始化时间
而如果用mii.deploy或者是mii.server方式相当于是一个异步阻塞服务,模型一直在内存中初始化也一直在进程中
可以同时服务多个客户端,并且可以充分利用deepspeed做的各种加速优化

from chatglm_lora_multi-gpu.

liangwq avatar liangwq commented on September 15, 2024
image 这个问题测试了opt和llama的用mii可以解决,本地加载可以直接跑起来 chatglm需要做些小改动,在deepspeed的图的文件里面写一个chatglm模型加载类 重新编译一下deepspeed(pip install -e .)发布下就行

from chatglm_lora_multi-gpu.

shell-nlp avatar shell-nlp commented on September 15, 2024

from chatglm_lora_multi-gpu.

liangwq avatar liangwq commented on September 15, 2024

deepspeed代码做了chatglm适配改了一版本;能跑起来了,但是模型编码适配有些没对齐结果有些问题
有兴趣的可以参考看怎么优化
https://github.com/liangwq/deepspeedmii_chatglm_qwen/tree/main

from chatglm_lora_multi-gpu.

shell-nlp avatar shell-nlp commented on September 15, 2024

from chatglm_lora_multi-gpu.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.