一、软件栈与环境信息
- 推理引擎:
exllamav3 1.5.1+cu128.torch2.9.0(官方 wheel、Python 3.12 venv、免 JIT 编译) - API 服务器:
TabbyAPI main(commit:7208273) - 操作系统 / 内核: Linux Mint 22.3(Zena)/ Kernel
7.0.0-31-generic - 对话模板(Chat Template): 自定义
tabby_template.jinja(qwen3.8-froggeric-v22.3,修复内置版硬例外)
二、硬件规格
- CPU: AMD Ryzen 5 5600X(6C/12T)
- 主板: ASUS PRIME X570-PRO(SMBIOS 3.3.0)
- 系统内存: 64 GB(4×16 GB)DDR4 3600,双通道
- 显卡: 2 张 RTX 4070 Ti SUPER(Gen4 ×4)+ 2 张 RTX 5070 Ti(Gen4 ×8)
- 其中一张 RTX 4070 Ti SUPER 使用了 M.2 转接
三、模型与量化文件架构
- 模型架构: Qwen3.8-Flash-Next
- 量化格式: EXL3 3.05 bpw
- 量化文件: Qwen3.8-Flash-Next-exl3
- 主模型权重本体: 52.3 GB,分散于 4 张 GPU 显存中
- PLE n-gram embedding: 32.6 GB,配置
ngram_ram: true,常驻于 64 GB 系统内存
四、生效配置文件与采样设置
1. config.yml
model:
model_name: Qwen3.8-Flash-Next-exl3
max_seq_len: 131072
cache_size: 131072 # 130K 上下文池
cache_mode: Q8 # 必须使用 Q8;FP16 会导致 VRAM 溢出
cpu_moe_split_experts: 0 # 专家全上卡,严禁 offload 至 CPU
ngram_ram: true # 32.6 GB n-gram 走系统 RAM
gpu_split_auto: true
tensor_parallel: false
autosplit_reserve: [512, 512, 768, 512] # 非对称分配:主屏幕卡(GPU 2)保留 768 MB
chunk_size: 1024 # 设置为 2048 会爆 VRAM
reasoning: true
tool_format: qwen3_coder # 未设置此项,Server 不会解析工具调用
template_vars_default: {reasoning_effort: medium}
reasoning_budget_tokens: 2048
draft_model: # 必须为顶层区块,不可缩进至 model 内部
draft_mode: mtp # 直接调用主模型目录内置的 MTP 组件
draft_num_tokens: 2 # 设置为 2,达到显存与加速平衡;设置为 4 会 OOM
draft_cache_mode: Q8 # 必须使用 Q8;默认 FP16 会超出 VRAM
sampling:
override_preset: qwen_next_flash # 防止长思考崩坏
2. 采样覆写:sampler_overrides/qwen_next_flash.yml
# 针对低 bit(3.05 bpw)量化产生的噪声 logit 进行尾部剪枝,避免文字崩坏
temperature: 1.0
top_p: 0.95
top_k: 20
min_p: 0.0
五、实测推理性能数据
以下数据由 HERMES 执行实际任务时,从 tabby.log 中提取。
- 冷 Prefill 稳态: 约 1,900–2,030 T/s
- 解码生成速度: 约 106–132 T/s
- 即使上下文长度增加至 113K,解码速度依然没有明显衰减
1. 冷请求:全量 Prefill / 无缓存
按总长度升序排列。
| 总长度(Tokens) | 缓存命中 | Prefill 速度 | 首字延迟(TTFT) | 输出长度 | Decode 速度 | MTP 接受率 |
|---|---|---|---|---|---|---|
| 18,003* | 0%(冷) | 859 T/s | 21.00 s | 153 tok | 128.1 T/s | 89%(98/110) |
| 18,256 | 0%(冷) | 1,920 T/s | 9.55 s | 188 tok | 126.2 T/s | 88%(120/136) |
| 18,256 | 0%(冷) | 1,926 T/s | 9.52 s | 247 tok | 120.6 T/s | 80%(152/190) |
| 35,355 | 0%(冷) | 1,926 T/s | 18.40 s | 2,970 tok | 121.5 T/s | 82%(1,847/2,246) |
| 36,786 | 0%(冷) | 1,900 T/s | 19.40 s | 2,599 tok | 120.7 T/s | 82%(1,612/1,974) |
| 37,974 | 0%(冷) | 2,030 T/s | 18.70 s | 2,519 tok | 111.1 T/s | 71%(1,476/2,086) |
2. 热请求:缓存命中 / 多轮对话
按总上下文长度升序排列。
| 总上下文长度 | 缓存命中率 | 新输入(tok) | Prefill 速度 | 首字延迟 | 输出长度 | Decode 速度 | MTP 接受率 |
|---|---|---|---|---|---|---|---|
| 18,733 | 98% | 301 | 734 T/s | 0.43 s | 185 tok | 120.7 T/s | 80%(114/142) |
| 23,174 | 77% | 5,254 | 1,876 T/s | 2.82 s | 707 tok | 121.4 T/s | 81%(437/540) |
| 27,948 | 99% | 300 | 769 T/s | 0.41 s | 116 tok | 116.8 T/s | 76%(70/92) |
| 31,508 | 99% | 276 | 767 T/s | 0.38 s | 298 tok | 101.2 T/s | 60%(162/272) |
| 35,377 | 98% | 817 | 1,362 T/s | 0.62 s | 443 tok | 106.7 T/s | 65%(251/384) |
| 39,794 | 98% | 626 | 1,118 T/s | 0.58 s | 212 tok | 121.5 T/s | 81%(131/162) |
| 43,567 | 99% | 559 | 1,118 T/s | 0.52 s | 1,103 tok | 93.5 T/s | 51%(556/1,094) |
| 47,586 | 97% | 1,506 | 891 T/s | 1.73 s | 2,454 tok | 106.8 T/s | 66%(1,396/2,116) |
| 51,843 | 87% | 6,787 | 1,854 T/s | 3.68 s | 574 tok | 107.9 T/s | 66%(327/494) |
| 55,748 | 99% | 452 | 962 T/s | 0.49 s | 990 tok | 106.6 T/s | 65%(561/858) |
| 59,840 | 99% | 448 | 282 T/s | 1.63 s | 2,264 tok | 98.9 T/s | 57%(1,209/2,110) |
| 62,535 | 95% | 2,887 | 1,688 T/s | 1.73 s | 2,428 tok | 110.1 T/s | 70%(1,417/2,022) |
| 67,834 | 98% | 1,274 | 1,554 T/s | 0.84 s | 344 tok | 103.8 T/s | 62%(190/308) |
| 71,659 | 99% | 747 | 622 T/s | 1.24 s | 2,152 tok | 106.5 T/s | 66%(1,224/1,856) |
| 75,806 | 99% | 1,054 | 1,573 T/s | 0.69 s | 1,644 tok | 99.9 T/s | 59%(887/1,514) |
| 79,545 | 99% | 953 | 1,381 T/s | 0.75 s | 731 tok | 112.9 T/s | 73%(434/594) |
| 83,850 | 99% | 1,162 | 759 T/s | 1.57 s | 2,239 tok | 102.2 T/s | 61%(1,232/2,014) |
| 87,415 | 98% | 1,655 | 1,547 T/s | 1.09 s | 2,297 tok | 108.0 T/s | 68%(1,322/1,950) |
| 89,078 | 99% | 1,014 | 685 T/s | 1.52 s | 2,242 tok | 102.2 T/s | 61%(1,233/2,018) |
| 94,938 | 74% | 25,050 | 1,802 T/s | 13.90 s | 2,982 tok | 109.3 T/s | 70%(1,738/2,488) |
| 99,334 | 98% | 2,310 | 1,604 T/s | 1.46 s | 646 tok | 107.8 T/s | 68%(372/548) |
| 111,691 | 99% | 843 | 1,297 T/s | 0.67 s | 1,770 tok | 112.6 T/s | 74%(1,056/1,428) |
| 113,355 | 100% | 459 | 883 T/s | 0.54 s | 676 tok | 112.5 T/s | 73%(402/548) |
六、个人使用心得
在 3.05 bpw 的量化之下,我还是觉得 Qwen3.8-Flash-Next 比 Qwen3.8 27B FP8 量化更聪明。但在较为单纯的任务中,Qwen3.8 27B FP8 会更加精准,犯错也更少。
不过,Qwen3.8-Flash-Next 的回应方式让我感觉更像人。即使犯错,它也能够自己修正过来。在这样的使用速度下,我愿意让它多迭代几次,以提高最终任务质量。
希望各位也多多讨论使用心得。如果有需要,我可以再找几个范例任务来展示。