@johnnybegood 感謝幫忙,我發文時找不到表格排版的按鈕
Allen Tsai
@Allen Tsai
-
NVIDIA 4卡異構 挑戰 Exllamav3 + Qwen3.8-Flash-Next 130k 上下文+MTP -
NVIDIA 4卡異構 挑戰 Exllamav3 + Qwen3.8-Flash-Next 130k 上下文+MTP一、软件栈与环境信息
- 推理引擎:
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.ymlmodel: 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 的回应方式让我感觉更像人。即使犯错,它也能够自己修正过来。在这样的使用速度下,我愿意让它多迭代几次,以提高最终任务质量。
希望各位也多多讨论使用心得。如果有需要,我可以再找几个范例任务来展示。
- 推理引擎: