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で実装された「Thinker → Talker」パイプライン(高レベルフレームワークの魔法なし)を備え、トレーニングスクリプト、データ、事前学習済み重み、デモインターフェースを同梱しています。


主な特徴(READMEに記載)

  • オムニ機能 – 1つの重みファイルで3つの入力モダリティ(テキスト、音声、視覚)と2つの出力モダリティ(テキスト、リアルタイム音声)を処理します。
  • 超小型のフットプリント – 基本モデル「minimind‑3o」は約113 Mの学習可能なパラメータ(≈0.1 B)です。MoEバージョン(≈315 M)も提供されています。これにより、miniデータセットでRTX‑3090 1台で約2時間でフルチェーントレーニングが可能になります。
  • Thinker–Talker二重パスアーキテクチャ
    • Thinker:マルチモーダル埋め込みを統合し、テキスト応答を生成するMiniMindトランスフォーマー。
    • Talker:Thinkerの隠れ状態を条件として、MTP(Multi‑Token Prediction)により複数層のMimi音声コードを予測。コードはリアルタイムで24 kHz音声にデコードされ、バージンイン(割り込み)とニアデュプレックス相互作用を可能にします。
  • モダリティプロジェクター – 冷却された外部エンコーダ(音声用:SenseVoice‑Small、視覚用:SigLIP‑2)が2層MLPプロジェクターに特徴を供給し、MiniMindの隠れ空間にマッピングします。
  • ボイスクラウンニング&プロンプト – スピーカー埋め込み(CAM++)と参照音声コードを用いたコンテキスト内ボイスクラウンニング。実験用に5つの組み込みボイスプロンプトと7つの未確認プロンプトが提供されています。
  • トレーニングデータ – 2つのバンドル:
    • mini:英語のみの小規模サブセット。全パイプラインを約2時間で実行可能。
    • full:公開された重みに使用された完全な多言語(中国語+英語)データセット。
  • フルスタックコード – データロード(train_sft_omni.py)から評価(eval_omni.py)まで、デモUI(Gradio Web UIとリアルタイム電話モードUI)までをカバー。
  • 第三者の抽象化なし – コアレイヤーはすべてPyTorchテンソルで直接記述。HuggingFaceトークナイザーは利便性のため使用可能。

一般的な利用ケース

シナリオ MiniMind‑Oの役割
研究・教育 – オムニモデルがどのように構築・トレーニングされるかを学ぶ。 0.1 Bの最小モデル、完全なトレーニングスクリプト、1GPUで実行可能な小さなデータセットを提供。
マルチモーダルアシスタントのプロトタイピング – テキストで会話、音声でモデルに話しかけ、画像を提示して音声で応答を得る。 提供された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データセットでのトレーニング(1GPU例)
    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
  • プロジェクト
  • プロジェクト