Qwen3.8 27B 本地实测#
这两天的事就一件:把 Qwen3.8-27B 跑到本地,要无审查、要能看图、要够快、还要稳,最后接到我自己的助理上天天用。结论先放出来:它现在基本可以当 DeepSeek V4 Flash 用了,就是我平时在云端用的那个主力模型。
硬件#
| 部件 | 配置 |
|---|---|
| CPU | Xeon E5-2690 v4(14 核 28 线程,单路) |
| GPU | 2× RTX 2080 Ti 22G(魔改 22G 版,NVLink 互联) |
| 内存 | 15Gi(整台机器真正的短板,另有 16G swap 顶内存) |
| 系统 | Ubuntu 24.04.4,驱动 595.84,CUDA 12.8 |
| 引擎 | vLLM-2080Ti-Definitive ↗(SM75 定制版,双卡 TP=2) / llama.cpp ↗ 自编译 + NCCL |
机器是二手的,2080 Ti 属于 Turing 架构,社区里普遍的说法是「这卡只能跑小模型」。27B 不是跑不了,是路线得选对。
测法#
每项统一三个口径,同一台机器、同一温度 0 跑出来:
- Prefill 速度:长提示的首 token 时间,换算成 tok/s。对应长文档、长上下文场景的响应快慢。
- Decode 速度:固定提示生成 512 token,重复 3 次取中位。对应日常对话的体感速度。
- 鹈鹕测试:给模型一句话「创建一个 HTML,内容是 SVG 绘制一个鹈鹕骑自行车的 2D 动画」,看它能不能把自行车和鹈鹕真的画对。这条测的是结构化生成的能力,低比特量化在这里会露馅。
跑的参数,两条路线:
# vLLM 路线(safetensors 权重)
量化:FP8 / NVFP4 / int4 分别测
MTP_K=3(推测解码,不开只有 31 tok/s)
上下文 256K,GPU_UTIL=0.90(0.96 必 OOM)
思考档 low(xhigh 在 agent 场景下是一轮好几分钟)
# llama.cpp 路线(GGUF 权重)
-sm tensor(双卡真张量并行,必须自编译 NCCL)
--spec-type draft-mtp --spec-draft-n-max 2(配对 MTP 草稿,深度 2 是甜点)
-c 393216 -np 2 --kv-unified(统一 KV 池双并发,单会话上限 256K)
-ctk q8_0 -ctv q8_0(KV 量化,满上下文下不是负优化)text结果#
| 模型 | 路线 | Decode | Prefill | 备注 |
|---|---|---|---|---|
| 官方 FP8 | vLLM + MTP3 | 67.06 tok/s | ~1690 tok/s(27k 提示 16s) | 最快一档,有审查 |
| 官方无审查 Q4_K_M | llama.cpp + 自带草稿 | 57~77 tok/s | 889 tok/s(40k 提示 45s) | 当前在用,拒答 4/4 未拒 |
| 社区 Q6_K(nerkyor) | llama.cpp + 草稿 | 54.65 tok/s | 901 tok/s | 快,但实测硬拒答,弃 |
| 社区 Q6_K(Humanlike) | llama.cpp 无草稿 | 35.24 tok/s | 1070 tok/s | 目录不带草稿文件,速度腰斩 |
| 社区 NVFP4 W4A4 | vLLM | 67.33 tok/s | ~1290 tok/s | 最快,社区打包,坑多 |
两个值得单独记的数字:
物理天花板。双卡总带宽 1232 GB/s,Q6_K 的权重 21.5G,理论 decode 上限 57 tok/s,实测 54.65,达成 95.5%。摸到这道墙之后继续调参就是浪费时间,唯一的出路是降位宽。
27k 超长提示。vLLM 路线稳态 16 秒跑完 prefill(约 1690 tok/s);llama.cpp 路线 40,489 token 的提示 45 秒跑完,埋针找回测试通过。重启后的第一个长请求是冷启动(要 60 多秒,内核在 JIT 编译),所以服务重启后必须预热一遍,不然客户端收到的是空回复。
社区版踩的坑#
HF 上一共搜到 349 个 27B 的候选仓库,实测了十几个。社区打包的问题比想象的多:
- 名字带 Uncensored 不等于不拒答。某个高下载量的仓库名里就挂着 Uncensored,实测几乎全拒,只有情色写作放开。原因查清楚了:它的训练是从对齐过的教师模型蒸馏轨迹,拒答行为被一并学回来了。
- 量化包有暗坑。一份 NVFP4 包在 Marlin kernel 上崩,查到最后发现它的模块排除清单是 0 条,48 维的层被量化了才撞对齐;作者的另一份包排除了 148 条,同样的卡跑得通。同格式同卡,一份崩一份活。
- MTP 头不能跨模型借。借来的头能加载、能跑、速度还快,但输出是胡言乱语——比崩溃更阴险,因为不报错。
- 量化档位决定质量。同一个模型,Q4 画鹈鹕,车架是一坨实心三角;Q6 完整通过。Q4 抹掉的正是「把部件摆到正确空间位置」的能力,速度分看不出这个。
社区模型全称#
先把台账列清楚。这一轮实测的社区版,HuggingFace 仓库全称如下——本地目录名经常被截断,丢掉的关键字最多,认仓库全称才认得准:
| 仓库 | 下载量 | 是什么 |
|---|---|---|
JonathanColetti/Qwen3.8-27B-Uncensored-GGUF | 268 万 | 主流无审查版,本文长期在用的那份,自带草稿与视觉模块 |
nerkyor/Qwen3.8-27B-EfficientThink-Uncensored-K3-Opus5-Grok4.6-GPT5.6Sol-SFT-SimPO-DFlash2-GGUF | 6.7 万 | 名字是一串黑话,但每个词都有来头:中间那串名字是蒸馏轨迹的教师模型,SFT 是监督微调,SimPO 是偏好优化方法,DFlash2 表示附带第二代推测解码草稿 |
LessThanThreeAI/Qwen3.8-27B-Humanlike-Chat-GGUF | 1.9 万 | 「人味」向:7006 条真人长对话 + LoRA 微调,定位聊天与角色扮演 |
dealignai/Qwen3.8-27B-UNCENSORED-GGUF | 3 万 | CRACK 去审查法,自报 MMLU 不降分,带视觉模块 |
munekazu/Huihui-Qwen3.8-27B-abliterated-FP8 | 4.5 千 | FP8 safetensors,vLLM 路线用 |
sakamakismile/Huihui-Qwen3.8-27B-abliterated-NVFP4 | 7.7 万 | NVFP4 safetensors,在我机器上崩掉的那份 |
名字里几个词值得解释。
Uncensored / abliterated 都是去审查,做法不同。abliteration 是直接做减法、把安全对齐层摘掉(abliteration 就是「摘除」的意思);CRACK 是 dealignai 家的同类变体。关键是去审查不是一锤子买卖:安全对齐是模型学会的一种行为,量化之后行为会漂移,下一节细说。
仓库名里挂教师模型。nerkyor 名字中间那串 K3、Opus5、Grok4.6、GPT5.6Sol,是它蒸馏轨迹的教师。名字叫 EfficientThink,卖点是「思考效率高」,实测恰恰是它想得最久、停不下来(思考链 14 万字符撞满 token 上限还没写完)。名字是营销,模型卡是承诺,自己的机器才是事实。
DFlash2 是第二代推测解码草稿,后缀带这个的,仓库里会附带草稿文件。别小看草稿:没有它速度就是裸推理水平,跟演示视频差 2~3 倍。
FP8 / NVFP4 系是 vLLM 路线的 safetensors 权重,命名逻辑和 GGUF 系一样:abliterated 是去审查,后缀是量化。
量化的两本账:智商与速度#
量化常被说成一件事,其实是两本账:速度那本账有公式,智商那本账没公式,只能实测。
速度侧:位宽的线性函数。
decode 是纯带宽操作——每出一个 token,要把整套权重从显存里完整读一遍。双 2080 Ti 合计带宽 1232 GB/s,张量并行 TP=2 时每卡只读一半,天花板公式很简单:
理论上限 tok/s = 1232 ÷ 权重 GB
| 量化 | 权重 | 理论上限 | 实测 |
|---|---|---|---|
| Q4_K_M | 16.8G | 73 | 59.7(带草稿) |
| NVFP4(W4A4) | 18.8G | 65.5 | 67.33(vLLM + MTP) |
| Q6_K | 21.5G | 57.3 | 54.65(达成 95.5%) |
| Q8_0 | 27G | 45.6 | 256K 跑不动,192K 可跑 |
| FP8 | 29G | 42.6 | 67.06(vLLM + MTP) |
摸到理论值 90% 之后继续调参就是浪费时间,唯一出路是降位宽。前面 Q6_K 的 54.65 ÷ 57.3 = 95.5% 就是这道墙。表里 NVFP4 和 FP8 之所以能越过「理论上限」,是因为叠了推测解码(MTP):上限公式算的是「读一遍权重出一个 token」,推测解码是一次读、批量出。FP8 不开 MTP 只有 31,67 是叠了 MTP_K=3 之后的数字。
智商侧:位宽的阶梯函数,而且断点不在你以为的地方。
先说最反直觉的结论:在通用智力基准上,Q4 和 Q8 几乎分不出来。两份独立证据。
nerkyor 的现代基准(GPQA 198 题 / MMLU 500 题 / LiveCodeBench 100 题,未通过的样本全部留在分母里):
| 量化 | GPQA | MMLU | LCB |
|---|---|---|---|
| Q8_0 | 164(82.8%) | 447(89.4%) | 74 |
| Q6_K | 171(86.4%) | 440(88.0%) | 78 |
| Q4-LynnStyle | 166(83.8%) | 443(88.6%) | 74 |
| Q3-LynnStyle | 172(86.9%) | 435(87.0%) | 78 |
Q4 比 Q8 分高,Q3 双料最强——排序基本落在噪声里。JonathanColetti 的 PPL 表同调:f16 是 7.156,Q8_0 是 7.176,Q4_K_M 是 7.181,误差棒约 0.25,Q4 和 Q8 的差距在误差范围内。
鹈鹕测试:Q4 的车架是一坨实心三角,Q6 的车架是正经的双三角。低比特抹掉的是「把部件摆到正确空间位置」的能力,速度分、基准分都不测这一项。
第二个断点在拒答轴上。去审查是一种行为,行为在低比特下最先漂移——同一句敏感话题,Q8 肯答,Q4 开始说教。这一项对无审查模型最致命:不是答不上,是拿说教的语气答。本轮实测 nerkyor 的拒答分布是「只有R18写作放开,其他几乎全拒」,名字挂着 Uncensored,实测是偏科型无审查。
第三,微调和量化会叠加。LessThanThreeAI 的 Humanlike 是 LoRA 微调,作者在 FINDINGS.md 里公开了对照:未适配底模的有效最终回答 6/6,挂上 LoRA 掉到 3/6,开思考模式时 48 轮里 30~35 轮只输出推理、不产出最终答案。作者的处置是显式关掉思考——这份模型只能当聊天和角色扮演用,不能当 agent。微调模型是活的,量化是防腐:保住了什么、丢掉了什么,没法预测,只能测。
FP8 和 NVFP4 在 Turing 上的特殊章。
2080 Ti 是 sm_75,FP8 和 NVFP4 的硬件张量核都要更新的架构,但「跑不了」说得太糙:
- FP8:硬件加速没有,但「FP8 存权重、反量化成 FP16 计算」这条路(Marlin kernel)能走通。所以能测出 67.06——8 位的精度存着,16 位的速度算着,速度受带宽限、质量受权重限,这个组合不亏。
- NVFP4:闸门有两道。第一道算力闸门看
get_min_capability():W4A4 是 75(过),W4A16 / W8A16 是 89(直接拒载),同一个 NVFP4 目录里的子变体差 14 档。第二道更隐蔽:Qwen 的线性注意力层里有 48 维的子层,FP4 kernel 要求 64 对齐,48 维的层一旦被量化就报size_n = 48 is not divisible by tile_n_size = 64。打包方有没有把这批层排除、排除的粒度写到哪一级(写到父模块 = 排不掉子模块、照样崩;写到子模块 = 真排除了),决定生死。我机器上两份包对照:sakamakismile 那份 222 条排除全在父模块级,崩;作者原版 148 条、144 条是子模块级,跑通,67.33 tok/s。条数多少不算数,粒度才算数。 - NVFP4 的真正价值是显存:18.8G 权重,和 FP8 同速度档(67.33 vs 67.06),显存省出约 10G。256K 上下文宽裕得多。16G 内存的机器上,这 10G 是生死线。
实用选档:默认 Q8_0(近无损),显存明显不够才考虑降档,先降 Q6 再降 Q4,别一步到 Q4。KV cache 量化看上下文:32K 上下文下 q8 KV 是负优化(反量化开销大于省下的带宽),256K 上下文下 q8 反而比 f16 快(53.51 vs 52.50)——短上下文的结论不能当通则搬。
一句话总结:速度是位宽的线性函数,智商是位宽的阶梯函数。选量化别看基准表,看你实际用法里最不能忍什么——是结构化生成画崩,还是拒答行为回潮。
共驻生图:ComfyUI + Anima base v1.0#
文字模型站住之后,生图还缺。Qwen3.8-27B 是视觉语言模型,只看图、不生图;生图是另一条产品线,Qwen-Image-2.0 的权重没公开(API only)。本地生图得另找模型,最后定了 Anima base v1.0。
Anima 是什么。 全称 circlestone-labs/Anima,base 变体叫 Anima Base v1.0:2B 参数,CircleStone Labs 和 Comfy Org 合作,底座是 NVIDIA Cosmos-Predict2-2B,定位动漫与插画、不做写实。三个变体:Base 是未精调的底子(LoRA 训练用),Aesthetic 是精调后更稳的版本,Turbo 是蒸馏版、8~12 步快出。许可上模型非商用,输出的图可以商用。
官方三件套:
| 文件 | 体积 | 作用 |
|---|---|---|
anima-base-v1.0.safetensors | 4.18G | 主模型(DiT) |
qwen_3_06b_base.safetensors | 1.2G | Qwen3-0.6B 文本编码器 |
qwen_image_vae.safetensors | 243M | Qwen-Image VAE |
全套 bf16 约 7~8G。2080 Ti 没有 BF16 硬件支持,走小显存路线:Abiray/Anima-base-v1.0-GGUF 的量化版(这人用 FP32 转换防 BF16 噪声,敏感层保留 F32),ComfyUI-GGUF 插件加载,文本编码器和 VAE 仍用原版。
| 量化 | 体积 | 备注 |
|---|---|---|
| Q8_0 | 2.24G | 近无损,在用 |
| Q5_K_M | 1.56G | 作者标「甜点」 |
| Q4_K_M | 1.38G | 低显存 |
| Q3_K_M | 1.02G | 极限压缩 |
实测 Q8_0 GGUF:装载 2.2G,1024×1024 出图约 40 秒,全部落在 3G 显存预算内。文本编码器放 CPU——编码是一次性开销,慢 1~2 秒,换主模型独占整卡,值得。
Aesthetic v1.1 也试过,最后还是用的 base v1.0:base 的质感和色彩更接近我要的,aesthetic 那版有点太「精致」。Turbo 变体没专门测,40 秒出图的速度我够用,不需要再快。
共驻账本。LLM 服务双卡各占 20G 上下,每卡余 4~5G。Anima 级(3G)塞进一张卡,实测共驻:出图 39.78 秒的同时聊天 2 秒,互不影响。出图期间出图那张卡从 17G 涨到 20G,另一张纹丝不动。
SDXL 级(9~10G)和 z_image_turbo 级(约 15G)就塞不进余量了。办法是时间片轮换:出图前一键暂停 LLM 服务,画完 40 秒内自动拉起,全程不用人管。这台机器 16G 内存是短板,看护脚本里带了内存守卫:可用内存告急时先卸载生图模型保命,LLM 服务在核层级受保护。
Turing 跑生图的三个硬伤是固定的:无 BF16(z_image_turbo_bf16 得转成 FP16 才能用)、无 FP8、FlashAttention-2 要 sm_80。所以大生图模型一律走 FP16 或 GGUF 路线,Anima 这种 2B 小模型恰好是这台机器最合适的尺寸。
结论#
- 别听社区的跑分。这一轮实测下来,官方版和官方无审查版就是最稳定最好的。官方 FP8 的 67.06 tok/s 和社区的 NVFP4 并列第一,但官方版一次没崩过;官方无审查版是目前长期在用的那台——不拒答、不崩、扛得住 4 万 token 的埋针测试。社区版里有快的,但每一份都有暗坑,跑分高不代表能用。
- Qwen3.8-27B 的实际体验跟官方宣称的测试结果吻合,基本可以当 DeepSeek V4 Flash 用。助理每天的多轮工具调用、长文整理、创作,这两天全跑在这台机器上,体感和云端主力没有可感知的差距。
- 27k 超长提示的 prefill 表现优异。16 秒处理完,叠上前缀缓存,后续轮次掉到 2 秒级。长文档场景基本没有「想了半天」的感觉。
- 性能稳定。两天重度使用,没有出现小参数量模型那种同一句话循环输出或者卡死的情况。机器上还配了双看护(服务挂了 1 分钟内自动拉起、内存告急自动卸载保命),就算真被系统杀掉也恢复得快。
最后给一句话:手里要是有双 2080 Ti 的旧机器,别急着嫌弃。引擎和权重选对了,27B + 256K 上下文是够日常用的。