道端の鳩

突然の鳩のフン

GPT-4についての備忘録

いろいろな仕事を奪うだとか、授業や講義にどう使っていくべきか教授も困惑したり、連日AIバズ界隈から「ブックマーク必須」とか言って特定シーンの(誰でも思いつきそうな)使い方が流れてくることでネットをにぎわすGPT-4。

いや、9割くらいの人は「ChatGPT」という解像度でしか見ておらずGPT-4とGPT-3以前のシリーズの区別もついていないような気はするのだが、やはりこの仕事を奪ったり宿題を勝手にいい感じに書いてくれたりするのはGPT-4の方である。

司法試験のような人間が受けるテストでも、AI向けのベンチマークテストでもSOTA(state of the art, 現時点の最高性能)もしくはそれに近い値を叩き出したとしており、実際にChatGPT Plusを通して使ってみてもその頭の良さを実感するわけだが、「なぜこれほど頭が良いのか?」についてははっきりとしたことが分からない。

これを開発したOpenAIは大規模言語モデル(LLM)について「Scaling law」(スケーリング則)という経験則を発見しており、一般には「学習データのデータセットサイズ」「パラメータ数」「計算資源」の3つに依存したべき乗則だと説明される。べき乗というのは指数的に性能が伸びるということのはず(書いてる時点でまだ論文に当たってないから知らんけど)。

生物の増殖曲線は指数関数だと高校で習い、やっぱ違うやんけ(ロジスティック曲線)と大学で習った身からすると同様にこのスケーリング則にも変曲点や頭打ちがあるのではないかと疑いはするが、いずれにしてもこの法則が現在のところLLMの性能改善にとって重要とみられている。

ここでは、OpenAIのテクニカルレポートを参照することでGPT-4の性能の背景についてあらためて整理しておきたい。情報の参照には、原著論文のPDFをChatPDFに放り込み、聞きたいことをDeepLで英語に訳してからチャットで質問し、狙いに近いページやキーワードを示させた。論文自体の英日翻訳にはReadableを利用している。この方法を取ると「知りたいことに当たりをつけて読みに行く」がかなり効率的にできるのでおすすめである。ブックマーク必須

GPT-4についての3変数は隠されているがおそらく計算量はだいぶ大きい

さて、ではGPT-4の性能改善は法則に基づき3変数の改善により行われたのか?というとこれは従前話題になっている通り、少なくとも公式には明確に隠されている。該当箇所は以下である。

(以下、日本語の引用はReadableによる翻訳、英語部分は原著論文からの引用)

GPT-4のような大規模モデルの競争環境と安全性への影響の両方を考慮し、本レポートにはアーキテクチャ(モデルサイズを含む)、ハードウェア、トレーニング計算、データセット構築、トレーニング方法などの詳細は含まれていません。

Given both the competitive landscape and the safety implications of large-scale models like GPT-4, this report contains no further details about the architecture (including model size), hardware, training compute, dataset construction, training method, or similar.

モデルの背景についてはこの文の直前に少し情報がある。

GPT-4 は、公開データ(インターネットデータなど)と第三者プロバイダーからライセンスされたデータの両方を使用して、文書内の次のトークンを予測するために事前に訓練された Transformer スタイルのモデル [39] です。そして、このモデルは、人間フィードバックからの強化学習(RLHF)[40]を使用して微調整されました。

GPT-4 is a Transformer-style model [39] pre-trained to predict the next token in a document, using both publicly available data (such as internet data) and data licensed from third-party providers. The model was then fine-tuned using Reinforcement Learning from Human Feedback (RLHF) [40]. 

ただしこれは以前のGPTシリーズと同様であり、差別点ではない。逆に言えばこの解像度においては方法論的な違いはないということか。

差別点で言えば、アブストラクトにある「学習後のアライメント処理」と「インフラストラクチャと最適化手法の開発」が重要そうだ。

学習後のアライメント処理により、事実性の測定と望ましい動作の遵守に関する性能が向上します。

The post-training alignment process results in improved performance on measures of factuality and adherence to desired behavior.

こちらについてはハルシネーション(AIがつくもっともらしいウソ)や危険なアウトプットの制御関連(爆弾の作り方に答えないとか)についての記述っぽい。実際、論文内でalignmentについては「6 Risks & Mitigation」で言及されるため、この認識で問題なさそうだ。

インフラと最適化手法の開発についての原文は以下。

このプロジェクトの中核的な要素は、幅広いスケールで予測可能な動作をするインフラと最適化手法の開発でした。これにより、GPT-4の計算量の1/1,000以下で学習したモデルに基づいて、GPT-4の性能のいくつかの側面を正確に予測することができました。  

A core component of this project was developing infrastructure and optimization methods that behave predictably across a wide range of scales. This allowed us to accurately predict some aspects of GPT-4’s performance based on models trained with no more than 1/1,000th the compute of GPT-4.

これだけだと正直よく分からない。後半の文から解釈するなら、GPT-4の実際の学習に使った計算量の1000分の1以下で学習したモデルでも、GPT-4の性能の一部が“正確に予測できる”らしい。小さなモデルで大きなモデルの予測ができるとなんなのだ?はここからは分からない。

論文を読み進めると「最終実行に対してテストを行い、学習に対する我々の信頼性を高めることができた」とある。おそらくはGPT-4本体の学習は莫大な計算量を必要とするので、試行錯誤に当たっては毎回その計算量(つまりは電気代)を消費したくない。とても省エネで作ったモデルで改善を試み、うまくいった方法を本番の学習に適用した、ということだろうか?

これについては「3 Predictable Scaling」という章が設けられている。「モデルがでかすぎてチューニング無理」と書かれているので、電気代の懸念もあるかもしれないが計算量自体が大きすぎてやはり取り扱いが難しいのだろう。

この辺りまで理解すると、図1,2の意味がクリアになる。横軸はモデルの学習に使われる計算量で、GPT-4を1とした場合に、例えば「100μ」であったら1万分の1の計算量を意味する。左側ほど小さな計算量だ。それに対して縦軸は性能の指標であって(単位のBits per wordはよく分からないんだが)、低いほど性能が良い。で、異なる小さな計算量で作ったモデルをプロットして性能を予測するためのラインを描くと、GPT-4に1の計算量をかけたらこれくらいの性能になるよね、が計算前に予測可能という話だ。

図1. GPT-4と小型モデルの性能。指標は、我々の内部コードベースから得られたデータセットに対する最終的 な損失である。これは、トレーニングセットに含まれないコードトークンの便利で大規模なデータセットであ る。損失は、学習計算量の違いにより、他の指標よりもノイズが少ない傾向があるため、我々は損失に注目す ることにした。GPT-4を除く)小型モデルに対するべき乗則のフィットを点線で示す。このフィットはGPT-4の最 終的な損失を正確に予測するものである。x軸はGPT-4が1になるように学習計算量を正規化したものである。(Readableの翻訳より)

図 2. GPT-4 と小型モデルの性能。指標は HumanEval データセットのサブセットにおける平均対数合格率 である。点線は、GPT-4を除く小型モデルに対するべき乗則のフィットを示しており、このフィットはGPT-4 の性能を正確に予測するものである。x軸はGPT-4が1になるように学習計算量を正規化したものである。(Readableの翻訳より)

この予測がPythonコードの予測でされている点も興味深い。GPT-4でも自然言語にウソは混じるので使い方には注意が必要なのだが、コーディングがベンチマークならば特にプログラミングで活用しやすいのは納得がいく。

とりあえず今日はここまで。やはり一次情報を読むのは大事である。

Appendixも面白いからもうちょっと読み進めたいと思っているとかいないとか。