多机异构显卡组合推理

7 月 1 日
 NorthGod

做了个项目,代码还在改,发出来是想听听各位的看法。

项目作用

我手头有几张不同型号的显卡,平时大部分时间都是闲着。想跑大模型,结果单张显存放不下,就想着能不能把它们拼起来用。

项目叫 织云 Loom,做的事情不复杂:就是把几张显卡在内网里连起来,变成一台机器跑大模型,对外接口兼容 OpenAI 的格式。如果某张卡突然挂了,服务也不会断。

仓库: https://gitee.com/NorthGod_BFDG/LoomNode

与其它项目的区别

我没在跟 vLLM 比。vLLM 解决的是确定硬件上怎么把模型跑快,做得很好,我们也经常看它的代码。和我想解决的问题不太一样:几张型号不同的卡,可能随时掉线,这种情况下怎么稳定把服务撑住。关注点不同,不冲突。

踩过的坑

一开始我是想做公网的。想法挺简单,把不同地方的卡凑一起用。跨省推理我确实跑通过,当时觉得这事有戏。

后来才发现不行。

公网上跨省的延迟是物理层面的,代码怎么都消不掉。这个延迟到了推理流水线里会被放大,我连着改了好几个晚上,能试的优化都试了,没用。最后认了,公网这条线整个砍掉,回到内网。

这个决定当时很难,但现在回头看是对的。

Token 生成速度

数字是我自己测的,不同阶段跑的,不是统一基准,各位看个大概就行:

现在能用吗

还不能。源码没发,文档先公开了。发这个帖子就是想问问:你们觉得这东西有用吗?在你的场景下,最需要它解决什么问题?

请给我讲讲大家的需求,或者纯粹的评价一下项目——好话坏话都直说。我会认真考虑大家的问题的。


如果这个方向你踩过坑、或者刚好也在折腾类似的玩意—— 评论区说说你现在是怎么处理的,我都会认真回。

2074 次点击
所在节点    Local LLM
24 条回复
NorthGod
7 月 14 日
@xziar 我不公布性能数据的原因就是,就算是按照极其离谱的比例(比如 10:1 )分割模型,4060lp 仍然占用率 100%,5090 堪堪 10%。同样的模型我能做到和 vllm 一个速度,而到了 PP 这种数据显然是硬件的原因。

受限于目前没钱的条件,我无法得出准确的性能答复。不过,我的调优思路是埋点看耗时,只能说尽量模拟真实情况吧。

至于您说的网络栈开销、项目具体细节、甚至是有没有亲自测过,我无法回答这个自证陷阱。我只能说的是,本人刚进行完期末考试,继续做完专利和软著的申报,就可以发布源代码了。到时候欢迎到仓库指点任何问题,我对于 AI 写的这一坨代码是有心理预期的——它现在只是能跑而已。
NorthGod
7 月 14 日
@Soulxe2v 谢谢你看了仓库。

md 文档是由 AI 写的不错,但是这也并不影响你理解项目对吧。

至于 python 串行锁、go 嵌套这两个问题我是清楚的,只是当时为了测试到底能慢多少所以才这样子做的。至于分布式的 BUG ,我认为单机几乎可以完全复现,多机联调费时费力,况且我还没有好用的成套设备。但是这并不代表我没有进行过真的多机测试,我完全不理解你的疑问从何而来。

首先,我承认我只是一个学生,没有导师也没有任何人教我,AI 和网页是我获取知识的唯一途径,我也是边做边学。我的项目有且肯定有很多低级的、看了让人招笑的 BUG ,这些问题如果可以还请你在我开源后一一指出,我都会进行修改。但是,我只欢迎理性、关于技术向的讨论,我也相信这是 V2EX 论坛的意义。如果你只是想纯粹的情感输出,我是不会进行回复的。
coefu
7 月 14 日
@NorthGod 有决心有信心就好好搞,希望你能成功。我目前重心不在这块,等我有余力了再给你助力。加油,fighting !!
Soulxe2v
7 月 14 日
@NorthGod

