デコーダとは
デコーダとは、文章を扱うAIモデルの中で、出力する文章を1トークンずつ順に作り出す側の部品です。Googleの研究者らが2017年に発表したTransformerでは、入力を読み取るエンコーダと組にして使われました。翌2018年に出たGPT-1は、このデコーダだけを重ねたモデル。どちらも、ChatGPTの一般公開(2022年11月30日)より前の研究です。
次の言葉を当てて、書き足していく
デコーダは、文章を一度に書き上げるわけではありません。それまでに出した言葉を材料に次の1トークンを予測し、その1トークンを材料に足して、また次を予測します。この繰り返しが「自己回帰」です。
このときデコーダは、自分より後ろにある言葉を見ない決まりで動きます。なぜでしょうか。学習のときに先の言葉まで見えてしまうと、答えを見ながら当てることになるからです。Transformerの論文も、予測がそれより前の出力だけに頼るようにする仕組みだと説明しています。
エンコーダとは、どう違うの?
Transformerは、もともと翻訳で成果を示したモデルです。エンコーダが原文を読み取り、デコーダがその結果を参照しながら訳文を書いていく。2つの部品を組にした作りでした。
いちばんの違いは、見える範囲です。エンコーダは文の前後をまとめて見渡し、デコーダは自分より前だけを見ます。前後を見渡せるほうは文の意味をつかむ作業に、前だけを見るほうは文章を書く作業に向いている、という分かれ方です。
この2つの使い方で、Transformerを使う言語モデルはおおよそ3つの型に分かれます。エンコーダだけのBERT、デコーダだけのGPT、両方を使う翻訳や要約向けの型。AIモデルの共有サイトHugging Faceの解説は、近年の大規模言語モデルの大半がデコーダだけの型だと書いています。
エンコーダがないGPTは、質問をどこで読むの?
デコーダだけの型では、質問を読むのもデコーダの仕事です。入力と出力をひと続きの文章として並べ、入力の部分も「前にある言葉」として見ながら続きを書きます。エンコーダがなくても、入力を読んでいないわけではありません。
GPT-1は、デコーダを12段重ねたモデルでした。GPT-2とGPT-3も、ほぼ同じ作りを引き継いでいます。では、その先はどうでしょうか。2023年3月のGPT-4の技術報告は、「次のトークンを予測するよう事前に学習させたTransformer型のモデル」と説明したうえで、構造や規模の詳細は載せないと断っています。
Topicエンコーダを外す案は、Wikipediaの記事を書かせる研究で出された
デコーダに関するよくある質問
- デコーダだけのモデルは、文章を書く以外の仕事にも使えますか?
- 使えます。デコーダだけで作られたGPT-1は、文の分類や質問への回答など12種類の課題のうち9つで、それまでの記録を上回りました。課題ごとに、正解つきの少量のデータで仕上げる使い方です。
- デコーダとエンコーダは、どちらが優れているのですか?
- 優劣というより、向き不向きがあります。2018年のBERTの論文は、前だけを見る方式は、質問応答のように前後の文脈が要る課題で不利になると指摘しました。一方で、文章を書く用途には前だけを見る方式が使われています。