Model: MoshiQAQ/qwen3-4b-merge-practice-merged Source: Original Platform
base_model, library_name, license, tags
| base_model | library_name | license | tags | ||||
|---|---|---|---|---|---|---|---|
| Qwen/Qwen3-4B-Instruct-2507 | transformers | apache-2.0 |
|
Qwen3-4B 三专家合版模型(练手实验)
这是一个练手实验的产物,不是可用于生产的模型。
基座 Qwen/Qwen3-4B-Instruct-2507 @ cdbee75f17c01a7cc42f958dc650907174af0554,
在上面分别训练数学、科学、代码三个 LoRA 专家,再把它们在 ΔW 空间相加,得到这个完整权重模型。
合版配方
method: linear # 任务算术:W = W0 + Σ λᵢ·ΔWᵢ,ΔWᵢ = Bᵢ·Aᵢ·(α/r)
weights: {math: 1.0, science: 1.0, code: 1.0}
density: 1.0
seed: 0
配方是在三个开发集(每个领域各取 100 题,与评测集去污染隔离)上从 4 个候选里选出来的: linear λ=0.5 / 1.0、TIES(density 0.5)、DARE-TIES(density 0.5);评测集没有参与选择。
| 配置 | dev 数学 | dev 科学 | dev 代码 | 平均 |
|---|---|---|---|---|
| Base | 67 | 79 | 34 | 60.0 |
| linear λ=0.5 | 61 | 80 | 38 | 59.7 |
| linear λ=1.0 | 69 | 82 | 39 | 63.3 |
| TIES d=0.5 | 66 | 78 | 34 | 59.3 |
| DARE-TIES d=0.5 | 63 | 82 | 39 | 61.3 |
专家
LoRA r=32、alpha=64、作用于全部线性层;lr 1e-4,2 个 epoch,有效 batch 16。 训练数据由 Base 自己拒绝采样(RFT)得到,只保留判分正确的回答:
| 专家 | 题目来源 | 训练条数 | 平均回答 token |
|---|---|---|---|
| math | NuminaMath-CoT | 370 | 约 1,400 |
| science | nvidia/OpenScience | 1,671 | 341 |
| code | BAAI/TACO(stdin 题) | 938 | 约 1,700 |
专家 adapter 见 https://huggingface.co/MoshiQAQ/qwen3-4b-merge-practice-adapters。
评测结果
采样参数 temperature 0.7、top_p 0.8、top_k 20,单条回答最多 16,384 token。 方括号内为对题目做 bootstrap 得到的 95% 置信区间;Δ 是与 Base 在相同 seed 上的配对差值。
| 模型(seed 数) | MATH-500 | GPQA-Diamond | LCB v6(175 题) | 宏平均 |
|---|---|---|---|---|
| Base(3) | 94.2 [92.4, 95.9] | 41.8 [35.9, 47.6] | 32.8 [26.3, 39.2] | 56.2 |
| 本模型(3) | 94.2 [92.3, 95.9](Δ +0.0) | 41.2 [35.4, 47.3](Δ −0.5) | 35.0 [28.4, 41.7](Δ +2.3) | 56.8 |
| 联合对照:三领域数据训练一个 LoRA(3) | 94.2(Δ +0.0) | 41.2(Δ −0.5) | 32.6(Δ −0.2) | 56.0 |
结论:与 Base 的差距都在置信区间内,没有统计显著的提升。合版后模型输出明显变长 (GPQA 平均输出 853 token,Base 为 453),代码题的截断率从 0.8% 升到 9.1%。
局限
- 训练数据量很小,而且由 Base 自己生成,所以专家相对 Base 的变化本来就很小(验证损失 0.08–0.13)。
- 代码专家只见过 stdin 题,没有见过 LeetCode 式的函数题。
- 科学训练题来自 OpenScience(CC-BY-4.0),其参考答案由模型多数投票得到,可能有错; 发布方说明使用该数据训练的模型可能受 Qwen 许可约束。
加载
from transformers import AutoModelForCausalLM, AutoTokenizer
tok = AutoTokenizer.from_pretrained("MoshiQAQ/qwen3-4b-merge-practice-merged")
model = AutoModelForCausalLM.from_pretrained("MoshiQAQ/qwen3-4b-merge-practice-merged", dtype="bfloat16")
Description