OpenMythos 部署教程:从零开始运行循环深度Transformer
OpenMythos 是一个基于公开研究文献、从第一性原理重构的 Claude Mythos 架构理论实现。它实现了一种循环深度Transformer(Recurrent-Depth Transformer, RDT),通过反复执行共享的网络层来实现深度推理,而非堆叠数百个独立层。本文将指导你完成从环境准备到模型推理的完整部署流程。
1. 核心概念速览
在开始部署前,了解 OpenMythos 的核心架构有助于理解后续的操作:
- 三段式结构:模型由 Prelude(前奏,标准层,运行一次)→ Recurrent Block(循环块,核心,循环多次)→ Coda(尾声,标准层,运行一次)组成。
- 循环更新:循环块的核心更新规则为
h_{t+1} = A·h_t + B·e + Transformer(h_t, e),其中e是编码后的输入,在每一步都会被注入,防止模型在循环中漂移。 - 稳定性保障:通过参数化确保循环更新的谱半径小于1,从而保障训练的稳定性,这也是该项目能够成功运行的关键。
2. 环境准备
2.1 基础依赖
- 操作系统:Linux / macOS / Windows(推荐Linux)
- Python 版本:3.10 或更高版本
- CUDA:如使用GPU加速,需安装CUDA 12.0+ 和对应版本的PyTorch
2.2 安装 OpenMythos
最直接的安装方式是通过 pip 从 PyPI 获取:
1 | # 基础安装 |
2.3 验证安装
创建一个测试脚本 test_install.py 来验证安装是否成功:
1 | import torch |
运行该脚本:
1 | python test_install.py |
3. 加载预训练模型(推荐方式)
直接从头训练一个循环深度Transformer成本较高。社区已经提供了多种格式的预训练权重,推荐直接加载使用。
3.1 从 Hugging Face 加载
Hugging Face 上有经过清理和适配的 OpenMythos 实现,可直接使用 transformers 库加载。
安装依赖:
1 | pip install transformers accelerate torch |
加载模型并推理:
1 | from transformers import AutoTokenizer, AutoModelForCausalLM |
3.2 使用 vLLM 部署高性能推理服务
对于生产环境,vLLM 能够提供高效的推理服务,并兼容 OpenAI API。
1 | # 安装 vLLM |
3.3 使用 Ollama 或 llama.cpp(量化模型)
社区提供了量化版本(如GGUF格式),可以在资源受限的设备上运行。
使用 Ollama:
1 | ollama run hf.co/jabbatheduck/OpenMythos-GGUF:Q6_K |
使用 llama.cpp:
1 | # 安装 llama.cpp |
4. 从零开始训练(可选,面向研究者)
如果你希望从零开始训练 OpenMythos 以验证其架构,项目提供了训练脚本。
4.1 准备训练脚本
项目仓库中有 3B 模型的训练脚本 training/3b_fine_web_edu.py。下载该脚本并安装额外依赖:
1 | # 下载脚本 |
4.2 数据准备
脚本默认使用 Hugging Face 上的 FineWeb-Edu 数据集,这是一个经教育质量筛选的网页语料库。
- 默认使用:
sample-10BT(100亿token样本),用于快速验证流程。 - 完整训练:可修改脚本中的数据集为
default以使用完整1.3T token的语料库。
4.3 执行训练
单卡训练:
1 | python training/3b_fine_web_edu.py |
多卡分布式训练(自动检测GPU数量):
1 | torchrun --nproc_per_node=$(python -c "import torch; print(torch.cuda.device_count())") training/3b_fine_web_edu.py |
训练关键配置:
- 优化器:AdamW
- 精度:H100/A100 使用 bfloat16,较旧GPU使用 float16 + GradScaler
- 调度:2000步线性预热 → 余弦衰减
- 目标:约300亿token(针对循环架构的Chinchilla最优调整)
注意:从头训练 OpenMythos 需要大量计算资源(尤其是GPU显存)和时间,研究性质更强。普通用户强烈建议直接使用预训练模型。
5. 故障排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
安装 open-mythos[flash] 失败 |
缺少CUDA或编译工具链 | 安装CUDA Toolkit和对应编译器;或只安装 open-mythos 基础版本 |
| 加载Hugging Face模型时键不匹配 | 模型结构定义与权重保存时的结构不一致(如MoE替换为Dense层) | 检查模型仓库的说明,在加载模型前对模型结构进行相应修改(如替换MoEFFN为Expert) |
| OOM(显存不足) | 模型规模过大或序列长度过长 | 使用更小的模型变体(如1B);在生成时降低 max_new_tokens;启用CPU Offloading |
| 推理结果质量差 | 使用了未经训练或小型变体;循环次数 n_loops 设置不当 |
使用更大规模或经过微调的权重;适当增加 n_loops 参数,但注意“过度思考”问题 |
6. 总结
OpenMythos 是一个探索前沿AI架构的实验性项目。通过本教程,你可以:
- 快速体验:通过
pip install open-mythos安装并运行测试脚本。 - 使用预训练模型:从 Hugging Face 加载社区权重,进行推理或使用 vLLM 部署服务。
- 研究性训练:利用提供的脚本在 FineWeb-Edu 数据集上从头训练,但需要充足的计算资源。



