V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fid
V2EX  ›  程序员

8x4090 离线部署 Qwen2.5 求助

  •  
  •   fid · 1 天前 · 1933 次点击

    设备配置

    • 显卡:8x4090 ,单张 24564MIB--约 24G 显存(单张可用 60%左右)
    • CentOS 7.6 ,已有 cuda 、python 、docker 环境

    需求

    • 暂时采用量化模型,Qwen2.5 32B q6 或者 q8 ( q4km 效果太差了)
    • 多卡部署,想充分利用多卡 gpu
    • 简易离线部署(优先级小于多卡部署),最好类似 docker 镜像直接保存的方式,也可以使用 python 离线依赖安装的方式,主打一个一次导入,导入太麻烦了。
    • 最终需要一个类似open_webui的 web 方案

    方案

    • 当前单卡ollama+open_webui效果差,想堪比 gpt 4o (当然没必要太强)能用的程度。
    • llama.cpp 多卡好像支持不太好?
    • vllm 多卡部署好像不支持量化模型,不是很满足需求。
    • TGI 好像可以( Int4 、Int8 、AWQ )但是不太了解。
    • 官方还提供 SkyPilot 、OpenLLM 但都不太了解

    有没有一种好的方式快速部署

    第 1 条附言  ·  1 小时 13 分钟前

    致谢

    感谢 @Leon6868 @Azure99 提供的lmdeploy工具,使用conda-pack成功迁移离线部署。 感谢 @Leon6868 @GPLer @mythabc @kenvix @oldfans 提到的72B模型,当前尝试是官方Qwen2.5-72B-Instruct-AWQ模型,可惜官方没有8bit AWQ量化。

    方案

    采用conda-pack离线部署lmdeploy。

    原因:支持多卡,性能高

    采用Qwen2.5-72B-Instruct-AWQ模型(4 bit)

    原因:与GPTQ相比,AWQ可以显著提高推理速度,同时保持类似甚至更好的性能。

    体验

    • 短token很顺滑,几乎秒出答案;长token等个10s左右也能出答案,完全没有32B_q4那样混乱的答案,结果很清晰。
    • 单人使用时,8x4090,单张GPU占用78%-90%左右,可以了

    需求

    • 暂时没有其他需求了,可能就是更少的内存更优的体验?不过感觉已经能充分利用显卡了,爽
    40 条回复    2024-12-04 17:59:09 +08:00
    qiniu2025
        1
    qiniu2025  
       1 天前
    拿个 32B 开源想跟现在行业龙头 gpt 4o 比,你要给用户提供什么服务? 这种聊天机器人满大街都是
    fid
        2
    fid  
    OP
       1 天前
    @qiniu2025 #1 自用,离线环境部署只能选 32B
    Leon6868
        3
    Leon6868  
       1 天前   ❤️ 1
    8x4090 跑 ollama ,不如借给我用()(感兴趣可以联系 cXRiYm9zajVzQG1vem1haWwuY29t ,我可以帮你配置环境)

    我个人的推荐是 lmdeploy + Qwen2.5 72B awq int8 ,响应速度很快,支持多卡,在 4xV100 上实跑 72B gptq int4 比 vllm 好用
    mmjy
        4
    mmjy  
       1 天前
    vllm 文档是有量化实验特性支持的,可以试试好不好用: https://docs.vllm.ai/en/latest/quantization/auto_awq.html
    GPLer
        5
    GPLer  
       1 天前 via Android
    8x24GB 为什么不上 72B ,是要考虑多用户使用的情况吗。
    Livid
        6
    Livid  
    MOD
       1 天前   ❤️ 1
    fid
        7
    fid  
    OP
       1 天前
    @Leon6868 #3 离线环境无法远程:)
    感谢提供 LMdeploy (┌・ω・)┌✧
    fid
        8
    fid  
    OP
       1 天前
    @mmjy #4 好的,好像确实可以,就是配置麻烦,我对比一下
    fid
        9
    fid  
    OP
       1 天前
    @GPLer #5 用户数在 0-10 左右,不过确实可以上 72B ,我考虑下量化(服务器可能被用于跑其他深度学习,不好说)
    fid
        10
    fid  
    OP
       1 天前
    @Livid #6 等多来几台服务器试试集群(),目前环境较为封闭,可用设备只有一台 8x4090
    Azure99
        11
    Azure99  
       1 天前   ❤️ 1
    lmdeploy≈sglang>vllm ,个人偏好是这样
    Fanhz
        12
    Fanhz  
       1 天前
    可以试下 sglang
    mythabc
        13
    mythabc  
       1 天前   ❤️ 1
    1. 为什么单张可用 60%? 把其他任务都集中到 4 张显卡上,剩余 4 张用于跑 72b-awq 。多卡不建议超过 4 张,因为通信成本。
    2. vllm 支持量化模型的。生产上用的最多的就是 vllm ,然后是 sglang (但是个人体感 sglang 比 vllm 稳定一些,因为版本都在不断迭代,所以仅是时效性的使用感受)。ollama 基于 llama.cpp ,这个项目最初就是用于在资源有限环境把模型 offload 到内存里跑起来的,一般就是个人玩具使用。
    3. 喜欢一键的话,可以试一下 xinference ,有 docker 镜像,挺好用。
    4. web 方案其实是各种 web client + openai style api ,各个推理引擎以 openai style api 将接口提供出来,兼容各类应用。
    kenvix
        14
    kenvix  
       1 天前   ❤️ 2
    用 32B Q8 远不如 72B Q4 。参数量带来的提升远大于提升精度
    oldfans
        15
    oldfans  
       1 天前
    Ollama 是 llama.cpp 的一个前端。

    llama.cpp 支持多 GPU ,但不支持张量并行,单一并发同时只有一张卡在跑,多卡还有通信的开销,所以会比单卡还慢(前提是单卡的显存足够放模型)。

    vLLM 支持在多卡上推理量化模型。

    4-bit 的 Qwen2.5 72B 应该比未量化的 Qwen2.5 32B 要好。

    Qwen2.5 可以试试用同系列的小参数量模型做推测解码( Speculative decoding ),应该会快不少。
    DreamingCTW
        16
    DreamingCTW  
       1 天前
    我 8 张 3080 的跑 qwen2.5:72b-instruct-q8_0 都没问题呀
    DreamingCTW
        17
    DreamingCTW  
       1 天前
    @DreamingCTW #16 我用的就是 ollama+open_webui 的方案
    wantstark
        18
    wantstark  
       1 天前
    学习了几个月下来,ray server 或者 kuberay 蚂蚁字节都在用,万卡级别部署
    woscaizi
        19
    woscaizi  
       1 天前
    Les1ie
        20
    Les1ie  
       1 天前
    目前多卡用的 ollama+open_webui 的方案(以前用的 lobe-chat ,现在替换成了 open_webui )。
    使用的 ollama.com 提供的量化后的 qwen2.5 72b q4km ,针对常规的提示词工程的任务,对比询问了同样的问题,72b 相比于单卡就能带动的 qwen2.5 32b q4km 有明显的效果提升。不过多卡明显感觉有特别高的通信成本,远没有单卡响应速度快(显卡是几年前的,实际使用的 PCIe3 )。
    之前常用 qwen2.5 32b q4km ,最近几天切换成了 qwen 的 qwq:32b q4km 模型,感觉推理能力有稍微加强。(以上体验都是主观评价,没跑过 benchmark ,仅作参考)
    建议:
    1. 试试 qwen2.5 72b q4km ,内存占用大概 59GB ,体验提升明显,可能比精度带来的提升来的更快更直接
    2. 如果 8 张 4090 资源只能分出来一小部分使用,试试 qwq:32b
    3. 你这 8 张都能用上的话,可以试试 deepseek-v2.5:236b
    4. 如果本地化部署不是任务的必要条件,那么 chatgpt/claude 仍然是目前的最优解, 4o 免费的目前已经有自我反思能力,能够回答问题过程中发现错误打断自己重新回答,而这些我是在其他模型中没有体验到的
    fid
        21
    fid  
    OP
       1 天前
    @Azure99 #11
    @Fanhz #12
    感谢推荐 sglang !
    fid
        22
    fid  
    OP
       1 天前
    @mythabc #13
    1. 感谢建议,会着手解决
    2. ollama 感觉确实是玩具 hh
    3. 感谢推荐,我去了解一下
    4. 确实,感觉现成的 open_webui 就行,兼容 openai api
    fid
        23
    fid  
    OP
       1 天前
    @kenvix #14 多谢!这就去上 72B
    fid
        24
    fid  
    OP
       1 天前
    @oldfans #15
    ollama 确实不适合多卡。

    目前方案是 LMdeploy ,比 vllm 好

    我去用 72B 了哈哈

    还是大参数量好,充分利用 gpu
    fid
        25
    fid  
    OP
       1 天前
    @DreamingCTW #17 ollama 多卡不太行吧
    fid
        26
    fid  
    OP
       1 天前
    @woscaizi #19 好的,感谢推荐!
    fid
        27
    fid  
    OP
       1 天前
    @Les1ie #20
    1. q4km 量化多卡不太合适,目前尝试 72B awq 量化+LMdeploy ,参数级提升应该大于精度提升
    2. 我协调一下显卡使用,应该能合理分配,毕竟多卡通信存在速度损失
    3. qwen2.5 优于 deepseek 吧
    4. 本地部署必要,100%无法联网,4o 还是太成熟了
    fid
        28
    fid  
    OP
       1 天前
    @wantstark #18 我是一台机器多卡,暂时没有分布式条件,可能没有表述清楚
    liu731
        29
    liu731  
       1 天前
    礼貌请问 OP 内存( RAM )多大,学习下。
    fid
        30
    fid  
    OP
       1 天前
    @liu731 显卡内存 8x24g ,正文写了的
    DreamingCTW
        31
    DreamingCTW  
       1 天前
    @fid #25 还行吧,还得看你硬件的融合方案
    lixile
        32
    lixile  
       19 小时 14 分钟前
    一样的配置 近似版本的系统
    32B 对我来说 也几乎没办法使用 内网下还是太弱
    楼主 72B 部署成功的话 记得反馈一下方案 和实际效果 我就对照着部署一下
    kennylam777
        33
    kennylam777  
       15 小时 54 分钟前
    單機的話直接用 ExLlama2 呀, 量化有 2/3/4/5/6/8 bit, 簡單支援多卡, 自動或手動調整 VRAM 分配, 測試時用 text-generation-webui, 生產環境用 TabbyAPI 即可有 OpenAI compatible API, Concurrent inference with asyncio 能同時處理多個請求增加吞吐量。

    我就在用單機配兩張 3090 跑 Qwen2.5 32B 8bit 量化, 32K context window 全開也足夠了, 8 張 4090 應該能直接跑 72B 不量化吧, 但 PCIe 頻寬會有問題。
    kennylam777
        34
    kennylam777  
       15 小时 52 分钟前
    順帶一提, 我用單張 4090 已經能跑 Qwen2.5 72B 的 ExLlamav2 量化轉換程式(convert), 4/5/6bits 等等模型檔在本地隨便生成, Huggingface 上也有很多已經量化好的 exl2 模型
    fid
        35
    fid  
    OP
       1 小时 28 分钟前
    @lixile #32 8 卡同时跑大概每张卡占用 20-30%,占用率还是非常低的,使用的是 awq int4 ,使用体验很顺滑
    fid
        36
    fid  
    OP
       1 小时 27 分钟前
    @kennylam777 #33 目前方案是 8x4090+Qwen2.5-72B-Instruct-AWQ+lmdeploy ,体验良好,占用低
    fid
        37
    fid  
    OP
       1 小时 12 分钟前
    @fid #35

    @lixile #32
    更正,8x4090 单张 78-90%占用
    fid
        38
    fid  
    OP
       1 小时 0 分钟前
    @kennylam777
    @lixile
    可以查看最新 append
    fid
        39
    fid  
    OP
       48 分钟前
    @mythabc 4 卡应该不太够用,可以看看最新 append
    fid
        40
    fid  
    OP
       45 分钟前
    @Les1ie @mythabc @Leon6868 当前配置还有必要优化吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3564 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:44 · PVG 18:44 · LAX 02:44 · JFK 05:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.