OpenMythos-100M-Mixed

模型简介

这是首个基于 OpenMythos 开源架构的公开预训练 checkpoint 系列。 OpenMythos 实现了循环深度变换器(Recurrent-Depth Transformer, RDT), 通过在核心计算模块中引入循环机制来扩展模型深度。

该模型具有约 112.9M 参数,在 六个领域的混合数据上完成了两阶段预训练(30K + 50K 步,共 80K 步)。 全部训练在消费级硬件 NVIDIA GeForce GTX 1050 Ti (4GB) 上完成。

模型架构

组件 配置
架构 OpenMythos (RDT + MoE)
注意力机制 GQA (Grouped Query Attention)
总参数量 112,898,594 (≈112.9M)
词表大小 199,998 (openai/gpt-oss-20b tokenizer)
模型维度 512
注意力头数 8 (KV 头: 4)
专家数量 4 路由专家 + 1 共享专家
每 token 激活专家数 2
专家维度 256
LoRA 秩 8
循环深度 prelude=2, max_loop_iters=4, coda=2 (运行时深度 8)
最大序列长度(训练) 256
最大序列长度(推理) 256

训练数据

模型在以下六个领域的混合数据上训练(使用 interleave_datasets 流式交错采样):

数据集 领域 阶段1权重 阶段2权重
DISC-Law-SFT 中文法律 20% 25%
pubmed_qa (context) 英文医学 20% 25%
pubmed_qa (QA) 家庭医生问答 10% 15%
wikipedia 20231101.zh 中文百科 10% 15%
python-codes-25k Python 代码 20% 15%
TinyStories 小说创作 20% 5%

阶段2 调整了数据配比:降低了小说权重,提高了法律、医学和百科的占比,使模型更好地学习专业知识。

训练历程

模型分两阶段训练,总计 80,000 步:

阶段 起始 训练步数 数据配比 说明
阶段1 随机初始化 30,000 均衡配比 基础预训练,loss 从 12.3 降至 5.17
阶段2 30K checkpoint 50,000 强化专业领域 继续训练,loss 进一步降至 4.87

训练超参数

参数 阶段1 (0-30K) 阶段2 (30K-80K)
训练步数 30,000 50,000
最大序列长度 256 256
批次大小 1 1
学习率 固定 3e-4 3e-4 → 1e-5 (warmup 1K + cosine decay)
优化器 AdamW (β1=0.9, β2=0.95, weight_decay=0.1)
梯度裁剪 1.0 1.0
混合精度 FP16 (autocast + GradScaler)
训练硬件 NVIDIA GTX 1050 Ti (4GB)
阶段训练 token 数 ≈ 7,680,000 ≈ 12,800,000
总训练 token 数 ≈ 20,480,000
阶段耗时 ≈ 3.5 小时 ≈ 6.7 小时
总耗时 ≈ 10.2 小时

评估结果

所有评估使用相同的数据配比和随机种子。验证 loss 越低越好。

Checkpoint 训练步数 验证 Loss (n_loops=4) 相比上一版本提升
30K 30,000 5.17
80K 80,000 4.87 ↓ 0.30 (-5.8%)

关键发现

  • 第二阶段新增 50K 步训练带来了 5.8% 的验证 loss 降低,说明模型仍在有效学习。
  • 调整数据配比(强化专业领域)的同时,验证 loss 持续下降,证明配方改进有效。
  • 在仅使用 4GB 显存的消费级 GPU 上,将 100M 模型训练到可用水平是完全可行的

深度外推能力

OpenMythos 架构的核心优势是推理时可使用与训练时不同的循环深度。 以下是 80K checkpoint 在不同 n_loops 下的表现:

n_loops 验证 Loss Δ vs n_loops=4
1 7.16 +2.29
2 7.03 +2.16
4(训练深度) 4.87 0(基线)
8 4.96 +0.09
16 4.96 +0.09

