大規模言語モデル(LLM)をアプリケーション開発で活用するには? グーグル・クラウドが基礎から解説

  • 2023.09.11
  • AI
大規模言語モデル(LLM)をアプリケーション開発で活用するには? グーグル・クラウドが基礎から解説

 大規模言語モデル(LLM)のAPIを駆使したアプリケーション開発への注目が高まっている。しかし、LLMのAPIだけで実用的なアプリケーションを開発するのは容易なことではない。デブサミ2023夏、グーグル・クラウド・ジャパンのセッションでは、LLMの基礎知識から始まり、「埋め込み表現」や「ベクトル検索」といった技術を組み合わせた生成AIアプリケーションのアーキテクチャがデモンストレーションとともに解説された。

大規模言語モデル(LLM)とは何か? その仕組みと実用化まで

登壇したのは、グーグル・クラウド・ジャパン合同会社 ソリューションズアーキテクトの中井悦司氏と、同社のAI/ML 事業開発部長である下田 倫大氏の2人。まず中井氏がセッションのテーマである大規模言語モデル(LLM)の基礎知識を解説した。

グーグル・クラウド・ジャパン合同会社 Solutions Architect 中井悦司氏
グーグル・クラウド・ジャパン合同会社 Solutions Architect 中井悦司氏

ウィキペディアで「言語モデル」を調べると、「単語列に対する確率分布を表わすもの」とある。中井氏は、世の中に存在する大量の自然言語で書かれたテキスト文書に対し、その文書がどれほど「ありそう」なものなのかを確率で表現するものが言語モデルであると説明した。

言語モデルの利用例として、文章の次に来る単語の予測が挙げられる。例えば、”This is a ……”とあると、多くの日本人は”pen”と想像することが多い。そして言語モデルなら「This is a pen」という文章が存在する確率はそれなりに高いと判断する。一方で、文法的に誤った単語「the」を続けると、「This is a the」となるが、言語モデルは、このような文が存在する確率はゼロに近いと判断する。

大規模言語モデル(LLM)とは、その根底にあるのは基本的に「次の単語を予測する」というシンプルな言語モデルである。しかし、そのモデルを大規模にすることにより、予測精度が上昇する。中井氏は、2017年にGoogleの研究者らが中心となり、言語モデルの精度を向上させるための「Attention機構」の発明について言及した。これにより、言語モデルの精度が向上し、実用的なレベルで使用可能となった。

文章の次に来る単語を予測するAttention機構
文章の次に来る単語を高い精度で予測するAttention機構

中井氏は、GoogleではPaLM 2と呼ばれる大規模言語モデルを開発したことを紹介し「既に実用化されていて、Google Cloudのさまざまなプロダクトのバックエンドとして使われています。皆さんもお試しいただければと思います」と呼びかけた。

LLMの3つの課題、乗り越えるために求められる機械学習の知識

次に中井氏は、現状のLLMの課題を挙げた。1つ目が、入力トークン数の上限で、いわゆるプロンプトに入力できる文章の長さに制限があることだ。例えば、ある巨大な製品カタログを全て入力し、要約を行う、あるいは製品カタログの情報を全てプロンプトに入力し、カタログから必要な情報を検索するといった使用方法を考えると、カタログが巨大であればあるほど、プロンプトに全ての情報を入れることは困難になる。

2つ目はいわゆる「ハルシネーション」の抑制が困難であるという点。言語モデルは存在する文章と照らし合わせて、「それが現実に存在しそうか」を判断する。そのため、出力される文章の内容は必ずしも真実ではない。世の中には、「現実にありそうだが実際には誤りである」文章が多数存在する。言語モデルもまた同様で、必ずしも正しい答えを提供するわけではないのだ。

「チャットボットと会話して遊ぶ分には楽しくて良いのですが、ビジネスに使おうとすると、事実と異なる内容では困ります。ビジネスの目的に合わせて言語モデルの動きをコントロールする工夫が必要になります」(中井氏)

