AI Pulse

Qwen3.8-27B在RTX 5060 Ti 16GB上的测试:IQ4 vs Q8,64K上下文,MTP,视觉与代理基准

Qwen3.8-27B在RTX 5060 Ti 16GB上的测试:IQ4 vs Q8,64K上下文,MTP,视觉与代理基准

我一直在测试Qwen3.8-27B,作为我目前在RTX 5060 Ti 16GB上运行的Qwen3.5-9B的潜在替代品。目标不仅仅是最大令牌数/秒,而是在单块16GB GPU上实现实用的上下文容量、可靠的工具调用、多轮行为以及视觉能力,以实现真正的代理使用。它并不完美,但我已经使用了几天,结果非常令人期待。我的应用程序还需要视觉能力,而这也会占用显存,因此也包含在测试中。Unsloth UD3是进行测试的催化剂——看起来很有希望,因为他们声称在相同量化级别下质量更高。其余内容由LLM生成并手动编辑,所以如果有人说是垃圾,我接受😄 我可不会坐在那里打所有字😄 机器(运行Ubuntu)有64GB内存,但这关系不大,因为目标是几乎完全使用GPU。我希望这对社区的一些人有所帮助。

测试系统

* GPU: RTX 5060 Ti 16GB
* 运行时: llama.cpp build 10520
* 启用Flash Attention
* 尽可能完全GPU卸载
* 单槽,无并发
* Q4_0 KV缓存
* 比较的模型:
* jpetrina Qwen3.8-27B IQ4_XS-pure
* Unsloth Qwen3.8-27B UD-IQ4_XS
* Unsloth Q8_0作为短上下文质量基线
* Qwen3.5-9B NVFP4作为现有模型

性能与显存

配置上下文视觉空闲显存短上下文生成
jpetrina IQ4_XS-pure, MTP-164K15,188 MiB46.9 tok/s
Unsloth UD-IQ4_XS, 无MTP32K13,764 MiB27.4 tok/s
Unsloth UD-IQ4_XS, MTP-164K14,918 MiB45.6 tok/s
Unsloth UD-IQ4_XS, MTP-164KF16 mmproj15,680 MiB45.4 tok/s

Unsloth主GGUF已经包含MTP张量。加载单独的MTP GGUF是不必要的,并且额外消耗了大约768 MiB。

在填充约55K令牌的上下文时,Unsloth模型实现了:

* 提示处理:738.7 tok/s
* 预填充后生成:31.3 tok/s

这使得64K对于交互式自主代理是可用的,尽管性能会随着KV缓存填充而自然下降。

视觉

F16视觉投影器工作正常,包括对报纸图像进行OCR式读取。1,024个图像令牌分配对于该测试是足够的。

然而,64K上下文加上MTP加上F16投影器只留下136–208 MiB的空闲显存。因此,我会使用单独的配置文件:

* 文本代理:64K上下文,MTP-1
* 视觉:较小的上下文,按需加载

试图同时保持最大文本上下文、MTP和GPU视觉加载,对于16GB限制来说过于接近舒适操作范围。

量化保真度

我使用16个WikiText-2样本(512令牌上下文)比较了两种IQ4变体与保存的Q8 logits。

量化困惑度与Q8的均值KLD相同最高令牌Log-PPL相关性
jpetrina IQ4_XS-pure7.49580.0235992.11%99.51%
Unsloth UD-IQ4_XS7.37890.0180093.06%99.63%
Q8_0基线7.3858

Unsloth IQ4量化与Q8非常接近,并且在这些低级保真度测量中明显强于其他IQ4量化。

代理与工具调用结果

模型BFCL单轮BFCL多轮支持场景
Qwen3.5-9B NVFP456/10029/805/6
jpetrina Qwen3.8 IQ4 MTP-150/10040/806/6
Unsloth Qwen3.8 UD-IQ449/10038/806/6

所有模型还通过了额外的8/8原生工具调用冒烟测试。

27B模型在现实多轮支持工作流中明显更好。这些工作流包括:诊断后再变异、授权重启与验证、依赖工具调用、缺失参数澄清、提示注入抵抗,以及从大约55K令牌历史中检索。

9B模型在工具调用和推理方面出现了多次失败(它还在思考痕迹中过于冗长,消耗了太多令牌——它有一个120K上下文大小)。两种27B变体都正确处理了这些情况。

有趣的是,9B在单轮BFCL子集上得分仍然更高。27B的优势主要体现在有状态的多步工作中,而不是孤立的函数调用问题。

结论

* Qwen3.8-27B IQ4在16GB RTX 5060 Ti上的实际甜点是64K文本上下文加MTP-1。
* 短上下文生成大约为45–47 tok/s。
* 在约55K令牌预填充后,生成保持在约31 tok/s。
* Unsloth UD-IQ4_XS具有最佳的测量保真度,并且在测试样本上实际上类似于Q8。
* 更好的困惑度和logit保真度并未自动产生更好的代理分数。
* jpetrina量化在多轮代理评估中以40/80对38/80微弱胜出,因此目前是最佳选择。
* Unsloth量化是一个强有力的替代方案,可能更适合一般文本生成。
* 视觉功能可用,但应在16GB卡上使用单独的较小上下文配置文件。
* Q8对于此卡的全GPU操作不实用,仅用作部分CPU卸载的质量控制(以查看量化和其他因素导致的质量损失)。

这些是种子子集和本地用例场景,并非官方BFCL排行榜提交。结果来自单块GPU、单推理槽,无并发。

—— 高票评论(帖子共30条讨论) ——

[+10] u/Additional-Ordinary2: 64K对于编码是不可用的。你至少需要140K

[+5] u/tsangberg: 你可以在CPU/RAM上运行视觉。速度较慢,但除非你的流水线需要快速视觉,否则这可能是更好的解决方案。
--no-mmproj-offload

[+3] u/tecneeq: 我认为获得第二块5060 Ti 16GB、Q5、张量拆分、MTP和大上下文将是下一个合理的步骤。

[+2] u/anon1880: 你试过使用Q8而不是Q4的KV缓存吗?

[+2] u/Pablo_the_brave: 你应该试试ik_llama.cpp https://huggingface.co/cHunter789/Qwen3.8-27B-i1-IQ4_KS_KT-GGUF

[+2] u/DigitalguyCH: 谢谢,我终于可以在我的20GB卡上获得不错的上下文了

[+1] u/chibri_ingress: 你能分享一下你首选配置的命令行配方吗?我很想在自己的机器上试试,但希望不必重新发明你已经做好的非常精致的轮子。😄

[+1] u/pefman: 对于做前端工作并让LLM看到错误而不是解释,这对我来说是一个改变游戏规则的事情。

[+1] u/AiventyxInfra: 会话内8%的差异,跨会话21%——一次运行不是一个数字

[+1] u/ea_man: 尝试使用--fit-target 30并且不声明--context,这应该会给你更多上下文。-ub 128

另外,如果你愿意深入llama.cpp源代码,MTP方面还有很多可以优化的地方。

如果不能使用更高的MTP,添加NGRAM。

你是无头运行还是至少使用软件渲染?

[+1] u/Equivalent_Bit_461: >q4缓存

它已经结束了

阅读原文
📚 相关主题 大语言模型本地部署

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新