AIパーソナル・ラーニング
と実践的なガイダンス
豆包Marscode1

MiniMind:ゼロから2時間のトレーニング 26MパラメータGPTオープンソースツール

はじめに

MiniMindは、開発者のjingyaogong氏によって作成されたオープンソースプロジェクトです。MiniMindの主な特徴は、NVIDIA 3090グラフィックカード1枚で、26MパラメータのGPTモデルをゼロから訓練するのに2時間かかり、そのコストはわずか約3元である。このプロジェクトでは、データセットのクリーニング、プリトレーニング、コマンドによるファインチューニング、LoRA、DPO、モデル蒸留を含む、プリトレーニングからファインチューニングまでのフルフローコードを提供しており、ビジュアルマルチモーダル拡張MiniMind-Vのサポートも行っています。すべてのコードは、サードパーティの抽象化インターフェースに依存することなく、PyTorchをベースに一からリファクタリングされています。2025年2月現在、MiniMindは複数のバージョンでリリースされており、最小モデルサイズは25.8Mパラメータで、コミュニティから圧倒的な反響を得ています。

MiniMind:2小时从零训练26M参数GPT的开源工具-1


 

機能一覧

  • 3090グラフィックスカード1枚で、26MパラメータのGPTモデルを2時間以内にゼロからトレーニング可能。
  • プリトレーニング、命令微調整、LoRA、DPO、モデル蒸留のためのフルフローコードを提供します。
  • 画像およびテキスト処理用のビジュアル・マルチモーダル拡張機能MiniMind-Vを搭載。
  • シングルカードおよびマルチカードのトレーニングをサポートし、DeepSpeedおよびwandbビジュアライゼーションと互換性があります。
  • サードパーティのチャットインターフェースに簡単にアクセスできるOpenAI APIプロトコルサーバーを提供します。
  • 高品質のデータセットとモデルウェイトをオープンソースで提供。
  • トークナイザーのトレーニングやカスタム単語リストをサポートし、モデルの構造を柔軟に調整。

 

ヘルプの使用

MiniMind の使用は、インストール、トレーニング、推論の 3 つのステップに分かれています。以下は、ユーザーがすぐに使い始められるよう、詳細なガイドです。

設置プロセス

  1. 環境準備
    • Python 3.10以降が必要。
    • 以下のコードを実行して、グラフィックカードがCUDAをサポートしていることを確認する:
      import torch
      print(torch.cuda.is_available())
      

      リターン Trueそうでない場合は、対応するPyTorchのバージョンをインストールする必要があります。

    • コードをクローンするためにGitをインストールする。
  2. クローンプロジェクト
    それをターミナルに入力する:
git clone https://github.com/jingyaogong/minimind.git
cd minimind
  1. 依存関係のインストール
    清華ミラーを使用した高速インストール:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

問題が発生した場合は、手動でインストールしてください。 torch もしかしたら flash_attn.

  1. データセットをダウンロード
  • データセットはGitHub READMEまたはhttps://www.modelscope.cn/datasets/gongjy/minimind_dataset/files。
  • 確立 ./dataset フォルダにファイルを解凍してください。
  • 推奨ダウンロード pretrain_hq.jsonl(1.6GB)と sft_mini_512.jsonl(1.2GB)。

トレーニングモデル

  1. 事前トレーニング
  • スクリプトを実行して事前トレーニングを開始します:
    python train_pretrain.py
    
  • デフォルト使用 pretrain_hq.jsonl出力重みは pretrain_*.pth.
  • マルチカード・アクセラレーション:
    torchrun --nproc_per_node 2 train_pretrain.py
    
  1. コマンド微調整
  • 微調整スクリプトを実行する:
    python train_full_sft.py
    
  • デフォルト使用 sft_mini_512.jsonl出力重みは full_sft_*.pth.
  • マルチカードのサポートも同様だ。
  1. LoRAの微調整
  • ドメインデータを用意する(例 lora_medical.jsonl)、走れ:
    python train_lora.py
    
  • 出力重みは lora_xxx_*.pth.
  1. DPO強化学習
  • 利用する dpo.jsonl データ、実行
    python train_dpo.py
    
  • 出力重みは rlhf_*.pth.
  1. 視覚化トレーニング
  • パラメータの追加 --use_wandb例えば
    python train_pretrain.py --use_wandb
    
  • wandbの公式サイトでトレーニングカーブをチェックしよう。

