YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

samai-2b (r18)

我是 samai-2b 模型,由 SamAI 研发,官网是 samai.cc

这是 SamAI 官方 2B 对话模型仓:基于 tchbcb/samai-pnet-dmoe-2b(r12) 继续链式微调。当前进度:r18(stepCE 质量修复轮,Kaggle T4 训练)——增量权重已入库 r18_t4/, 合并权重将在 DSW 官方验收(冻结 CE Δ±0.15 / TB2 / hard acc)通过后上传。

🆕 r18 发布状态(2026-09-16):r18_t4/ 含 ckpt_final 增量(LoRA r16 @ L34–41 + ponder_head + ponder_moe_extras,基于 r17 增量之上)、11258 步完整训练日志、 PATCH_NOTES(6 个训练 bug 修复记录)、T4 侧 r17 vs r18 同数据对比探针结果。 官方验收数字回填中。

身份(r14 固化;r18 待复检)

你叫什么名字? / What's your name? 我是 samai-2b 模型
你是谁开发的? / Who developed you? SamAI
你的官网是什么? / What's your website? samai.cc
你是 GPT/MiniCPM/Claude/通义/DeepSeek 吗? 不是,我是 samai-2b 模型,由 SamAI 研发

⚠️ T4 侧探针提示 r18 身份行有漂移迹象(自称"AI 助手"),DSW 官方评估将复检身份电池, 必要时 r19 回补身份回放数据。

模型规格

基座 MiniCPM5-2B(42L / hidden 2048 / GQA 16+2 / vocab 130560)
架构 Ponder 自适应思考(N=8, τ=0.125)× 动态可变 MoE(L34–41 × 8 专家)× MTP 深度 2
权重 bf16 单文件 ~5.08GB;trust_remote_code=True 加载;r18 走增量加载(见下)
EOS [1, 130073](`<

训练谱系

MiniCPM5-2B 基座 → PonderMoE 转换 → r5b → r11 → r12(= tchbcb/samai-pnet-dmoe-2b,正式发布)
  → r13:agent 精修(DONE 纪律 / shell 语法 / 算术 think 分步,mix_r13 5163 行 ×2ep)
  → r14:身份微调(mix_r14 5207 行 ×2ep = r13 全量回放 + 身份手术改写 + 44 条专属身份行)
  → r15/r16:精修与基准固化(r16 冻结 CE 锚 + 分桶 steps 基线 easy 2.77 / medium 2.97 / hard 3.07)
  → r17:深思熟虑轮(hard steps 4.80 ✓ 达标,但 hard CE +1.57 —— "想得深但糊",TB2 8/24)
  → r18:stepCE 质量修复轮(本仓 r18_t4/:mix_r18 5629 行 ×2ep = 11258 步,
        stepCE 1.0 + β 0.15 + hard 36.6% 上采样 + 难度先验 easy .85/medium .35/hard .1,
        LoRA 双参数组 lr 1.5e-4 heads / 4e-5 lora;Kaggle T4 实测 4.05h,峰值 10.59GB,零 NaN)

r18 T4 探针结果(mix_r18 在分布,n=120/桶,fp16)

分桶 CE r17 → r18 ΔCE steps r17 → r18
easy 6.04 → 3.62 -2.42 2.44 → 3.28
medium 7.35 → 4.02 -3.33 2.84 → 3.50
hard 8.03 → 3.75 -4.28 3.34 → 3.33
  • "糊"病灶修复显著:hard CE 暴降 4.28 nats,三桶全面改善;
  • sanity 生成:12x8=96 直接答对;数学干扰题(乙=甲×3,丙给甲 8 个不影响乙 → 乙=18)推理正确;
  • 已知代价:分桶 steps 差异被抹平(stepCE 副作用,r17 的 2.44→3.34 梯度变为 ~3.3-3.5 平台), 深度分化需 DSW 官方评估(zh_cot.eval 分桶)复核。

加载 r18 增量

import torch, safetensors.torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import LoraConfig, get_peft_model

tok = AutoTokenizer.from_pretrained("tchbcb/samai-2b", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    "<r12 基座本地路径>", trust_remote_code=True,
    torch_dtype=torch.float16, device_map="auto")

# 1) extras(router/mtp)先于 peft 包装加载;2) r17 → r18 顺序覆盖
for f in ["r17/ponder_moe_extras.safetensors", "r18_t4/ponder_moe_extras.safetensors"]:
    st = safetensors.torch.load_file(f)
    model.load_state_dict({k.replace("base_model.model.", ""): v for k, v in st.items()}, strict=False)
model.ponder_head.load_state_dict(safetensors.torch.load_file("r18_t4/ponder_head.safetensors"))
lcfg = LoraConfig(r=16, lora_alpha=32, lora_dropout=0.0, bias="none",
                  target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
                  layers_to_transform=list(range(34, 42)))
model = get_peft_model(model, lcfg)
sd = safetensors.torch.load_file("r18_t4/adapter_model.safetensors")
# 键名归一化(剥 base_model.model. 前缀)后逐参数 copy_,参考 r18_t4/PATCH_NOTES.md bug#3

推理协议(与 r12 一致,重要)

遵循 MiniCPM5 官方姿势,两件事必须做对:

  1. 采样do_sample=True, temperature=1.0, top_p=0.95, repetition_penalty=1.0(greedy 不在官方设计姿势内,会显著加剧复读)。generation_config 已按此固化。
  2. 思考协议
    • 标准模式:正常 apply_chat_template,模型自行输出 <think>...</think> 后给答案;
    • think_off(轻聊场景推荐):在 assistant 首部预填空思考段,闲聊停机率更高、响应更快。
from transformers import AutoModelForCausalLM, AutoTokenizer

tok = AutoTokenizer.from_pretrained("tchbcb/samai-2b", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    "tchbcb/samai-2b", trust_remote_code=True,
    torch_dtype="bfloat16", device_map="auto")

msgs = [{"role": "user", "content": "你叫什么名字?"}]
ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(ids, max_new_tokens=256, do_sample=True,
                     temperature=1.0, top_p=0.95, repetition_penalty=1.0)
print(tok.decode(out[0][ids.shape[1]:], skip_special_tokens=True))

验收门

指标 r12(已发布基线) r16(基准) r17 r18 现状
冻结 CE Δ vs 锚(easy/medium/hard) -0.43 / -0.18 / -0.36 +0.46(hard,FAIL) +1.57(hard,FAIL) T4 探针 -2.42 / -3.33 / -4.28(在分布);官方 zh_cot 待回填(容差 ±0.15)
hard steps(深思熟虑) 3.07 4.80 ✓ T4 探针 3.33(分桶平台化,官方口径待回填)
TB2 24 题 10/24 9/24 8/24 待回填
hard acc 基线 ×1(糊) 目标 ×2,待回填

文件

  • model.safetensors — 合并后 bf16 权重(r18 官方验收通过后上传;当前"weights pending")
  • r18_t4/r18 增量交付ckpt_final/(adapter + ponder_head + ponder_moe_extras + train_report)、 r18_train.log(11258 步完整日志)、PATCH_NOTES.md(6 bug 修复)、r18_t4_probe.json(对比探针原始数据)
  • modeling_samai_pnet.py / config.json — 远程代码(r18 起为 transformers 5.0 兼容版:create_causal_mask 签名修复)
  • chat_template.jinja / tokenizer.json / tokenizer_config.json — 与 MiniCPM5 官方模板逐字节一致
  • generation_config.json — 已固化官方采样参数
  • inference.py / serve_contract.json — 服务化参考实现与契约
Downloads last month
55
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support