Home
Login

軽量級GPTトレーニングフレームワーク。2時間で完全にゼロから26Mパラメータの小型言語モデルをトレーニング。

Apache-2.0Python 22.6kjingyaogongminimind Last Updated: 2025-04-30

MiniMind - 超軽量級GPT訓練フレームワーク

プロジェクト概要

MiniMindは、極めて軽量な大規模言語モデル訓練フレームワークであり、最小バージョンはGPT-3の1/7000のサイズで、通常の個人用GPUで高速に訓練できます。このプロジェクトでは、26Mパラメータの小規模なGPTモデルを2時間以内に完全にゼロから訓練できます。

コア機能

🚀 超軽量化設計

  • 極小パラメータ数: 最小モデルはわずか26M(0.02B)パラメータで、スムーズな対話能力を実現
  • 効率的な訓練: 単一の3090グラフィックボードで2時間以内に訓練を完了可能
  • リソースフレンドリー: 通常の個人用GPUで実行でき、訓練のハードルを大幅に低減

🧠 完璧な訓練エコシステム

プロジェクトは、大規模モデルの非常にシンプルな構造をオープンソースで公開し、以下のコア機能が含まれています。

  1. 事前訓練 (Pretraining) - 基礎言語モデルをゼロから訓練
  2. 教師ありファインチューニング (SFT) - 教師ありの指示によるファインチューニング
  3. LoRAファインチューニング - 低ランク適応ファインチューニング技術
  4. DPOアルゴリズム - 直接選好最適化アルゴリズム
  5. モデル蒸留 - 知識蒸留アルゴリズム
  6. MoE拡張 - 混合エキスパートモデルのサポート

🎯 技術アーキテクチャ

フレームワークサポート

  • PyTorchネイティブ: PyTorchネイティブフレームワークに基づいて構築され、マルチGPUアクセラレーションをサポート
  • 高い互換性: transformers、accelerate、trl、peftなどの主要なフレームワークと互換性あり
  • 柔軟なデプロイ: シングルGPUおよびマルチGPU訓練設定(DDP、DeepSpeed)をサポート

訓練特性

  • 中断からの再開: 訓練プロセスはいつでも停止および再開をサポート
  • マルチカード訓練: DDP分散訓練をサポートし、マルチマシンマルチカードクラスタに拡張可能
  • 監視統合: wandb訓練プロセス記録と可視化をサポート

🌟 マルチモーダル拡張

MiniMind-V 視覚マルチモーダルバージョン

  • 視覚理解: 視覚マルチモーダルVLMに拡張:MiniMind-V
  • 統一アーキテクチャ: MiniMind言語モデルをベースに、視覚エンコード能力を追加

📊 モデル能力

MiniMindは、テキスト生成、対話インタラクション、知識検索など、さまざまなタスクを実行できます。与えられたプロンプトまたはコンテキストに基づいてテキストを生成し、対話インタラクションを行い、さまざまなトピックの知識を検索できます。

主要機能

  • テキスト生成: プロンプトに基づいて一貫性のあるテキストコンテンツを生成
  • 対話インタラクション: マルチターンの対話と質疑応答をサポート
  • 知識検索: 一定の知識質疑応答能力を備える
  • コード理解: 基礎的なコード生成と理解をサポート

🎓 教育的価値

このプロジェクトの目標は、LLMの学習ハードルを下げ、誰もがすべてのコード行を理解することから始め、非常に小さな言語モデルを訓練できるようにすることです。プロジェクトは「積み木で飛行機を作る」というコンセプトを採用し、ユーザーが高度なカプセル化によって隔離されるのではなく、LLMの基盤となる実装を深く理解できるようにします。

💻 使用方法

環境要件

  • PyTorch 2.1.2+
  • CUDA 12.2+
  • Flash Attention 2
  • RTX 3090またはそれ以上の性能のGPU(推奨)

クイックスタート

# プロジェクトをクローン
git clone https://github.com/jingyaogong/minimind.git
cd minimind

# 依存関係をインストール
pip install -r requirements.txt

# シングルGPU訓練
python train.py

# マルチGPU訓練 (N>1)
torchrun --nproc_per_node N train.py

訓練構成

# wandb監視を有効にする
wandb login
python train.py --use_wandb

# プロジェクト名を指定
python train.py --wandb_project "my_minimind" --wandb_run_name "experiment_1"

🔄 訓練フロー

  1. データ準備: データセットのクレンジングと前処理
  2. 事前訓練: 大規模なテキストデータで教師なし訓練を実行
  3. 指示ファインチューニング: 指示データを使用して教師ありファインチューニングを実行
  4. 選好最適化: DPOアルゴリズムを通じてモデル出力の選好を最適化
  5. モデル評価: Cevalなどのベンチマークデータセットでパフォーマンスをテスト

📈 パフォーマンス

  • 訓練速度: RTX 3090 GPUで、Torch 2.1.2、CUDA 12.2、およびFlash Attention 2を使用してテスト
  • 対話品質: 26Mパラメータでスムーズな対話を実現
  • リソース消費: 顕著なメモリ占有率が低く、個人開発者に適しています

🌍 コミュニティエコシステム

  • オープンソース無料: 完全にオープンソースであり、すべてのコアアルゴリズムコードを公開
  • ドキュメントの充実: 詳細な中国語と英語のドキュメントを提供
  • 継続的な更新: アクティブな開発コミュニティ、継続的な機能イテレーション
  • 教育に優しい: 学習と教育での使用に適しています

🔗 関連プロジェクト

まとめ

MiniMindは、画期的な軽量LLM訓練フレームワークであり、限られた計算リソースでも実用的な対話能力を備えた言語モデルを訓練できることを証明しています。このプロジェクトは、完全な訓練ツールチェーンを提供するだけでなく、AI学習者と研究者がLLMの内部メカニズムを理解するための優れたプラットフォームを提供します。「ゼロから始め、すべてのコード行を理解する」というコンセプトを通じて、MiniMindは人工知能技術を民主化し、より多くの人々が大規模モデルの開発と研究に参加できるようにしています。

Star History Chart