見出し画像

Transformerのデコーダ単体モデルは、実はエンコーダの役割も担っている?

お疲れ様です。

日々、ChatGPTをはじめとするLLMと対話を重ねています。

少し理論的な話になりますが、LLMの多くはTransformerアーキテクチャを基にしています。

このアーキテクチャは、公開当初はエンコーダ・デコーダモデルとして公開されましたが、現在ではデコーダ側のみを利用したモデルが主流となっています。

通常、人の会話は、まず質問を抽象化(エンコーダ)し、次に深く考えた上で具体化(デコーダ)して答えるため、デコーダ側のみを用いるモデルには、最初は違和感を覚えました。

しかし、デコーダ側のみの構造は、マルチヘッドアテンション層とフィードフォワード層を何度も繰り返す仕組みになっており、これは見方によっては、入力に近い層では質問内容を抽象化し、出力に近づくにつれて徐々に具体化している、とも解釈できることに気づきました。

当初は「デコーダ側のみのモデル=ただ回答をポンポン出力するもの」というイメージを持っていましたが、入力に近い層がエンコーダ的な役割を担い、出力に近い層がデコーダ的な役割を果たしていると捉えると、デコーダ側のみのモデルでも十分に、対話が成立しているのが腑に落ちました。

とはいえ、より高度な思考を必要とする場面では、このアプローチにも限界があり、そういったタスク向けに、o1などの「十分に思考してから回答を生成するモデル」があるのかなと思います。

また少しですが、LLMの理解を深めることができて嬉しく思います。

最後までお読みいただき、ありがとうございました。

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