QwenMix-3.7:注意到很多帖子说 Qwen3.8 和 3.6 结构相同,于是就让 Qwen3.8 将它们合并。
摘要
QwenMix-3.7 是 Qwen3.6-27B 和 Qwen3.8-27B AI 模型的权重插值合并,在 t=0.5 时通过每行范数保持技术创建。
查看缓存全文
缓存时间: 2026/08/20 18:55
bigattichouse/QwenMix-3.7 · Hugging Face
来源:https://huggingface.co/bigattichouse/QwenMix-3.7
https://huggingface.co/bigattichouse/QwenMix-3.7#qwenmix-37
QwenMix-3.7 是 Qwen3.6-27B 和 Qwen3.8-27B(Qwen3_5ForConditionalGeneration,27B 密集参数,混合线性/全注意力 + 视觉塔)的权重插值合并版本,在 t = 0.5 时生成,并保持逐行范数。这是一个 合并模型,而非微调:没有梯度更新,没有数据。每个权重都是两个父模型检查点的确定性函数。父模型为 Qwen3.6-27B (A, t=0) 和 Qwen3.8-27B (B, t=1)。
配方
W = A + t·(B − A) 逐行计算,然后重新缩放为 t·‖B‖ + (1−t)·‖A‖。t 取全局值 0.5;视觉塔 + MTP 头直接从 B 复制 (t=1.0)。
精度 全程使用 fp32 计算,存储为 bf16。
参数量 27.36 B(27B 密集参数 + 视觉参数),1199 个张量。
大小 55.6 GB(bf16)。
分词器/对话模板 来自 Qwen3.8-27B(超集:增加了 7 个特殊 token 248070–248076 + 更新的推理模板)。
许可证 Apache-2.0(两个父模型均采用此许可证)。
要求
需要 transformers >= 5.x,且需原生支持 qwen3_5。
https://huggingface.co/bigattichouse/QwenMix-3.7#support-more-of-this-nonsense
支持更多此类“折腾”
我在 https://medium.com/@bigattichouse/ 发布各种车库发明家和本地模型的内容——欢迎阅读我的文章,并支持这种“无聊”的探索。
https://huggingface.co/bigattichouse/QwenMix-3.7#what-was-done
具体操作
- 漂移分析。 对每一对张量(A, B)进行了比较。测量了余弦相似度:MLP 层变化最大(平均余弦 0.83),线性注意力投影为 0.89,全注意力为 0.94,SSM 参数(A_log、dt_bias、conv1d)和所有层归一化层为 0.998–0.999(几乎冻结),视觉塔为 0.993(在两个父模型中均冻结)。
- 合并。 逐行(逐神经元)组合:采用线性插值方向,然后将每行的幅度重新缩放为父模型幅度的线性混合值。这消除了简单线性插值在相距较远的检查点间导致的范数收缩问题(合并后测量的行范数比与 A 相比:各处均为 1.00–1.03,即没有收缩)。
- 特殊处理。
- 视觉塔 + MTP(多 token 预测)头:逐字节从 B 复制——它们在两个父模型中除舍入外完全相同,必须与 B 的模板保持一致。
- B 的分词器中新增的 7 个 token ID(248070–248076):首先测量了它们在 A 中的嵌入/lm_head 行,发现它们在 A 中已经训练良好(余弦 0.99–1.0),但为了保险起见,仍然强制采用 B 的值。
- 验证。
- 名称、形状、数据类型在 A / B / 合并后完全一致(1199 个张量)。
- 对 43 个张量进行了抽查,并与独立的重新计算结果对比:仅存在 bf16 舍入级别的误差。
- 使用 Float64 重新检查了两个包含 12.7 亿元素的张量:嵌入层
cos(A,W)=0.969,lm_head cos(A,W)=0.981——两者距离均大致相等,符合 t=0.5 的预期。 - 可以使用原生
transformers库正常加载和生成(无需trust-remote-code补丁)。
https://huggingface.co/bigattichouse/QwenMix-3.7#proof-that-37-is-numerically-distinct-from-both-parents
证明 3.7 在数值上不同于两个父模型
在全部 1199 个张量上计算(fp32;每个张量的数据见 distinctness_check.json):
| 指标 | 值 | 含义 |
|---|---|---|
平均 cos(W, A) | 0.9873 | W 与 3.6 的对齐度 |
平均 cos(W, B) | 0.9910 | W 与 3.8 的对齐度 |
平均 cos(A, B) | 0.9450 | 两个父模型彼此的对齐度 |
平均 ‖W−A‖/‖A‖ | 0.137 | 相对于 3.6 的相对距离 |
平均 ‖W−B‖/‖B‖ | 0.111 | 相对于 3.8 的相对距离 |
中位数 ‖W−A‖/‖W−B‖ | 1.06(IQR 1.02–1.07) | ≈1 → W 位于中点,未偏向任一父模型 |
| 合并张量严格位于 A–B 线段上 | 840 / 851 | cos(W,A) > cos(A,B) 且 cos(W,B) > cos(A,B) |
| 相对于 A / B 发生改变的行比例 | 87% / 66% | 模型是新的,而非任一父模型的副本 |
解读这些数字: W 比两个父模型彼此之间的距离更接近于每个父模型(0.987/0.991 对比 0.945),并且基本位于中点(距离比 ≈ 1.06)。这是真正的 t≈0.5 插值的几何特征——不是 Qwen3.6 的换皮,也不是 Qwen3.8 的换皮。那 11 个不在线段上的张量是视觉/MTP 的复制体(设计上固定为 B)加上少数几个 SSM 张量(其父模型已经几乎相同,余弦 ≈ 0.999),因此中点自然地同时接近两者。分组明细:851 个真正合并的张量没有一个塌缩到任一父模型;58 个被标记为“接近 A”的 SSM 张量也同样接近 B(57个)——这是两个几乎相同的张量的中点表现,而不是漂移。
https://huggingface.co/bigattichouse/QwenMix-3.7#inference-side-by-side-eval-37-vs-36-vs-38
推理:并排评估(3.7 vs 3.6 vs 3.8)
三者设置相同:贪心解码(temperature=0),max_new_tokens=1500,CPU bf16,使用默认对话模板(reasoning_effort=xhigh)。完整原始日志见 evals/ 目录。
提示: “用一小段话概括《小王子》的核心思想。”
https://huggingface.co/bigattichouse/QwenMix-3.7#qwenmix-37-merged–233-tokens
QwenMix-3.7(合并) — 233 tokens
思考过程: 用户想要一个关于《小王子》核心思想的一段话总结。我需要识别核心主题:纯真、视角、人际关系,以及“真正重要的东西是眼睛看不见的”这个理念。……这段话应综合其旅程、遇到的人,以及关于爱、责任和用心去看的最终道德教训。
《小王子》的核心思想是,生命中最重要的真理——如爱、友谊和存在的意义——是眼睛看不见的,只能通过心灵去理解。通过一个年轻王子从一颗星球旅行到另一颗星球的纯真视角,安东尼·德·圣-埃克苏佩里批判了成人世界的肤浅和物质主义,这个世界沉迷于数字、权力和占有。最终,这个故事教导我们,赋予生命价值的是我们投入关系的时间和关怀,这体现在那句著名的箴言中:“只有用心灵才能看清楚”,以及“我们永远要对驯服的东西负责”。
https://huggingface.co/bigattichouse/QwenMix-3.7#qwen36-27b-parent-a–897-tokens
Qwen3.6-27B(父模型 A) — 897 tokens
思考过程: (机械的、多阶段的)
1. 拆解用户的请求... 2. 头脑风暴核心主题... 3. 综合核心思想... 4. 草拟段落... 5. 审查并完善(约束检查)... 6. 最终润色...
《小王子》的核心主题是,生命中最本质的方面——爱、友谊和想象力——是眼睛看不见的,只能通过心灵感知。通过小王子的星际旅程以及他从狐狸和玫瑰那里得到的深刻教训,故事批判了成人世界狭隘、物质主义的专注点,这些专注点常常遮蔽了真正重要的东西。最终,它颂扬了童年的智慧,强调意义并非存在于数字或地位中,而在于我们建立的独特纽带以及我们对所“驯服”之物所承担的责任。
https://huggingface.co/bigattichouse/QwenMix-3.7#qwen38-27b-parent-b–122-tokens
Qwen3.8-27B(父模型 B) — 122 tokens
思考过程: 我们需要回答用户的请求… 需要产出最终的一小段话。可能需要简洁。确保是一段话。
《小王子》的核心思想是,生命中最重要的东西——爱、友谊、责任和意义——不能只用眼睛看到,而必须用心去理解。通过小王子在成人和星球间的旅程,圣-埃克苏佩里暗示,童年的好奇、想象和人与人之间的联系揭示的真理,比逻辑或物质成功更为深刻。
观察: 三者都准确且切题。这个合并模型是一个真正的融合——它的答案深度兼具两个父模型的特点,它的思考风格流畅(类似 3.8),而不是 3.6 那种机械的模板,其冗长度(233 tokens)介于冗长的 3.6(897)和简洁的 3.8(122)之间。这是一个单提示的快速评估,不是基准测试。
https://huggingface.co/bigattichouse/QwenMix-3.7#merge-log
合并日志
完整的确定性合并运行(33.5 分钟,包含每个张量的余弦值、合并后范数比、分组摘要、最远张量列表)作为 merge_log.txt 提供。摘录:
[merge] 1199 tensors, A=Qwen3.6-27B B=Qwen3.8-27B t=0.5 mode=lerp-rescale group_t={'vision': 1.0, 'mtp': 1.0} dry_run=False
[merge] reading headers...
[merge] header check OK: 1199 tensors, all shapes+dtypes match
...
=== per-group summary ===
group n t avg_cos(A,B) avg_‖W‖/‖A‖
embed 1 0.50 (fp64: 0.8853) 1.03109
lm_attn 96 0.50 0.94405 1.02750
lm_head 1 0.50 (fp64: 0.9277) 1.00606
lm_lina_proj 240 0.50 0.89173 1.01953
lm_mlp 192 0.50 0.83236 1.02121
lm_norm 177 0.50 0.99817 1.00209
lm_ssm 144 0.50 0.99886 1.00227
mtp 15 1.00 0.96424 1.02220
vision 333 1.00 0.99298 1.00469
=== 10 farthest tensors (lowest cos) ===
model.language_model.layers.0.mlp.up_proj.weight cos=0.7139 |w/a|=1.0257
model.language_model.layers.14.mlp.up_proj.weight cos=0.7348 |w/a|=1.0225
...
[merge] done in 33.5 min
(注:原始日志中 embed/lm_head 的 fp32 avg_cos 值大于1——这是 12.7 亿元素张量的已知 fp32 累积误差;上表显示的是真实的 float64 值 0.8853 / 0.9277。)
https://huggingface.co/bigattichouse/QwenMix-3.7#usage
使用方法
import torch
from transformers import AutoTokenizer, AutoModelForImageTextToText
model_path = "bigattichouse/QwenMix-3.7" # 本仓库地址
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForImageTextToText.from_pretrained(
model_path,
dtype=torch.bfloat16,
device_map="auto",
)
messages = [{"role": "user", "content": "用两句话解释天空为什么是蓝色的。"}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer([text], return_tensors="pt")
out = model.generate(**inputs, max_new_tokens=1024)
print(tokenizer.decode(out[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))
说明:
- bf16 权重需要约 55 GB 内存/显存;可以使用量化(例如 GGUF Q4_K_M)以减小占用。
- 对话模板支持
reasoning_effort(默认为xhigh),并在回答前输出一个think块。请将max_new_tokens设置得足够大(≥1000)以获得完整答案。 - 视觉塔存在,但本次合并未对其进行评估(仅进行文本测试)。
https://huggingface.co/bigattichouse/QwenMix-3.7#caveats
注意事项
- 合并可能会降低父模型存在分歧的能力;此模型仅通过烟雾测试(单提示、贪心解码)与两个父模型对比,未进行基准测试。
- 预期其行为介于两个父模型之间,而不是严格优于两者。
- 确定性:相同的输入 + 配方总是能复现完全相同的权重。每个张量的清单:见
merge_manifest.json;每个张量的差异数据:distinctness_check.json。
https://huggingface.co/bigattichouse/QwenMix-3.7#files
文件
| 文件 | 描述 |
|---|---|
model-0000*.safetensors | 13 个分片,bf16 权重(55.6 GB) |
model.safetensors.index.json | 张量 → 分片映射 |
config.json | 模型配置(来自 Qwen3.8-27B) |
tokenizer.json / tokenizer_config.json / merges.txt / vocab.json | 分词器(来自 Qwen3.8-27B) |
chat_template.jinja / generation_config.json | 对话模板 + 生成配置(来自 Qwen3.8-27B) |
preprocessor_config.json / video_preprocessor_config.json | 视觉预处理器(来自 Qwen3.8-27B) |
configuration.json | Hub 框架标记(Pytorch, image-text-to-text) |
merge_manifest.json | 合并配方 + 分组统计 |
distinctness_check.json | 证明 3.7 ≠ 3.6 且 ≠ 3.8 的逐张量数据 |
merge_log.txt | 完整的确定性合并运行日志 |
evals/eval_QwenMix-3.7.log | 原始贪心评估输出(本模型) |
evals/eval_Qwen3.6-27B.log | 原始贪心评估输出(父模型 A) |
evals/eval_Qwen3.8-27B.log | 原始贪心评估输出(父模型 B) |
LICENSE | Apache-2.0 |
QwenMix 项目的一部分:在 Qwen3.6-27B 和 Qwen3.8-27B 之间进行插值。合并引擎和评估脚本:merge.py、verify_distinct.py、chat.py、run_eval.py(项目仓库)。
相似文章
Qwen/Qwen3.6-35B-A3B
Qwen 发布 Qwen3.6-35B-A3B,一款开源权重的混合专家(MoE)模型,总参数量 35B,激活参数量 3B,在智能体编码和推理能力保持方面实现显著提升。
Qwen 3.7 Max
Qwen 3.7 是一款来自中国实验室的新AI模型,令人印象深刻,讨论焦点在于其权重是否可供下载。
Qwen/Qwen3.6-35B-A3B-FP8
阿里巴巴发布了Qwen3.6-35B-A3B-FP8,这是Qwen3.6的开源权重量化变体,拥有35B参数,通过MoE激活3B,具有改进的智能编码能力和保持思维链的迭代开发特性。
Qwen3.8-27B
Qwen 发布了 Qwen3.8-27B 的开源权重,这是一个原生多模态稠密模型,拥有 27B 参数,整体性能超越 Qwen3.7-Plus,支持 262K 原生上下文并可扩展至 1M,采用 Apache 2.0 许可。
Qwen/Qwen3.8-2.4T-A95B-FP8
Qwen releases FP8-quantized weights for Qwen3.8-2.4T-A95B, a 2.4T-parameter MoE model with 95B activated parameters, claiming Qwen-Max-class capability in an open release with strong coding, agentic, and long-context performance.