MidoriPhotArt.

今まで作成した大規模言語モデルGemma3のファインチューニングのまとめと、最終的な高精度化のためのデータ加工・学習過程のソースコード(GoogleColab)

【2025年6月1日 追記】
訓練データの高機能化を実施しました。
  • 任意のディレクトリ(例: Google Drive)を指定し、訓練処理に必要な一式データをそのディレクトリに保存できます。
  • 訓練を途中で中断した場合でも、前回の状態を自動で保存し、再開時にその状態から訓練を続行できるようになりました。
  • 内部的に、GPUトレーニング専用処理TPUトレーニング専用処理の2種類を用意しています。ご利用の環境に応じて自動で切り替わります。
これにより、長時間の学習や大規模データセットの扱いがより柔軟かつ安全になりました。
本ページで公開するソースコードは、Midori290・291・292でまとめてきた過去のポイント(高精度化のためのデータ加工手法や学習過程の工夫)をすべて反映した、現時点での最終版となります。
MITライセンスで公開いたしますので、どなたでもご自由にご利用いただけます。

特に、高い精度を出すためのデータ前処理・統合・プロンプト設計・学習パラメータの最適化など、Midoriシリーズで蓄積したノウハウを集約しています。
また、データセットを公開してくださった方々、ならびにご提供いただいたデータセット、Gemma3モデル(Google様)など、関係者の皆様に心より感謝申し上げます。

なお、PyTorch形式での学習モデルを採用した理由ですが、最終的な出力形式としては、大規模言語モデルは高い計算量やWEB・様々なデバイス上での制約があり、変換処理が非常に複雑かつ最新技術が次々に登場しているため、すべてに対応するのは現実的ではないと判断しました。そのため、ネットとWEB環境が利用できるGoogle Colab上のPython環境であれば、ほとんどすべての言語モデル(AI関連)が動作・確認できると考え、PyTorch形式を選択しています。
Google Colabを実行できる環境があれば、誰でも、このコードの実行を確認ができるため、Colabのソースコードを主体にして公開させていただきております。
GoogleColabで公開しているソースコード。データ加工後のトレーニングを実行する際に、使用するデータ量を調整してください。
コード上に説明がありますので、デフォルトだと60万件そのままデータ訓練を始めてしまいます。
なので動くかどうかの確認は数万件程度に調整してください。60万件そのままだと、数日かかる計算になります。
例:
TRAIN_SAMPLE_SIZE = None → 全件使う
TRAIN_SAMPLE_SIZE = 2000 → 2000件だけ使う
TRAIN_SAMPLE_SIZE = None  # 例: Noneなら全件, 2000なら2000件だけ
    TEST_SAMPLE_SIZE = 100    # 検証用データは100件だけ
この部分です。(Gemma31bit LoRAファインチューニング PyTorch形式 .ipynb)

Colabでノートブックをすぐに開く

Colabで開く データ作成・ファインチューニング用ノートブック
(菌類専門データを使ったGemma3 1b itモデルのLoRAファインチューニングを実行できます)
Colabで開く PyTorch形式のモデルを利用して推論ノートブック
(ファインチューニング済みモデルを使って日本語チャット推論ができます)

Colabでデータ作成・ファインチューニングを実行

