メルマガ読むならアプリが便利
アプリで開く

週刊Life is beautiful 2023年4月18日号: EmbeddingsとGPTを組み合わせると最強だという話

週刊 Life is beautiful
今週のざっくばらん EmbeddingsとGPTを組み合わせると最強だという話(メルマガ限定) 先週、少しだけ触れましたが、人工知能の技術の中で、最近重要度が増している Embeddings という技術に関して解説します。文系の方は、一見、難しいと感じるかも知れませんが、実はそれほど難しい話ではありません。今後、GPT3/4に代表されるLLM(Large Language Model)をビジネスに応用する際には、必ずと言って良いほど必要な技術なので、是非とも理解するように努力してください。 Embeddingsとは、一言で言えば、「文章」や「画像」などの複雑な(=膨大な情報量を持つ)データを、ベクトル(一連の数字の並び)に変換する方法です。ベクトルに変換することにより、元のデータよりずっと扱い安くなり、「二つの文章が似ているかどうか」「同じような動物が写っているか」などを素早く判断できるようになります。 簡単な例として、「単語」を「長さ2のベクトル」に変換する場合を考えてみます。「猫」「犬」「橋」という言葉をベクトル(Embeddings)に変換すると、 猫:[0.1, 1.0] 犬:[0.2, 1.0] 橋:[0.8, 0.3] と変換できたとします(どうやって変換するかは、まずは無視してください)。 それぞれのEmbeddingに含まれた数字を見ると、「猫」のEmbeddingと「犬」のEmbeddingが「似ている」ことが分かると思います。最初の数字は小さく(0.1と0.2)、2番目の数字は同じ1.0です。それと比べると、「橋」のEmbeddingは、そもそも最初の数字の方が大きく、値も大きく異なっています。 それぞれのEmbeddingを2次元座標の上にプロットしてみると、「猫」と「犬」のEmbegginsが近いところにあり、「橋」のEmbeddingが遠いところにあります。 猫、犬、橋、という文字だけを見ても、猫と犬が近い位置にあることは分かりませんが、Embeddingsに変換すれば、二つの点の距離を計算するなどが出来るので、猫と犬が近い位置にあり、橋が「仲間はずれ」であることが簡単に分かるのです。 実際のEmbeddingsは、入力する文章はもっと長く(文字の場合)、それを変換するベクトルはもっと高次元(数字の数が多い)です。OpenAIが提供している"text-embedding-ada-002" というモデルの場合、次元は1536です。 これぐらいの高次元だと、はるかに長い文章をEmbeddingに変更して、それらを比較することが可能になります。例えば、「自動車のオイルを交換するには、フードを開けて、オイルキャップを外し、古いオイルを捨てた上で新しいオイルを入れます」という文章と、「自動車のオイルはどうやったら交換できますか?」という文章が「近い」ことを表現できるのです。 Embeddingsを使った比較や検索は、通常の文字列ベースの検索とは違い、文章の内容・意味を理解した上で行われているため、はるかに精度が高いのです。たとえば、「私は自動車に乗った途端に、間違ったオリーブオイルを買ったことに気が付き、交換するためにスーパーに戻った」のような、単に単語が被っている文章とは「近くない」ことすら判断できるのです。 それどころか、「こんにちは、お元気ですか?」という日本語の文章と、「Hello! How are you?」という英語の文章が「近い」ことすらEmbeddingsで表現することが可能になるのです。 ここまで読んで、「任意の文章をEmbeddingに変換出来れば、すごく便利なことは分かるけど、どうやって変換するの?」と疑問に思った人も多いと思いますが、ここで出番なのが機械学習です。 基本的には、任意の文章を入力すると、指定した長さのベクトルデータを出力するニューラルネットワークを作り、それに大量のデータを与えて教育する、という手順で作ります。ニューラルネットワークの中には、膨大な数のパラメータがあり、それを使って出力を計算するように設計されていますが、大量の文章を与えながら、良いベクトルデータを出力するようにパラメータを徐々に変更する「バック・プロパゲーション」というテクニックを使ってニューラルネットワークを「教育」するのです。 十分に教育されたニューラルネットワークを使えば、任意の文章に対して、その文章の特徴を表す適切なEmbeddingを出力することが出来るようになるので、複数の文章の中から、特定の文章に似た文章を探しだす、質問に対して答えを含む文章を見つける、などの高度な処理が、効率的に行えるようになります。Embeddingsを使った検索は、通常の検索と違って、単に単語の検索をするだけでなく、「意味を理解した上で」検索をしてくれるため、自然言語での検索が可能になります。 それだけでも十分に便利ですが、EmbeddingsをGPTと組み合わせると、もっと凄いことが出来ます。 GPTは、世界中のさまざまな文章を使って教育した人工知能で、「自動車のオイルはどうやったら交換できますか?」ぐらいの汎用的な質問にはすぐに答えられますが、「2022年モデルのLexus R350の夏時間設定をオフにするにはどう操作すれば良いですか」のような個別の質問に答えるのは不得意です。オイル交換と違って、夏時間設定のオンオフの操作はモデルによって異なるし、2022年モデルのような新しい情報は、GPTには入っていないからです。 そんな時には、「2022年モデルのLexus R350」の操作マニュアルをGPTに読ませた上で、質問すれば良いのですが、1000ページ超のマニュアルは文字数が多くてGPTが受け付けてくれないし、もし受け付けてくれたとしても、莫大なコストがかかってしまうため、現実的ではありません。 そこで、重要な役割を果たすのがEmbeddingsです。対象となる自動車のマニュアルを項目ごとに分割し、それぞれの文章に対してEmbeddingを前もって計算しておきます。ユーザーが「夏時間設定をオフにするにはどう操作すれば良いですか」と質問した際には、その質問文のEmbeddingを計算し、マニュアルの各項目のEmbeddingと比較した上で、近いものから3項目だけを選んでプロンプトの一部としてGPTに読み込ませた上で、その読み込ませた文章を使って、ユーザーからの質問に答えるようにGPTに指示を出せば良いのです。 つまり、Embeddingsを活用すれば、「必要に応じて適切な知識をGPTに与えた上で、それに基づいた回答をさせること」が可能になるのです。 Twitter上には、数多くのGPT/ChatGPTの応用例が披露・報告されていますが、そのほとんどがGPTの表面的な力しか応用しておらず、Embeddingsを活用した本格的な使い方をした例はほとんどありません。多くの人が、教育済みのGPTに対して新たなデータを与えることなど不可能だと頭から決めつけているためだと思いますが、Embeddingsを活用すると、それが可能になるのです。 少し長くなってしまいましたが、この「EmbeddingsとGPTの組み合わせ」は最強で、色々な場面で使えるので、ぜひとも頭の片隅にでも残しておいてください。特に、顧客サービスにおいて、商品の使い方を教えたり、質問に答える場面では有効に使えるし、一般には公開していない社内向けの情報にチャット形式でアクセスすることも可能にします。 ひと昔前に、特定の分野の情報に詳しいデータベースのことを「エキスパート・システム」と呼んで持てはやしていましたが、実際には使い勝手が悪く、高い開発費をかけて作っても、宝の持ち腐れになるケースがしばしばありました。EmbeddingsとGPTを組み合わせれば、「チャットスタイルで誰にでも簡単に使える」エキスパート・システムが、いとも簡単に作れるようになってしまったのです。 この例一つ見ても、最近の人工知能の進歩が、いかに画期的かが分かるだろうと思います。 GPT4に小説を書かせる実験 GPT4で色々と実験をしていますが、やはりGPT4が一番得意なのは、途中で終わっている文章の続きを書くことです。そこで、既存の小説の冒頭を与えることにより、どんな文章を作成するか試してみました。 プロンプトとしては、以下のものを与えました。 system: あなたは売れっ子の小説家です。与えられた文章に繋げる形で小説を作ってください。 user: "吾輩猫である。名前はまだ無い。 どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。しかもあとで聞くとそれは書生という人間中で" 以下がGPT4が作った文章です。 一番獰猛(どうもう)で悪い種類だという。しかし、この書生というのは時々我々を笑わせてくれる。その日その日に違った髪型をして登場し、我々の前で奇妙な踊りを披露するのだ。こんなこともあろうかと思っていた矢先、書生がある日突然姿を消してしまった。 書生がいなくなってからの吾輩の日常は、少しさみしいものになった。しかし、その代わりに我々の家に新しい人間がやって来た。彼は静かな雰囲気を持っており、眼鏡をかけた温和な顔立ちをしていた。彼は画家だという。ある日、彼は吾輩をじっと見つめて、「お前は一体どこから来たのか?」と尋ねた。吾輩は答えることができなかったが、それでも彼は優しく微笑んでくれた。 画家が来てからの我々の家は、少しずつ変わり始めた。彼は家の中に絵画や彫刻のような美しいものを飾り、空気が明るくなっていった。そして、彼は吾輩にも名前を付けてくれることになった。彼がくれた名前は「ミヤビ」という、どこか上品で美しい響きの名前だった。吾輩はその名前にとても満足し、画家に感謝の気持ちでいっぱいだった。 ミヤビとして過ごす日々は、とても充実していた。画家はミヤビをモデルにして、たくさんの絵を描いた。その絵はどれも美しく、ミヤビはそのたびに感動した。画家はミヤビの美しさを絵に表現することで、自分の技術を磨いていくことができた。そして、その絵は徐々に評判を呼ぶようになり、遠くの地からも人々が見に来るようになった。

この続きを見るには

この記事は約 NaN 分で読めます( NaN 文字 / 画像 NaN 枚)
これはバックナンバーです
  • シェアする
まぐまぐリーダーアプリ ダウンロードはこちら
  • 週刊 Life is beautiful
  • 「エンジニアのための経営学講座」を中心としたゼミ形式のメルマガ。世界に通用するエンジニアになるためには、今、何を勉強すべきか、どんな時間の過ごし方をすべきか。毎週火曜日発行。連載:菅首相に会って来た/米国で起業する時に知っておかねばならないこと。
  • 880円 / 月(税込)
  • 毎週 火曜日(年末年始を除く)