06. いよいよ実践!最初のカスタムLLMを作ろう
さあ、ここからが本番です!モジュール1キャップストーンプロジェクトは、認定への最初の主要なマイルストーンなんですよ。
これを完了することで、データセットの前処理からモデルの最適化まで、オープンウェイトモデルをエンドツーエンドでファインチューニングできることを実証します。Hugging Face Transformers、PEFT、Accelerateなどのフレームワークを使用して行うんです。
また、評価、量子化、再現性を実践します。これらは、実世界のモデル開発に不可欠なスキルなんですよね。
このレッスンでは、最初のプロジェクトの目的、成果物、評価基準を確認します。
これらの要件を進めるにつれて、一部のパーツが馴染みがないと感じても心配しないでください。これらのステップを実行する方法をまだ知っている必要はありません。
このモジュールの週1から4のレッスンでは、このプロジェクトを正常に完了するために必要な知識とスキルを教えます。モジュール1の終わりまでに構築する準備ができているものの予習として、このページを使用してください。
プロジェクトの目的
このプロジェクトでは、Mistral 7B、Phi-3 Mini、またはQwen-1.5Bなどの小型または中型のオープンウェイトLLMに対してパラメータ効率的なファインチューニング(PEFT)を実行し、選択した特定のタスクに適応させます。
「パラメータ効率的なファインチューニング」って難しそうに聞こえますよね。でも簡単に言うと、モデル全体を再トレーニングするんじゃなくて、一部だけを賢く調整する方法なんです。これによって、計算資源を節約しながら、効果的にモデルをカスタマイズできるんですよ。
データ準備、モデル設定、最適化技術の知識を適用して、次のものを生成します。
- 再現可能なファインチューニングセットアップ
- ファインチューニングされたモデル重みのセット
- 短い評価と量子化レポート
- 主要な詳細と結果を要約するモデルカード
何を構築するか
オープンウェイトベースLLMを特定のタスクまたはデータセットに適応させるファインチューニングされたモデルを構築してドキュメント化します。
プロジェクトには以下を含める必要があります。
データセットの選択と準備
Hugging Face Datasetsなどのプラットフォームから小型から中型のデータセットを選択します。基本的な前処理を実行します。例えば、トークン化(テキストを小さな単位に分割すること)、トレーニング/検証への分割などですね。
独自のデータセットを収集またはクリーンアップする必要はありません。データがファインチューニングパイプラインにどのように流れるかを理解することに焦点を当ててください。
既存のデータセットを使うので、データ収集に時間を取られることなく、本質的なスキルの習得に集中できるんです。
ファインチューニングの実装
パラメータ効率的な適応のためにLoRAまたはQLoRAを適用します。
「LoRA」とか「QLoRA」って何?と思われるかもしれませんね。これらは、モデルの重要な部分だけを効率的に調整する技術なんです。全部を変更するよりずっと効率的なんですよ。
Hugging Face Transformersを使用してトレーニングを設定して実行します。オプションで、スケーリングのためにマルチGPUトレーニングまたはDeepSpeed ZeROを探索することもできます。
評価と最適化
lm-evaluation-harnessまたは他のベンチマークツールを使用して評価します。
効率のために量子化(モデルを軽量化すること)を適用します。bitsandbyteまたはGGUFといった技術を使います。
Hugging Face HubまたはWeights & Biasesで結果とバージョンを追跡します。実験の記録を残すことって、本当に大切なんですよ。
ドキュメント
データセット、設定、メトリックを説明する短いモデルカードを含めます。ノートブックまたはスクリプトを使用して、コードと結果が再現可能であることを確認します。
「再現可能」というのがキーワードです。他の人(または未来のあなた)が同じ結果を得られるようにするんです。
プロジェクトアイデアの例
モデルをファインチューニングするものが不明な場合は、データセットを選択し、プロジェクト目標を定義するのに役立ついくつかの方向性を次に示します。
これらはすべて、Hugging Face Datasetsで利用可能な既存の公開データセットを使用して行うことができます。独自のデータを収集またはクリーンアップする必要はありません。単に関連するデータセットを選択し、ファインチューニング、評価、最適化に焦点を当ててください。
ドメイン固有の指示調整
金融、ヘルスケア、法的テキストなど、特定の分野に特化したデータセットを使用して、ドメイン固有のクエリを処理するようにモデルをファインチューニングします。
目的は、ベースモデルと比較してドメインの流暢さと応答精度を向上させることです。
例えば、金融分野のモデルなら、「PERって何?」と聞かれたら、株価収益率のことだとすぐにわかるようになるんです。
開発者向け技術アシスタント
技術コマンドまたはドキュメント(例:Docker、SQL、Git、またはLinux)のデータセットを使用して、自然言語クエリに応答するようにモデルをトレーニングします。
目的は、タスク固有の指示調整と正確なテキスト生成を実証することです。
「Dockerコンテナを起動するには?」と聞かれたら、適切なコマンドを教えてくれるようなモデルですね。
推論と問題解決
GSM8K(小学校レベルの数学問題)またはARC(AI2推論チャレンジ)などのベンチマークデータセットを使用して、推論またはステップバイステップの問題解決能力を向上させます。
目的は、ファインチューニング前後のモデルの推論能力を評価することです。
数学の文章題を解けるようになったら、すごいですよね。
独自のアイデアを探索
これらの例に限定されません。興味のあるデータセットまたはタスクを探索してください。
データセットが公開されており、適切にライセンスされ、効率的にファインチューニングできる程度に小さいことを確認してください。
どこから始めればよいかわからない場合は、Hugging Face Datasetsでインスピレーションを得るために閲覧してください。多くのデータセットには、セットアップを簡単にするサンプルスクリプトとドキュメントが含まれています。
提出チェックリスト
このプロジェクトを完了するには、次の成果物を提出してください。
1. プロジェクト出版
で次のような短い出版物を作成します。
- 目的、データセット、方法論を説明します
- ファインチューニング設定と結果を要約します
- メトリックと損失曲線のチャートまたはテーブルを含めます
- モデル開発プロジェクトの技術評価ルーブリックの少なくとも70%を満たします
2. GitHubリポジトリ
次のようなリポジトリを提出します。
- 再現可能なコードまたはColabノートブックを含みます
- データセットの準備とファインチューニングスクリプトを含みます
- 依存関係と環境セットアップをドキュメント化します
- 評価、量子化、モデルカードファイルを含みます
- リポジトリ評価ルーブリックの「Essential」レベルの70%を満たします
得られるもの
このプロジェクトを正常に完了すると、LLMファインチューニングスペシャリストの認定が得られます。
本番使用のために大規模言語モデルをファインチューニングして最適化する能力が認識されるんです。
これは、あなたのスキルの証明になります。履歴書に書けるだけじゃなく、実際に作った作品を見せられるんですよ。
次のステップ
モジュール1の今後のレッスンに進んでください。このプロジェクトを正常に完了し、最初の認定資格を獲得するために必要な知識とコード例を提供します。
一歩ずつ、確実に進んでいきましょう。最初は難しく感じるかもしれませんが、各レッスンで必要なスキルを学んでいくので、必ずできるようになりますよ。
さあ、最初のカスタムLLMを作る旅を始めましょう!

コメント