language:
- zh tags:
- minimind
- dense
- xpu
- intel-arc
- from-scratch
- educational
license: mit
MiniMind-64M-Dense
模型简介
这是一个在 Intel Arc B580 (XPU) 上从零训练的 64M 稠密语言模型,基于 MiniMind 架构。训练目的是验证 Intel XPU 上的完整预训练 + SFT 流程,而非追求实用性能。
- 总参数量:约 63.9M
- 架构:稠密 Transformer(RMSNorm + RoPE + SwiGLU + GQA)
- 词表大小:6400(自训练 BPE)
- 隐藏维度:768
- 层数:8
- 注意力头数:8(KV 头数 4,GQA)
- 最大序列长度:8192(训练时实际使用 256–512)
训练细节
预训练
- 数据集:
pretrain_t2t.jsonl(约 846 万条) - 步数:21,200 步
- 耗时:约 1 小时
- 最终 loss:约 2.5–3.0
- 优化器:AdamW(BF16 混合精度)
- 学习率:8e-4(余弦退火)
- 硬件:Intel Arc B580 12GB + Intel i5-14600K + 32GB DDR5
SFT(监督微调)
- 数据集:
sft_t2t.jsonl(约 510 万条) - 步数:27,000 步
- 最终 loss:约 2.0
- 学习率:1e-5
- 硬件:同上
实测显存占用(XPU)
| 阶段 | batch_size | max_seq_len | 显存占用 |
|---|---|---|---|
| 预训练 | 8 | 256 | 2.5–3.0 GB |
| 预训练 | 16 | 384 | 10.8 GB |
| SFT | 8 | 512 | 6.4 GB |
注:以上为 Intel XPU 驱动下的实际观测值,包含模型权重、梯度、优化器状态、激活值及框架开销。
使用方法
from transformers import AutoTokenizer, AutoModelForCausalLM
model_path = "PP12546/MiniPolaris-64M-Dense"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True)
prompt = "你好"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=100, temperature=0.8, top_p=0.9)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
## 局限性
- 容量极小:64M 参数仅能学会基本语法和词频,无法进行逻辑推理、数学计算或复杂对话。
- 长上下文易崩溃:超过约 1K token 后输出容易重复或混乱。
- 不适合角色扮演:无法稳定维持人设,不建议用于实际陪伴或创作。
- 仅用于教学与流程验证:本模型的核心价值是证明 Intel XPU 与 Arc B580单卡上可以完整跑通预训练和 SFT。
文件列表
model.safetensors:推理权重(推荐)
config.json:模型配置
tokenizer.json / tokenizer_config.json:分词器
full_sft_768.pth:训练检查点(含优化器状态,可选)
## 致谢
- 架构与训练脚本基于 [MiniMind](https://github.com/jingyaogong/minimind)
- 训练硬件:Intel Arc B580 (XPU)
- 训练框架:PyTorch + Intel oneAPI