[上級編]LLMへ至る道~GPT-2の話~[21日目]

2023.12.21

みなさんこんにちは!クルトンです。

前日のブログでは初代GPTについてご紹介してきました。TransformerのDecoderを使っていましたね。

本日はGPTの2代目についてのお話です。

GPT-2とはなんぞや?

初代GPTが出てから約1年後にGPT-2に関する論文は発表されました。

論文を確認するには、公式GitHubにまずはアクセスします。

次に公式GitHubにある論文タイトル『Language Models are Unsupervised Multitask Learners』のリンクをクリックすると論文をチェックできます。

バージョンが上がった事で端的に言えば、モデルの推論精度が高まりました。

具体的にはパラメータが大きく変わりました。1億1700万個から15億個です。

またデータについてもより多くのデータを使って学習がされています。初代GPTが4.5GBに対してGPT-2では40GBのテキストデータを学習しています。すごい事に、Web Textというデータセットを作成しています!

Web Textの作成方法については、Redditというサイトでカルマというgoodやbadの反応を表すリアクションが3つ以上あった時の投稿やリンク先をテキストデータとして収集しています。 論文の書き方的に、おそらくgoodのカルマが3つ以上がある投稿をデータに加えていると思われます。(人間が「興味深い」「面白いと思った」「勉強になる」と思ったデータだから収集した、と書いています。)

それにしても、なぜGPT-2ではより多くのデータを使って学習するようにしたのでしょうか?初代GPTではダメだったのでしょうか?

GPT-2のコンセプトは、fine tuningを無くす、です。

BERTやGPTのようなLLMにおいては、何か自分がして欲しいお仕事をお任せする際には少量とは言いつつもデータを集める必要がありました。GPT-2では、そのデータ集めすらもなくして、さまざまな要求に応えられる機械学習モデルを作ろうとしていたのです!

GPT-2の中身をチェック!

中身としてはTransformer Decoderを使っている初代GPTと大きな差はありません。少し細かい部分が異なっているためイメージを下に掲載します。

road-to-llm-advent-calendar-2023-21-01

大きく変わったように見えるかもしれませんが、層正規化の位置が出力後のデータにされるのでなく出力前のデータに適用されたくらいの変化です。 層正規化の位置を変更したのは、経験的にデータ出力後よりも入力前の方が精度が上がるという事が分かったからです。

GPT-2の性能について

さまざまな性能チェックのテストで好成績を獲得しています。

  • Children’s Book Test
    • 10択問題(空欄を埋める)で、一般名詞で93.3%、固有名詞で89.1%の正答率
  • LAMBADA
    • 正答率は当時最高だった19%から52.66%に更新!
    • 50単語以上の文の後に続く単語を当てるテスト perplexity(パープレキシティ)を当時最高の成績だった99.8から8.6へ大幅に更新!

      • perplexity(パープレキシティ)とは、予測の確率が1%なら100で、100%なら1になるもの。
      • 他モデルと比べると、とても自信を持って回答できていた!(&正答率も高い!)
  • Winograd Schema Challenge
    • 文の中で曖昧な単語がどういった意味なのかを当てるテスト
    • 具体例(becauseの後のitは何?)
      • The trophy doesn’t fit in the suitcase because it is too big. (トロフィーがスースケース入らないです。大きすぎるからです。)
      • What is too big?(何が大きすぎるのか)
      • 答えはトロフィーになる(スーツケースの方が大きかったらトロフィーは入る)。
    • 当時最高だった63.70%の正答率から70.70%に更新!
  • Reading Comprehension
    • まだまだな部分があり。
    • BERTベースだとF1値が89なところをGPT-2はF1値55の結果

ほとんど同じアーキテクチャであっても、学習に使うデータやパラメータが増えると精度が増していくのですね。つまり大量のデータをパラメータ数の多いモデルに与えると、さまざまな事を高精度でやってくれそうだという事が分かってきました。

終わりに

本日はGPT-2についてご紹介していきました。 GPT-2での性能チェックを通して、「大量のデータを与えれば色々な事ができそうだ」という事が見えてきました!

明日はGPT-3です。GPT-2よりもさらにパラメータ数が多い機械学習モデルです。何ができるモデルなんでしょうか。

本日はここまで。よければ明日もご覧ください!

参考サイト

GPT-2の実装内容を確認できます。

Winograd Schema ChallengeをニューラルネットワークでテストしたGoogleの論文です。