Q&Aシステムで理解する「埋め込み表現」と「ベクトル検索」
たとえば、膨大な製品カタログの情報から、製品に関するQ&Aシステムを実現するシステムを作るには「埋め込み表現(エンベッディング)」や「ベクトル検索」といった技術と組み合わせるパターンがよく紹介されているという。中井氏は、その身近な例としてGoogle検索のふるまいを紹介した。
現在のGoogle検索にLLMは組み込まれていないが「クラウドの特徴」と検索すると、その質問に対する明確な答えの文章がハイライトされて表示される。以前の検索は単語レベルのマッチングだったが、今は検索の意図や意味にあった情報を探し出すことができるようになっている。
Google検索の仕組みは公開されていないが、中井氏は「エンベッディングやベクトル検索が使われていることが想像できる」と語る。
質問したい人が検索キーワードを入力すると、エンベッディングを経てコンテキストを解析し、ベクトルに変換する。そしてベクトル検索を用い、関連性の高い単語が含まれている部分をユーザーに提示する。この2つの技術を活用すれば、LLMを使わなくてもQ&Aシステムを実現することができる。
これにLLMを追加すれば、チャットボットと会話しながらより自然に回答を得られるシステムが考えられる。会話文からLLMが検索したい内容をまとめて、エンベッディング処理に渡す。そしてベクトル検索の処理で返ってきたカタログの情報をLLMがまとめて自然な文章として回答するような仕組みだ。このように、LLMは人と自然言語でやりとりするインタフェースをより使いやすくするために利用できるのだ。中井氏は、Google Cloudでも、今回の要求のような製品カタログをベースにした製品Q&Aの実装が可能だという。
続いて下田氏は、LLMの部分に使える「PaLM for Text and Chat」を紹介した。プロンプトエンジニアリングを通じてPaLM 2モデルを使ったチャットボットのようなものが作れる。自社のデータを使った固有のチューニングも可能となる。チューニングにはコストと精度のバランスの取れた比較的軽量な仕組みを提供しているという。
エンベッディングを行うサービスが「Embeddings API」だ。テキストや画像を入力すると、そのデータの持つ「意味」を抽出できる。また、意味の近いものを高速に探すベクトル検索には「Vertex AI Matching Engine」というサービスがある。下田氏は、メルカリUSから提供された商品データカタログで、テキストや画像を用いて人の感覚で「似ている」と感じるような商品を検索できるシステムのデモンストレーションを行った。
「T shirts」と入力すると、Tシャツの画像が並び、その後「With Dancing People」と入れると、踊っている人の柄のTシャツが並んだ。「T shirts」を「cups」に変えると、踊っている人の柄のカップが表示された。
「このデモのポイントは2点あります。メルカリのサービスの性質上ですね、いわゆる商品マスターみたいなものがなく、出品ユーザーが必ず商品情報を記述しているわけではない条件でもこれらの情報を見た目でヒットさせたことが1つ。もう1つは、100万点ぐらいあるベクトルに対してかなり速いレスポンスで返ってくることです」(下田氏)
このデモでは、データがテキストであれ画像であれ、一度その意味を抽象的な埋め込みベクトルに変換すると、そこから先はベクトルマッチングのシステムを用いて同様の処理が可能となった。中井氏は、LLMに固執すると、扱えるデータは自然言語に限られ、画像処理ができないことを指摘し、なんでもLLMで処理しようとせず、既存の技術を組み合わせることの重要性をあらためて強調した。
Google CloudのAI/MLソリューションは、SaaS、PaaS、IaaSの層でさまざまなものが展開されている。フルスクラッチで独自のシステムを作ることもできれば、決まった用途ならSaaSで対応も可能だ。下田氏は、その代表として「Generative AI App builder(Enterprise Search)」を紹介した。Google Cloudのサービスを組み合わせてカタログ検索をするには、ベクトルの長さやカタログ情報の分割など変動する部分が存在し、調整が難しい。Enterprise Searchであれば、生成AIのテクノロジーを組み込み、スケーラブルな検索システムを手軽に作れるという。
下田氏は「典型的なユースケースとして、検索や会話が頭にも浮かぶと思います。こういったものをマネージドサービスという形で提供しています。ユーザーの皆様がやっていただくのは、データを入れて、少し設定するだけでご利用いただけます。よりアプリケーション開発に集中できようになります」
中井氏はLLMの技術はまだ黎明期にあり、さまざまな技術と組み合わせたアーキテクチャーのパターンが考えられるため「現在は失敗を経験しながら知見をためていく段階」であるとし、最後にGoogle Cloudの利用と、メンバー限定のウェビナーなどが配信されるプログラム「Google Cloud Innovators」への参加を促した。