Vertex AI での Google 検索によるグラウンディング: 使用方法と使用する理由
Mete Atamel
Cloud Developer Advocate
※この投稿は米国時間 2024 年 5 月 30 日に、Google Cloud blog に投稿されたものの抄訳です。
はじめに
時折、とても使いやすくて便利な機能に出会うことがあります。今まで、その機能を使わずにどのように生活していたのかわからなくなるほど便利な機能に。私にとって、Vertex AI の Google 検索によるグラウンディングは、まさにそうした機能の一つです。
このブログ投稿では、大規模言語モデル(LLM)にグラウンディングが必要となる理由と、Vertex AI の Google 検索によるグラウンディングによって、開発者の労力が最小限になるしくみについて説明します。
LLM にグラウンディングが必要な理由
LLM は十分素晴らしいのに、なぜグラウンディングが必要なのか、不思議に思っているのではないですか?
LLM は確かに、コンテンツを生み出すことには長けていますが、次のようないくつもの弱点があります。
-
生成されるコンテンツがフェイクである可能性(ハルシネーション)
-
生成されるコンテンツが最新のものではない可能性(最新情報に基づいていない)
-
生成されるコンテンツに出典の引用が明記されない
-
個人情報と無関係のコンテンツ(一般公開されている知識のみに基づくコンテンツ)が生成される
このような制限を回避し、より信頼性の高い生成 AI アプリケーションを構築するには、LLM のグラウンディングが不可欠となります。
Vertex AI のグラウンディング
Google Cloud の Vertex AI Agent Builder は、一般公開データか限定公開データかに応じて、さまざまなグラウンディング ソリューションを提供します。
このブログ投稿では、Google 検索によるグラウンディングに焦点を当てます。この機能を使用することで、信頼できる Google 検索で得られた世界中の知識と公然の事実に基づき、LLM の回答の根拠を示すことができるようになります。この機能は、ハルシネーションを改善し、より最新のデータを LLM に提供するために役立ちます。
グラウンディングを使用しない場合
まず、グラウンディングを使用しない場合の例を見てみましょう。Vertex AI 上のテキストベース モデルに対し、新しいデータを必要とする質問を入力してみます。
私はアーセナルのファンなので、このモデルがアーセナルの最新の試合結果を知っているかどうか興味があります。
プロンプト: アーセナル FC の最新の試合結果はどうでしたか?
回答: 私はリアルタイムの情報にアクセスできないので、アーセナルの最新の試合結果をお知らせすることはできません。最新情報を確認するには、公式のスポーツサイトやニュース提供元をチェックすることをおすすめします。
私が住んでいるロンドンでは、人々はいつも天気の話をしています。天気に関する質問に、モデルは回答できるでしょうか?
プロンプト: 昨日のロンドンの天気はどうでしたか?
回答: 私は気象データを含め、リアルタイムの情報にアクセスできません。最新の気象情報を確認するには、ロンドンをカバーする、信頼性の高い気象情報源をチェックすることをおすすめします。天気予報や過去のデータは、BBC Weather、AccuWeather、The Weather Channel などのウェブサイトやアプリで見ることができます。
当然ながら、これらの質問には最新データが必要となるため、モデルには答えられません。
次に、グラウンディングを有効にして、回答がどう変わるか見てみましょう。
Google 検索によるグラウンディングを有効にする
Google 検索によるグラウンディングを有効にするには、Google Cloud コンソールの Vertex AI Studio に移動して、プロンプトを作成または選択します。左側の詳細設定セクションに、[根拠づけを有効にする
] トグルスイッチがあります。
このトグルを有効にすると、設定のカスタマイズを求められます。
[Google 検索] を選択します。
グラウンディングを使用する場合
Google 検索によるグラウンディングを有効にしたところで、もう一度同じ質問をしてみましょう。
プロンプト: アーセナル FC の最新の試合結果はどうでしたか?
回答: アーセナルの最新の試合は、プレミアリーグ最終節のエヴァートン戦に 2-1 で勝利しました。[1]しかし、タイトル争いではわずかに及びませんでした。[1]
グラウンディングの出典
おもしろいですね。回答だけでなく、回答の出典まで出力されました。これは正確な情報でしょうか?確認のため、Google でアーセナルの試合結果を検索してみると、回答が確かに正しかったことがわかります。
もう一つの質問も訊いてみましょう。
プロンプト: 昨日のロンドンの天気はどうでしたか?
回答: 2024 年 5 月 20 日、ロンドンの天候は快適で、日中の気温は 17℃ に達し、夜は 8℃ まで下がりました。[3]日平均日照時間は 6 時間で、降雨があったのは 13 日間でした。[3][4] 5 月のロンドンの天候は通常、穏やかで晴天が続き、時折にわか雨があります。[1][2] しかし、天候は予測できない場合もあるので、屋外での活動を計画する前に最新の予報を確認することをおすすめします。
前回よりずっと良い回答です。5 月 20 日の天気は確かに快適で快晴だったことも確認できます。
まるで魔法のようですが、実際にはどのようにアプリケーションにコード化するのでしょうか?
Google 検索によるグラウンディングのコーディング方法
Google 検索によるグラウンディングのような強力な機能は、コーディングも複雑ではないかと思うかもしれませんが、実際はとても単純です。
次に、Python ドキュメントからのサンプルである gemini_grounding_example.py
を示します。Google 検索結果を取得するツールを定義し、コンテンツ生成の関数呼び出しで使用するだけです。
グラウンディングは、Python だけに限定された機能ではありません。次に、C# による GroundingWebSample.cs
を示します。ここでは、コンテンツ生成リクエスト内で Google 検索結果の取得ツールを定義しています。
まとめ
このブログ投稿では、Vertex AI の機能である、Google 検索によるグラウンディングについて説明しました。これは、情報の事実性と最新性が重要視される場合に欠かせないツールであり、便利で使いやすく満足のいくものです。さらに詳しい情報については、以下のページをご覧ください。
-Cloud デベロッパー アドボケイト Mete Atamel