jingyaogong/minimind-o
🎙️ A 0.1B Omni model trained from scratch, capable of listening, speaking, and seeing!
MiniMind‑O – 超小型端到端全模态模型(约 0.1 B 参数)
是什么 – MiniMind‑O 是一个开源的多模态(文本 + 语音 + 图像)模型,能够 理解 任意输入,并以文本和流式语音形式 响应。整个“思考者 → 说话者”流水线完全用 PyTorch 从零实现(无高级框架魔法),并附带训练脚本、数据、预训练权重和演示接口。
主要特性(README 中描述)
- 全模态能力 – 单一权重文件可处理三种输入模态(文本、音频、视觉)和两种输出模态(文本、实时语音)。
- 超小体积 – 基础模型“minimind‑3o”约 113 M 可训练参数(≈0.1 B)。也提供 MoE 变体(≈315 M)。这使得使用 mini 数据集在单张 RTX‑3090 上约 2 小时内完成全链路训练成为可能。
- 思考者–说话者双路径架构
- 思考者:一个 MiniMind 变压器,融合多模态嵌入并生成文本回复。
- 说话者:一个独立的 MiniMind 模块,基于思考者的隐藏状态,通过 MTP(多标记预测)预测多层 Mimi 音频码。这些码实时解码为 24 kHz 语音,支持打断(barge-in)和近双工交互。
- 模态投影器 – 冷冻的外部编码器(音频用 SenseVoice‑Small,视觉用 SigLIP‑2)通过两层 MLP 投影器将特征映射到 MiniMind 的隐藏空间。
- 语音克隆与提示 – 使用说话人嵌入(CAM++)和参考音频码实现上下文内语音克隆。提供 5 个内置语音提示和 7 个未见提示用于实验。
- 训练数据 – 两个数据包:
- mini:仅英文的小型子集,可在约 2 小时内运行完整流水线。
- full:用于发布权重的完整多语言(中文 + 英文)数据集。
- 全栈代码 – 从数据加载(
train_sft_omni.py)到评估(eval_omni.py)和演示 UI(Gradio Web UI 和实时手机模式 UI)全覆盖。 - 无第三方抽象 – 所有核心层均直接使用 PyTorch 张量编写;代码仍可方便地使用 HuggingFace 分词器。
典型应用场景
| 场景 | MiniMind‑O 如何帮助 |
|---|---|
| 研究与教育 – 从零学习全模态模型的构建与训练。 | 提供 0.1 B 最小模型、完整训练脚本和可在单 GPU 上运行的微型数据集。 |
| 多模态助手原型 – 用文本聊天、对模型说话,或展示图像并获得语音回答。 | 使用提供的 CLI(eval_omni.py)或 Gradio/WebUI 实现实时交互,支持打断。 |
| 语音风格实验 – 测试上下文内语音克隆或比较不同说话人嵌入。 | 内置语音提示 + 可提供任意参考音频码。 |
| 小型全模态模型基准测试 – 与更大开源模型比较参数效率、CER/WER 或语音克隆相似度。 | 技术报告中包含已发布的评估曲线、CER/WER 数值和说话人相似性表格。 |
快速入门(来自 README)
- 克隆与安装
git clone --depth 1 https://github.com/jingyaogong/minimind-o cd minimind-o pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple - 下载所需模型与数据(ModelScope 或 HuggingFace LFS)
modelscope download --model gongjy/SenseVoiceSmall --local_dir ./model/SenseVoiceSmall modelscope download --model gongjy/siglip2-base-p32-256-ve --local_dir ./model/siglip2-base-p32-256-ve modelscope download --model gongjy/mimi --local_dir ./model/mimi modelscope download --model gongjy/campplus --local_dir ./model/campplus modelscope download --model gongjy/minimind-3o-pytorch llm_768.pth --local_dir ./out # 基础 LLM 权重 - 运行推理(CLI 示例)
或 启动 Gradio 演示:python eval_omni.py --load_from model --weight sft_omnicp -r minimind-3o ./scripts/minimind-3o # 复制变压器格式权重 cd scripts && python web_demo_omni.py - 在 mini 数据集上训练(单 GPU 示例)
(后续音频投影和全流水线步骤遵循相同模式。)cd trainer CUDA_VISIBLE_DEVICES=0 torchrun --master_port 29560 --nproc_per_node 1 \ train_sft_omni.py --learning_rate 5e-4 \ --data_path ../dataset/sft_t2a_mini.parquet --epochs 1 \ --batch_size 40 --use_compile 1 --from_weight llm --save_weight sft_zero \ --max_seq_len 512 --use_wandb 0 --use_moe 0
更多信息获取
- 技术报告 – arXiv: 2605.03937(README 顶部链接)。
- 模型权重与集合 – ModelScope 和 HuggingFace 中的 MiniMind‑O 集合。
- 演示视频与实时 Gradio 演示 – README 中提供链接。
- 相关项目 – 基础变压器骨干的 MiniMind(LLM)和 MiniMind‑V(视觉语言)。
TL;DR
MiniMind‑O 为拥有中等 GPU 的任何人提供了一个完整的端到端多模态模型(文本 + 语音 + 图像),可从零训练或开箱即用用于交互式演示。其超小的 0.1 B 体积、开源代码和捆绑数据使其成为学习或原型化全模态 AI 的实用入门点。
相关
- 项目
- 项目
- Dispatch
- 项目
- 项目