Vertex AI Gemini Proで実現するファインチューニング手法と適用すべきユースケースの提案

2024年9月20日掲載

キービジュアル

本稿では、Google Cloud Vertex AI における「Gemini Pro 1.0」のファインチューニング手法と、その適用に適したユースケースについて、実際の検証結果を交えて紹介します。また、ファインチューニングの基礎概念、Google Cloud コンソールを用いたタスクの実行、カスタムモデルのデプロイに至るまでの手順もカバーしています

本記事は主に開発者向けですが、ビジネスや事業開発部門の方々にも理解しやすいよう、ステップバイステップで説明しています。

想定読者
  • 大規模言語モデル(LLM)を用いたサービス開発を行っている開発者
  • LLMを活用したサービス開発に関わるIT企画担当者
  • LLMのファインチューニングを検討している開発者・システム運用者
想定課題
  • RAGやシステムプロンプトでは表現しきれない、微妙なニュアンスや表現力を求めている
  • LLMのファインチューニングについての具体的な情報が不足している

目次

1. ファインチューニングの基本概念

ファインチューニングは転移学習の一種であり、既に大規模データセットで事前学習されたモデルを特定のタスクやデータセットに適応させるための追加学習を指します。このプロセスにより、事前学習済みモデルに特定タスクに関連する知識を付加し、より精度の高いアウトプットを得ることが可能です。

2. Gemini Proのファインチューニング

Gemini Pro 1.0は、Google CloudのVertex AIプラットフォーム上でファインチューニングを行うことができます。Vertex AIは強力な計算リソースと直感的なインターフェースを提供し、効率的なファインチューニングを支援します。また、開発者向けにはSDKも提供されており、PythonやJavaなどのプログラムから直接実行可能です。

特徴
  • 少量のトレーニングデータ(100から500レコード程度)で高い性能を実現
  • モデルのサイズや学習パラメータをタスクやデータセットに合わせて調整可能
  • ハイパーパラメータ(学習率、バッチサイズ、エポック数など)の調整により、モデル性能を向上
  • ファインチューニングされたモデルは、Vertex AIのカスタムエンドポイントとしてデプロイとバージョン管理が可能(アプリケーションからの呼び出しも可能)
ファインチューニングモデルのデプロイイメージ
Gemini Pro ファインチューニングイメージ

3. ファインチューニングとRAGの比較

よくある疑問として、RAGとの違いを気にされる方も多いのではないでしょうか。実際に企業でチャットボットを導入する場合に、RAGがまず検討すべきオプションとして「推奨」されることが多く、様々な情報源でもRAGの優位性が語られています。主に以下のような点においてRAGは優れたツールとして機能します。

  • 外部データベース(ベクトルDB)から最新情報を取得するので、知識の更新が簡単
  • モデル自体の重み(パラメーター)を変更しないので、回答が安定している
  • 「検索」と「生成」のプロセスが分離されているため、コストが低い
  • 外部情報を参照するので、誤った情報を生成(ハルシネーション)のリスクが低い
  • 外部情報を参照するので、参照箇所を引用して情報源を明確化できる

一方で、ファインチューニングはトレーニングデータを用いてモデルの再学習を行うため、基盤モデルの重みを直接変更します。このため、情報の更新コストが高く、ハルシネーションの抑制も難しい側面があります。

RAGとファインチューニングの違い
それでも企業がファインチューニングを選ぶ理由

 RAGは、外部知識に基づいて「台本通りにセリフを読み上げる役者」と例えられます。与えられた情報(コンテキストやプロンプト)に基づき、適切なセリフを選んで応答するのが得意です。一方、ファインチューニングされたモデルは「役になりきるために徹底的な訓練を積んだ役者」に例えられます。特定のタスクに合わせた深い理解と、微妙なニュアンスやアドリブの応答が可能です。

 名作のドラマは、”台本通りの演技””即興的な表現力”の両方が融合して生まれるように、企業におけるLLMの活用でも、RAGとファインチューニングを組み合わせることが理想的です。したがって、ファインチューニング単体での運用はあまり一般的ではなく、RAGと併用したユースケースが望ましいでしょう。

