miniLLM-base_model

9 downloads 0 likes on ModelScope updated

Model card

miniLLM Pretrain

这是 miniLLM 的预训练基础模型,采用 Decoder-only Transformer 与稀疏 MoE 架构,以 Hugging Face save_pretrained 格式导出。模型完成的是自回归 next-token prediction,适合文本续写、基础语言模型评估,以及作为 SFT、LoRA、蒸馏和强化学习阶段的初始化权重。

[!IMPORTANT] 该模型尚未经过 Chat SFT 或偏好对齐。它可能无法稳定遵循指令,也不应被当作成熟的对话助手使用。需要对话能力时,请使用 out/sft 或在本模型基础上继续训练。

模型信息

项目 配置
架构 Decoder-only Transformer + MoE
总参数量 199,791,360(约 199.8M)
每 Token 激活参数量 65,311,488(约 65.3M)
Transformer 层数 8
隐藏维度 768
注意力 GQA:8 个 Query Heads / 4 个 KV Heads
Head Dim 96
MoE 4 Experts,Top-1 路由
Expert 中间维度 2,432
词表大小 8,192
最大位置长度 32,768
位置编码 RoPE,theta = 1,000,000
归一化 RMSNorm,eps = 1e-6
权重精度 FP32
权重共享 Token Embedding 与 LM Head 共享
KV Cache 当前实现未启用

32,768 是配置允许的最大位置长度,并不代表模型已经在所有长上下文长度上得到充分训练或验证。

目录内容

out/pretrain/
├── README.md
├── config.json
├── generation_config.json
├── model.safetensors
├── tokenizer.json
├── tokenizer_config.json
└── chat_template.jinja
文件 用途
model.safetensors 模型权重,约 762 MiB
config.json 网络结构、MoE 和 Tokenizer 指纹配置
generation_config.json 默认生成配置
tokenizer.json 8K BPE Tokenizer
tokenizer_config.json Tokenizer 特殊 Token 与最大长度
chat_template.jinja 后续对话训练和推理可使用的消息模板

环境安装

在项目根目录执行:

pip install -r requirements.txt

推荐使用 Python 3.10 或更高版本。模型依赖项目中的自定义 MiniLLMConfig 和 MiniLLMForCausalLM,不能脱离 model/model_minillm.py 仅通过通用 AutoModelForCausalLM 加载。

Tokenizer

模型配置保存了 Tokenizer 指纹。继续训练或评估时应始终使用本目录内的 Tokenizer,避免词表 ID 与 Embedding 行错位。

后续训练

本模型可作为项目后续阶段的起点。

完整参数和数据要求请参阅项目中的预训练、SFT、LoRA、蒸馏及强化学习文档,并先通过对应脚本的 --help 查看当前可用参数。

限制与使用建议

  • 模型仅完成预训练,指令遵循、事实可靠性、安全性和多轮对话能力均未得到保证。
  • 生成内容可能包含事实错误、重复、偏见或不恰当文本;不要直接用于医疗、法律、金融等高风险决策。
  • MoE 每个 Token 只激活一个 Expert;总参数量不等于单次前向传播的激活参数量。
  • 当前导出目录未记录训练步数、训练 Loss、数据版本或基准测试结果,因此本文不声明具体效果指标。
  • 发布或商用前,请确认训练数据、项目代码和依赖项各自的许可证及合规要求。