深度外推分析

  • n_loops=4 相比 n_loops=1 有 2.29 的巨大优势,证明循环深度机制在有效工作。
  • 从 30K 到 80K,n_loops=1 vs 4 的差距从 1.0 扩大到 2.29,说明模型越来越依赖多次循环。
  • n_loops=8/16 目前略差于训练深度(4),这是正常的——模型需要在推理时见过的循环次数上表现最好。
  • 未来若在不同 n_loops 下进行多深度训练,有望实现更强的深度外推。

使用方法

环境要求

pip install torch datasets loguru
git clone https://github.com/kyegomez/OpenMythos.git
cd OpenMythos
pip install -e .

### 加载模型

import torch
from open_mythos import OpenMythos
from open_mythos.main import MythosConfig
from open_mythos.tokenizer import MythosTokenizer

# 配置模型(必须与训练时一致)
cfg = MythosConfig(
    vocab_size=199998,
    dim=512,
    n_heads=8,
    n_kv_heads=4,
    max_seq_len=256,
    max_loop_iters=4,
    prelude_layers=2,
    coda_layers=2,
    attn_type="gqa",
    n_experts=4,
    n_shared_experts=1,
    n_experts_per_tok=2,
    expert_dim=256,
    lora_rank=8,
    rope_theta=500000.0,
    dropout=0.0,
    kv_lora_rank=256,
    q_lora_rank=512,
    qk_rope_head_dim=32,
    qk_nope_head_dim=64,
    v_head_dim=64,
)

# 加载模型(推荐使用 80K checkpoint)
model = OpenMythos(cfg)
model.load_state_dict(torch.load("mythos_100m_mixed_80k.pt", map_location="cpu"))
model.eval()

# 推理
tokenizer = MythosTokenizer()
prompt = "Question: What are the symptoms of diabetes?\nAnswer:"
ids = tokenizer.encode(prompt)
x = torch.tensor([ids])
with torch.no_grad():
    output = model.generate(x, max_new_tokens=100, n_loops=4, temperature=0.8)
print(tokenizer.decode(output[0].tolist()))

## 预期用途与限制

预期用途:

作为基础模型,用于微调特定领域的任务(如法律文书、医学问答等)

为研究者提供探索 RDT 架构学习动态的平台

作为教学工具,展示如何在小规模 GPU 上训练自定义架构的模型

作为 OpenMythos 架构的首个公开社区 checkpoint 系列

局限性:

由于模型规模和数据量的限制,生成的事实性知识可能不准确

不建议直接用于生产环境

模型在处理长程依赖和高度复杂的推理任务时仍有局限

当前版本仅支持 256 token 上下文,长文本能力有限

后续计划
30K 基础预训练

80K 强化专业领域训练(数据配比优化)

超算上继续训练(seq_len=1024, batch_size=2)

64GB 卡长上下文训练(seq_len=2048)

领域微调版本(法律专版、医学专版等)

模型量化(int8/int4)以支持更广泛的部署

致谢
感谢 Kye Gomez 开源 OpenMythos 架构

感谢 DeepSeek 及其他 AI 助手提供的技术支持

感谢开源社区提供的工具和数据集

特别感谢 Hugging Face 和所有数据集作者

引用
如果你使用了该模型或本训练配方,欢迎引用:

@misc{openmythos-100m-mixed,
  author = {dgcrxs},
  title = {OpenMythos-100M-Mixed: A 100M Recurrent-Depth Transformer Trained on Multi-Domain Data},
  year = {2026},
  publisher = {Hugging Face},
  howpublished = {\url{https://huggingface.co/dgcrxs/OpenMythos-100M-Mixed}},
}

许可证
本项目采用 Apache 2.0 许可证。

联系
如有问题或建议,欢迎在 GitHub Issues 或本仓库的讨论区留言。
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. 🙋 Ask for provider support

Datasets used to train dgcrxs/OpenMythos-100M-Mixed