1 、我先说我之前提出的问题。
1 )“单机可以复现分布式的 bug”,这本身就很荒谬。你可以说你刚开始写的时候不需要一定要在多机跑,但是你都要明确修一个属于是分布式的 bug 了还不需要多机跑,那真的有点说不过去。你修 bug 不需要尽量原环境下复现,然后打日志,再根据日志修的吗?
要么就是你跑的模型根本不需要多机,单机就能完美甚至多开几个来运行,那你分布式的目的是什么?只是为了热备就没有必要做成这样,大可以所有节点都跑同一个模型,节点看情况上下线,然后写一个请求的路由,哪个节点在线,就跑在哪个上面就得了。
要么就是根本就没跑模型,只是 AI 让你感觉自己跑了,那更离谱了,连实测都不算,根本就是在臆想。
还是说你修 bug 就是跟 AI 说出了什么问题,让 AI 猜多几遍?
2 )学生身份不是万能金牌,没人教你那就老老实实看一楼给你推荐的书,光靠 AI 和网页只会害了你,AI 是能编出来看起来合理但实际上不通的结果,网页也能找到许多错误的内容。就目前我对这个项目和这个帖子的理解,你完全就是跟 cc 说要做我要做一个什么什么项目,然后 AI 给你梳理出框架之后,你也不知道框架对不对,就让 AI 硬跑,出了问题就让 AI 硬修,最终得出了这一个全靠 AI 的项目,但是自己都不知道里面写了些什么。
3 )你的代码行数注水的简直离谱,文档里的原文“核心代码量 八万余行(控制面 Go + 推理引擎 Python 的生产代码;连测试与桌面客户端计逾 14 万行)”。我原本也对代码行数没什么概念,但是当我拉下来 llamacpp 、vllm 两个同类型流行项目用"git ls-files | xargs wc -l"统计了一下总行数后,我就知道你这代码量简直扯的离谱,llamacpp 项目总行数 191615 ,vllm 项目总行数 117300 ,你的意思是你一个人凭借 AI 用两个月时间就做出来了能对标两三千人社区做了三年的成果的项目吗。

2 、我提出对 #19 的质疑:
1 )首先你不是只有 4 张卡吗,为什么能得出 PP=8 的时候 RTT≈4ms ?又是 AI 帮你编的吧。其次多机 PP 慢的原因不只是因为 RTT ,模型在单张卡上的 prefill 过程是不用时间吗?下一张卡的 prefill 过程不用时间吗?更别说你还是混用不同算力的卡。PP 只有在最后一张卡 prefill 完了才会出首个 token ,请问你为什么会得出卡越多但是却几乎不增加首 token 延迟?你自己难道不清楚 PP 是什么东西吗?
2 )我不用 vllm ,但就我自己用 llamacpp 实测来看,qwen3 30bA3b 这个模型上下文只能到 32768 ,开不了 131072 ,除非用其他技术手段硬开,当然你也可以说你用的 30b 不是这个,只是我也不知道你还能用哪个 30b 了。
3 )“30B-int8 塞进单卡是能塞“,我就想问了,你知道 qwen3 30bA3b int8 的模型有多大吗,31.98G 的大小怎么塞进 5090 ?还跑上并发了?这个时候就不考虑 prefill 时间会爆炸了?当然你也可以说你用的 30b 不是这个,只是我也不知道你还能用哪个 30b 了。
4 ) DeepSeek V4 有两种,一个是 flash 一个是 pro ,flash 是 284bA13b ,pro 是 1.6tA49b ,就算 pro 部署不了,你也应该把目标放在尽可能部署出一个 flash 版上,否则做 PP 的意义何在呢。
5 )“( 2026 生产部署 ~80% 高频任务中小模型就够,成本差 10-30 倍)”。谁给你的数据?中小模型是有多小?是你文档里写的 Qwen3-8B 还是 Qwen3-0.6B ?你真用过这两个模型吗,一个虽然智商不足还算勉强能用,另一个根本就是幻觉严重不微调完全没法用,谁会在生产环境部署这些模型?如果没有私密性需求,用这种模型真不如直接调官方 api 或者中转站。

3 、我提出对 #20 的质疑:
”而且我们自己会写的引擎吐出的文字并没有任何奇怪的说话方式或者行为等等“。希望你自己再次看完这句话没有笑出声来,这还是中文吗? AI 生成就算了,你就不能多跑几次选个通顺点的吗?

4 、我提出对 #21 的质疑:
1 )文档里不是说”按算力分配工作量“吗,4060laptop 和 5090 之间各种标称性能都差了接近十倍,laptop 版还会受各厂商的温度墙、功耗墙限制,差距只会拉的更大,出现 1:10 的模型层分割比例很离谱吗?你不会连这两张卡的参数都不知道吧。
2 )什么叫作”受限于目前没钱的条件,无法得出准确的性能答复“? 5070 还回去了,那你不是还有 4060lp 、v100 、5090 吗,我就当你 v100 也不是你自己的,那你 4060lp 和 5090 两张卡也能跑啊。调优不用实际跑的话术都来了,你不实际跑你怎么知道瓶颈在哪,是卡与卡之间算力差太多还是卡与卡之间显存速度差太多,或者是其他的各方面的因素,你总得把实验做了才能得出结果吧。
3 )人家让你回答网络栈开销怎么解决、项目细节是什么、是不是真测了,又说是自证陷阱。那你自己也得有点可信度啊,AI 发贴、AI 回复,我都怀疑项目本身是不是也全是 AI 帮你建、AI 帮你写、AI 装模做样帮你测试、最后 AI 帮你提交。

这次给大家回复倒是学会删 markdown 格式了,但是莫名其妙的比喻加上没必要的解释括号,你如果还是只会用 ai 写回复,你的项目可信度只会继续大大降低。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1224128

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX