ChunMengDie-1.1-14.25M-A13.46M-K1-S1-E2-MoE-8K

📄 Read the paper: ChunMengDie: A 14.25M Mixture-of-Experts Model for Chinese Dialogue at the Edge

本项目开训时,可能是已知最小的纯文本 MoE 对话模型。

关于作者

一个热爱 AI 的八年级学生。欢迎交流学习。

训练环境

本模型在以下硬件上完成训练:

显卡 显存 状态
NVIDIA RTX Pro 6000 96GB ✅ 成功跑完训练
NVIDIA RTX 5090 32GB ❌ OOM(显存不足)
NVIDIA RTX 4090D 24GB ❌ OOM(显存不足)

最终只有 RTX Pro 6000 跑起来了。 其余两张卡在训练过程中因显存不足而退出,这也从侧面说明:这个 14.25M 的 MoE 虽然参数量不大,但在训练时仍然需要较大的显存来容纳激活值和专家并行计算。


训练状态

本仓库完整开源了训练状态,包括:

  • 模型权重(model.safetensors
  • 优化器状态(optimizer.pt
  • 学习率调度器状态(scheduler.pt

这意味着你可以:

  • 从任意 checkpoint 继续训练
  • 基于本权重进行二次微调
  • 完全复现本模型的训练过程

注意:训练状态是在 RTX Pro 6000(96GB)上生成的。切换到其他显卡时,建议根据显存大小调整 batch size 和学习率。如果你有 96GB 显存的卡,可以直接续训;如果显存更小,建议先尝试更小的 batch size。


📊 模型信息

指标
总参数量 14.25M
激活参数量 13.46M
架构 MoE(1 共享专家 + 2 路由专家,Top-1)
上下文长度 8192
层数 6
隐藏维度 256
注意力头 4
词表大小 32001
训练数据 0.289B Token
训练轮数 1 Epoch
最终 Loss 2.0
支持语言 中文、英文

🧠 架构详解

        输入 Token
            │
            ▼
    ┌───────────────┐
    │   Embedding   │  ← 共享权重 (lm_head)
    └───────────────┘
            │
            ▼
    ┌─────────────────────────────────┐
    │         6层 MoE Block         │
    │  ┌─────────────────────────┐    │
    │  │       LayerNorm       │    │
    │  │            │          │    │
    │  │    Multi-Head Attn    │    │
    │  │            │          │    │
    │  │       LayerNorm       │    │
    │  │            │          │    │
    │  │  ┌────────┴────────┐    │    │
    │  │  │   Router       │   │    │
    │  │  │  (Softmax)     │   │    │
    │  │  └────┬─────┬─────┘    │    │
    │  │       │     │         │    │
    │  │  ┌────▼─────▼────┐     │    │
    │  │  │Shared Expert │     │    │
    │  │  │   (固定激活)  │     │    │
    │  │  └────────┬──────┘     │    │
    │  │           │           │    │
    │  │  ┌────────▼──────┐     │    │
    │  │  │Router Expert │     │    │
    │  │  │  (Top-1)     │     │    │
    │  │  └────────┬──────┘     │    │
    │  │           │           │    │
    │  │       Add &           │    │
    │  └─────────────────────────┘    │
    └─────────────────────────────────┘
            │
            ▼
    ┌───────────────┐
    │   LayerNorm  │
    └───────────────┘
            │
            ▼
    ┌───────────────┐
    │   LM Head    │  ← 共享权重 (Embedding)
    └───────────────┘
            │
            ▼
         输出 Token

稀疏性说明: 每个 Token 经过:

  • 共享专家(固定激活):1 个
  • 路由专家(动态选择):1 个(Top-1)
  • 激活专家总数:2 个
  • 激活参数占比:13.46 / 14.25 ≈ 94.5%

🚀 快速使用

安装依赖

pip install transformers torch

加载模型

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "XingChina/ChunMengDie-1.1-14.25M-A13.46M-K1-S1-E2-MoE-8K"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

推理示例

prompt = "用户:你好\n助手:"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(
    inputs.input_ids,
    max_new_tokens=128,
    temperature=0.7,
    do_sample=True,
    pad_token_id=tokenizer.eos_token_id
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)

交互式聊天

def chat():
    print("春梦蝶已就绪,输入 exit 退出")
    while True:
        user = input("你: ")
        if user.lower() == "exit":
            break
        prompt = f"用户:{user}\n助手:"
        inputs = tokenizer(prompt, return_tensors="pt")
        outputs = model.generate(
            inputs.input_ids,
            max_new_tokens=128,
            temperature=0.7,
            do_sample=True,
            pad_token_id=tokenizer.eos_token_id
        )
        response = tokenizer.decode(outputs[0], skip_special_tokens=True)
        response = response.split("助手:")[-1].strip()
        print(f"春梦蝶: {response}")

chat()

📖 训练细节

📚 数据来源声明

本模型训练数据来自以下公开数据集:

编号 数据集名称 许可证
1 liumindmind/NekoQA-10K Apache-2.0
2 liumindmind/NekoQA-30K Apache-2.0
3 TigerResearch/tigerbot-book-qa-1k Apache-2.0
4 TigerResearch/sft_zh 合集 Apache-2.0
5 llm-wizard/alpaca-gpt4-data-zh CC BY 4.0

⚠️ 关于数据来源的补充说明

本模型使用的训练数据中,尚有约 10% 的数据(主要为通用 SFT 和中医问答类)未能精确追溯到原始数据集名称。该类数据同样来自 Hugging Face 公开平台,许可证为宽松类型(Apache-2.0 / MIT / BSD / CC BY 4.0),但具体仓库名称在早期收集时未完整记录。

如果您是上述某一数据的原作者或版权持有人,并且发现本模型的训练数据中包含了您的作品但未在此处列出,请通过 Issues 或 Hugging Face 评论区联系我们,我们将第一时间:

  1. 补充您的数据集名称和许可证信息
  2. 或根据您的要求移除相关数据

感谢您的理解与支持!

训练参数

参数
总 Token 数 ~0.289B
训练轮数 1 Epoch
优化器 paged_adamw_8bit
精度 BF16
Batch Size 4
学习率 3e-4(warmup 500 steps)

🔬 评估与限制

已知能力

  • ✅ 中文文本生成
  • ✅ 8K 上下文长序列处理
  • ✅ 极轻量级部署(~50MB 权重)
  • ✅ 支持 4bit 量化推理
  • ✅ 在中医、三国、猫娘等特定领域有一定表现

当前限制

  • ⚠️ 实验阶段:模型仅训练 1 个 Epoch,输出质量仍在改进中
  • ⚠️ 领域聚焦:中医和猫娘风格表现较好,通用知识相对有限
  • ⚠️ 输出不稳定:部分生成内容可能存在语义不连贯

💡 后续计划:持续增加数据量和训练轮数,提升对话质量。欢迎贡献高质量中文对话数据!


📚 数据来源声明

本模型训练数据来自以下公开数据集:

  • liumindmind/NekoQA-10K(Apache-2.0)
  • cyberlangke/Nana-catgirl-dataset-110k(MIT)
  • TigerResearch/tigerbot-book-qa-1k(Apache-2.0)
  • 多个来自 Hugging Face 的公开 SFT 数据集(Apache-2.0 / MIT / BSD)

ℹ️ 部分数据在下载后进行了格式统一处理,原始来源链接未能完整保留。所有数据均来自 Hugging Face 公开平台,且许可证均为宽松类型。若您是某份数据的版权持有人,欢迎通过 Issues 联系我们补充或调整来源信息。


🙏 致谢

感谢所有开源数据集的贡献者,以及 Hugging Face 社区的支持。


📄 论文 / 引用

如果你在论文或研究中使用本模型,请引用:

@misc{ChunMengDie-14.25M-MoE-8K,
  author = {XingChina},
  title = {ChunMengDie: A 14.25M Mixture-of-Experts Model for Chinese Dialogue},
  year = {2026},
  publisher = {Hugging Face},
  howpublished = {\url{https://huggingface.co/XingChina/ChunMengDie-1.1-14.25M-A13.46M-K1-S1-E2-MoE-8K}}
}

📧 联系

  • 作者:XingChina
  • Hugging Face: XingChina
  • 项目地址:XingChina/ChunMengDie-1.1-14.25M-A13.46M-K1-S1-E2-MoE-8K

📄 许可证

本项目采用 BSD 3-Clause 许可证。详见 LICENSE 文件。

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 1 Ask for provider support