見出し画像

【AI入門】[エンベディング]によるベクトル化の可能性 -人の思考をベクトル化したら?

 先日、自分の家紋や、ひいては、自分自身を表現する「自分の個人の紋章」を生成系AIで作れる、という、未来のAIの可能性について述べました。


「エンベディング」って?

 この考えに至った概念、また、Chat-GPTなどの生成系AIが使っているのが、モノを数値化、正確には、「ベクトル値」にするためにする「エンベディング」というものです。

ベクトル値?、エンベディング

 聞きなれない言葉ですよね。

 物事をベクトル化することが、今後、さまざまなことに革新をもたらすでしょう。今回は「エンベディングして物事をベクトル(数値)化すること」について、簡単に説明します。

ベクトル値とは?

 まず、ベクトル(数)値とは何かを説明します。

3次元ベクトル

 僕たちの世界では、モノの形を、縦、横、高さの3次元で表します。

例:モノの形を、縦、横、高さの3次元で表す

例1:「僕が使ってるメガネケースはどんな形してますか?」
「縦3センチ、横5センチ、高さ10センチです」、と縦、横、高さの3つの軸で表せる(そう言われれば、なんとなく形を想像できる)

例2:「今、飛行中の飛行機XX便はどこを飛んでいますか?」
正確に定義するためには、緯度、経度、高度の3つの軸で表せる

 どちらも3つの数値で、そのモノの大きさや存在位置を定義できます。

 僕たちの生きている世界は3次元といいますが、こうした3つの次元=変数で表現するのが一般的なので、3次元というわけですね。これを3次元ベクトルといいます。

 ちなみに、さきほどのメガネケースは、3次元ベクトルになおすと(3,5,10)という3つの数値の並びになるわけです。

 ベクトルは方向という意味で日常会話でも使われています。「あなたの考えと私の考えは、同じベクトルを向いてるね」などと言いますよね。

生成系AIは「ベクトル値」の計算を行う

 Chat-GPTなどの生成系AIは、流ちょうな言葉で回答しますが、これは、入力された文章の回答にふさわしい文章を、「ベクトル値」の計算をして、一番ふさわし単語を並べて出力する形で回答をしています。

多次元のベクトル値

 では、どのようなベクトル値を計算しているかというと、多次元のベクトル値となります。

 多次元とは、字のごとく、多くの次元のことです。その理由は、Chat-GPTは、僕たちが使う、言葉を「適切に」使いこなさなければならないからです。

 例えを出していきましょう。言葉を話すには、「単語」を流ちょうにつなげないといけないですよね。

「単語」を流ちょうにつなげるためには

1.「10分の休憩時間に、どこに行ってたのですか?」と聞かれて、
 「僕 は 公園 に 行った」と回答するのは自然ですが、  
 「僕 は 講演 に 行った」と答えたら、なんだか変ですよね?
 公園と講演は同じ読み方でも意味が違う

2.「はし」が、端なのか、橋なのか、箸なのかは、文脈で変わってくる

 つまり、「適切に」言葉を使うには、文脈に応じて適切な「単語」を選ぶ必要がある

 ましてや、Chat-GPTは、言葉だけでなく、画像も、音声も、扱います。

 世の中の単語や画像など、色々なものを、意味を持たせて理解、区別させるには、単語やモノなどの持つ意味や概念といった複雑なことを、コンピュータに認識させ、区別させないといけません

 コンピューターが扱えるのはデータです。データーとは数値の並びです。

 この複雑な、単語やモノなどの持つ意味や概念を数値の並びで理解させようとしたら、3次元の3つの数値の並びだけでは、とても理解させられませんもっと多くの数値を並べて、個々の単語や物の概念を認識させないと、それらを使い分けることができないのです。

 そのため、複雑な数値、つまり多次元な数値が必要。これを多次元のベクトル値、と呼びます

