Vertex AI での Gemini モデルのチューニング
この記事は Google Cloud Japan Advent Calendar 2024 (Gemini特集版) の 18 日目の記事です。
本記事では Google Cloud の Vertex AI で行う Gemini モデルのチューニングについて記載しています。
Gemini モデルのチューニングについて
LLM を活用していく中で特定のタスクに対する精度向上を行いたいというケースはよくあるかと思います。もちろんプロンプト内で少数の例を学習させる Few-shot Learning や Gemini の特徴である Long Context を活かして、さらに多くの例を学習させる Many-shot learning を行うことで、そのタスクにおける精度を向上させることもできますが、Gemini ではモデル自体のチューニングに関してもサポートされています。
2024 年 12 月時点では以下のモデルに対するチューニングがサポートされています。
- gemini-1.5-pro-002(GA)
- gemini-1.5-flash-002(GA)
- gemini-1.0-pro-002(プレビュー)
このうち、gemini-1.0-pro-002 はテキストのみのチューニングがサポートされていますが、gemini-1.5-pro-002 / gemini-1.5-flash-002 に関してはテキストに加えて、画像、オーディオ、ドキュメントのデータを用いたチューニングも可能です。
Vertex AI でのチューニング方法
Vertex AI の Gemini モデルのチューニングは Google Cloud コンソールから簡単に行うことができます。もちろん API や SDK 経由でのチューニングも可能です。
Vertex AI のメニューから[チューニング]を選択します。
遷移したページの左上の欄から[チューニング済みモデルを作成]をクリックします。
モデルの詳細として、チューニングしたあとのモデルの名前、チューニングに利用するベースモデル、リージョンを設定します。ここで設定したリージョンでモデルのチューニング ジョブが実行され、チューニングされたモデルがデプロイされます。
チューニング設定としてはエポック数、学習率の乗数、アダプタサイズを設定することが可能です。エポック数に関しては明示的に指定しない場合、トレーニング データセットのサイズにあわせて自動的に調整されます。
各ハイパーパラメータの詳細についてはこちらをご確認ください。
次にチューニングに利用するデータセットを選択します。ローカルのファイルを Cloud Storage にアップロードすることもできますし、既存の Cloud Storage 上のファイルを選択することも可能です。今回に関しては、こちらで公開されている画像のサンプルデータセットを利用して学習させてみます。
オプションとして検証データセットを指定することでチューニング中に検証メトリックを収集することも可能です。
学習させるデータセットは入力データと期待する出力データを記載した JSONL ファイルを用意する必要があります。詳細は下記をご参照ください
実施してしばらくすると上記のようにチューニングが開始します。今回は検証データセットも指定しているため、Training metrics と Validation metrics が表示されています。
無事チューニングに成功したモデルは Vertex AI Studio から選択することができるようにテストすることが可能です。また自動で Vertex AI の Model Registry にデプロイされるため、API や Python SDK 経由でのアクセスも可能になります。
チューニングの料金
料金に関しては学習に利用したトレーニング トークン数に応じて決まります。ここで言うトレーニング トークン数とはトレーニング データセット内のトークンの合計数にエポック数を掛けて計算されます。(gemini-1.0-pro-002 のチューニングに関してはプレビューであるため、2024 年 12 月時点では料金はかかりません)
また、チューニング後のモデルの推論コストに関してはベースモデルのコストが適用されます。詳細は下記のドキュメントもご確認ください。
まとめ
この記事では Vertex AI での Gemini モデルのチューニングについて説明しました。学習させるデータセットさえ用意いただければ、機械学習の専門的な知識は不要でコンソール上から簡単にチューニングを行うことが可能です。今後 Gemini のチューニングを検討されている方の参考になれば幸いです!
Discussion