Colabで開く Gemma3 1b it モデルのLoRAファインチューニング(PyTorch形式)
このノートブックの解説(データ作成・ファインチューニング)
  • 1. 必要なライブラリのインストール:transformers(Gemma-3対応版)、peft、datasets、bitsandbytesなどを自動でインストールします。
  • 2. データセットの作成
    ・菌類論文の3行要約データ
    ・菌類の識別形質比較データ
    ・日本語LLM用の一般QAデータ
    これら複数のデータセットをロードし、QAペア(質問・回答)形式に整形・結合します。
  • 3. プロンプト形式への変換:ユーザーとAIの会話形式(<bos><start_of_turn>user...model...<end_of_turn><eos>)に変換し、システムプロンプトも自動付与します。
  • 4. データ分割・前処理:全データをシャッフルし、訓練用・テスト用に分割。長文は自動で分割されます。
  • 5. モデルの準備とLoRA設定:GoogleのGemma3 1b itモデルをベースに、LoRA(Low-Rank Adaptation)で追加パラメータのみ学習。省メモリ・高速なファインチューニングが可能です。
  • 6. 学習(ファインチューニング):トレーナーを使い、指定エポック数で学習。途中で早期終了(EarlyStopping)もサポート。
  • 7. モデルの保存・量子化
    • LoRAアダプタのみ(小容量)
    • ベースモデルにマージ(float32)
    • 8bit/4bit量子化(省メモリ・高速化)
    HuggingFace Hubへのアップロードも可能です。
  • 8. 推論テスト:学習済みモデルで日本語の菌類質問に答えさせるサンプルコードも付属。
ポイント: 複数データセットの統合、プロンプト設計、LoRAによる効率的な専門知識追加、省メモリ量子化など、実践的なノウハウが詰まっています。
対象モデルについて
このノートブックで利用できるモデルの一例として、過去に作成した「菌類に詳しい日本語大規模言語モデル」があります。
このモデルはHuggingFace Hubに保存されており、菌類分類や科学論文の要約、専門的な比較、日本語の質疑応答に強みがあります。
モデル名やリポジトリIDを選択画面で指定することで、誰でもColab上で簡単に利用できます。

【モデルの詳細】
・Googleの「Gemma3 1b it」モデルをベースに、LoRA(Low-Rank Adaptation)手法でファインチューニングしています。
・ファインチューニングには、菌類に関する日本語論文の要約データ、菌類の識別形質比較データ、日本語の一般QAデータなど、複数の専門・汎用データセットを組み合わせています。
・LoRAは元の大規模モデルの重みをほとんど変えず、追加の小さなパラメータ(LoRAアダプタ)だけを学習するため、効率的かつ省メモリで専門知識を追加できます。
・菌類分類や科学論文の要約、専門的な比較、日本語の質疑応答に特化した応答が可能です。
・HuggingFace Hubに保存されているため、Colab上で簡単に呼び出して利用できます。

詳細なファインチューニングの流れや工夫ポイントは、midori290〜midori292のノートブックで解説しています。

関連ノートブックへのリンク

Colabで直接開く

Colabで開く PyTorch形式のモデルを利用して推論

『PyTorch形式のモデルを利用して推論.ipynb』の詳細解説

このノートブックは、「自分の好きなAIモデルをColab上で簡単に選んで、すぐに日本語チャットができる」ことを目指したものです。
難しい設定やコマンドを覚えなくても、画面の案内に従うだけでOKです。

Colabでノートブックを開く ライブラリ自動インストール モデル選択・ロード チャット画面で対話 推論結果が表示される
ノートブックの主な流れ(クリックや入力はすべて画面上で案内されます)
  • 1. Colabでノートブックを開く:リンクをクリックするだけでOK
  • 2. 必要なライブラリが自動でインストール:特別な操作は不要です
  • 3. モデル選択:自分のDriveやHuggingFace、ローカルのモデルも自動検出。リストから選ぶだけ
  • 4. チャット画面:日本語で自由に質問・会話できます。履歴も反映されるので自然なやりとりが可能
  • 5. 推論結果がすぐに表示:AIが考えた答えがその場で返ってきます
ヒント: Colabの無料枠では大きなモデルは動かない場合があります。
うまく動かないときは、モデルを小さくする・再起動する・GPUランタイムを選ぶ、などを試してください。
このノートブックの「すごいところ」
・難しいPythonコードやパス指定が不要
・モデルの形式(LoRA/量子化/公式など)を自動で判別し、最適な方法でロード
・チャット履歴を活用して、より自然な会話ができる
・エラーが出ても、トラブルシューティングのヒントが表示される
・CPU/GPU環境を自動で判別し、最適な推論設定にしてくれる