AI strategy

ChatGPTは「なぜあたかも知能があるかのように」振る舞えるのか~"ベクトル"の秘密

ChatGPTについて時々、
誰もが不思議に思う素朴な疑問
についてご質問をいただくことがあります。

「ChatGPTはなぜ知能があるかのように見えるのでしょうか?」
というそもそもの根源的な疑問です。

ChatGPTを「AI」と読み替えていただいても構いません。

あなたもそんな疑問を抱いたことはありませんか?

「AIだから」というのは答になっていません。
それならなぜAIだったら知能があるかのように見えるのでしょうか?
とどんどん疑問が深くなるだけです。

この記事では、そこのところを専門家しかわからない話ではなく、
「AIやChatGPTという言葉は知っている」ごく普通の方に向け
できるだけ簡単にわかりやすく解説を試みています。

なおご不明な点等ありましたら、当ブログのKENBOへの問合せフォーム
メルマガで送信元アドレスへメールをいただければご返信します。

ベクトル(Vector)の世界だから

ChatGPTはLLM(大規模言語モデル:Large Language Model)と呼ばれる
生成AIのひとつです。

LLMという単語も、ChatGPTの爆発的浸透によりどこかで聞かれた方が多いと思います。

さて、AIというものが「学習」を経て「推論」(=アウトプットを出すこと)する
ことも今では普通に知られている状況かと。

で、

LLMが「学習」する際に与えられたデータ(文章)を
どのように記憶するのか?
という点が実はミソなのです。

単語をただの単語としてそのまま記憶しているのではありません。

ちょっとややこしい表現になりますが、
意味が近い単語は近く、意味が遠い単語は遠くに・・・といった具合に
Embeddingベクトル空間のベクトルデータとして記憶されるのです。

はぁっ??

と思われた方がほとんどのはずです。
ですがここに秘密があるので、少しだけ深く入りますね。

まずは、

ベクトル・・・・ってそういえば数学で出てきたあれかな?
と思い浮かべたかもしれませんが、まさにあれのことです。

ベクトル(Vector)、ベクターとも同じ意味ですが、
ここではベクトルで統一します。

ベクトルとは、大きさと向きを持つ量を表すためのものです。

数学でいうところの多次元空間内で位置関係や特徴を表現することができ、
その性質を利用してデータ間の類似性などを計算できるのです。

ベクトルのもつ角度や距離なんかで、これは似てるとか、
これは縁遠いな、ということを計算できるのだとご理解ください。

さきほどEmbeddingベクトル空間という難しい言葉を使いましたが、
Embedding(エンベディング)とは文や単語、文字などのテキストデータを
ベクトルに変換することを指します。

このベクトル空間上では、意味的に近い単語は互いに近い位置に配置され、
遠い単語は遠くに配置される
ようになっています。

例えば「りんごは果物です」という情報を記憶するケースを考えてみます。

「りんご」をベクトルデータとして記憶するため、
そのベクトル空間上の近いところに「みかん」もあります。

で、「みかん」から始まる文章の例として、
「みかんは」と来たら、続きには「果物」と予想できるのです。

重要なことは、それをほぼ瞬時に見つけ出してアウトプット出せる点であり、
データがベクトルではなく例えば表形式のような従来の古いデータベースだと
データ量が増えれば増えるほど処理速度が遅くなります。

「みかんは」とその続きに何分、或いは何時間も答が出てこないものなら
まったく使い道がありませんよね?

Googleベクトル検索技術でSEOもYouTubeもどうなってるかわかる

Google Cloud blog記事より引用

この図はGoogleによるものですが、Embeddingベクトル空間に
配置されたデータの近似性、類似性をどうやって膨大なデーやから
瞬時に見つけ出せるのかを示したものです。

わかりやすく書かれたこちらのGoogle Cloud公式ブログ記事をご覧ください。

あらゆるデータの瞬時アクセスを実現する Google のベクトル検索技術 | Google Cloud 公式ブログ
あらゆるデータの瞬時アクセスを実現する Google のベクトル検索技術 | Google Cloud 公式ブログ

cloud.google.com

この記事を読むだけでGoogleの検索エンジンが
どんな動き方をしているのかもなんとなく想像できます。

大昔のキーワード検索と違って、今は完全なベクトル検索をやっているのがGoogleの検索エンジン。

SEOで話題にするキーワード選定でそれが「近いのか遠いのか」を
Googleはこんなふうにベクトル空間で管理しているイメージが掴めるかと思います。

これと同様にEmbeddingベクトル空間にChatGPTのデータも配置されている、
だからこそ関連するデータの近似性も含めて瞬時に選び出すことができるのです。

瞬時に人間から見ても「もっともらしい」言葉を連続して紡ぎ出せる技術なので、
一見、知能があるかのように見えてしまいます。

このイメージを掴むことで「なぜあたかも知能があるかのように振る舞えるのか」
その秘密がなんとなくでもお分かりいただければ幸いです。