モデルによる推論

  1. コマンドライン推論
  • モデルウェイト(MiniMind2など)をダウンロードする:
    git clone https://huggingface.co/jingyaogong/MiniMind2
    
  • 走る推理:
    python eval_model.py --load 1 --model_mode 2
    
  • パラメータの説明--load 1 トランスフォーマーでは--model_mode 2 MiniMind2を使って。
  1. ウェブチャット
  • Streamlitをインストールする:
    pip install streamlit
    
  • 起動インターフェース:
    cd scripts
    streamlit run web_demo.py
    
  • ブラウザからアクセス localhost:8501対話はできる。
  1. APIサービス
  • サーバーを起動します:
    python serve_openai_api.py
    
  • インターフェイスをテストする:
    curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "MiniMind2", "messages": [{"role": "user", "content": "你好"}], "max_tokens": 512}'
    

注目の機能操作

  • ビジュアル・マルチモダリティ(MiniMind-V)
  • MiniMind-Vモデルをダウンロードする:
git clone https://huggingface.co/jingyaogong/MiniMind2-V
  • CLIPビジュアライゼーション・モデルのダウンロード ./model/vision_model::
git clone https://huggingface.co/openai/clip-vit-base-patch16
  • 走っている:
python eval_vlm.py --load 1
  • テキストと画像を入力すると、モデルが説明を生成する。
  • カスタマイズ・トレーニング
  • データを次のように整理する。 .jsonl フォーマットを ./dataset.
  • 修正 ./model/LMConfig.py パラメーター(例 d_model もしかしたら n_layers).
  • 上記の手順でトレーニングする。

ほら

  • ビデオメモリが足りない場合は、以下のように調整します。 batch_size または増やす accumulation_steps.
  • データセットが大きい場合は、メモリのオーバーフローを避けるためにバッチで処理する。
  • 超長コンテキストはRoPEパラメータを最大2048まで調整可能。

 

アプリケーションシナリオ

  1. AI学習
    MiniMindは、初心者が大規模なモデルのトレーニングプロセスを研究するためのコードとデータの完全なセットを提供します。
  2. ドメインのカスタマイズ
    医療Q&Aやカスタマーサービスの対話のようなプライベートデータを使ってモデルをトレーニングする。
  3. 低コストでの展開
    26Mパラメトリックモデルは、スマートホームなどの組み込み機器に適している。
  4. ティーチング・デモンストレーション
    教師はAIのトレーニングプロセスを実演し、生徒は練習するために使うことができる。

 

品質保証

  1. MiniMindにはどのくらいのハードウェアが必要ですか?
    トレーニングにはNVIDIA 3090グラフィックカード1枚で十分で、CPUでも動かせるが遅い。
  2. 2時間のトレーニングは信頼できるか?
    はい、3090のシングルカードテストに基づいて、26Mのパラメトリックモデルをゼロからトレーニングするのに約2時間しかかかりません。
  3. 市販されていますか?
    はい、このプロジェクトはApache 2.0ライセンスでライセンスされており、自由な使用と改変が認められています。
  4. コンテキストの長さを延長するには?
    RoPEパラメータを調整したり、より長いデータで微調整することで、最大2048まで対応。
無断転載を禁じます:チーフAIシェアリングサークル " MiniMind:ゼロから2時間のトレーニング 26MパラメータGPTオープンソースツール
ja日本語