源码与参考
这一页把学习 MiniMind-O 最常用的本地文件、在线资料和术语表集中到一起。读源码时可以常开这个页面当索引。
源码地图
| 文件 | 建议关注 | 学习问题 |
|---|---|---|
| model/model_minimind.py | `MiniMindConfig`、`MiniMindBlock`、`MiniMindForCausalLM`、MoE。 | 语言模型主干如何实现? |
| model/model_omni.py | `OmniConfig`、projector、`MiniMindOmni.forward`、`stream_generate`、`RealtimeSession`。 | 多模态如何注入?Talker 如何生成 audio codes? |
| dataset/omni_dataset.py | Parquet 字段、chat prompt、9 路 input_ids、audio labels。 | 一个训练样本到底长什么样? |
| trainer/train_sft_omni.py | collate、text/audio loss、训练模式、DDP。 | 训练循环如何同时优化文本和语音? |
| trainer/trainer_utils.py | 模型初始化、权重加载、checkpoint、学习率。 | 从 LLM 权重到 Omni 权重如何衔接? |
| eval_omni.py | 模型加载、评估模式、Mimi 解码、样例组织。 | 怎么快速验证各输入输出路径? |
| scripts/web_demo_omni.py | Gradio demo、音色下拉、图像/音频输入。 | 怎么做一个简单交互界面? |
| webui/web_demo.py | Flask/WebSocket、音色克隆、实时 VAD、barge-in。 | 电话模式如何组织工程状态? |
| trainer/train.sh | mini/full dense/MoE 训练命令。 | 推荐训练顺序是什么? |
在线资料
术语表
| 术语 | 解释 |
|---|---|
| Thinker | 负责多模态理解和文本生成的 MiniMind 主干。 |
| Talker | 负责把 Thinker 的语义条件渲染成 Mimi audio codes 的独立模块。 |
| MTP | Multi-Token Prediction,多 token 预测。这里指同时预测多层 codebook。 |
| Mimi codes | Mimi codec 的离散音频表示,8 层 codebook 共同描述音频帧。 |
| Projector | 把外部 encoder 的隐藏维度映射到 MiniMind hidden size 的 MLP。 |
| Bridge layer | Thinker 中间层 hidden states,被 Talker 当作语义条件。 |
| VAD | Voice Activity Detection,用来判断用户是否在说话。 |
| Barge-in | 用户在模型说话时再次开口,系统中断当前回复并处理新输入。 |
| CER/WER | 字符错误率/词错误率,常用于语音输出内容一致性评估。 |
| Speaker embedding | 说话人向量,MiniMind-O 默认用 192 维条件控制音色。 |
常用命令速查
# 安装依赖
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 文本/语音/图像全模式评估
python eval_omni.py --load_from model --weight sft_omni --mode -1 --prompt_lang 2
# Gradio WebUI
cp -r minimind-3o ./scripts/minimind-3o
cd scripts && python web_demo_omni.py --port 8888
# mini 训练
cd trainer && bash train.sh
许可与引用
源项目使用 Apache-2.0 许可证。做公开复现、课程或博客时,建议引用 GitHub 仓库和技术报告,并标明模型、数据和权重来源。