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
- 專案
- 專案