想用手头的硬件最低成本尝试下本地 LLM 推理,请教一下方案

237 天前
 avalox
非 AI 专业,为了不掉队跑着玩的,所以目的是利用手头硬件最低成本折腾一下

手上有两台 PC ,配置如下:
1. 5600x + 华硕 b550M 重炮手 + 华硕 3070 dual
2. q0pv(13900T ES) + 精粤 b760i + 丐图师双风扇 4060ti 16G
第一台 21 年组来打上网游戏的,第二台原本是组来折腾玩异地组网+虚拟化+串流+SD 跑图的二奶机。D4 内存之前便宜的时候屯了不少,有需要就可以插满

现在的问题是,尝试跑大一点的 LLM 显存不够,速度稍慢一点倒无所谓。了解到这玩意可以多卡推理,然后 PC1 的重炮手刚好有两个 x16 槽。另查了一下苏妈也很慷慨,B 系板子支持拆通道插双卡。刚好手上这两张卡 PC1 的机箱应该装得下,3070 是 2.75 槽,4060ti 是 2 槽

那这样双卡合计 24G 显存跑更大一点的 LLM 的推理似乎可行?好像多卡推理是不需要 nvlink 的。目前主要是不清楚不对称的显存跑起来会不会有问题。如果不行,会考虑 3070 扩 16G ,毕竟两张卡性能接近,应该不存在性能拖累的情况

另外纯 CPU 跑个量化的 7B 模型是否可行? q0pv 毕竟这么多核。尝试了下推理回复需要几分钟,体感基本不可用,不清楚是不可行还是设置有问题。看 github 上有人能跑来着,阿里云也有志强可以运行 LLM 速度达到 5 token/s 的广告。如果家用 CPU 完全不可行就不折腾了
2265 次点击
所在节点    程序员
15 条回复
kwater
237 天前
看了一堆以为你要训练,

最后一段看明白是想要个本地部署对话。

lmstudio
ollama

都蛮好,后者 gpu 支持更好 amd @windows 也可以
全部跨平台兼容
dbg
237 天前
7B 模型能力实在有限。最起码要 14B 的模型,才能做一些翻译类的基础工作。
Vanderick
237 天前
直接 ollama
lichdkimba
237 天前
@dbg 14B 的话,最差也要用个啥显卡呢
avalox
237 天前
@kwater 感谢回复。等哪天想尝试训练就不指望这两张卡了,会老实去租服务器的
dbg
237 天前
@lichdkimba 14B 模型,至少需要 16G 显存的显卡。你可以看看 Ollama 的文档,有这方面的介绍的。
mkroen
237 天前
可以试试 Qwen1.5-7B-Chat 阿里的千问模型,P40 24g 显存占用 15 个 g ,效果还能接受,也比较快。16g 显存应该够用了吧,不够再试试量化
GeekGao
237 天前
绝大多数模型 7b 就是个废物,推理能力明显不行,用这道题测: 100mbps 相当于多少 MB/s ?
答案有惊喜,哈哈哈
GeekGao
237 天前
所以,比 3090 弱的单卡,就不要玩了,没啥意义
rus4db
237 天前
1 )参数量是主要矛盾,越多越好。
2 )不必担心量化,量化掉点有限。
3 )实用模型,参数量不可低于 13~14B ,以 72B 量级为佳。
4 )显存是主要矛盾,越多越好。
5 ) 2080ti 魔改 22GiB 显存,性价比较高。
6 )多卡 AI 服务器平台,性价比较高,但要考虑环境和电费开销问题。
kwater
237 天前
@GeekGao
gemma 2b

100 Mbps 相当于 **125 MB/s**。
dyllen
236 天前
@GeekGao 我用百度的 chat 试了下,还不错,挺准的,还有解释:

```
我们要找出 100mbps 对应的下载速度是多少 MB/s 。
首先,我们需要了解 Mbps 和 MB/s 之间的转换关系。

Mbps (兆比特每秒)和 MB/s (兆字节每秒)之间的关系可以用以下的数学公式表示:
1 MB/s = 8 Mbps
这个公式告诉我们怎样把 Mbps 转化成 MB/s 。

因此,要将 100 Mbps 转化为 MB/s ,我们只需将 100 除以 8 。
计算结果为:下载速度是 12.5 MB/s 。
所以,100mbps 对应的下载速度是 12.5 MB/s 。
```
GeekGao
236 天前
@kwater 你反复试试? 我这里测 Gemma 7B 返回的结果也不对
kwater
236 天前
@GeekGao

看来默认的 cli 不是很好用,ollama api 才工作正常,
即便去掉 temperature 、seed ,也是有正确结论的。

curl -v http://localhost:11434/api/generate -d "{ \"model\": \"gemma:7b\", \"prompt\": \"100mbps 相当于多少 MB/s ?\", \"options\": { \"seed\": -1, \"temperature\": 1 },\"stream\": false }"


100mbps 等于 12.5 MB/s 。
100mbps 等于 100000 比特每秒,也就是 12.5 MB/s 。
GeekGao
236 天前
@kwater 我知道什么原因了: 我用的是 google/gemma-7b-it (也就是 gemma:7b-instruct ) ,你用的是 google/gemma-7b ( Base model )吧

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

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

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

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

© 2021 V2EX