🚀 Doge 120M MoE Instruct
Doge 120M MoE Instruct 是一個基於特定架構的模型,它使用動態掩碼注意力進行序列轉換,並可使用多層感知器或跨域專家混合進行狀態轉換。該模型由 SmallDoge 社區訓練,可用於問答任務。
✨ 主要特性
Doge 使用動態掩碼注意力進行序列轉換,並可使用多層感知器或跨域專家混合進行狀態轉換。動態掩碼注意力允許 Transformer 在訓練期間使用自注意力,在推理期間使用狀態空間,而跨域專家混合可以直接繼承多層感知器的權重進行進一步訓練。該模型由 SmallDoge 社區訓練,詳細的算法和模型架構相關論文即將發佈,所有訓練細節和代碼可在 small-doge 倉庫中找到。
💻 使用示例
基礎用法
from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig, TextStreamer
tokenizer = AutoTokenizer.from_pretrained("SmallDoge/Doge-120M-MoE-Instruct")
model = AutoModelForCausalLM.from_pretrained("SmallDoge/Doge-120M-MoE-Instruct", trust_remote_code=True)
generation_config = GenerationConfig(
max_new_tokens=100,
use_cache=True,
do_sample=True,
temperature=0.8,
top_p=0.9,
repetition_penalty=1.0
)
steamer = TextStreamer(
tokenizer=tokenizer,
skip_prompt=True
)
prompt = "Hi, how are you doing today?"
conversation = [
{"role": "user", "content": prompt}
]
inputs = tokenizer.apply_chat_template(
conversation=conversation,
tokenize=True,
return_tensors="pt",
)
outputs = model.generate(
inputs,
tokenizer=tokenizer,
generation_config=generation_config,
streamer=steamer
)
📚 詳細文檔
模型訓練詳情
我們通過先在 SmolTalk 上進行監督微調(SFT),然後在 UltraFeedback Binarized 上進行直接偏好優化(DPO)來構建 Doge-Instruct 模型。
SFT 訓練詳情
DPO 訓練詳情
模型評估
訓練過程可視化
- SFT:

- DPO:

訓練環境
- 鏡像:nvcr.io/nvidia/pytorch:24.12-py3
- 硬件:1x NVIDIA RTX 4090
- 軟件:Transformers, TRL
📄 許可證
本項目採用 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}
}