知能と生命:最小トランスフォーマーモデル
会話型AIや生成AIが話題になってからしばらく経ちます。各社の生成AI開発競争は激しくなっていますが、現在もOpenAI社のChatGPT4が先進的な位置を保っているようです。
このChatGPTの最後のTは、Transformer(トランスフォーマー)の頭文字であり、現在の会話型AIのキーとなっている技術です。
このトランスフォーマーは、昔から人工知能技術の要素技術として知られているニューラルネットワークを利用しており、そこに含まれているニューロンの数が飛躍的に大きくなったことで人間に近い会話が可能になり、ある時点まではその数を増やすことで知的な能力も向上していくことも知られています。
一方で、トランスフォーマーは、そのニューラルネットを使った処理の構造に特徴があり、エンコーダとデコーダと呼ばれる構造を持っていることが重要なポイントとなっています。
この記事では、ニューラルネットとそのニューロンの数の大きさではなく、純粋にトランスフォーマーの処理構造に焦点を当ててその性質を考えるために、ごくシンプルな最小トランスフォーマーモデルを考えていきます。それは、基本的には単一のニューロンによる変換処理として考える事ができます。
この最小トランスフォーマーモデルについて考えると、そのシンプルさに比べて、直感に反するほどの複雑な処理ができる可能性が見えてきます。これがトランスフォーマーモデルの本質であると考えられます。その単一ニューロンの部分を多数のニューロンを含むニューラルネットワークに置き換えることで、実際の会話型AIは、強力な処理が行えるようになっているという理解をすることができます。
また、このトランスフォーマーの構造に着目すると、それが知能だけでなく単一の細胞生物においても類似の構造が見られることが理解できます。ニューロンと生物細胞内の反応は基本的には大きく異なる仕組みですが、処理構造という点ではトランスフォーマーの本質的な構造を両方が共通に持っていることが見えてきます。つまり、基本メカニズムは異なりますが、処理構造の共通性が、生物と知能には見られるという事です。
■単一ニューロンの波
単一のニューロンについて、連続的な活性化関数を持つニューロンの出力信号を、そのニューロンの入力に入れるフィードバッグ構造を考えます。
入力信号は出力信号に変換されます。この時、定数として重みを入力値に掛け、バイアスを加算します。それを活性化関数と呼ばれる関数で変換したものが出力信号の値となります。
フィードバックループ構造により出力信号がまた入力信号としての与えられるため、重みをかけてバイアスを加算し、再び連続的な活性化関数で変換されます。
初期値、重み、バイアス、活性化関数次第ではありますが、この仕組みは、ある値に収束したり、一方の周期性を持って繰り返されたり、あるいは収束も単調な周期性もない、複雑な波を出力する可能性があります。
この出力の時点で、出力を0と1のバイナリ値や、例えば0~256の8bitデジタル値にしてから入力にフィードバッグすると、単調な繰り返しや一定の値に収束することになります。一方で、フィードバッグは連続した実数で行いつつ、出力として取り出された波をバイナリ値やデジタル値にするなら、複雑なデジタル値の数列を取り出すことができるでしょう。
■単一パラメータで決まる初期状態
このニューロンが複雑な波を出力する場合、最初の入力信号の値によって、その後どのような波が出力されるかが決まってきます。
また、出力からフィードバックを受ける初期値は0に固定しておき、バイアスに特定の値を加算することで、初期値の代わりに以降の出力の波を変化させるやり方も考えられます。バイアスへ特定の値を加算する場合、それは初回だけでなく、出力信号がフィードバックされる2週目以降のバイアスにも同じ値が影響を与え続けるようにすることができます。こちらの場合、値によっては波が収束するようになったり、単調周期になったり、複雑な波となったりする可能性があります。
そのようにバイアスに加算する特定の値を決定している状態を初期状態とする場合、その単一の数値パラメータにより、1ニューロンの波の出力の在り方を多様に変化させることができます。
■単一ニューロンの学習
このシンプルなニューロンに対して、正解データとして初期値となる単一パラメータと出力として期待されるデジタル値の数列の組を多数与えることを考えてみます。
単一ニューロンでしかないため、正解データ通りの出力を出せる形に学習できるかどうかは、正解データの特性に大きく依存するでしょう。ただし、この際に重みとバイアスだけでなく、活性化関数もパラメータ化して上手く正解データにフィットするものを選択できるようにすれば、より正解データにフィットできる可能性は高くなるはずです。
また、初期値となる単一パラメータの値の大小にはさほど意味がなく、別の値であることが識別できさえすればよいのであれば、単一パラメータの値を別の値にマッピングする処理を加えることで、より学習データにフィットしやすくすることができるでしょう。
こうした工夫を施すことで、ある程度正解データの特性を単一ニューロンで表現できる範囲にマッチさせることができれば、学習を成立させて収束させることができるはずです。
正解データがフィットしており、学習が上手く進行すれば、単一パラメータを与えた際に、この単一ニューロンが出力するデジタル値の数列は、正解データに近い物になります。
■デジタル値の数列の単一パラメータへの変換
先ほどのモデルは、正解データとして単一パラメータのみを与えることができました。このパラメータを、別のデジタル値の数列から変換して求められる中間値と考えると、正解データとしては元になるデジタル値の数列と、出力として期待されるデジタル値の数列の組というものを与えることができます。
先ほど単一パラメータを、単一ニューロンでの学習にフィットするようにマッピングしなおすという作業も行う事を示唆しましていました。この考えをデジタル値の数列からの単一パラメータへの変換方法の調整と考えれば、先ほどの同様に学習ができると考えられます。
このデジタル値の数列から単一パラメータの返還部分にも、別の単一ニューロンを使って機械学習的に変換方法を決めるという事も考えられます。この変換に使用する単一ニューロンは、入力となるデジタル値の数列に含まれるそれぞれの値を別々の入力信号として受け取り、それらに別々の重みとバイアスを与えて、それを一定の範囲の値へと正規化する関数を持つようなニューロンとして定式化できるでしょう。
この異なる役割を持つ2つのニューロンから構成されるメカニズムは、非常にシンプルであるため、正解データの特性がフィットするかどうかにより、上手く学習できる場合とできない場合とがあると考えられます。とはいえ、ある程度フィットする正解データであれば、学習後の2つのニューロンは、デジタル値の数列を与えると、正解データに近いデジタル値の数列を出力することができるようになるでしょう。
■デジタル値の数列の意味付け
この仕組みは、異なる役割をもつ2つのニューロンで構成されるシンプルなモデルが、デジタル値の数列を入力として、別のデジタル値の数列を出力する仕組みとして機能することを意味します。
ここで、デジタル値の数列の個々の数値を、トークンとして考えます。そして、個々のトークンは単語や文字や記号に紐づいていると考えてみます。そうすると、このシンプルなモデルは、入力となる文字列を与えられると、出力となる文字列を生成する仕組みになっていることが分かります。
■最小トランスフォーマーモデル
つまり、ここまで説明してきたモデルは、非常にシンプルで限定的なものではありますが、言語モデルとなっています。いわば、ミクロ言語モデルと呼んでも良いでしょう。
このモデルをミクロ言語モデルとして捉えると、最初に説明したフィードバックループ構造を持つ単一ニューロンがデコーダ、デコーダの挙動を決定する単一パラメータがエンコード、そして、2番目に登場した変換用の単一ニューロンがエンコーダに相当する、非常にシンプルなトランスフォーマーとなっています。バイナリ値の数値を変換する能力として捉えれば、このモデルは言語処理への応用に限定されるわけではありませんので、汎用的な目的に使えるとも言えます。
■単一ニューロン化
この2つのニューロンを、さらにシンプル化して、1つの単一ニューロンにできることも説明しておきます。それは、2つ目に示した単一パラメータを生成するニューロンの各入力と各パラメータは、そのままフィードバックループ構造を持つ1つ目のニューロンの入力とパラメータとしてしまえば、全く同じ計算ができるためです。
トランスフォーマーというエンコーダとデコーダの構造として考えるためには、先ほどの2つのニューロンとして捉える方が分かりやすいのですが、同等の機能は単一のニューロンで実現することができるわけです。
このことは、言語モデルとして、あるいは汎用的なトランスフォーマーモデルとしての機能の実際の最小構造は、フィードバックループを持つ単一ニューロンであることを意味します。
■トランスフォーマーとしての細胞モデル
生物も、入力に従って複雑な反応をします。これは単細胞生物であっても同じです。
外部環境から与えられる様々な刺激のパターンを入力として、その入力に対して細胞が適応的な反応をする様子は、トランスフォーマーの形式でモデル化できるかもしれません。
単細胞生物は多細胞生物よりはシンプルですが、単独で生命維持ができるという非常に高度で複雑な処理を実現しています。そのためには、単純な刺激に対して単純な反応をするだけでは不十分なはずです。
その複雑な処理を、シンプルな単細胞生物が実現できているという点は非常に不思議ですが、このトンスフォーマーのモデルで捉えると、その謎の秘密が少し垣間見えます。
前述したように、この最小トランスフォーマーモデルは、単一のニューロンでありながら、非常に複雑な処理である言語生成を、ごく限られた条件の範囲内とは言え、実現することができる可能性がある事を示してきました。
これは、私たちが直感的に単一のニューロンというシンプルな実体が行えそうだと思う範囲よりも、はるかに広いことが実現できる可能性を示唆しています。
その視点を単細胞生物の反応に置き換えると、単一の細胞というシンプルな生物であっても、多様な環境条件下で生命維持に必要な的確な反応をする能力を持っている事の説明ができそうに思えます。
もちろん、単一の細胞は単一ニューロンによる最小トランスフォーマーよりも複雑な構造を持ち得ます。それは様々な細胞内組織や生体物質があるためです。それらにより最小トランスフォーマーよりも、より複雑な状況と反応の組み合わせを適切に学習できるはずです。
■内的なフィードバックループ
単細胞生物として考えた時、出力が入力へフィードバックされる構造がイメージが付きにくいかもしれません。これは細胞の外に何らかの反応をするというイメージを持っていると確かに難しいと思います。
しかし、出力は細胞内において行われ、それが次の反応への入力としてフィードバックされると考えれば、単細胞生物においてもフィードバックループ構造は無理なく実現できることが分かります。
それはDNAからRNAを介して行われるタンパク質の生成処理かもしれませんし、既に細胞内に存在しているタンパク質が引き起こす化学反応かもしれません。
それらのタンパク質の生成やタンパク質の化学反応は細胞内に変化を引き起こしますので、その変化を利用して、次の反応が発生することになります。
この内的なフィードバックループが次々に連鎖して、外部の刺激に応じた適切でありながら、非常に複雑な処理を実現することができる構造であるといえます。
■細胞の学習
このように、初期入力は細胞の外からの刺激、出力は細胞内部の時系列の反応とし、それがフィードバックループとして細胞内部で再入力される構造として捉えれば、細胞はトランスフォーマーの形式を持っていることがわかります。
後は、実際に適切な処理が制御できるようになるためには、長い時間の進化の積み重ねという形で、学習が行われていたはずです。この学習の記録は、遺伝情報として単細胞生物のDNAに刻まれているのだと考えられます。
また、細胞の詳細な処理モデルは、重みとバイアスと活性化関数でモデル化されるニューロンによるネットワーク構造とは異なるかもしれません。
しかし、最小トランスフォーマーのようなシンプルなモデルでも、私たちの直感よりも複雑なことができるのは、内部の演算式の複雑さだけではなく、その構造が重要です。
同時並行に入力される複数の入力信号に対して、フィードバックループを伴って時系列の出力信号を生成する構造が、トランスフォーマーの重要なポイントです。この構造を持つことで、内部の処理や計算式の見かけよりも遥かに複雑な入力と出力の組み合わせのパターンを実現できます。
そして、同時並行の入力と時系列の出力の組み合わせを学習して定着することができる仕組みを持っていれば、生命や知性のような複雑なことが実現できることになります。
■さいごに
この記事では、ChatGPTなどに使われているトランスフォーマー技術について、その内部のニューラルネットワークの複雑さではなく、処理構造に着目して分析をしました。この構造だけに着目することで、内部メカニズムは異なっているとしても、人工知能、人間の知能、そして細胞生物において同じ構造が存在し、それが学習と適応的な処理を可能にしていることが理解できるようになったと思います。
そこには、外部からの入力を同時並行的に処理して一定の内部パラメータ化する変換構造と、その内部パラメータと自分自身の出力を入力信号として受け取ることができるフィードバックループ構造があり、そこから逐次的に出力信号を生成していくという処理構造が存在します。そして、その構造全体を使って環境や学習データに適応する形で学習が進行し、その学習内容を記憶していくことにより、未知の状況を含む様々な状況に適応できる知的な処理が実現できることになります。