4. LLMのファインチューニングを適用するべきケース

前述の通り、大規模言語モデルにおけるファインチューニングの性質を少し理解することができました。では、具体的にどのようなニーズに対してファインチューニングが有効なのでしょうか。大きく次の2つのニーズに対して有効です。
(1) 知識特化型
    •  医療分野での症状分類モデルや金融分野のリスク評価モデルなど、RAGの知識ソースだけでは正確な回答が不可能な専門的なタスクに特化したモデル
    (2) 表現特化型
    • 企業独自の単語や文化、ブランドイメージを理解しながら応答するモデル
    • 国特有の固有名詞、地名などを正確に理解し応答するモデル

    企業において特に需要があるのは「表現特化型」のモデルです。多くのタスクではRAGだけで十分な精度を得られる場合が多いため、知識特化型のファインチューニングは医学や法律など、専門性の高いニッチなユースケースに限られます。

    表現特化型のファインチューニングの必要性

    表現特化型のファインチューニングの実例として、「企業のブランドトーン」や「地域固有の情報を正確に伝える」などがあります。特に企業と顧客とのコミュニケーションや、自治体の住民サービスにおいて、メッセージのニュアンスや言葉遣いを統一することは信頼感を高め、カスタマーロイヤリティを高めるうえで不可欠な要素ではないでしょうか。2つの適用例をそれぞれ見ていきましょう。

     

    事例1: ソフトバンクの先進的なイメージ強化

    ITを活用し未来に向かって積極的に進む企業としてのポジティブなイメージを強調したいので、例えば、SDGs(持続可能な開発目標)への取り組みを推進していることが強調される場面では、そのブランドトーンを反映させた応答が望ましいでしょう。

    RAGは事実に基づくニュートラルな回答が得られるものの、ブランドの持つ未来志向のメッセージが十分に伝わらないことがあります。ここでファインチューニングを行うことで、ソフトバンクの「未来を切り拓く」イメージを反映した応答が可能となります。

    質問例(RAGによる応答の前提):

    「ソフトバンクはITを使ってどのようにSDGsに貢献していますか?」

    ファインチューニング前(RAGによる応答):

    「ソフトバンクはSDGsの目標に沿ってさまざまなITソリューションを提供しています。」

    ファインチューニング後(ソフトバンクのブランドトーンを反映):

    「ソフトバンクは、最先端のITソリューションを駆使し、持続可能な未来をリードしています。私たちは、社会的課題に挑み、次世代に貢献することで、未来の可能性を広げ続けています。」

     

    事例2: 高級アパレルブランドの高級感とエレガンスの伝達

    高級アパレルブランドにおいては、製品の品質だけでなく、ブランド全体が持つ「高級感」を顧客に強く印象付けることが重要です。RAGによる標準的な情報提供では、製品の仕様や機能に関する基本的な説明に留まってしまい、ブランドが持つラグジュアリーな価値観やイメージが十分に伝わらないことがあります。しかし、ファインチューニングによって、ブランド特有のトーンや表現をモデルに定着させることで、製品の「価値」を顧客に伝えることが可能になります。

    質問例(RAGによる応答の前提):

    「このドレスの特徴は?」

    ファインチューニング前(RAGによる応答):

    「このドレスは高品質な素材で作られており、デザインも洗練されています。」

    ファインチューニング後(ブランドトーンを反映した応答):

    「私たちのドレスは、最高級の素材を贅沢に使用し、卓越した職人技で仕立てられています。タイムレスなエレガンスを纏ったこのデザインは、特別な瞬間にふさわしい一着です。」

    5. 検証

    本節では、Gemini Pro 1.0に対するファインチューニングがどのように実際の効果をもたらすか検証します。節4の「未来志向」「挑戦する精神」「多様性と包容性」などのブランドトーンの強化を題材に、ソフトバンクのブランドトーンを反映した応答をBefore/Afterで比較します。なお、Google Cloudのアカウント、プロジェクト、基本的なセットアップは省略します。

    データセットの準備方法

    ファインチューニング用のデータセットを準備します。このデータセットには、ソフトバンクのブランドトーンを反映した対話データや顧客との応答データが含まれていることが理想ですが、データがない場合は、Google CloudのVertex AI Studioを活用してトレーニング用のデータセットを作成することを推奨します。Google CloudのVertex AI Studioの使用方法は、別のブログでご紹介しておりますので、Vertex AI Studio (旧称:Generative AI Studio )でマルチモーダルの凄さを体験しよう!をご参照ください。

     

    データ形式の説明

    Google Cloud Vertex AIのファインチューニングに使用できるデータセット形式として、JSON Lines(JSONL)がサポートされています。所定の形式はシングルターンとマルチターンで異なります。具体的には、以下データ形式をご参照ください。

    シングルターン

    {
      "messages": [
        {
          "role": "system",
          "content": "You are a pirate dog named Captain Barktholomew."
        },
        {
          "role": "user",
          "content": "Hi"
        },
        {
          "role": "model",
          "content": "Argh! What brings ye to my ship?"
        },
        {
          "role": "user",
          "content": "What's your name?"
        },
        {
          "role": "model",
          "content": "I be Captain Barktholomew, the most feared pirate dog of the seven seas."
        }
      ]
    }
    

    マルチターン

    {
      "messages": [
        {
          "role": "system",
          "content": "You are a pirate dog named Captain Barktholomew."
        },
        {
          "role": "user",
          "content": "Hi"
        },
        {
          "role": "model",
          "content": "Argh! What brings ye to my ship?"
        },
        {
          "role": "user",
          "content": "What's your name?"
        },
        {
          "role": "model",
          "content": "I be Captain Barktholomew, the most feared pirate dog of the seven seas."
        }
      ]
    }
    
    推奨されるデータ数

     Google Cloudのベストプラクティスでは、良い精度を得るためには100から500レコードのデータセットが望ましいとされています。

    > (機械翻訳文) モデルを調整するには、トレーニング データセットを提供します。トレーニング データセットには、少なくとも 16 個のサンプルが含まれている必要があります。最良の結果を得るには、少なくとも 100〜 500 個の例を提供することをお勧めします。データセットに提供するサンプルが多いほど、より良い結果が得られます。トレーニング データセット内のサンプルの数に制限はありません。

    出所: About supervised fine-tuning datasets

     今回は、以下のようなJSONLのデータセットをシングルターン形式で準備しました。
     

    {"messages": [{"role": "user", "content": "健康経営推進における課題への取り組みは?"}, {"role": "model", "content": "ソフトバンクは、社員が心身共に健康で、いきいきと活躍できる環境を提供するために、健康経営を重要な経営課題として捉えています。多様化する働き方や高度化する業務内容に対応するため、メンタルヘルス対策や長時間労働の抑制、ワークライフバランスの推進など、様々な課題に取り組んでいます。先進的な技術を活用した健康管理システムの導入や、健康増進のためのイベントの開催など、社員の健康をサポートするための新たな取り組みも積極的に推進しています。"}]}
    {"messages": [{"role": "user", "content": "グレード制度と給与水準の関係性は?"}, {"role": "model", "content": "ソフトバンクは、社員一人ひとりの役割と実力に応じた、公正で納得感のある報酬制度を設けています。グレード制度は、社員の成長を促し、能力を最大限に発揮できる環境を提供するための重要な仕組みです。グレードと給与水準を明確に連動させることで、社員が自身の努力と成果によって、キャリアアップと報酬アップを実現できる環境を整備しています。"}]}
    {"messages": [{"role": "user", "content": "ソフトバンクの女性活躍推進に向けた取り組みについて教えてください。"}, {"role": "model", "content": "ソフトバンクは、多様性と包容性を大切にし、社員一人ひとりが自分らしく活躍できる開放的な企業文化を目指しています。その一環として、女性活躍推進にも積極的に取り組み、2035年までに女性管理職比率20%という挑戦的な目標を掲げています。管理職向け研修やメンタープログラムなどを通して、女性のキャリアdevelopmentを支援し、より多くの女性がリーダーシップを発揮できる環境を創造していきます。"}]}
    ---
    and more…
    
    トレーニングの流れ

     基盤モデル(Gemini Pro 1.0)のファインチューニングは、Vertex AI StudioのGUIコンソールから簡単に行うことができます。以下にモデルのトレーニングからテストまでの詳細なステップを掲載します。

    1. Google CloudのVertex AI ダッシュボードにアクセスし「チューニング」を押下します

    2. 「チューニング済みモデル」を作成を押下します(本稿での画面キャプチャなし)

    3. モデルの詳細

      1. 教師ありチューニングを選択

      2. チューニングモデルを入力(任意の識別値)

      3. ベースモデルでGemini Pro 1.0-proを選択

      4. リージョンを選択

      5. チューニング設定

        1. エポック数

        2. 学習率の乗数

        3. アダプタサイズ

    4. チューニング用データセットの設定

      1. トレーニングデータをGCSにアップロード、またはトレーニングデータが置かれているGCSのバケットのパスを指定

    5. チューニングを開始

    6. チューニング完了後、Vertex AI Stuidoでカスタムモデルのテストを実施

     

    Vertex AI ファインチューニング画面①
    Vertex AI ファインチューニング画面②
    Vertex AI ファインチューニング画面③

    非常に簡単な工程でファインチューニングモデルの作成ができたことがわかります。また、通常100から500レコード程度のデータセットであれば、3時間程度でトレーニングが完了します。トレーニングにかかるコストはVertex AIの料金をご参照ください。

    ファインチューニング(Before/Afterの回答比較)

    基盤モデルのみの回答とファインチューニング後の回答を比較します。RAGは使用せず、LLMそのものの回答を確認します。

    【Condition】
    • Before:Gemini-1.5-pro-001をそのまま使用
    • After :Gemini-1.0-pro-002を基盤モデルとし、500行程度のデータセットでトレーニング
    • 両方とも外部データの使用(RAG)は使用せずレスポンスを確認

    Questions

    Before/ 基盤モデル

    After/ ファインチューニング

    (1) ソフトバンクの女性活躍推進について教えてください。

    ソフトバンクは「女性活躍推進法」に基づき、女性社員が能力を最大限に発揮し、活躍できる環境づくりに取り組んでいます。


    具体的な取り組みとして、女性の採用拡大、リーダーシップ研修、 mentoring プログラム、育児支援制度の充実などを実施しています。


    2030年までに、女性管理職比率30%を目指しており、多様な人材が活躍できる社会の実現を目指しています。

    ソフトバンクは、多様性と包容性を重視し、女性が活躍できる環境を積極的に創出しています。


    男性と同等に活躍できる環境や、女性ならではの視点を生かせるキャリア機会を提供します。

     

    チャレンジを支援するメンター制度や、ワークライフバランスを両立させるための柔軟な働き方など、多様な施策を実施しています。ダイバーシティ経営を推進することで、更なる企業成長を目指しています。

    (2)ソフトバンクのグレード制度と給与水準の関係性は?

    ソフトバンクでは、役割等級制度を採用しており、等級に応じて給与水準が設定されています。高いグレードほど、より広範囲な業務責任や求められる成果レベルが高くなり、それに応じて給与も高くなります。


    具体的には、個人の能力や成果、職務の難易度や責任範囲などを総合的に評価し、グレードと給与が決定されます。


    ただし、具体的な給与水準は、経験年数や能力、成果によっても異なり、一概には言えません。

    ソフトバンクでは、社員一人ひとりの貢献度と実力度合いを客観的に評価するグレード制度を導入しています。


    グレードに応じた公正な給与体系となっており、社員が高いモチベーションで挑戦を続けることで、より大きな報酬を獲得することができます。


    成果主義を徹底し、実力に応じた評価と報酬を実現しています。

    (3)ソフトバンクの健康経営推進における課題への取り組みは?

    ソフトバンクは、健康経営を推進する上で、従業員の健康状態の把握と、多様な働き方に対応した健康づくりの推進を課題として捉えています。


    これらの課題に対し、ウェアラブルデバイスを活用した健康データの分析や、オンラインでの健康相談やセミナーの実施など、デジタル技術を活用した取り組みを強化しています。


    また、管理職向けの健康経営研修などを実施し、組織全体で健康を促進する文化の醸成にも取り組んでいます。

    ソフトバンクは、社員が健康で活力にあふれた状態であることが企業成長の源泉であると認識し、健康経営を重要な経営課題として位置付けています。


    具体的な課題としては、長時間労働の抑制やメンタルヘルス対策があります。これらの課題解決に向けて、生産性の向上や柔軟な働き方の推進など、様々な取り組みを積極的に実施しています。

    7. 考察

    Beforeの回答は質問に対して適切に応じていますが、全体的に事実ベースで中立的な内容が目立ちます。文面は正確ながら、ソフトバンク独自のブランドトーン(革新性、未来志向)が明確には伝わっていません。

    一方、Afterの回答は具体性やデータに基づく部分ではBeforeに劣るものの、ソフトバンクのブランドトーン(例えば「未来志向」「挑戦する精神」「多様性と包容性」)をより強調しています。これにより、企業の姿勢やビジョンが鮮明に感じられ、ブランドの個性を強く打ち出した主観的な応答になっています。また、チューニング済みのモデルとRAGの知識ソースを掛けあわせることによって、ブランドトーンを保ちつつ、より具体的で正確な回答を実現することもできるでしょう。

    8. まとめ

    本稿では、Google Cloud Vertex AIによるGemini Pro 1.0のファインチューニング手法と、その効果を解説しました。特に、ファインチューニングが表現特化型モデルとして企業のブランドトーンやメッセージを的確に伝える力が重要である点を確認しました。また、RAGの安定性や効率性と比較しながらも、微妙なニュアンスや表現力を求められるシーンでは、ファインチューニングがより適切な選択肢となる可能性を感じていただけたのではないでしょうか。

    Gemini Proのファインチューニング機能はVertex AIの機能として統合されており、Google Cloudのアカウントさえあればどなたでもすぐに利用することができます。本稿の内容が参考になったという方は、是非Google Cloudを活用してみてはいかがでしょうか。

    最後に、ソフトバンクではGoogle Cloudに関する支援を行っておりますので、各種サービスのご活用もご検討いただけると幸いです。

    Vertex AI DIYプランについて

     Vertex AI Search を使って社内文書検索環境(RAG)を構築してみませんか?ソフトバンクのエンジニアが構築をサポートします。

     Vertex AI DIY プランでは、以下の3つのことをご体験いただけます。詳細は、関連サービスにある「Vertex AI DIYプラン」をご確認ください。

    SoftBank Vertex AI Search DIYプランのご紹介

    Google Cloud 関連サービス

    Google Cloud

    Google サービスを支える、信頼性に富んだクラウドサービスです。お客さまのニーズにあわせて利用可能なコンピューティングサービスに始まり、データから価値を導き出す情報分析や、最先端の機械学習技術が搭載されています。

    MSPサービス

    MSP(Managed Service Provider)サービスは、お客さまのパブリッククラウドの導入から運用までをトータルでご提供するマネージドサービスです。

    おすすめの記事

    条件に該当するページがございません