生成系AIの扱うベクトル値

 では、生成系AIを賢く動かせるためには、単語や画像をどれぐらいの次元を使って表現、区別すればいいのでしょうか?

 これは、Chat-GPTやGoogleのBardなど生成系AIによって異なりますが、一般的なには数千~多ければ数万以上の多次元の値が必要になります。

 つまり、Chat-GPTなどの生成系AIのシステムは、その内部で、単語などを(10,14,26,53.345.20,632,12,76,...)といった数千、数万次元のベクトル値で管理、把握、計算をして、動いているということです。

エンベディングとは

 AIはシステムなので、コンピューターを動かすCPU、正確にはGPUが高性能であれば、このような多次元のベクトル値を計算し扱えるのです。

 そして、この「モノゴトの概念を多次元のベクトル数値化することを、「エンベディング」といいます。

エンベディングとGPU

 エンベディングの方法は多数存在し、ベクトルの次元が多ければ多いほど扱うのが大変になるため、大きなコンピューターでないと扱えません。

 ちなみに、こうした多次元ベクトルを計算するのに長けたコンピュータのCPUをGPUと呼び、このGPUがないと、AIを開発したり、動かしたりできないのです。

Chat-GPTが流ちょうな回答をするまで

 Chat-GPTが質問に回答する際に、答えとして一番「最適」と思われるベクトル値を計算し、それに最も近いベクトル値をもつ単語を出力します。

 出力後の回答文の次の言葉を出すために、さらに続きの単語としてふさわしい単語を、やはりベクトル計算して……を延々と続けることで、流ちょうな言葉で回答をしているのです。

例: What is this?と聞かれた場合

1.この質問の文章をベクトル化して、その回答の先頭にくる単語として一番適切なベクトル値を計算し、そのベクトル値の一番近い、Thisという単語を出力

2.質問文と、回答の最初に出力した「This」をすべてベクトル化して、Thisの後に出力する最適なベクトル値を計算し、そのベクトル値に一番近い、「is」を出力する

3.これを繰り返し、This is a pen. と出力して回答が終了する

ざっくりこんな感じで、Chat-GPTはベクトル値を計算して並べて回答文を作っている

ベクトル化の可能性

物事の概念をエンベディング→ベクトル化

 こうした物事の概念をエンベディングしてベクトル化することで、今後色々な可能性がでてくると思います。

 「ベクトル値がより近似値」であることが「似ている」ということ、だからです。

物事の概念をエンベディングしてベクトル化することで、
今後色々な可能性が出てくる例

現在:例えば、人の性格を判断するのに血液型で分類。最近だと韓国でMBTIが流行ったりしていて、さらに細かく16パターンでヒトを分類して人気

エンベディング技術を活用したら:例えば、性格を400文字で書いてもらい、それをベクトル化→ヒトの性格などがさらに細分化できるはず。相性の分析もっと進むかもしれない

人の思考をベクトル化したら

 人の思考をベクトル化したらどうなるでしょうか?

人の思考をエンベディングしてベクトル化することで、
今後色々な可能性が出てくる例

例1:Aさんの考え方とBさん考え方の類似度が、論理的にわかる
例2:哲学の思想体系、例えば「ヘーゲルとデカルトの哲学は、どちらが、よりカントに近いか」を論理的に分類できるかもしれない

 このエンベディングをすることによる、モノの概念を数値化する。

 このことで、以前お話しした、家紋の画像と意味を数値化して表現する、ことなどができるようになります。

 さらには、哲学などの思想、喜びや怒りなどの感情など、の抽象的な概念も、このエンベディングによって、ベクトル化することが理論的には可能ですし、遠くない将来、そうなるでしょう。

アナログとデジタルの融合

 そうすれば、今まで「なんとなく気に入ってる」といった抽象的な事象から、哲学などの思想やアートに至るすべてのものが、アナログからデジタルに置き換えることができます。

 これは、アナログとデジタルの融合ともいえるわけで、こうすることで、言語化できなかった、ヒトの知恵、すなわち、暗黙知などが数値化され、より論理的に扱えるような時代になるかもしれません。

「エンベディングによるベクトル化」、未知の可能性

 それほどに、この「エンベディングによるベクトル化」には未知の可能性を秘めており、今後AIがAGIになる過程において、様々なことがデジタル化されていくと、僕は思っています。











いいなと思ったら応援しよう!