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

使用 llama3:70b 本地化部署, 100 人左右的并发,大概需要多少块 4090 才能满足?

  •  
  •   leeum · 76 天前 · 7069 次点击
    这是一个创建于 76 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有没有实操过本地化部署开源 llm 的老哥?这个需要大概多少的算力?

    52 条回复    2024-07-09 15:12:38 +08:00
    timeance
        1
    timeance  
       76 天前
    你先测一下大概每秒有多少 token ,然后换算一下就大概知道了
    hi2hi
        2
    hi2hi  
       76 天前
    这,为什么还想着用 4090 呢?找论坛看看,用专业卡跑
    levn
        3
    levn  
       76 天前
    云 gpu 服务器租一天测试一下不就知道了
    kenvix
        4
    kenvix  
       76 天前
    根据我用 VLLM 部署的结论,4090 的显存不够用
    herozzm
        5
    herozzm  
       76 天前
    最少 2 块 4090 能基本跑起来,如果是 100 并发,就不太清楚了
    murmur
        6
    murmur  
       76 天前
    如果没有精挑的必要,建议一个公司租几个 gpt4 或者文心一言,使用成本和部署难度比自己 llama 简单太多
    herozzm
        7
    herozzm  
       75 天前
    @murmur 本地模型远比 api 省钱
    iOCZS
        8
    iOCZS  
       75 天前
    100 并发。。。人很多啊
    t41372
        9
    t41372  
       75 天前 via Android
    有那种 host 像 llama3 70b 这种开源模型的 serverless api 接口,比 open AI 的要便宜很多,速度也会比自己部署一台要快很多。我知道 groq 上面 llama3 70b 的价格是差不多每一百万个 token 0.5 刀左右的样子,不知道会不会比自部署便宜。
    我记得像是 ollama 这种好象是还不支持并发的,所以很多人同时用体验可能不会太好。
    echoless
        10
    echoless  
       75 天前 via Android
    ollama 下个版本才支持并发
    lovestudykid
        11
    lovestudykid  
       75 天前
    自建的话要保证并发,可能有很长闲置时间
    tap91624
        12
    tap91624  
       75 天前
    4090 没 nvlink 多卡会比单卡慢的
    GeekGao
        13
    GeekGao  
       75 天前
    4090 跑 70B 的模型非常吃力,直接上 A100 吧
    msn1983aa
        14
    msn1983aa  
       75 天前
    挑战老黄的刀法? a100 上起才行
    whileFalse
        15
    whileFalse  
       75 天前
    确认是有 100 并发,还是你们有 100 个要使用的人?
    gaobh
        16
    gaobh  
       75 天前 via iPhone
    你去换算,1 秒多少人用,大概要出多少 token ,看一下
    winglight2016
        17
    winglight2016  
       75 天前
    30G 的 llm ,显存至少 40g 吧。lz 说清楚到底是 100 个用户,还是 100 个并发,如果是后者,为什么不用 gpt-4 ?毕竟,这并发量私有加自建投资太大,lz 提到 4090 ,大概率没什么 AI 经验,还是上云靠谱。
    lizhisty
        18
    lizhisty  
       75 天前
    @echoless 下个版本啥时候发布啊
    lizhisty
        19
    lizhisty  
       75 天前
    @lovestudykid 闲置时间是什么意思
    lizhisty
        20
    lizhisty  
       75 天前
    @winglight2016 大哥,100 个并发是不是就吃力了,1 张 A100 能支持 70b 的一秒 10w token 吗
    proxyai
        21
    proxyai  
       75 天前
    @t41372 groq 还没有收费吧
    lovestudykid
        22
    lovestudykid  
       75 天前
    @lizhisty #17 峰值 100 人的话,平均人数可能远远不到啊,其他硬件也就算了,显卡这么贵,闲置一分钟都是钱。
    winglight2016
        23
    winglight2016  
       75 天前
    @lizhisty 没试过 70b 呀,支持是一回事儿,多久能响应是另一回事儿。云上开一个 GPU 服务器试试不就知道了?

    我用 ollama 在 cpu 上跑 8b ,也不是不能用,至少比 llama2 快多了
    nathandoge
        24
    nathandoge  
       75 天前
    显存太低,别折腾了,上 h100
    fionasit007
        25
    fionasit007  
       75 天前
    100 并发对于本地化部署的 llm 是相当大的压力了,先不说计算 token 之类的,怎么也得几十张才能满足吧,成本太高了
    lizhisty
        26
    lizhisty  
       75 天前
    @fionasit007 为啥 100 并发就压力大,一个问题也是计算,100 个也是计算啊
    chanChristin
        27
    chanChristin  
       75 天前
    @lizhisty #18 下班之后的时间没人用。
    jfcherng
        28
    jfcherng  
       75 天前
    @lizhisty #26 ... 按你這麼說,那無限並發也沒什麼壓力
    locoz
        29
    locoz  
       75 天前 via Android
    @lizhisty #22 每个计算都是独立的,又不是一个算好了其他 99 个就都好了。假设处理一个请求需要一张显卡满载运算,那一百个并发请求就得要一百张显卡,压力当然大…
    zjhzxhz
        30
    zjhzxhz  
       75 天前
    我觉得 4090 挺好,速度也不错。让上 A100 的给大家看一下成本再说话。

    fnd
        31
    fnd  
       75 天前
    上面说的都太业余了,说点实际的。

    首先,100 个人用≠100 并发,要结合你的业务场景去评估实际需要支持多少并发。比如:每个人是时时刻刻一直用?还是 5%的时间段在用?重合度多少?峰值可能是多少?
    其次,现在并发数的成本很高,并不是一定要支持峰值的并发。当前业内通用的做法是只支持特定的并发,然后做一个队列进行并发控制。如果并发满了一定数量内的先队列等待,等待队列也满了就提示并发数超限稍后再试之类的。
    然后,4090 就先不说并发了,70b 的模型都不一定能跑起来,可能得上 A100 。

    实际并发数的计算得看单卡每秒 tokens ,然后根据业务场景预估单次请求可能的 tokens 大小,计算得到单卡并发。
    robbaa
        32
    robbaa  
       75 天前   ❤️ 2
    给你个参考:
    环境:双 3090 + nvlink + docker
    命令:ollama run llama3:70b --verbose
    刚刚好可以塞下。

    ollama-1 | ggml_cuda_init: found 2 CUDA devices:
    ollama-1 | Device 0: NVIDIA GeForce RTX 3090, compute capability 8.6, VMM: yes
    ollama-1 | Device 1: NVIDIA GeForce RTX 3090, compute capability 8.6, VMM: yes
    ollama-1 | llm_load_tensors: ggml ctx size = 0.83 MiB
    ollama-1 | llm_load_tensors: offloading 80 repeating layers to GPU
    ollama-1 | llm_load_tensors: offloading non-repeating layers to GPU
    ollama-1 | llm_load_tensors: offloaded 81/81 layers to GPU
    ollama-1 | llm_load_tensors: CPU buffer size = 563.62 MiB
    ollama-1 | llm_load_tensors: CUDA0 buffer size = 18821.56 MiB
    ollama-1 | llm_load_tensors: CUDA1 buffer size = 18725.42 MiB


    测试三次结果:

    total duration: 25.820168178s
    load duration: 1.436783ms
    prompt eval count: 14 token(s)
    prompt eval duration: 483.796ms
    prompt eval rate: 28.94 tokens/s
    eval count: 448 token(s)
    eval duration: 25.203697s
    eval rate: 17.78 tokens/s


    total duration: 30.486672187s
    load duration: 1.454596ms
    prompt eval count: 479 token(s)
    prompt eval duration: 2.025687s
    prompt eval rate: 236.46 tokens/s
    eval count: 496 token(s)
    eval duration: 28.322837s
    eval rate: 17.51 tokens/s


    total duration: 21.176605423s
    load duration: 2.629646ms
    prompt eval count: 529 token(s)
    prompt eval duration: 2.325535s
    prompt eval rate: 227.47 tokens/s
    eval count: 324 token(s)
    eval duration: 18.622355s
    eval rate: 17.40 tokens/s
    ispinfx
        33
    ispinfx  
       75 天前
    @robbaa QPS 呢
    thorneLiu
        34
    thorneLiu  
       75 天前 via Android
    多卡 A30
    proxychains
        35
    proxychains  
       75 天前
    @lizhisty #19 晚上没人用, 但仍要开机. 期间的资源就是闲置浪费了.
    TerranceL
        36
    TerranceL  
       75 天前
    推荐一下我司产品,目前性价比可能比较高,由服务器也有小型工作站解决方案 aW5mb0BoZXhhZmxha2UuYWk=
    whusnoopy
        37
    whusnoopy  
       75 天前
    在 m3max 64G 的 MacBook Pro 上跑着玩过,速度有点慢,但也还能用,大概吃掉 40G+ 内存
    llama3:8b 的模型跑起来就挺快的
    cuteguy
        38
    cuteguy  
       75 天前
    @whusnoopy 这样是 ultra 192G 是不是能快不少?
    whusnoopy
        39
    whusnoopy  
       75 天前
    @cuteguy 没在 M2 Ultra 192G 上试过,不过可能差异不会那么大?因为

    1. 内存大小只要能把模型加载上,额外的内存容量对处理速度并没有啥帮助
    2. 内存速度上,M3 Max 满血版的内存带宽是 400GB/s ,残血版是 300GB/s ,64G 的 M3 Max 已经是满血版了
    3. M3 还没出 Ultra ,看评测,M3 Max 的单核比 M2 Ultra 还略强一点,多核是要弱,但可能没差那么多?
    mscsky
        40
    mscsky  
       75 天前
    上面没人说量化?用 q4 量化非常快
    jwangkun
        41
    jwangkun  
       74 天前
    目前我用的 Quadro RTX 8000 ,并发没测过,不知道怎么压测
    BQsummer
        42
    BQsummer  
       74 天前
    1. llama3 70b 需要 142G 显存,4090 是 24G 显存,不量化得 6 张卡,https://llm.extractum.io/list/?query=llama3 ,可以在这个网站查下大概的显存占用,8bit 量化也要 75G ,4bit 量化 40G ,4090 不合适。31L 的 llama3:70b 是“quantization
    4-bit”的: https://ollama.com/library/llama3:70b
    2. 显存不是重点,重点是推理速度,取决于模型、显卡、还有部署模型的服务,比如 vllm ,都会做推理优化,而且推理速度和并发不是成线性反比的,所以实际的推理速度真的只有在跑下来才知道
    3. 主流生产环境部署还是 vllm 多一点,我有在 reddit 看到吐槽 ollama 并发下卡死的,虽然我也用 ollama 测试一些模型,用起来是真方便
    snuglove
        43
    snuglove  
       74 天前
    到底是内存跑的 还是显存跑的啊 我现在用的内存跑的很好啊
    robbaa
        44
    robbaa  
       74 天前
    @ispinfx ollama 目前是单线程模型。
    ab 工具测试 10 并发 10 请求,耗时 312 秒, 没有并发可言
    robbaa
        45
    robbaa  
       74 天前
    ab -c 10 -n 10 -p ./testchat.json -T "application/json" -H 'Content-Type: application/json' http://localhost:11434/api/chat

    testchat.json 中内容
    ```
    {
    "model": "llama3:70b",
    "stream": true,
    "frequency_penalty": 0,
    "presence_penalty": 0,
    "temperature": 0.6,
    "top_p": 1,
    "messages": [
    {
    "content": "安排一个南京的 2 天的旅游攻略,用中文回答",
    "role": "user"
    }
    ]
    }
    ```
    imFu
        46
    imFu  
       74 天前
    @robbaa 哥们有啥能够支持并发的推理框架推荐的吗?
    leeum
        47
    leeum  
    OP
       74 天前 via iPad
    robbaa
        48
    robbaa  
       73 天前
    @leeum 测试版还是有问题,结果不理想。

    70b
    单次请求:17~20s
    并行 4 ,4 个请求,4 个成功,平均 30s
    并行 6 ,6 个请求,6 个成功,平均 33s
    并行 8 ,8 个请求,8 个成功,平均 41s
    并行 9 ,9 个请求,9 个成功,平均 130s (确实如此)
    并行 10 ,10 个请求,10 个成功,平均 142s
    并行 11 ,11 个请求,11 个成功,平均 150s

    8b
    并行 8 ,8 个请求,8 个成功,平均 14s
    并行 9 ,9 个请求,6 个成功,平均 25s
    并行 10 ,10 个请求,10 个成功,平均 32s
    并行 11 ,11 个请求,11 个成功,平均 34s
    并行 12 ,返回异常

    测试多了,还会出现“话痨”现象。正常回复在 40k 左右,“话痨”状态在 380k 以上

    ======

    @imFu 我初学状态
    joetao123
        49
    joetao123  
       56 天前
    2 个 A6000 Ada 或者 4 张 4090 的图形工作站是否可以跑 qwen:72b 的推理?如果是微调的话,需要多少资源?哪位大神能给点建议。
    wsbqdyhm
        50
    wsbqdyhm  
       53 天前
    @fnd 我用 m1 max 64g 部署了 llama3:70b ,感觉还可以,会比 chagtp3.5 稍慢,特别是第一次问问题的时候
    g0147456g
        51
    g0147456g  
       15 天前
    4090 估计是完全不行。4bit 量化下仍然需要 40+GB 的显存,而 4090 不支持 nvlink ,难以多卡并行
    keakon
        52
    keakon  
       4 天前
    双 4090 用 vllm 部署 qwen2:72b-int4 ,最低大概要 42GB 显存。占满 48GB 显存的情况下,32 并发下大概每秒 300 tokens 。
    用 ollama 部署,大概要 40GB 显存。2 并发大概每秒 30 tokens ,再增加并发性能反而下降。
    但是具体到单个请求,只有 15 tokens/s 的样子,大概是 gpt-4o 的 1/4 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2427 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 03:48 · PVG 11:48 · LAX 20:48 · JFK 23:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.