🕌

LLM+グーグル検索を使ったグラウンディング

2024/08/06に公開

Google Cloud Next Tokyo 24で会場ブースを周っている際、最初に聞いたネタが私にとってはまさに探していたネタでした。LLMが知らないことをこたえられないのは有名ですが、知識の拡張にグーグル検索が使える機能がすでにリリースされていたそうです。

ドキュメントだとここに掲載されています。

https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/ground-gemini#ground-gemini-web-python_vertex_ai_sdk

これが欲しかった。ということで良かった。まぁ実際使う際には、サーチで得られる情報のクォリティ管理も考える必要があったりしますが作らなくてもあるというのは凄い良いですね。

というわけで、ドキュメントを読みながら触ってみました。

グーグル検索を使ったグラウンディング

今回はGoogle Colabを使ってコードを動かしています。設定は npaka さんの記事を参考にしました。
https://note.com/npaka/n/nca618fd69536

執筆は8月6日の朝。とりあえず昨日の株価の下落がすさまじかったので、聞いてみました。

import os
import vertexai
from vertexai.generative_models import (
    GenerationConfig,
    GenerativeModel,
    Tool,
    grounding,
)

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = json_path
vertexai.init()

model_name = 'gemini-1.5-flash'
model = GenerativeModel(model_name=model_name)

tool = Tool.from_google_search_retrieval(grounding.GoogleSearchRetrieval()) # toolとしてグーグル検索を選ぶ)

prompt = '8月5日の日本株式市場のTOPIXの終値、前日比、前日比率を教えてください'
res = model.generate_content(
    prompt,
    tools=[tool],
    generation_config=GenerationConfig(
        temperature=0.0,
        max_output_tokens=1024
    )
)

次が返ってきた値なのですが、yahooファイナンスで確認したところ、正解でした。

res.text
2024年8月5日のTOPIXの終値は2,227.15ポイント、前日比は-310.45ポイント、前日比率は-12.23%でした。 

まとめ

この辺りを使うと、ウェブ上に情報が公開されている企業であれば、人間が入力しなくてもいい感じに情報まとめてくれて、それを使うなんてことも可能かなと思いました。どう便利に使えるかもうちょっと考えていきたいところです。

ちなみにvertexaiのgroundingのコードは以下の部分に。

https://github.com/googleapis/python-aiplatform/blob/main/vertexai/generative_models/_generative_models.py#L2217

Discussion