T1#market
GPT-3 発表
メタデータ
- 日付
- 年代
- 2020s
- Tier
- T1
- 参照年表
- AIの歴史
- 出典数
- 10
- 関連項目
- 05
- Tags
- #market
GPT-3 は、OpenAI が2020年に発表した1750億パラメータの自己回帰型言語モデルである。文章の続きを1トークンずつ予測するという GPT-2 と同じ仕組みのまま規模だけを桁違いに大きくし、タスクごとの追加学習なしに、プロンプトへ例を数件並べるだけで多様な言語タスクをこなせることを示した。そして、それまでの研究用モデルと決定的に違ったのは、誰もダウンロードできなかったことである。重みを配らず API の向こう側に置いて使わせるという公開方法は、その後の大型モデルで広く見られる形になる。
8つのモデル、1つの名前
「GPT-3」という名前は通常1750億パラメータのモデルを指すが、論文が実際に学習したのは大きさの異なる8つのモデルである。規模を変えたときに性能がどう伸びるかを測ることが、論文の主題そのものだった。
| モデル | パラメータ数 | 層数 | 隠れ次元 |
|---|---|---|---|
| GPT-3 Small | 1億2500万 | 12 | 768 |
| GPT-3 Medium | 3億5000万 | 24 | 1,024 |
| GPT-3 Large | 7億6000万 | 24 | 1,536 |
| GPT-3 XL | 13億 | 24 | 2,048 |
| GPT-3 2.7B | 27億 | 32 | 2,560 |
| GPT-3 6.7B | 67億 | 32 | 4,096 |
| GPT-3 13B | 130億 | 40 | 5,140 |
| GPT-3 175B(「GPT-3」) | 1750億 | 96 | 12,288 |
すべてのモデルの文脈長は 2048トークン。アーキテクチャは GPT-2 を踏襲し、どちらも Transformer のデコーダ部分を積み重ねた構造である。論文は 1750億を「これまでの非スパースな言語モデルの10倍」と位置づけている。直前の最大級は Microsoft の Turing-NLG(170億)だった。
3000億トークンの読書
学習には、すべてのモデルで合計3000億トークンを使った。データの混合比は意図的に偏らせてある。
| データセット | トークン数 | 学習中の比率 |
|---|---|---|
| Common Crawl(フィルタ済み) | 4100億 | 60% |
| WebText2 | 190億 | 22% |
| Books1 | 120億 | 8% |
| Books2 | 550億 | 8% |
| Wikipedia | 30億 | 3% |
量では圧倒的な Common Crawl は1周もせず(0.44周)、質が高いとみなした Wikipedia は3.4周読まれる。論文の付録 D は、1750億モデルの学習に要した計算量を約 3.14×10²³ FLOPs(3,640 ペタフロップス・日) と見積もっている。学習は Microsoft が提供した高帯域クラスタ上の V100 GPU で行われた。
「Few-shot」が測ったもの
論文の題名にある Few-shot は、評価の方法を指す言葉である。論文は3つの設定を区別した。
- Zero-shot:タスクの説明文だけを与える
- One-shot:説明文に加えて、解答例を1つ与える
- Few-shot:文脈長に収まるだけの解答例(通常10〜100件)を与える
いずれの設定でも、モデルの重みは一切更新しない。例はあくまで入力文の一部として読ませるだけである。それでも GPT-3 は翻訳、質問応答、穴埋め問題、3桁の算術、文字を並べ替えた単語の復元といったタスクで、規模が大きくなるほど成績を上げた。一部のベンチマークでは、タスク専用にファインチューニングした従来の最高記録に迫った。
論文は弱点も明記している。ANLI のような文同士の含意関係を判定するタスクや、RACE・QuAC など一部の読解タスクでは Few-shot でもふるわず、Web から集めた学習データにベンチマークの問題そのものが混入している可能性(データ汚染)についても1章を割いて検証した。
人間は生成記事を見分けられなかった
もっとも引用された実験の一つは、約200語のニュース記事を人間に読ませ、機械が書いたものかどうかを判定させるものだった。
| 記事を書いたモデル | 人間の正答率 |
|---|---|
| 対照群(わざと質を落としたモデル) | 86% |
| GPT-3 Small | 76% |
| GPT-3 13B | 55% |
| GPT-3 175B | 52% |
50% が当てずっぽうの水準なので、1750億モデルの記事はほぼ見分けがつかなかったことになる。論文はこの結果を、誤情報への悪用リスクを論じる節につなげている。
重みを配らず、API で出した
GPT-3 の公開方法は、1年余り前の GPT-2 をめぐる経緯の延長線上にある。2019年2月14日、OpenAI は GPT-2(15億パラメータ)を発表した際、悪用への懸念を理由に学習済みモデルの公開を見送り、小さな版だけを出した。段階的な公開の最後に1.5B 版の重みが出たのは、同年11月5日である。
GPT-3 では、重みは最後まで公開されなかった。代わりに2020年6月11日、OpenAI は汎用の「テキストを入れるとテキストが返る」インタフェースとして API を発表し、プライベートベータの順番待ちを受け付け始めた。同日の告知は、API が GPT-3 ファミリーの重みを持つモデルを動かしていること、そして Algolia・Quizlet・Reddit などの企業や Middlebury Institute の研究者がすでにベータに参加していることを記している。
なぜオープンソースにしないのか。OpenAI は告知の FAQ で3つの理由を挙げた。研究・安全性・政策の活動費を商用化で賄うこと。モデルが巨大で、開発にも運用にも費用と専門知識がかかり、大企業以外には扱いにくいこと。そして API なら悪用への対応としてアクセスを後から絞れるが、公開した重みは回収できないこと。
2020年9月22日、Microsoft は GPT-3 の独占ライセンスを取得したと発表した。ただし同じ発表は、OpenAI が自社の API で GPT-3 を引き続き提供することも明記しており、外部の開発者が使える窓口は API のまま残った。順番待ちが撤廃されたのは2021年11月18日で、その時点で API には指示に従いやすいよう調整した Instruct 系のモデルや、自然言語をコードに変換する Codex が加わっていた。
研究の評価と、その先
論文は同年12月、NeurIPS 2020 の Best Paper Award 3本のうちの1本に選ばれた。31人の著者による付録込み75ページの論文が示したのは、新しいアルゴリズムではなく「規模を大きくすれば、タスク専用の学習なしにできることが増える」という経験則の強い証拠だった。
その後の系譜は別の記事で扱っている。コードで追加学習した Codex は2021年の GitHub Copilot の中身になり、GPT-3.5 系列のモデルを対話向けに調整した ChatGPT が2022年11月に一般の利用者へ届いた。GPT-3 そのものを手元で動かした人はほとんどいない。それでも、モデルを API の向こう側に置き、プロンプトで呼び出すという使われ方は、この2020年6月に始まっている。
よくある質問
- GPT-3 はいつ公開されたのか
- 論文は2020年5月28日に arXiv へ投稿され、モデルを使える API は2020年6月11日に順番待ち制のプライベートベータとして公開されました。順番待ちが撤廃され、対応国の開発者が誰でも登録できるようになったのは2021年11月18日です。
- GPT-3 のパラメータ数はいくつか
- 最大のモデルが1750億パラメータで、96層、文脈長は2048トークンです。論文は1億2500万から1750億まで8つの大きさのモデルを学習しており、「GPT-3」は通常そのうち最大のものを指します。
- GPT-3 はオープンソースだったのか
- いいえ。重みは公開されず、OpenAI の API 経由でのみ利用できました。OpenAI は理由として、研究費を賄うこと、巨大なモデルの運用が高コストであること、悪用に対してアクセスを調整しやすいことの3点を挙げています。2020年9月には Microsoft が GPT-3 の独占ライセンスを取得しましたが、API の提供は続きました。
- GPT-3 と ChatGPT はどう違うのか
- GPT-3 は開発者がプロンプトを書いて呼び出す言語モデルで、2020年に API として提供されました。ChatGPT は2022年11月に公開された対話サービスで、GPT-3.5 系列のモデルを人間のフィードバックによる強化学習(RLHF)で対話向けに調整したものです。
出典
一次資料Brown, T. et al. (2020). Language Models are Few-Shot Learners. arXiv:2005.14165
Table 2.1(8モデルの規模)、Table 2.2(学習データ)、Table 3.11(生成記事の判別率)、Appendix D(計算量)
最終更新: