yoheikikuta / paper-reading

Notes about papers I read (in Japanese)
156 stars 4 forks source link

[2303.08774] GPT-4 Technical Report [paper-reading] #73

Open yoheikikuta opened 1 month ago

yoheikikuta commented 1 month ago

論文リンク

https://arxiv.org/abs/2303.08774

公開日(yyyy/mm/dd)

2023/03/15

概要

GPT-4 の technical report(論文ではない)。 過去の大規模言語モデル GPT よりもさらに大規模な GPT-4 (公表されていないが GPT-3 よりも 1 桁大きい 1 兆パラメタくらいと噂されている)を作成し、さまざまな観点からパフォーマンスや安全性を評価しているもの。 モデルサイズ以外の大きな変更点としては入力に画像を扱えるようになったことで、画像とテキストを入力にしてテキストを出力することができるようになった。 人間のための試験の多くで高い性能を発揮するようになっており、特に司法試験の問題では人間の上位 10% 程度に食い込むようになっており、テキストの情報の把握や大規模事前学習で様々な高度な知識を獲得していることが分かった。他にも自然言語のタスクでは過去のモデルより大きな性能向上を見せている。逆に、まだ苦手なのはコーディングのような論理的な問題や主題を読み解いてその reasoning をするなどの問題である。 モデルが大きくなると上手く学習できなかった時のダメージが大きいので、小さなモデルで loss やある特定のタスクの性能のべき乗則を調べ、それが大規模化してもそのまま通用することを示し、安全にスケーリングさせることができるようになっていることも示している。

結果としてはインパクトがあるし面白いのだが、このモデルで大きなビジネスをしているのでやむを得ないというのは分かるが、モデルの情報とか学習の詳細とかが全然公開されないので、何かを理解しよう・学ぼうという人からすると寂しいね。

yoheikikuta commented 1 month ago

GPT シリーズの論文を改めて読んでいて、今回は GPT-4 を読む。 GPT-4 は technical report であり、モデルの話とか学習アルゴリズムの話とかが説明されているというものではなく、GPT-4 の振る舞いや能力が多数の例とともに紹介されているというもの。

ページ数も 100 でこの issue でたくさん書くのは大変なので、ポイントだけかいつまんで記録を残しておく。

yoheikikuta commented 1 month ago

なんと言っても大きな違いは画像とテキストの入力を受け付けてテキストの主力ができるようなマルチモーダルモデルになったというところ。20241008 現在ChatGPT の GPT 4 は画像生成(出力)もできるが、これは GPT-4 が出てから画像生成にも対応できるようになって GPT-4V などと名前がつくようになって、その後もアップデートが進んで様々なモデルが出て、今はレガシーモデルとして GPT 4 という名前で画像生成もできるモデルの名前になっている(過去の名前を使うけどやれることが増えたものになっていたりするので少しややこしい)。

このテクニカルレポートは、モデルの振る舞いのことしか書いてないので、モデルがどういうものに関してかの説明が全然ない。正直情報の開示が酷すぎて笑ってしまう。 GPT-4 がどれくらいのパラメタ数のモデルかなのかすら書いてないし、GPT-3 ではなく GPT-3.5 との比較がなされるがその GPT-3.5 とは何者であるかという情報も書いてない。

GPT-4 に関してはパラメタ数は非公開だが、噂レベルで 1 兆程度と言われている。ざっくりと GPT-3 の 1 桁上くらいに考えておけばよさそう。Wikipedia には 1.76 trillion と書いてある: https://en.wikipedia.org/wiki/GPT-4 GPT-3.5 に関しては今は turbo モデルしか OpenAI が提供してないし、詳しい情報がない。GPT-3 との違いも公式に書いてある情報が見当たらないが、パラメタ数は GPT-3 と同じ 1750 億(Microsoft の情報 https://techcommunity.microsoft.com/t5/ai-azure-ai-services-blog/comparing-gpt-3-5-amp-gpt-4-a-thought-framework-on-when-to-use/ba-p/4088645 に書いてある)で、GPT-3 と比べるとより指示に従ったり会話が滑らかになるように RLHF などを実施しているものと思われる。これは論文として https://arxiv.org/abs/2203.02155 に GPT-3 を tuning する話がある(この論文自体は RLHF を使って 2 桁モデルサイズが小さい InstructGPT を作ったというものだが)。

yoheikikuta commented 1 month ago

主要な論旨をまとめておくと以下。

GPT-4 について書いてあるのは、Transformer-style のモデルであること、RLHF で fine-tuning した、という程度。 競争と安全性の観点から詳細は公開しないと言っている。はいはい Llama は公開してくれてるが?って感じ。

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.

yoheikikuta commented 1 month ago

GPT-4 プロジェクトで注力したのは性能が予測可能な状態でスケールする deep learning スタックを構築することだったと述べている。 scaling 則の話はあるが、これだけモデルが大規模化してくると学習してみたけど予想と全然違いましたは投資観点では非常に恐ろしい話になり得るので、性能が予測可能であるということは重要になる。

この取り組みで、GPT-4 の 1/1000~1/10000 の計算量で GPT-4 のパフォーマンスのある側面に関しては信頼性高く予測できるようになったとのこと。

まず、最終的な loss はモデル学習に使用した計算総量のべき則で近似されると考えられている: $L(C) = a C^b + c$ GPT-4 より 1/10000 の計算量で学習したモデルで訓練したモデルで以下のように予測ができるようになった。計算量の少ないモデルでのべき則に GPT-4 もよく乗っていることが見てとれる。loss は他の指標よりも less noisy と書いてあるけど、詳細は書いてない。

もう一つは HumanEval https://arxiv.org/abs/2107.03374 というデータセットにおける合格率で、最大で 1/1000 の計算量のモデルの合格率から外挿で合格率を予測できるようになったと述べている。このデータセットは様々な複雑な Python 関数を生成する能力を測るもので、例えば 以下のような問題を解く。

HumanEvalの個々の問題ではモデルが大きくなるにつれて性能が低下することがあったりもするが、全体的には $- E_p [\log (pass rate (C)] = \alpha C^{-k}$ というべき則を示すことが分かった。 ただし、あらゆる問題にではなく、難易度ごとに分けた時のある subset での予測がとても上手くいったというのが以下。他の難易度も上手くいってはいるとのことだが、だいぶ cherry pick な感じなのでどれくらい普遍性があるかは疑問符ではある。

特定の能力の予測はまだまだ難しい。あるタスクでは GPT-3.5 までのスケールではモデルを大きくするほどに性能が下がるが、GPT-4 のスケールになると性能が一気に良くなるものなどもある。 これができるようになると safety の観点でより効果的になるとのこと。safety って単語はちょっと違う気がするが、でかいモデルを学習して変な性能になって下手すると何十億円とかの金額が無駄になることもありうるので、それを避けたいのは至極当然である。

yoheikikuta commented 1 month ago

画像とテキストのマルチモーダルをどのように扱うのかとかは全く解説がない。 これはナイーブには画像の方を Vision Transformer のようにパッチ毎に分けて、各パッチを token とみなして、CLIP などの手法で embedding を計算すれば画像 token の embedding が得られるので、それを text の token embedding と concat して Transformer Decoder 型のモデルの入力をすればよい。

このようなモデルを使って元々人間向けに設計された試験などに取り組んでいる。画像も使えるようになったので、問題に画像が含まれる場合(例えば画像の中で適切なものを選ぶとか)にも使えるようになっている。

結果が大量だけど、以下である。 GPT-4, 4 (no vision) がほぼ一緒なのは画像情報が関係ないものが多いからで、画像情報が使えるものに関してはその分 GPT-4 が良い性能を示している。 試験毎の尺度による grade が書かれていたりしてパッと読むのが難しいところもあるが、例えば一番上の Uniform Bar Exam (MBE+MEE+MPT) は司法試験の問題で、GPT-3.5 は ~10th (これは下位 10 % 程度という意味の表記。なんかあまり見ない書き方な気がするけど) だけど、GPT-4 では ~90th (これは下から数えて 90% 程度、つまり上位 10% 程度) であり、如実な改善が見られる。

ちなみに Bar Exam の具体的な問題は以下のようなもの。複雑な状況把握と法的な知識がなければ解くのが難しいというタスクになっている。

A father lived with his son, who was an alcoholic. When drunk, the son often became violent and physically abused his father. As a result, the father always lived in fear. One night, the father heard his son on the front stoop making loud obscene remarks. The father was certain that his son was drunk and was terrified that he would be physically beaten again. In his fear, he bolted the front door and took out a revolver. When the son discovered that the door was bolted, he kicked it down. As the son burst through the front door, his father shot him four times in the chest, killing him. In fact, the son was not under the influence of alcohol or any drug and did not intend to harm his father. At trial, the father presented the above facts and asked the judge to instruct the jury on self-defense. How should the judge instruct the jury with respect to self-defense?

(A) Give the self-defense instruction, because it expresses the defense’s theory of the case.
(B) Give the self-defense instruction, because the evidence is sufficient to raise the defense.
(C) Deny the self-defense instruction, because the father was not in imminent danger from his son.
(D) Deny the self-defense instruction, because the father used excessive force.

その他、例えば表の一番下の方の Leetcode では難しい問題はまだまだだが、GPT-4 では Medium 程度ならある程度解けるようになってきつつあることも見てとれる。

GPT-3.5 との比較を見やすくした学問的・プロフェッショナルな試験の性能に関しては以下。 あらゆる試験で GPT-3.5 を上回るというわけではないが、多くの試験で GPT-3.5 を上回り、先ほどの司法試験 Uniform Bar Exam や USA の生物学オリンピック試験 USABO Semifinal Semifinal 2020 では非常に大きな性能向上を見せている。 ここでの報告は、パーセンタイルの下限なので、見た目は低く出ているということも注意。例えば AP Bilogy では 85% 程度になっているが、これはモデルは満点を取っているのだけど、満点を取る人間が 15% いるので、モデルの性能を 85%~100% と考えてその下限の 85% で報告しているということである。

逆に性能が低いものとしては、先ほども出てきたコーディング試験の Codeforces Rating とか文学試験の AP English Literature などがある。 前者は学習データとして質の高いプログラムのデータが十分に多くないとか、論理的な思考がまだ弱いとかがありそう(今は o1 の登場でここがかなり強くなっているが)。 後者が弱いのは意外だったが、気になって https://apcentral.collegeboard.org/courses/ap-english-literature-and-composition/exam/past-exam-questions を眺めてみたが、詩とか文章の主題を捉えるとかそれをサポートする部分を抜き出すとかで、高度な reasoning が重要になっていたりしてこれはまだ難しいなどが読み取れる。

yoheikikuta commented 1 month ago

アカデミックなベンチマークに関しては圧倒的な性能を発揮している。 もちろんこれ以外にもタスクはあってまだまだ弱いものも存在はするだろうが、それは置いておいても従来の SOTA を大きく上回っているケースが多くて圧倒的性能向上と言っていいだろう。

そして impressive なのが多言語での結果。 過去の GPT 論文で学習データにあまり存在しない言語でも性能向上が観測されたという話があるが、かなり広い範囲で性能向上を示している。そして英語では大きく性能向上をしている。 MMLU https://github.com/hendrycks/test は 57 の科目にまたがる多肢選択肢の問題で、この論文ではこれを様々な言語に翻訳して、翻訳した問題に対して GPT-4 を適用して検証している。 ラトビア語、ウェールズ語、スワヒリ語などのリソースが少ない言語においてもはっきりとした性能向上が見られ、モデルが有する知識は普遍的に有効で、比較的少ないリソースでそれが様々な言語に展開できることを示している。これは凄いね〜。

yoheikikuta commented 1 month ago

画像もインプットにできる(この techinical report の段階では出力はテキストのみ)ので、それの例も載せている。 なぜか日本の画像でワロタ。 こういうレベルで扱えると応用範囲が広がるね〜と言うのを端的に感じさせる例だ。

appendix に載っている例も面白いのでいくつかピックアップして載せておく。

yoheikikuta commented 1 month ago

Limitations としては以下。

これだけ色々なことができるようになると事前に調べ尽くすというのは無理なので、最低限の担保だけしたらあとはユーザーに判断してもらうしかない、というフェーズになっているね。

論文でも引用してるけど、OpenAI が AI はどのように振る舞うべきかというブログを書いている https://openai.com/index/how-should-ai-systems-behave/ これは特別面白いことが書いてあるわけではないんだけど、AI が強力なのでそのシステムを有するところに権力が集中しすぎないように、利用者にルールに対して干渉することができる仕組みとか必要だよね、とか書いていて全然近年の OpenAI っぽくないな〜と思うなどする。

yoheikikuta commented 1 month ago

モデルの信頼度については示唆的な内容があって、事前学習の段階ではモデルの出力の信頼度は自然によく calibrated されている(信頼度が高いほど正答率が高い)が、post-training として RLHF などをするとその calibration は歪んでしまう、ということだった。

人間の好みとかそういう要素で歪められてしまうのか?と考えると色々面白そうだし今後の発展がありそうだが、このテクニカルレポートでは特に深掘りはされていない。

yoheikikuta commented 1 month ago

最後は risk & mitigation (mitigation は緩和なのでバイアスの緩和とかそういう意味) の話。

これくらいの性能になってくるとリスク緩和が重要であり、レポート中には over 50 experts ということでかなりの人がこの領域に関わり、その FB を受けてモデルを改善して危険な振る舞いをしないようにしていると書いてある。

これによって例えば以下のように振る舞いを変更することができている(個人的にはこういうのは好きじゃないけど、まあ実用上やむなしというのもある)。

定量的に検証したものが以下。 なんか他の実験と評価するモデルが揃ってなかったりしてイマイチだが、とにかく GPT-4 で改善しているのは間違いない。 しかしなぜ GPT-4 だと振る舞いが改善するかというのはパッとは分からない。どうやってこの振る舞いを学習させているかが分からないのでそれはそうという感じなのだが。fine-tuning するなり RLHF するなりするときに基本的にはモデルの容量が大きい方がより賢く振る舞いを改善できるということなのか。

yoheikikuta commented 1 month ago

これで本編は一通り終了。

モデルとしては強力で世はまさに大生成AI時代!という感じでワクワクするものだが、テクニカルレポートと言ってもどれくらいの性能かをガッと紹介するというのみで、詳細な情報が全然ないし、論文として見るという観点では酷い(まあ論文ではないんだけど)。

このモデルで大きなビジネスをしてるわけだしやむを得ない部分もあるけど、外部にいるけど理解をしたいという自分のような人間にとっては悲しいね。