VertexとPythonを用いてGoogle LLMファミリーのAIモデルをファインチューニングする
ファインチューニングは、事前学習済みのAIモデルをベースにAIモデルを特化させるための強力な手段です。プロンプティングと比較して、出力精度をさらに向上させながら、新しいAIモデルをゼロから開発するよりもはるかに低コストで実現できます。
この記事では、VertexとPythonを用いてGoogle LLMファミリーのAIモデルをファインチューニングする方法について詳しく説明します。さあ、始めましょう!
目次:Python を使用した Google AI モデルのファインチューニング
AIモデルのファインチューニングとは
AIモデルのファインチューニングとは、事前学習済みのAIモデルをベースに、独自のデータセットを用いて出力をカスタマイズし、精度を向上させるプロセスです。ファインチューニングの目的は、事前学習済みのAIモデルの本来のAI機能を維持しながら、より特殊なユースケースに適合させることです。既存の洗練されたモデルをベースにファインチューニングを行うことで、機械学習開発者は特定のユースケースに適した効果的なモデルをより効率的に作成できるようになります。このアプローチは、計算リソースが限られている場合や関連データが不足している場合に特に効果的です。事前学習済みモデルをゼロから作成する必要がないためです。
例えば、あなたがブロガーであり、ソーシャルメディアのコンテンツクリエイターだとします。モデルを微調整し、コメントに自分らしいスタイリッシュなトーンで返信できるようにしたいとします。さらに、ブログ記事を自分独自のトーンで価値提案を発信したいとします。このような場合、微調整は、ワークフローに統合することでタスクをデプロイおよび自動化するための選択肢となります。
Google AI モデルチューニングのためのデータ準備
Vertex AI 言語セクションのチューニングを使用する場合、開発者は input_text と output_text という 2 つのキーを使用して JSON データをフォーマットする必要があります。開発者はキー名を他のものと変更することはできません。
input_text は、プロンプト、コンテキスト、または AI によって生成されたコンテンツのサンプルをそのまま追加するためのものです。一方、output_text は、input_text がプロンプトと一致する場合に、AI にどのような回答を期待するかを伝えるための場所です。例えば、ブロガーやソーシャルコンテンツクリエイターであれば、output_text に、投稿全体、記事、またはその他のコンテンツ形式のサンプルを追加できます。
データセットの準備ができたら、Google Vertext AI Language のチューニングに必要な JSON 形式に変換する必要があります。 Pandas データフレームを使用したサンプルは次のとおりです。
df2.to_json('filename.jsonl', orient='records', lines=True)
pdRead = pd.read_json('yourfilepath.jsonl', lines=True)
チューニングモデル作成
すべてのデータセットの準備ができたら、Google Cloud Vertex へ移行します。 Google Cloud アカウントを作成し、Vertex Studio にアクセスして言語セクションを選択し、クリックして次の画像のようにチューニングと抽出タスクを作成します。
次に、メソッド、モデル、リージョンなど、さらに選択する必要があります。教師ありモデル、Gemini、us-central は以下のとおりです。
最後に、準備した JSON ラインデータセットを Google Cloud Storage にアップロードし、ここで選択する必要があります。
調整保留と Python を使用した呼び出し方法
モデルチューニングのプロセス中は、パイプラインにアクセスしてステータスを確認するか、言語セクションに戻ってステータスを確認できます。時間は、事前学習済みモデルのチューニングに使用しているデータセットによって大きく異なります。私の場合は、完了までに約5時間かかりました
チューニングが完了したら、モデルガーデンに移動し、所有データセットを使用してチューニングに使用したモデルをすぐに選択できます。または、Pythonを使用してテストすることもできます。以下はスクリプトのサンプルです
deftunedModel(self, prompt, characters):
parameters = {
"max_output_tokens": int(characters),
"temperature": 0.9,
"top_p": 1
}
model = TextGenerationModel.from_pretrained("AIモデルのバージョン")
model222 = model.get_tuned_model("projects/プロジェクトID/locations/リージョン名/models/チューニング済みモデルID")
response = model222.predict(
prompt,
**parameters
)
return response.text
Google AIモデルチューニング費用
Vertextチューニングの料金に関する詳細は、Googleで検索し、公式ウェブページで最新の情報をご確認ください。コンテンツ作成を目的としたモデルのチューニングに要した費用は、平均1回あたり100ドルです。1回あたりの英語文字数は合計35万文字で、約5時間かかります。これらの数値が、Google AIチューニングの費用の参考になれば幸いです。
OpenAIやAzure AIと比較すると、費用は同程度ですが、後者の方が安い場合もあります。これはケースバイケースです。
まとめ
微調整は、ニッチな用途に特化した、低コストで最先端のAIモデルを実現するための強力な武器です。コストを節約でき、ゼロから開発するための投資も不要になります。
"