Configuration Parsing Warning:In tokenizer_config.json: "tokenizer_config.chat_template" must be one of [string, array]

Mugi Decision 2B

基于 Qwen/Qwen3.5-2B 文本骨干训练的可变候选评分模型。 输入问题描述和至少两个候选,输出每个候选的标量分数及当前候选集合内的 softmax。 本仓库提供已合并 LoRA 的独立 BF16 文本权重,共 1,881,827,136 个参数;无需另行下载基础模型或适配器。 这是 Mugi Decision 项目的独立衍生版本,不是 Qwen 官方发布。

Mugi Decision 2B is a standalone text decision scorer derived from Qwen3.5-2B. It uses a shared scalar head instead of vocabulary prediction. It does not generate chat responses. This release contains the text backbone and decision head; vision weights are not included.

下载与使用

先安装与你的设备匹配的 PyTorch,再安装依赖并下载完整仓库:

hf download ilovemugi/mugi-decision-2b --local-dir mugi-decision-2b
cd mugi-decision-2b
python -m pip install -r requirements.txt
python predict.py --input example.json --device cuda

依赖文件不替换已安装的 PyTorch;验证环境为 PyTorch 2.13.0、Transformers 5.17.0。 NVIDIA CUDA 和 AMD ROCm 下 PyTorch 的 GPU 设备名均为 cuda。 没有 GPU 时可传 --device cpu;CPU 仅做过小输入加载检查,不提供吞吐承诺。 脚本默认 BF16、完整分支前向、每批 4 个候选、最大分支长度 1024,过长输入报错,不静默截断。

输入文件格式:

{"description":"一加一等于几?","options":[{"id":"a","text":"二"},{"id":"b","text":"三"}]}

根目录提供架构代码;审阅后可使用 Transformers 自定义模型接口:

import torch
from transformers import AutoModel, AutoTokenizer
from decision_encoding import DecisionEncoder

model = AutoModel.from_pretrained(
    ".", trust_remote_code=True, dtype=torch.bfloat16,
    attn_implementation="sdpa",
).to("cuda").eval()
tokenizer = AutoTokenizer.from_pretrained(".")
tokenizer.padding_side = "right"
record = {"description":"Which animal barks?", "options":[
    {"id":"a","text":"A cat"}, {"id":"b","text":"A dog"}]}
encoder = DecisionEncoder(tokenizer, model.config.include_enum, max_length=1024)
batch = encoder.collate([record])
batch = {k: v.to("cuda") if isinstance(v, torch.Tensor) else v for k,v in batch.items()}
with torch.inference_mode():
    scores = model(**batch).flat_scores
print(scores, scores.softmax(-1))

公共前缀包含描述和完整选项列表,各分支追加当前选项,最后一个有效 token 经共享评分头输出分数。 六个独立标记为 <|desc_begin|>、<|desc_end|>、<|enum_begin|>、<|enum_end|>、<|current_begin|>、<|current_end|>。 请通过 DecisionEncoder 构造输入,不调用 generate 或聊天模板。 改变候选列表会改变模型输入;softmax 是候选间的相对分数,不是校准后的正确概率。

训练与选模

  • 来源固定 revision:15852e8c16360a2fea060d615a32b45270f8a8fc。
  • 同一份 mixed2000 训练集:2,000,000 题;中文 800,000、英文 800,000、其余 13 种语言合计 400,000。
  • 从原始 Qwen 文本骨干转换的决策底模开始训练,不从 0.8B 或其他尺寸适配器初始化。
  • LoRA r=16、alpha=32、dropout=0.05,同时训练评分头和六个标记的 embedding。
  • BF16,1 epoch,共 125,000 次更新;全局 batch=16,初始学习率 5e-5,每 5,000 步验证。
  • 按训练语言比例加权的验证准确率选择最佳模型:checkpoint-125000;没有用测试集选 checkpoint。
  • 本次导出将最佳适配器合并到 BF16 骨干;DeltaNet 内部原本保留的 FP32 norm 权重继续保持 FP32。

独立测试集

以下为合并前最佳适配器在本项目冻结测试子集上的成绩,5888 题、BF16、固定选项顺序、没有运行时过滤。 不是完整官方 benchmark 榜单分数。2B 和 4B 使用完全相同的测试题目、标签和选项顺序。

模型 正确 / 总题数 总准确率
2B 4913 / 5888 83.4409%
4B 5105 / 5888 86.7018%

本版本各语言结果:

语言 题数 准确率
中文 (zh) 1075 73.5814%
英文 (en) 1485 75.6902%
阿拉伯语 (ar) 256 89.0625%
德语 (de) 256 95.3125%
西班牙语 (es) 256 91.4062%
法语 (fr) 256 93.3594%
印地语 (hi) 256 89.4531%
印尼语 (id) 256 96.8750%
意大利语 (it) 256 96.0938%
日语 (ja) 256 85.9375%
韩语 (ko) 256 71.4844%
葡萄牙语 (pt) 256 97.2656%
俄语 (ru) 256 87.8906%
泰语 (th) 256 87.5000%
越南语 (vi) 256 89.4531%

完整聚合指标(含来源分组和置信区间)见 eval_results.json。 测试文件 SHA256:cda5b518a28b50ee89216653103b79a7f91f55c76906476602d47697e05b1373。 既有预训练数据不可完全审计,本项目划分与排重不能证明没有预训练污染。

发布验证与限制

导出前核对基础文件及已评测适配器的 SHA256;合并后核对训练标记 embedding 和评分头、全部参数有限性, 再通过独立目录的 AutoModel 重新加载检查所有保存张量,并运行中英两个短输入。 这两个输入仅验证加载和数值,不是准确率评测。合并前后首选一致 2/2, 最大分数差 0.046875。 BF16 合并和不同硬件/算子会带来舍入差异;没有对本次合并后的完整权重重跑 5888 题,不能承诺与上表逐题完全一致。 详见 release_verification.json。

本次提供文本推理,不包含视觉模块或图文评测。训练最大分支长度 1024,未验证更长上下文的准确率。 模型适用于候选选择、排序与分类研究;候选措辞、顺序和任务分布可能影响结果。

许可与来源

原始文本骨干和 tokenizer 来自 Qwen3.5-2B,遵循 Apache-2.0;保留 LICENSE 和 NOTICE。 Mugi Decision 的架构修改、微调及推理代码沿用项目 Apache-2.0 发布方式。 训练数据各来源的许可和使用限制分别适用;模型许可不授予重新分发全部训练数据的权利。

Downloads last month
15
Safetensors
Model size
2B params
Tensor type
F32
·
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ilovemugi/mugi-decision-2b

Finetuned
Qwen/Qwen3.5-2B
Finetuned
(480)
this model