社团分享用内容, 归档在此. LLM 迭代迅速, 可能很快就会过时, 请注意灵活使用搜索技能获取最新信息.
引言
在几年前, LLM 还没有横空出世时, 很多的小模型可以轻易的在各种设备上运行.
比如, 随手搓一个不到 1000 参数的 CNN, 在 MNIST 上训练只要一分钟, 在手写数字识别的任务上达到 94% 的准确率, 在现代显卡上, 无需费心优化就能跑到 10000+ 图片/秒的处理速率.
一共 786 个参数的超 mini CNN
现在你学会了使用 CNN, 只要把它加深加宽亿点点, 加大 16000 倍来到 13.5M 个参数, 你就能继续加强它的识别能力. 比如, 你可以用它来识别验证码.
纯属走个形式的验证码
这个验证码识别是我整的油猴插件 lyc8503/ddddocr_web, 使用了 ONNX Wasm, 直接在浏览器里进行识别. 使用很普通的笔记本 CPU 计算, 也能在 0.2s 内完成验证码的识别, 正确率在 95% 以上.
前 LLM 时代, 常用的 SOTA 级别的模型 (BERT/ResNet) 的尺寸也基本停留在 100M 以下.
LLM 时代
2022 年 11 月, OpenAI 推出了 ChatGPT 系列模型. GPT-3 又 scale 了 1000 倍, 达到了恐怖的 175B, 仅仅是权重就要占用 350 GB 的空间, 这无疑给本地部署带来了巨大的难题.
图来自 bbycroft.net/llm
为什么我们需要可本地部署的 open-weight LLM
- 透明与一致性
- 更低的成本及防止垄断
- 绕过在线内容审查 (“数据安全”)
- 可以进行 Finetune/Hack
如何三步把大象塞进冰箱里运行 LLM
- 找一套合适的硬件
- 下载模型权重文件
- 安装合适的推理框架并运行
Qwen3-Next-80B-A3B 本地部署, 46token/s
模型选择
每个模型发布的时候都是 SOTA, 到底选哪个呢, 我一般会参考赛博斗蛐蛐榜单: https://lmarena.ai/leaderboard
对于小众模型, 也可以在 HuggingFace 或者 r/LocalLLama 等论坛搜索, 一天就能出好几个新模型.
以模型推理时的激活参数区分, 模型可以被分为:
- 稠密模型
- MoE 模型
以模型是否有思考过程区分, 模型可以被分为:
- Thinking
- Instruct
- 混合
硬件选购
按经验对各个部分的重要度排序:
VRam (显存大小)
决定性因素, 显存不足的话模型需要 Offload 到内存甚至硬盘, 会成倍的影响速度
NVIDIA H100: 80GB
NVIDIA A100: 40GB/80GB
RTX 4090: 24GB显存带宽
巨大的模型本身需要高速访问所有参数才能高效计算
H100: ~2 TB/s
A100: ~1.5 TB/s
RTX 4090: ~1 TB/s
CPU DDR5: ~100 GB/s (PCIe 4.0 x16 ~32GB/s)计算力 (BF16/FP16)
H100 (BF16 Tensor): ~200 TFLOPS
A100 (BF16 Tensor): ~78 TFLOPS
RTX 4090 (FP16): ~83 TFLOPS
EPYC 9654: 理论估算 ~4TFLOP多显卡 (如有) 互联带宽
NVLink: 56GB/s
PCIe: 32GB/s, 延迟高CPU Offload 时 CPU 的 RAM 带宽/计算力
DDR5 >> DDR4, 多通道 >> 单通道SSD 读取速度
PCIe 4.0 x4: 7GB/s
如果你想要自己选购硬件, 可以尝试”捡垃圾” 2080ti/MI50/V100 等显卡.
框架选择及常用的优化手段
量化
模型通常在 FP16 精度下训练, 发布的权重文件也多为该精度. 推理时, 可以通过降低浮点数精度的方式大幅降低显存开销.
经验结论: Q6 (6-bit) 及以上的量化, 例如 Q7/FP8, 对模型最终效果无可感知的影响. Q5 影响轻微, Q4 影响较为明显, Q3 及以下完全可以认为是另一个模型.
Unsloth 会发布很多主流模型的量化模型.
CPU Offload
将模型的部分层放置在 CPU 上, CPU 与 GPU 一同计算.
对激活很稀疏的 MoE 模型有奇效.
推荐框架: llama.cpp
https://github.com/ggml-org/llama.cpp
优点: 为 CPU/GPU 混合推理优化, 为移动端优化, 非常主流, 得到了大量模型支持
缺点: 不支持张量并行, 对多 GPU 利用率差
推荐框架: fastllm
https://github.com/ztxz16/fastllm
优点: 国人制作, 兼容的硬件设备多样, 对 CPU/GPU 混合推理支持好, 做了一些独特的性能优化
缺点: 支持的模型相对少, 资料较少, 有时候有些 Bug
本文采用 CC BY-NC-SA 4.0 许可协议发布.
作者: lyc8503, 文章链接: https://blog.lyc8503.net/post/local-llm/
如果本文给你带来了帮助或让你觉得有趣, 可以考虑赞助我¬_¬