コンテンツにスキップ

LoRA 学習の実施チェックリスト

チェックが付いているのは、実際の証拠があることを意味します。「チュートリアルがここまで書かれた」という意味ではありません。コマンドは plan.md、ローカルでの検証記録は verification.md を参照してください。

A. 実装済みの教材

  • 小学生向けの中国語による理科探究。3 つの学年帯と 5 つのトピックカテゴリをカバー。
  • 順を追ったチュートリアル:概念、ハードウェア、環境、学習、評価、エクスポート、API、トラブルシューティング。
  • ファクトカード 60 枚、学習用 500 + 検証用 50 + テスト用 50 の会話。すべてレビュー待ちの合成会話。
  • データ検証、会話の展開、テンプレート/長さ/教師信号のチェック。
  • 単一ファイルの dataset.json、完全なサンプルとフィールド説明。ノートブックではデータを使う箇所を D1〜D7 で示しています。
  • 独立した軽量のトークナイズ環境。PyTorch / TRL のテストは開発者向けの任意の章へ移動。
  • QLoRA の学習と再開、A/B/C 推論、マルチターン会話、ブラインド評価と凍結。
  • BF16 マージと、ローカルでのシングルターン/マルチターン API 呼び出し例。
  • 学習コードをそのまま見せる教育用ノートブック。各セルに解説を付け、成果物の確認、再読み込み、評価も含みます。
  • ModelScope からのダウンロード、HF ミラーへのフォールバック、固定ファイルの SHA-256 検証、シャード欠落時のエラー。

B. ローカルでの仕組みのチェック

  • データと教師信号の自動テスト。
  • モデルの revision を固定し、トークナイザーと設定ファイルのみをダウンロード。
  • 実際の Qwen トークナイザーと TRL の collator で、1150 件の学習サンプルの mask/EOS/padding を確認。
  • 極小の CPU モデルで LoRA だけが更新され、保存・再開・再読み込み・マージができる。
  • チュートリアルの API 例を直接実行する、ローカル HTTP と履歴受け渡しのテスト。
  • ブラインド評価のペアリング、スコア欠落、トピック単位のクラスタ統計のテスト。

C. 理解とレビュー

  • SFT/LoRA/QLoRA、VRAM、Step/Epoch を自分の言葉で説明する。証拠:1 ページのメモ。
  • 実際の教師信号ターゲットを少なくとも 10 件読む。証拠:audit とメモ。
  • 候補会話 600 件をすべてレビューする。証拠:実在のレビュアー、メモ、修正記録。
  • 事実の出典を再確認する。特に今回 Web アクセスが制限された資料。証拠:カードのレビュー記録。

D. GPU での仕組みの学習(先に第 2 章を理解すること。ノートブックは単一ファイルを直接読み込みます)

  • Linux NVIDIA 環境の立ち上げ。証拠:バージョン、ドライバー、BF16、pip check。
  • 固定バージョンのベースモデル全体をダウンロードして検証し、観察用の質問に対するベースモデルの回答を保存する。
  • 1 Epoch(約 72 ステップ)の QLoRA。証拠:有限の loss、loss-curve.png、パラメータ更新、アダプター、ピーク VRAM。
  • 学習中に nvidia-smi で VRAM を記録し、4.3 節の見積もりと比較する。証拠:読み取り値とメモ。
  • 20 サンプルでの過学習。証拠:loss の変化と学習中の出力。汎化したとは主張しない。
  • ステップ 5 からステップ 10 への再開。証拠:オプティマイザー/スケジューラーのスナップショットとログ。

E. 正式な比較(C、D に依存)

  • カード 60 枚、会話 600 件、カテゴリごとに 100/10/10。トピックと事実の参照は split をまたがない。
  • すべての参照回答のレビューと、近似重複のチェック。証拠:レビューとファミリーの記録。
  • ドラフトデータでの探索的な比較(--allow-draft --formal で prepare/audit)。証拠:manifest(draft: true)、トークナイザーのフィンガープリント、トークンレポート。
  • r16/alpha32 と r8/alpha16 をそれぞれ 1 Epoch。証拠:設定、時間、VRAM、ファイルサイズ。
  • 検証セットでの固定履歴/マルチターン会話。証拠:ブラインド評価、事実の審査、失敗の分類。
  • 候補を凍結した後、テスト会話 50 件(5 トピック)をすべて実行する。証拠:凍結ファイル、出力、不確実性。
  • 効果あり/効果なし/判断不能の結論を書き、制約を明記する。

F. エクスポートと API(D に依存。正式な品質の結論は E に依存)

  • 実際の 4B アダプターを再読み込みできる。証拠:同じ SHA での出力。
  • BF16 のベースモデルへのマージ。証拠:マージの manifest、完全な重み、トークナイザー、ライセンス。
  • 同じ精度でマージ前後を比較し、NF4/BF16 の差は別途記録する。
  • vLLM の起動。証拠:独立した推論環境のバージョン、サービスログ、ヘルスチェック。
  • KV キャッシュの見積もりと起動ログを比較する。証拠:GPU KV cache size と Maximum concurrency の 2 行と、5.3 節の表との対照。
  • API のシングルターン/マルチターン/ストリーミング呼び出し。証拠:実際のモデルの応答。
  • アダプターをマウントしてデプロイし、同じサーバーで qwen3-4b-base と science-lora を比較する。証拠:2 組の回答。
  • vllm bench serve で並列数 1/4/16 の負荷テストを行い、--max-num-seqs を調整して再テストする。証拠:TTFT/TPOT/スループットを埋めた表。
  • 費用を確認し、結果を保存し、アイドル状態のインスタンスを停止する。証拠:コストの記録。

今後別途検討すること

Web ページ、読み上げ、多言語対応、保護者のインフォームド・コンセントのもとでの子どもによる実使用調査、紹介記事、インターネット公開サービス、その他の学習手法。