MiniSeek-M0.1
🇨🇳 中文
超小开源 Decoder-only MoE 对话模型。架构参数 150,217,216 ≈ 150.22M(Embedding / LM Head 在结构上共享);本发布在磁盘上分开存放两份权重(disk ≈ 153.49M 元素,与 Dense D0.1 chat 的 untied 落盘方式一致)。预训练基座:MiniSeek-M0.1-base。
目标是对齐 DeepSeek(Dense → MoE,base → chat),不是宣称已对标。
模型概览
| Model ID | wyf-yfw/MiniSeek-M0.1 |
| 基座 | wyf-yfw/MiniSeek-M0.1-base |
| 系列 | MiniSeek-M(MoE) |
| 版本 | 0.1(chat / SFT) |
| 参数量 | 150,217,216(~150.22M tied);disk model.safetensors ≈ 153.49M 元素 |
| 权重文件 | model.safetensors |
| 结构 | MoE Decoder-only(1 shared + 32 routed,top-2) |
| SFT 上下文 | 256 tokens(short256 可行性配方) |
| 分词器 | MiniMind(vocab_size=6400) |
| 对话模板 | ChatML(tokenizer 已带 chat_template) |
| 协议 | MIT |
命名:
MiniSeek-M{x.y}-base— 预训练 / 继续预训练MiniSeek-M{x.y}— SFT / chat(本仓库)
结构
与基座相同的 MoE 栈(d=512,L=8,1 shared + 32 routed,top-2,moe_intermediate_size=512,vocab=6400)。
训练
| 阶段 | 说明 |
|---|---|
| 基座 | MiniSeek-M0.1-base · task 20261028-000054-56bd last.pt |
| SFT 数据 | data/SFT/sft_miniseek_v5_short256.jsonl(short256 可行性 SFT) |
| 初始化 | tasks/20261028-000054-56bd/checkpoints/last.pt |
| 发布权重 | task 20261028-191818-db9d(moe-sft-v5-2-2)checkpoints/last.pt |
| Train step(last) | 6937 |
| Train loss(last) | ≈ 1.91 |
max_seq_len |
256 |
| batch / pack | batch_size=128 · batch_mode=pack |
| 优化器 | AdamW · peak LR 2e-5 → min 1e-6 · warmup 100 |
| Flash / SDPA | 默认开启 |
| aux | aux_coef=0.01 |
推荐流程(与仓库 README 一致):MoE PT last.pt → short256 + max_seq_len=256 MoE SFT;超长样本 keep-head。
代码:github.com/wyf-yfw/miniseek
适用场景
- 超小 MoE chat SFT 学习 / 演示
- 仓库 Web UI 多轮对话
- Dense D0.1 之后的 MoE 对话检查点
不是生产助手。事实错误、弱数学/英文、拒答能力弱都属预期。
使用方法
用 messages + apply_chat_template(与常见 HF 模型一致):
import json
from pathlib import Path
import torch
from huggingface_hub import snapshot_download
from safetensors.torch import load_file
from transformers import AutoTokenizer
# clone https://github.com/wyf-yfw/miniseek ,把 algo/ 加入 PYTHONPATH:
from model.config import ModelConfig
from model.moe import MoELM
repo = snapshot_download("wyf-yfw/MiniSeek-M0.1")
cfg = ModelConfig.from_dict(json.loads(Path(repo, "config.json").read_text()))
model = MoELM(cfg).eval()
model.load_state_dict(load_file(Path(repo) / "model.safetensors"))
tokenizer = AutoTokenizer.from_pretrained(Path(repo) / "tokenizer", trust_remote_code=True)
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "你好,用一句话介绍你自己"},
]
prompt = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
ids = tokenizer.encode(prompt, add_special_tokens=False)
out = model.generate(
torch.tensor([ids]),
max_new_tokens=64,
eos_token_id=tokenizer.eos_token_id,
)
print(tokenizer.decode(out[0, len(ids):].tolist(), skip_special_tokens=True))
自定义
MoELM,尚不支持AutoModelForCausalLM;tokenizer 已带 ChatMLchat_template。
冒烟观感(非正式)
中文闲聊可接上;简单算术偶发正确;英文与抽象解释仍不稳。请当作学习检查点。
局限
- ~150M MoE 容量 — 幻觉与重复常见
- 无 RLHF / 偏好优化
- SFT 上下文 256;超长依赖 keep-head 截断策略
- 停止符
<|im_end|>(id=2);参考 generate 尚无 KV cache
引用
@misc{miniseek-m01,
title = {MiniSeek-M0.1},
author = {wyf-yfw},
year = {2026},
howpublished = {\url{https://huggingface.co/wyf-yfw/MiniSeek-M0.1}},
note = {Ultra-small MoE Decoder-only chat (SFT) checkpoint}
}
致谢
- 基座:
wyf-yfw/MiniSeek-M0.1-base - Dense 对话对照:
wyf-yfw/MiniSeek-D0.1 - short256 SFT 配方见训练仓库 README
🇬🇧 English
Ultra-small open decoder-only MoE chat checkpoint. Architecture params 150,217,216 ≈ 150.22M (tied); this release stores separate tok_emb + lm_head on disk (~153.49M elements), mirroring Dense D0.1-chat packaging. Pretrained base: MiniSeek-M0.1-base.
Goal: align toward DeepSeek (Dense → MoE, base → chat). Not a claim of parity.
Model summary
| Model ID | wyf-yfw/MiniSeek-M0.1 |
| Base | wyf-yfw/MiniSeek-M0.1-base |
| Family | MiniSeek-M (MoE) |
| Version | 0.1 (chat / SFT) |
| Parameters | 150,217,216 (~150.22M tied); disk ≈ 153.49M elements |
| Weight file | model.safetensors |
| Architecture | MoE decoder-only (1 shared + 32 routed, top-2) |
| SFT context | 256 tokens (short256 feasibility recipe) |
| Tokenizer | MiniMind (vocab_size=6400) |
| Chat template | ChatML (chat_template shipped) |
| License | MIT |
Training
| Stage | Detail |
|---|---|
| Base | MiniSeek-M0.1-base · task 20261028-000054-56bd last.pt |
| SFT data | sft_miniseek_v5_short256.jsonl |
| Init | PT last.pt above |
| Release weights | task 20261028-191818-db9d (moe-sft-v5-2-2) last.pt |
| Train step (last) | 6937 |
| Train loss (last) | ≈ 1.91 |
max_seq_len |
256 |
| Optimizer | AdamW · peak LR 2e-5 → min 1e-6 |
Recommended recipe: MoE PT last.pt → short256 + max_seq_len=256 MoE SFT; overlong keep-head.
How to use
Use messages + apply_chat_template — see the Chinese section for the full snippet.
Limitations
- Small MoE capacity — hallucination and repetition common
- No RLHF
- SFT context 256
- Stop token
<|im_end|>; no KV cache yet
Citation
@misc{miniseek-m01,
title = {MiniSeek-M0.1},
author = {wyf-yfw},
year = {2026},
howpublished = {\url{https://huggingface.co/wyf-yfw/MiniSeek-M0.1}},
note = {Ultra-small MoE Decoder-only chat (SFT) checkpoint}
}
- Downloads last month
- 70
Model tree for wyf-yfw/MiniSeek-M0.1
Base model
wyf-yfw/MiniSeek-M0.1-base