自从通义千问推出 Qwen3 系列大模型,人们的注意力一下子从 DeepSeek 上转移出不少。有一点遗憾是 235B 的参数量,不见得能达到或者超过 671B 的效果?
但这并不影响我的兴趣,因为我更关心私有部署,以及各种模型在硬件上的性能发挥。本次的 Qwen3 除了传统的 Dense(稠密)模型之外,还包含 2 个 MoE 专家激活模型——Qwen3-30B-A3B 和 Qwen3-235B-A22B。其实这并不是通义千问第一次发布 MoE 模型,在 Qwen2 时就有过一款 57B-A14B;不过应该说是从 DeepSeek 之后才吸引了人们对 MoE 更多的关注。
上图给出了选择不同模型的简单指导。235B-A22B(与 671B 相比)显存资源占用低,在同等硬件上性能更好;30B-A3B 的优点类似。
不过这只是一个基本建议,在我自己动手测试之前,也只能说是了解个大概。尽管本次测试也有一定的局限性,但我觉得还是能反映出一些东西,值得作为干货来分享给大家。
Qwen3 30B-A3B MoE 模型的惊艳性能表现
注 1:本次测试包含 2 种精度的模型,原则上尽量使用 Q4_K_M(INT4 量化精度);由于 30B 和 32B 参数量较大,受限于测试机 32GB 内存的配置,选择了 Q3_K_L 模型用于参考对比。
注 2:以上图表只是对比了相对性能,我并没有标出具体的 Token/s 数值,本文的目的更多是为了对比模型之间的区别。
我是用一台 32GB 内存、集成显卡的 AI PC 来测试的。在内存(含 iGPU 共享内存)带宽固定的情况下,我已经习惯了 iGPU 比 CPU Core 的 AI 算力表现更好。
另外一点规律:通常参数量越小的模型,在同样硬件上运行的速度就越快,反之亦然。就像我在《都说是 7B 大模型,为什么人家只用 CPU 就能吐字飞快...》中讨论过的,那个真正“飞快”的其实是 1.5B。上图中我一共测试了 5 款 Dense 模型:Qwen3 4B、8B、14B、32B,以及 DeepSeek R1 Distill Qwen 7B 蒸馏模型。它们的表现都是符合这两点规律的。
唯一有点特别的是,我之前很少看到有人在 32GB 内存的笔记本上跑 32B 模型。实际上 int4 量化之后用 CPU 可以跑起来,但问题是:1、速度难以接受;2、如果想用性能更好的 iGPU,系统内存+共享显存的开销容易超标。
由于我本次的测试机就是 32GB 内存,所以 Qwen3-30B-A3B 和 Qwen3-32B 模型选择了 Q3_K_L(3bit 量化)——其模型文件大小分别为 14B 的 1.61 和 1.92 倍。上面呈现出的传统 32B Dense 模型测试结果还是不理想,iGPU 模式下可能爆内存了,所以没比 CPU 快太多。
为了让 Qwen3-30B-A3B 在 iGPU 上能跑流畅些,我还用了另一个办法(稍后具体讲)。MoE 模型测试结果是振奋人心的。30B-A3B-Q3 跑出了跟 4B Q4 接近的性能;而且用 CPU 跑出的速度,也比 7B、8B 的 iGPU 模式要强。这符合 MoE 模型本身的特点:内存容量开销与传统 Dense 模型相同,但每次激活参数少,所以对算力的需求大幅降低。此时 CPU Core 与 iGPU 的差距就被拉近了。
LM Studio:AI PC 易上手的工具
本次测试我使用了 LM Studio,它与 Ollama 的底层都是 llama.cpp,Ollama 出现更早应该说也更成熟一些,不过后来者也有几点优势或者说特点,我简单总结如下:
- LM Studio 自带图形界面,这一点在 Windows 下使用方便多了;而 Ollama 只有命令行所以要搭配 Open Webui 这些。
- 官方提供适配 AI PC 的版本,比如想把 AMD 的 Radeon 集显用起来,从这里下载就好https://lmstudio.ai/ryzenai
- 可直接使用.gguf 格式的模型文件。Ollama 其实也支持,只是要先导入成自己的格式。
注:LM Studio 也是在一两天之内就开始支持 Qwen3 系列模型(能看出识别了 moe 等信息)。这里我踩过一个小小坑,提醒大家一下:网上有不少人分享同名的 Qwen3-XXXX.gguf 量化模型文件,最好是从https://huggingface.co/lmstud...或者https://www.modelscope.cn/org...下载,兼容LM Studio 更有保证。
在选择加载模型时,从这里可以看出模型的层数——比如 Qwen3 30B A3B 是 48 层,“GPU 卸载”一项可以选择其中多少层加载到 CPU/GPU。像我本次使用 AI PC,在大多数情况下若想跑得快些,应该拉到最右边。如果该拉杆不能操作,可能与下面的设置有关:
如上图,当“配置运行环境”选择 Vulkan llama.cpp (Windows)之后,就可以使用 AMD AI PC 集成的 Radeon 显卡来处理大模型了。
注:当前 LM Studio 还不支持 GPU+NPU 混合加速,期待将来会有吧。
以上为文本生成测试过程中的截图
测试硬件 & iGPU 共享内存容量调节
以上是我本次测试的 AI PC 笔记本配置。
- 机型:Dell Pro 14 Plus PB14255(相当于以前的 Latitude 商用笔记本 5000 系列)
- CPU:AMD Ryzen AI 7 PRO 350
- 集成显卡:AMD Radeon 860M
- 内存:32GB LPDDR5 8000MT/s,双通道(或称 4x32bit),实际工作频率 7500MT/s
- NVMe SSD:1TB
上图可以看到 AMD 集显的一点不同之处——默认设置下,具备 4xx MB(或称 0.5GB)的专用显存,再加上最多可以共享一半的系统内存,约 32/2=16GB。
这个“可变显示卡内存”有两种修改方式,一种是上图中的 3 档调节;或者下图中更多的容量选项。
为了更清晰些我还是整理个表格:
按照这个算法,我在《DeepSeek 能否引领 AI PC 发展趋势?(技术篇)》提到的高端 CPU——AMD Ryzen™ AI MAX+ 395,如果配置 128GB 内存,将“固定显存”设置为 64GB,其“固定+可共享显存”就应该达到了 96GB。
本次在用 iGPU 测试 Qwen3 30B-A3B、32B 模型时,我是将“可变显示卡内存”设置为“High”——即分配 16 GB 的“专用 GPU 内存”。具体测试 32B 模型时的截图如下:
“专用 GPU 内存”+“共享 GPU 内存”这种驱动上的设计,我觉得是为了适应微软 Windows 对集显内存共享的策略。在考虑全局内存开销时,我们可以看左边“23.8 GB” 的 GPU 总体内存占用了多少,再加上系统内存的开销——这两项最好都不要太贴近上限,否则会爆内存或者影响性能。
我在本次测试中用 32GB 内存 AI PC 的 iGPU 跑了 30B、32B Q3_K_L 大模型。在此基础上有长上下文需求的应用,一种传统做法是增加内存容量到 64GB;或者考虑 KV Cache 压缩/卸载到 SSD 的新技术。另外,大多数生产环境不建议低于 Q4_K_M 精度,一些情况下可能会考虑高效的动态量化模型。
小结
按照行业共识,MoE 专家模型更适合 AI 对话;RAG 知识库等还是用传统 Dense 模型比较好。这一次 Qwen3 30B-A3B 无疑是对端侧算力需求的大幅降低,期待有更好的应用出现。
上图是我在 AMD 文档《WHAT INFRASTRUCTURE WORKS BEST FOR INFERENCE?》中看到过的,高核数服务器 CPU 也可以适用于一些不超过 20B 参数的 Transformers/LLM 应用。
本次我测试的笔记本 CPU,是 4x Zen5 + 4x Zen5c 一共 8 核,22-25W 功耗释放。从另一个角度来看,如果换成 EPYC 服务器,算力和内存带宽还能提高许多,如果跑 Qwen3 30B-A3B 这样的模型应该可以有更高的性能和并发支持表现。
扩展阅读:《DeepSeek-671B 纯 CPU 部署:配置选型、性能测试与量化对比》
《DeepSeek-R1 671B 最小化部署实验:CPU+192GB 内存》(https://mp.weixin.qq.com/s/8C...)
END
作者:唐僧 huangliang
原文:企业存储技术
推荐阅读
欢迎关注企业存储技术极术专栏,欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。