🚀 Doge 320M
Doge 320M 模型采用动态掩码注意力进行序列转换,可使用多层感知机或跨域专家混合体进行状态转换。该模型由 SmallDoge 社区训练,能在训练时使用自注意力机制,推理时使用状态空间,跨域专家混合体还可继承多层感知机的权重进一步训练。
🚀 快速开始
Doge 320M 模型采用动态掩码注意力(Dynamic Mask Attention)进行序列转换,可选用多层感知机(Multi - Layer Perceptron)或跨域专家混合体(Cross Domain Mixture of Experts)进行状态转换。动态掩码注意力使 Transformer 能在训练时使用自注意力机制,推理时使用状态空间;跨域专家混合体可直接继承多层感知机的权重进行进一步训练。此模型由 SmallDoge 社区训练,详细的算法和模型架构相关论文即将发布,所有训练细节和代码可在 small - doge 仓库中获取。
✨ 主要特性
- 创新的注意力机制:动态掩码注意力允许模型在训练和推理阶段采用不同策略,提升效率。
- 灵活的状态转换:可选择多层感知机或跨域专家混合体,且跨域专家混合体可继承多层感知机权重。
- 社区驱动开发:由 SmallDoge 社区训练,保证模型的持续优化和更新。
💻 使用示例
基础用法
>>> from transformers import AutoTokenizer, AutoModelForCausalLM
>>> tokenizer = AutoTokenizer.from_pretrained("SmallDoge/Doge-320M")
>>> model = AutoModelForCausalLM.from_pretrained("SmallDoge/Doge-320M", trust_remote_code=True)
>>> inputs = tokenizer("Hey how are you doing?", return_tensors="pt")
>>> out = model.generate(**inputs, max_new_tokens=100)
>>> print(tokenizer.batch_decode(out))
📚 详细文档
模型详情
我们通过在 Smollm - Corpus 上进行预训练构建了 Doge 模型。若你想继续对该模型进行预训练,可在 此处 找到未收敛的检查点。这些模型尚未针对指令进行微调,指令模型可在 此处 找到。
预训练信息
属性 |
详情 |
模型类型 |
Doge 系列模型,包括 Doge - 20M、Doge - 60M、Doge - 160M 和 Doge - 320M |
训练数据 |
smollm - corpus |
评估信息
模型 |
MMLU |
TriviaQA |
ARC |
PIQA |
HellaSwag |
OBQA |
Winogrande |
i7 - 11 CPU 上的标记数/秒 |
Doge - 20M |
25.4 |
0.03 |
29.8 |
58.4 |
27.3 |
25.6 |
50.2 |
142 |
Doge - 60M |
26.4 |
0.2 |
37.9 |
61.4 |
31.5 |
28.0 |
50.8 |
62 |
Doge - 160M |
29.2 |
4.8 |
44.4 |
70.1 |
43.4 |
34.4 |
52.2 |
28 |
Doge - 320M |
35.6 |
9.4 |
55.4 |
73.9 |
52.7 |
37.9 |
59.3 |
16 |
训练流程

训练环境
- 镜像:nvcr.io/nvidia/pytorch:24.12 - py3
- 硬件:1x NVIDIA RTX 4090
- 软件:Transformers
📄 许可证
本项目采用 Apache - 2.0 许可证。
📚 引用
@misc{smalldoges,
title={SmallDoges: A Family of Dynamic UltraFast Small Language Models},
author={Jingze, Shi and Yifan, Wu and Bingheng, Wu and Yuyu, Luo},
year={2025},
month={March},
url={https://github.com/SmallDoges/small-doge}
}