GPTはなぜ文脈内学習ができるのか?
最近読んだGPT関連の論文で面白いものがあったので紹介します。
Why Can GPT Learn In-Context? Language Models Secretly Perform Gradient Descent as Meta-Optimizers
この論文のタイトルを日本語にすると、「GPTはなぜ文脈内学習ができるのか? 言語モデルはメタ最適化器として秘密裏に勾配降下法を行っている」となります。
以前、GPT-3の解説でも触れましたが、GPT-3は大量の文章を読んで学習した後、少数の例を見せるだけで、その例からのパターンに合わせて文章を生成できるというすごい能力を持っています。これを文脈内学習(In-Context Learning)と呼びます。つまり、与えられた例文の文脈から学んだ上で新しい文章を生成することができます。
文脈内学習ではニューラルネットワークのパラメータの更新は行われません。それなのになぜ文脈から学習することが可能なのか、GPT-3が発表された当初はよくわかっていませんでした。その後、文脈内学習を研究した論文がいくつか出ています。この論文もその中の一つで、GPTという人工知能がどのようにしてパラメータ変更なしに新しいことを学ぶかを仮説を立てて実験し説明しています。
この記事では、論文の内容を以下の3つのポイントにしぼって解説します。
GPTのおさらい
通常の訓練における勾配降下法(Gradient Descent)
文脈内学習におけるメタ最適化器(Meta-Optimizer)
それでは、さっそく見ていきましょう。
GPTのおさらい
GPTとは、Generative Pre-trained Transformerの略で、文章を生成する人工知能です。OpenAIが開発しましたが、大元はGoogleが2017年に発表したトランスフォーマー(Transformer)にあるデコーダです。
GPTは、さまざまな文章を部分的に与えられてその続きを予測するように訓練されます。これを繰り返すことで文章のパターンやつながりを学習します。この学習の過程を事前学習(Pre-training)と呼びます。事前学習はある特定のタスクを目的としておらず言語そのものを学ぶ段階となっています。
事前学習を終えたGPTは、与えられた文章に続く文章を生成できるようになります。例えば、GPTに「今日は」と入力すると、「今日はいい天気ですね」とか「今日は何をしようかな」とか、その続きを生成してくれます。
さらに特定のタスクに合わせてニューラルネットワークのパラメータを微調整したい場合には教師あり学習を使ったファインチューニングを行います。それによって文章生成、質問応答、サマリー生成など多様なタスクに対応できます。
GPTからGPT-2、GPT-3とバージョンを重ねるごとにニューラルネットワークのパラメータ数がどんどん増えていきました。GPT-3では1750億で、これはGPT-2の15億個と比べて100倍以上に増えています。
GPT-2でも文脈内学習は可能でしたが精度はそれほどよくありませんでした。なのでタスクごとにファインチューニングを行い精度を高める必要がありました。ところがGPT-3では文脈内学習の機能が向上してファインチューニングなしでも文章で直接質問することでさまざまなタスクに対応できるようになりました。
その後、GPT系のモデルはInstructGPTへと進化し強化学習を取り入れることでより人間の意図に即した応答ができるようになりました。InstructGPTがさらに進化し、2022年11月に発表されたChatGPTが一世を風靡したのは記憶に新しいところです。
通常の訓練における勾配降下法
さて、GPTを事前学習したりファインチューニングする時には勾配降下法(Gradient Descent)が使われます。勾配降下法はニューラルネットワークの予測精度が向上するようにパラメータの値を徐々に調整していく手法です。
直感的な例え話をすると、料理を作る時に味見をしながら塩や胡椒を足したり、醤油を入れたり、やっぱりジャガイモ足したりと味見を続けた、あちこち調味料や材料を調整しながら最適な味に仕上げるイメージです。
Bingのチャット機能に聞いたらケーキ作りの例えをしてきたのでここに紹介します。
ニューラルネットワークの訓練を行う場合は、予測と正解の誤差を評価します。それを損失値と呼びますが、損失値が小さくなるようにパラメータの値を調節していきます。そうすることで予測の精度が上がっていくわけです。
GPT-3では1750億のパラメータがあり損失値を減らすために調整する必要があります。その際、パラメータの数値を変更すると損失値がどのくらい増減するのかを計算するのですが、これを勾配と呼びます。この勾配を使って損失値が降下するようにパラメータを調節するので勾配降下法と呼びます。
勾配降下法のポイントはさまざまな文章での訓練を通してニューラルネットワークのパラメータを変更することです。なので事前学習が終わると一旦パラメータの値は固定化されます。さらに、ある特定のタスクに対してファインチューニングを行う場合は、パラメータの微調整を行いますが、ここでは事前学習で得た言語能力を失わないように注意して大きな変更を行わないようにする必要があります。
文脈内学習におけるメタ最適化器
さて、ここまでで、GPTと勾配降下法の仕組みを説明しました。では、GPTはどのようにして文脈学習を行っているのでしょうか?
この記事が気に入ったらサポートをしてみませんか?