0.1B Omniモデルの構築:MiniMind-O 深層解説

「聞く・見る・話す」が可能な、わずか0.1Bパラメータの超小型Omniモデル「MiniMind-O」を探索します。フルスタックの透明性とローカル環境でのトレーニングを目的に設計されています。

現在の大規模言語モデル(LLM)の展望において、音声、視覚、テキストを同時に処理・生成できる「Omni」モデルは、巨大なクローズドソースの独占状態にあります。これらのシステムの仕組みを理解しようとする開発者にとって、参入の障壁となっているのは、多くの場合モデルの圧倒的なスケールです。そこで登場したのが MiniMind-O です。このプロジェクトは複雑さを削ぎ落とし、単一のコンシューマー向けGPUでトレーニング可能な、完全に透明な0.1BパラメータのOmniモデルを提供します。

なぜMiniMind-Oが重要なのか

ほとんどのOmni実装は、ASR(音声認識)→ LLM → TTS(音声合成)というカスケード(連鎖)アーキテクチャに依存しています。このアプローチは機能的ではありますが、大きなレイテンシが発生し、感情のニュアンスが失われてしまいます。MiniMind-Oは異なる道を選びました。音声とテキストを隠れ状態(hidden state)レベルで接続する Thinker–Talker デュアルパス・アーキテクチャ を採用し、真のエンドツーエンドのインタラクションを可能にしています。

約0.1Bというパラメータ数は、利用可能な完全なOmni実装の中で最小クラスです。これは単なる推論のためだけでなく、教育目的で設計されています。開発者はコードの全行を読み、トレーニングパイプラインを理解し、モデルアーキテクチャの実験を行うことができます。

アーキテクチャ:ThinkerとTalker

MiniMind-Oは、モデルを2つの機能コンポーネントに分割しています。

  1. Thinker(思考部): MiniMind言語バックボーンをベースにしたこのモジュールは、テキスト、音声、視覚入力を処理します。これらの入力を共有潜在空間にマッピングし、モデルがマルチモーダルなコンテキストを「理解」できるようにします。
  2. Talker(発話部): 独立したTTSエンジンで読み上げるためのテキストを生成する代わりに、Talkerは Mimiオーディオコード を直接予測します。Multi-Token Prediction (MTP) を使用して8層のMimiコードブックシーケンスを生成し、それが24 kHzのストリーミング音声にデコードされます。

中間層のブリッジ(通常は num_hidden_layers // 2 - 1)を使用することで、モデルは最終的な言語ヘッドによって過度に制約されていない、コンテキスト豊かな表現をTalkerに渡すことができます。

はじめに:単一の3090でのトレーニング

MiniMind-Oの最も印象的な点の一つは、そのアクセシビリティです。提供されている mini データセットを使用すれば、単一のNVIDIA RTX 3090上で約2時間でフル・トレーニングパイプラインを実行できます。

事前準備

環境がセットアップされていることを確認してください:

git clone --depth 1 https://github.com/jingyaogong/minimind-o
pip install -r requirements.txt

トレーニングワークフロー

安定性を確保するため、トレーニングは論理的な3つのステージに分かれています:

  1. SFT T2A (Text-to-Audio): テキスト入力に基づいてオーディオコードを生成するようにモデルを調整します。
  2. SFT A2A (Audio-to-Audio): 音声ベースの指示を可能にするために音声入力を導入します。
  3. SFT I2T (Image-to-Text): 画像入力を処理するためにビジュアルプロジェクターを調整します。

SFTステージの実行コマンド例:

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

主な技術的特徴

  • ストリーミングとバージイン(割り込み): モデルはリアルタイムの音声生成と、VAD(音声活動検知)を使用した基本的なバージイン(モデルの発話を遮って話しかけること)をサポートしています。
  • インコンテキスト音声クローニング: 参照オーディオコードをコンテキストとして入力することで、重みの再学習なしでゼロショットの音声クローニングが可能です。
  • ネイティブPyTorch実装: すべてのコアアルゴリズムはPyTorchでゼロから実装されており、重厚なサードパーティ製抽象化を避け、コードの可読性を非常に高く保っています。

トレードオフ

0.1Bパラメータであるため、MiniMind-OはGPT-4oの代替にはなりません。長文の推論や複雑な視覚的空間関係の把握には苦労します。しかし、完璧な「サンドボックス」として機能します。隠れ層の次元(384 vs 768)が音声の一貫性にどう影響するか、あるいはMoE(混合専門家)レイヤーがトレーニング効率にどう影響するかを実験したい場合、このプロジェクトはまさにそのためのフレームワークを提供します。

開発者にとって、MiniMind-OはAIをブラックボックスとして扱うのをやめ、ゼロから構築を始めるための招待状なのです。

ソース

jingyaogong/minimind-o: 🎙️ 「大模型」从0训练0.1B能听能说能看的全模态Omni模型!A 0.1B Omni model trained from scratch, capable of listening, speaking, and seeing!