QwenMix-3.7:注意到很多帖子说 Qwen3.8 和 3.6 结构相同,于是就让 Qwen3.8 将它们合并。

Reddit r/LocalLLaMA 模型

摘要

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

具体操作

  1. 漂移分析。 对每一对张量(A, B)进行了比较。测量了余弦相似度:MLP 层变化最大(平均余弦 0.83),线性注意力投影为 0.89,全注意力为 0.94,SSM 参数(A_log、dt_bias、conv1d)和所有层归一化层为 0.998–0.999(几乎冻结),视觉塔为 0.993(在两个父模型中均冻结)。
  2. 合并。 逐行(逐神经元)组合:采用线性插值方向,然后将每行的幅度重新缩放为父模型幅度的线性混合值。这消除了简单线性插值在相距较远的检查点间导致的范数收缩问题(合并后测量的行范数比与 A 相比:各处均为 1.00–1.03,即没有收缩)。
  3. 特殊处理。
    • 视觉塔 + MTP(多 token 预测)头:逐字节从 B 复制——它们在两个父模型中除舍入外完全相同,必须与 B 的模板保持一致。
    • B 的分词器中新增的 7 个 token ID(248070–248076):首先测量了它们在 A 中的嵌入/lm_head 行,发现它们在 A 中已经训练良好(余弦 0.99–1.0),但为了保险起见,仍然强制采用 B 的值。
  4. 验证。
    • 名称、形状、数据类型在 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.9873W 与 3.6 的对齐度
平均 cos(W, B)0.9910W 与 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 / 851cos(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*.safetensors13 个分片,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.jsonHub 框架标记(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)
LICENSEApache-2.0

QwenMix 项目的一部分:在 Qwen3.6-27B 和 Qwen3.8-27B 之间进行插值。合并引擎和评估脚本:merge.py、verify_distinct.py、chat.py、run_eval.py(项目仓库)。

相似文章

Qwen/Qwen3.6-35B-A3B

Hugging Face Models Trending

Qwen 发布 Qwen3.6-35B-A3B,一款开源权重的混合专家(MoE)模型,总参数量 35B,激活参数量 3B,在智能体编码和推理能力保持方面实现显著提升。

Qwen 3.7 Max

Reddit r/LocalLLaMA

Qwen 3.7 是一款来自中国实验室的新AI模型,令人印象深刻,讨论焦点在于其权重是否可供下载。

Qwen/Qwen3.6-35B-A3B-FP8

Hugging Face Models Trending

阿里巴巴发布了Qwen3.6-35B-A3B-FP8,这是Qwen3.6的开源权重量化变体,拥有35B参数,通过MoE激活3B,具有改进的智能编码能力和保持思维链的迭代开发特性。

Qwen3.8-27B

Hacker News Top

Qwen 发布了 Qwen3.8-27B 的开源权重,这是一个原生多模态稠密模型,拥有 27B 参数,整体性能超越 Qwen3.7-Plus,支持 262K 原生上下文并可扩展至 1M,采用 Apache 2.0 许可。

Qwen/Qwen3.8-2.4T-A95B-FP8

Hugging Face Models Trending

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.