もう一つの問題がチューニングだ。製品カタログ全体をプロンプトに入力するのが難しいなら、モデル自体を追加学習し製品カタログのデータでモデルを更新するという解決策を考えるかもしれない。しかしながら、大規模なモデルを再学習するには、相当なデータ量と計算時間、それに伴うコストが必要となる。

LLMには制限・課題があるため、他の技術と組み合わせたアプローチが必要
LLMには制限・課題があるため、他の技術と組み合わせたアプローチが必要

中井氏は、このような問題に対処するにはLLMだけを使うのではなく、豊富に存在する既存の機械学習技術を組み合わせて解決すればいいと説く。LLMは、自然言語を入力として、即座に回答が返ってくるという特性を持つため、機械学習の知識がない人でも簡単に使用できる。そのため、万能なツールと思われがちだが、実際にはそうではない。適切なアプリケーションを開発するには、機械学習の知識を持ったエンジニアと協力し、既存の技術と組み合わせたアーキテクチャを設計することが求められる。

Q&Aシステムで理解する「埋め込み表現」と「ベクトル検索」

たとえば、膨大な製品カタログの情報から、製品に関するQ&Aシステムを実現するシステムを作るには「埋め込み表現(エンベッディング)」や「ベクトル検索」といった技術と組み合わせるパターンがよく紹介されているという。中井氏は、その身近な例としてGoogle検索のふるまいを紹介した。

現在のGoogle検索にLLMは組み込まれていないが「クラウドの特徴」と検索すると、その質問に対する明確な答えの文章がハイライトされて表示される。以前の検索は単語レベルのマッチングだったが、今は検索の意図や意味にあった情報を探し出すことができるようになっている。

Google検索の仕組みは公開されていないが、中井氏は「エンベッディングやベクトル検索が使われていることが想像できる」と語る。

質問したい人が検索キーワードを入力すると、エンベッディングを経てコンテキストを解析し、ベクトルに変換する。そしてベクトル検索を用い、関連性の高い単語が含まれている部分をユーザーに提示する。この2つの技術を活用すれば、LLMを使わなくてもQ&Aシステムを実現することができる。

製品カタログQ&AはLLMなしでも実現可能
製品カタログQ&AはLLMなしでも実現可能

これにLLMを追加すれば、チャットボットと会話しながらより自然に回答を得られるシステムが考えられる。会話文からLLMが検索したい内容をまとめて、エンベッディング処理に渡す。そしてベクトル検索の処理で返ってきたカタログの情報をLLMがまとめて自然な文章として回答するような仕組みだ。このように、LLMは人と自然言語でやりとりするインタフェースをより使いやすくするために利用できるのだ。中井氏は、Google Cloudでも、今回の要求のような製品カタログをベースにした製品Q&Aの実装が可能だという。

続いて下田氏は、LLMの部分に使える「PaLM for Text and Chat」を紹介した。プロンプトエンジニアリングを通じてPaLM 2モデルを使ったチャットボットのようなものが作れる。自社のデータを使った固有のチューニングも可能となる。チューニングにはコストと精度のバランスの取れた比較的軽量な仕組みを提供しているという。

グーグル・クラウド・ジャパン合同会社 Google Cloud Japan AI/ML 事業開発部長
グーグル・クラウド・ジャパン合同会社 Google Cloud Japan AI/ML 事業開発部長

エンベッディングを行うサービスが「Embeddings API」だ。テキストや画像を入力すると、そのデータの持つ「意味」を抽出できる。また、意味の近いものを高速に探すベクトル検索には「Vertex AI Matching Engine」というサービスがある。下田氏は、メルカリUSから提供された商品データカタログで、テキストや画像を用いて人の感覚で「似ている」と感じるような商品を検索できるシステムのデモンストレーションを行った。

「T shirts」と入力すると、Tシャツの画像が並び、その後「With Dancing People」と入れると、踊っている人の柄のTシャツが並んだ。「T shirts」を「cups」に変えると、踊っている人の柄のカップが表示された。

メルカリUSの商品データ検索デモのアーキテクチャー
メルカリUSの商品データ検索デモのアーキテクチャー

「このデモのポイントは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」への参加を促した。

CodeZineより

AIカテゴリの最新記事