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)

  1. 克隆與安裝
    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
    
  2. 下載所需模型與資料(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 權重
    
  3. 執行推論(CLI 範例)
    python eval_omni.py --load_from model --weight sft_omni
    
    啟動 Gradio 示範:
    cp -r minimind-3o ./scripts/minimind-3o   # 複製轉換器格式權重
    cd scripts && python web_demo_omni.py
    
  4. 在 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
  • 專案
  • 專案