大規模言語モデルの系譜と仕組み — Transformer から ChatGPT まで、LLM の全体像を図解で理解する
Word2Vec から GPT-4 までの言語モデルの系譜と、トークナイゼーション、Transformer、自己注意機構、テキスト生成、RLHF の仕組みをインタラクティブな図で解説する。
はじめに
ChatGPT の登場以来、大規模言語モデル(LLM: Large Language Model)は広く使われるようになった。LLM はコードを書き、論文を要約し、複雑な質問に答える。こうした振る舞いはすべて、「次のトークンを予測する」という単純な処理の繰り返しから生まれている。
この記事では、Word2Vec から GPT-4 までの系譜をたどった後、テキストをトークンに分割する仕組み、次のトークンの確率分布を計算する Transformer とその中心にある自己注意機構、分布からトークンを選ぶ方法、事前学習から RLHF までの学習の流れを順に説明する。
文字起こしを表示
ChatGPTの流暢な応答は、どんな仕組みから生まれるのでしょうか。Word2VecからTransformer、RLHFまで、LLMの全体像を一気にたどります。
出発点の1つは2013年のWord2Vec。単語をベクトルにしましたが、文脈が変わっても同じベクトルのままでした。2017年の論文Attention Is All You Needが、RNNの逐次処理を自己注意で置き換えました。
2018年以降、Transformerから3つの系統が伸びました。BERTはマスクされたトークンを予測し、理解タスクに強みを持ちます。T5は全タスクをテキストからテキストへ統一し、デコーダ型のGPT系は左から右へ1トークンずつ生成します。GPT-3は1750億パラメータでfew-shot学習を示しました。今の対話AIも同じデコーダ型です。
2020年のスケーリング則は、損失がパラメータ、データ、計算量のべき乗則に従うと示しました。2022年のChinchilla論文は、計算最適なdenseモデルには従来よりはるかに多くのトークンが要ると示しました。同論文の設定では、目安は1パラメータあたり約20トークン。700億パラメータなら約1.4兆トークンです。
LLMは文字列を直接読むのではなく、まずトークンIDの列へ変換します。BPEは文字やバイトから始めて、最も頻繁に隣り合うペアを新しいトークンへ繰り返しマージします。GPT-4の語彙は約10万トークン。日本語では、1文字が1トークン以上になることも多いです。
次に、トークンIDは高次元の埋め込み、たとえば4096次元のベクトルに変換されます。Transformerは並列に処理するため、順序を位置エンコーディングで注入する必要があります。現代のLLaMA、Gemma、Mistralなどでは、次元のペアを位置に応じた角度で回転させるRoPEが主流です。RoPEでは、クエリとキーの内積に効く位置情報が、2つのトークンの相対位置だけになります。
自己注意では各トークンから、何を探すかのQuery、何を持つかのKey、渡す情報のValueを作ります。QueryとすべてのKeyの内積を、Keyの次元数の平方根で割り、softmaxで重みにします。その重みでValueを混ぜ合わせると、文脈に応じた新しい表現ができます。
マルチヘッド注意では、ヘッドごとに主語と動詞の一致や修飾語と名詞の関係などを並列に学べます。デコーダ型の因果マスクは、スコア行列の対角より上をマイナス無限大にし、softmaxで未来の重みをゼロにします。
1つのTransformerブロックは自己注意とFFNの2つのサブ層からなり、それぞれを正規化と残差接続が包みます。残差接続は入力を足し戻すことで、深い層へ勾配が届くショートカットを作ります。現代のPre-LNはサブ層の前で正規化し、大規模でも安定しやすくします。FFNは各トークンを独立に変換し、Transformer全体の約3分の2のパラメータを占めます。
最後の層の出力は語彙サイズへ射影され、softmaxで次トークンの確率分布になります。推論では、分布から1つのトークンを選び、文脈に追加し、同じ処理を繰り返します。greedyは常に最大確率を選びます。温度を下げると決定的に、上げると多様になります。top-kは上位k個だけを残し、top-pは累積確率がpを超えるまで候補を残します。
学習はまず事前学習から始まります。Web、書籍、コードなど数兆トークンで、次トークン予測を反復します。この段階のモデルは続きを書けても質問には答えられないため、SFTで約10万件の高品質な指示と応答のペアを学ばせます。RLHFでは、人間が複数回答をランキングし、そのランキングから報酬モデルが学習されます。そしてPPOで報酬を最大化しつつ、KLペナルティで元のモデルから離れすぎないようにします。
その流暢さは、次のトークンを予測するという単純な原理を、大規模にスケールさせることから生まれます。記事では、自己注意、テキスト生成、Transformerブロックのインタラクティブデモで、さらに深く確認できます。
LLM の系譜 — 10 年の進化
Word2Vec 時代(2013)
Mikolov et al. (2013) が提案した Word2Vec は、単語を固定次元のベクトル(埋め込み)に変換する手法だ。有名な例が king - man + woman ≈ queen で、単語の意味の関係がベクトルの足し引きに現れる。ただし、1 つの単語には文脈によらず同じベクトルが割り当てられる(静的な埋め込み)。
Transformer の登場(2017)
Vaswani et al. (2017) の論文 "Attention Is All You Need" が提案した Transformer は、RNN の逐次処理を自己注意機構(Self-Attention)で置き換え、系列内の全位置を並列に計算できるようにした。このアーキテクチャが現在の LLM の基盤になっている。
事前学習時代(2018–)
Transformer をベースに 3 つのアーキテクチャファミリーが発展した。
エンコーダー系(BERT 系)
BERT(2018)は、マスクされたトークンを予測するマスク言語モデル(MLM)というタスクで事前学習される。双方向の文脈を捉えるため、分類・固有表現抽出・類似度計算などの理解タスクに強い。
エンコーダー・デコーダー系(T5 系)
T5(2019)は、翻訳・要約・質問応答などすべてのタスクを、テキストを入力してテキストを出力する同じ形式(text-to-text)で扱う。
デコーダー系(GPT 系)
GPT シリーズは自己回帰型の言語モデルで、左から右へ 1 トークンずつ生成する。パラメーター数を増やすにつれて性能が大きく向上し、GPT-3(1750 億パラメーター)では、プロンプトに数例を示すだけで新しいタスクをこなす few-shot 学習が実証された。現在の ChatGPT、Claude、Gemini はいずれもデコーダー型・自己回帰型のファミリーに属するが、それぞれ別の製品・モデルの系譜である。
スケーリング則
Kaplan et al. (2020) は、言語モデルの損失がパラメーター数 、データ量 、計算量 のべき乗則に従うことを発見した。
は 、、 のいずれかで、ほかの 2 つが制約にならない範囲で成り立つ。指数 は量ごとに異なる。
Hoffmann et al. (2022) の Chinchilla 論文は、計算量に対して最適な dense 言語モデル(トークンごとに全パラメーターを使うモデル)には、それ以前の多くの大規模モデルが使っていたよりはるかに多い学習トークンが必要であることを示した。同論文の設定では、おおむね 1 パラメーターあたり 20 トークンになる。例えば 700 億パラメーターのモデルなら約 1.4 兆トークンだ。
トークナイゼーション — テキストを数値に
LLM は、テキストをトークンと呼ばれる単位に分割し、各トークンを整数の ID に置き換えた数値の列として処理する。
BPE(Byte Pair Encoding)
GPT シリーズや LLaMA など多くの LLM が使うトークナイゼーション手法が BPE(Sennrich et al., 2016)だ。BPE は次の手順で語彙を作る。
- テキストを文字(またはバイト)単位に分割する
- コーパス全体で、隣り合って出現する回数が最も多いペアを見つける
- そのペアを 1 つの新しいトークンとしてマージする
- 語彙サイズが目標に達するまで 2〜3 を繰り返す
# BPE の簡略化された疑似コード
vocab = set(all_characters)
for i in range(num_merges):
# 最頻ペアを見つける
pair = most_frequent_pair(corpus)
# マージして新トークンに
new_token = pair[0] + pair[1]
vocab.add(new_token)
corpus = merge_in_corpus(corpus, pair, new_token)GPT-4 の語彙は約 10 万トークンだ(tiktoken の cl100k_base)。バイト単位の BPE では、日本語のように文字の種類が多い言語で、出現頻度の低い文字が 1 文字で複数のトークンに分かれることも多い。
なぜサブワードか?
単語単位の語彙では、学習時に見なかった単語(未知語)を表現できず、語彙も大きくなる。文字単位なら語彙は小さく未知語も生じないが、系列が長くなる。サブワードはその中間で、語彙サイズを目標値に抑えながら、見たことのない単語もサブワードの組み合わせで表せる。同じ BPE トークナイザーで多言語のテキストも処理できる。
Transformer アーキテクチャ
LLM の多くは、トークン ID の列をデコーダー型の Transformer で処理する。
デコーダー型 Transformer は、入力の埋め込み、N 層積み重ねた Transformer ブロック(自己注意・残差接続と正規化・FFN)、出力層からなる。
1. 入力埋め込み + 位置エンコーディング
埋め込み層は、トークン ID を高次元ベクトル(例: 4096 次元)に変換する。RNN は入力を 1 つずつ順に読むので順序が処理に反映されるが、自己注意は全トークンを並列に扱い、それ自体ではトークンの順序を区別しない。そのため、順序の情報を位置エンコーディングで明示的に加える必要がある。
正弦波位置エンコーディング(オリジナル)
Vaswani et al. (2017) の Transformer は正弦波ベースの位置エンコーディングを使用した。 は位置、 は次元のインデックス、 は埋め込みの次元数だ。
次のヒートマップでは、低い次元(左側)ほど位置に対して速く振動し(高周波)、高い次元(右側)ほどゆっくり変化する(低周波)。
正弦波を使うと、任意の固定オフセット に対して、 を の線形関数で表せる。原論文は、この性質によってモデルが相対位置を学習しやすくなると考えた。
RoPE(回転位置埋め込み)
LLaMA、Gemma、Mistral など現在の多くの LLM は RoPE(Rotary Position Embedding)を使う。RoPE は、クエリーとキーのベクトルの次元を 2 つずつ組にし、各組を位置に応じた角度だけ 2 次元平面上で回転させる。
RoPE の重要な性質は、回転後のクエリー とキー の内積が、位置については相対位置 だけに依存することだ。各トークンには絶対位置に応じた回転をかけるが、注意スコアには 2 つのトークンの距離だけが反映される。
式の は回転の周波数で、次元の組ごとに異なる値を使う。RoPE をそのまま学習時より長い系列に使うと性能が落ちやすいが、この周波数を調整すると長い系列にも対応させられる。NTK-aware スケーリングや YaRN といったコンテキスト長の拡張手法は、この調整に基づいている。
2. マルチヘッド自己注意機構
注意の計算そのものは、後の「自己注意機構」の節で説明する。
1 つの注意ヘッドは、各トークンについて 1 組の注意重みしか計算できない。ヘッドを複数にすると、異なるヘッドが異なる関係(主語と動詞の一致、形容詞による名詞の修飾、共参照など)を並列に学習できる。
ここで だ。GPT-3 は 96 ヘッド、LLaMA 2 70B は 64 ヘッドを使う。
MQA / GQA — KV キャッシュの削減
標準のマルチヘッド注意(MHA)では、ヘッドごとに独立した K, V の射影を持つ。そのため、推論時に保存する KV キャッシュ(後述)がヘッド数に比例して大きくなる。MQA(Multi-Query Attention)は、全 Q ヘッドで 1 組の K, V を共有してこのキャッシュを小さくする。GQA(Grouped-Query Attention)は Q ヘッドを 個ずつのグループに分け、グループごとに K, V を共有する。Ainslie et al. (2023) によると、MQA は推論を大きく速くするが品質が下がることがあり、GQA は MHA に近い品質を MQA に近い速度で実現する。
| 方式 | K, V ヘッド数 | モデル例 | 特徴 |
|---|---|---|---|
| MHA | = Q ヘッド数 | GPT-3 | 品質が最も高いが、KV キャッシュも最大 |
| MQA | 1 | PaLM、StarCoder | 全ヘッドで K, V を共有し、推論が最も速い |
| GQA | Q ヘッド数の 1/g | LLaMA 2 70B、Mistral | MHA と MQA の中間 |
LLaMA 2 は 34B と 70B のモデルで GQA を採用した。同論文の 30B モデルでの比較では、GQA は多くの評価タスクで MHA と同程度の性能を示し、より大きなバッチで推論できたためスループットも高かった。
3. 残差接続 & 層正規化
各サブ層(自己注意と FFN)では、出力に入力を加算し(残差接続)、正規化を組み合わせる。正規化を置く位置は、後述の Post-LN と Pre-LN で異なる。
なぜ残差接続が不可欠か
残差接続がないと、逆伝播の勾配は 個の層を通過する間に指数的に減衰(または爆発)しやすい。残差接続では入力をそのまま次の層へ足す経路があるので、出力側の勾配がこの経路を通って入力に近い層まで直接届く。
これにより、GPT-3(96 層)や LLaMA 2 70B(80 層)のような 100 層近い深いネットワークを学習できる。
Post-LN vs Pre-LN
| Post-LN(オリジナル) | Pre-LN(現代) | |
|---|---|---|
| 正規化の位置 | サブ層の後 | サブ層の前 |
| 正規化手法 | LayerNorm | LayerNorm(GPT-3)→ RMSNorm(LLaMA 以降) |
| 学習安定性 | 学習率のウォームアップが必須 | 安定。大規模モデルでも収束しやすい |
| 採用モデル | 元の Transformer、BERT | GPT-3、LLaMA、Mistral |
RMSNorm(Root Mean Square Layer Normalization)は LayerNorm の簡略版で、平均を引く操作を省略する。
平均の計算を省く分だけ計算量が少なく、提案論文の実験で LayerNorm と同等の性能を示したことから、LLaMA 以降のモデルで標準的に使われている。
4. フィードフォワードネットワーク(FFN)
FFN は、各トークンのベクトルに独立に適用される全結合ネットワークだ。注意機構がトークン間の関係を捉えるのに対し、FFN は各トークンの特徴を変換する。中間層の次元を入力の 4 倍にする標準的な構成で数えると、FFN の重みは自己注意の 4 つの射影行列の合計の 2 倍になり、Transformer 全体(埋め込みを除く)のパラメーターの約 2/3 を占める。FFN は、学習した知識の多くを蓄えていると考えられている。
標準 FFN
オリジナルの Transformer(Vaswani et al., 2017)は ReLU を使用し、GPT や BERT では GELU に置き換えられた。
中間層の次元 は通常 だ(例: なら )。
SwiGLU — 現代の標準
Shazeer (2020) が提案した SwiGLU は Gated Linear Unit に Swish 活性化を組み合わせた手法で、LLaMA や PaLM などで採用されている。
Shazeer の実験では、FFN を SwiGLU に置き換えたモデルの品質が標準 FFN のモデルより高かった。その理由として、次の 2 点が考えられる。まず、 はゲートとして働き、 の各成分をどれだけ通すかを入力に応じて制御する。次に、 は ReLU と違って滑らかで、負の入力に対しても小さな値を返すため、勾配が途切れにくい。
SwiGLU は 3 つの行列()を使うので、パラメーター数を標準 FFN と揃えるために中間層の次元を とする(標準 FFN は )。
5. 最終出力層
最後の Transformer ブロックの出力を正規化し(LLaMA 系では RMSNorm)、線形変換(Unembedding)で語彙サイズ 次元に射影する。これを softmax で確率分布に変換し、次のトークンを予測する。
GPT-2 や Gemma などのモデルは、埋め込み行列 と出力層の重み を重み共有(weight tying)する。 とすると、パラメーターが 個減り、入力と出力で同じ意味空間を使うことになる。
デコーダーの因果マスク
GPT のようなデコーダー型モデルでは、因果マスク(causal mask)を使って未来のトークンへの注意を遮断する。位置 のトークンは位置 のトークンにのみ注意できる。
実装では、スコア行列の対角より上の部分を に設定する。softmax を通すと、その位置の重みは 0 になる。学習時にも各位置がその位置までのトークンだけを参照するので、左から右へ 1 トークンずつ生成する自己回帰生成と条件が揃う。
Transformer ブロック全体の流れ
次のデモでは、1 つの Transformer ブロックを通るデータの流れを、ここまで説明した要素ごとに 1 ステップずつ追える。
Transformer ブロックの順伝播
"I love cats" の 3 トークンが 1 つの Transformer ブロックを通る過程を、1 ステップずつ示す(d_model = 4、値は説明用)。
| I | 0.82 | −0.15 | 0.44 | 0.91 |
| love | 0.33 | 0.78 | −0.22 | 0.56 |
| cats | 0.61 | 0.42 | 0.73 | −0.08 |
トークン ID をまず埋め込み行列でベクトルに変換し、位置エンコーディングを加算する。各トークンが d_model = 4 のベクトルになる(実際の LLM では例えば 4096 次元)。
自己注意機構 — Transformer の核心
自己注意機構(Self-Attention)は、各トークンと他の全トークンとの関連度を入力に応じて計算し、文脈を反映した表現を作る仕組みだ。
数式
- (Query): 各トークンが「何を探しているか」を表すベクトル
- (Key): 各トークンが「何を持っているか(どんな情報で自分を検索してほしいか)」を表すベクトル
- (Value): 各トークンが「実際に渡す情報」を表すベクトル
- : スケーリング因子( はキーベクトルの次元数)。内積が大きくなりすぎて softmax が飽和するのを防ぐ
インタラクティブデモ
自己注意機構(Self-Attention)
"The cat sat" の 3 トークンで自己注意を計算する過程を、1 ステップずつ示す(d_k = 2、因果マスクなし、値は説明用)。
| The | 1.0 | 0.2 | 0.5 | 0.8 |
| cat | 0.3 | 0.9 | 0.1 | 0.6 |
| sat | 0.7 | 0.4 | 0.8 | 0.2 |
入力は "The cat sat" の 3 トークンの埋め込み X だ。各行が 1 トークンの 4 次元ベクトルで、ここから Q, K, V の 3 つの行列を計算する。
RNN と比べた自己注意の利点
- 長距離依存: RNN では遠いトークンの情報が減衰するが、自己注意は全トークンに直接アクセスできる
- 並列計算: RNN は逐次処理だが、自己注意は行列演算なので GPU で並列に計算できる
- 解釈可能性: 注意重みを可視化すると、各トークンがどのトークンに大きな重みを置いたかが分かる
計算量の課題
自己注意は全トークンの組についてスコアを計算するので、計算量は系列長 に対して になり、文脈が長いと負担が大きい。次の手法は、この計算を高速化したり、メモリー使用量を減らしたり、複数のデバイスに分担させたりする。
| 手法 | 計算量 | 概要 |
|---|---|---|
| 通常の注意 | 全トークン対を計算 | |
| Flash Attention | (メモリー ) | GPU のメモリー(HBM)への読み書きを減らす |
| Multi-Query Attention | K, V のヘッドを共有し推論を高速化 | |
| Grouped-Query Attention | MQA と MHA の中間。LLaMA 2 70B などで採用 | |
| Ring Attention | (デバイスあたり) | 系列を 台のデバイスに分割して並列に計算 |
テキスト生成 — 次トークン予測の仕組み
LLM は、コンテキスト(入力トークン列)を受け取ると、次に来るトークンの確率分布を出力する。この分布からトークンを 1 つ選んでコンテキストの末尾に加え、同じ処理を繰り返してテキストを生成する(自己回帰生成)。
生成戦略
Greedy decoding: 常に最高確率のトークンを選ぶ。出力は決定的になるが、単調になりやすい。
温度スケーリング: ロジット (softmax が確率に変換する前の各トークンのスコア)を温度 で割ってから softmax を適用する。
- : 分布が鋭くなる → より決定的(事実を述べるタスク向き)
- : 分布がなだらかになる → より多様・創造的(創作向き)
- : greedy decoding に収束
Top-k サンプリング: 確率上位 個のトークンだけを残し、残りをゼロにして再正規化する。
Top-p(Nucleus)サンプリング: 確率の高い順に、累積確率が (例: 0.95)を超えるまでのトークンだけを残す。分布が鋭いときは候補が少なく、なだらかなときは多くなるため、候補数が固定の top-k より柔軟だ。
インタラクティブデモ
テキスト生成デモ
温度と top-k サンプリングで、LLM が 1 トークンずつテキストを生成する過程を示す(表示は上位 5 候補、値は説明用)。
コンテキスト "The cat" を入力すると、モデルの最終層が次のトークンの候補ごとにロジット(softmax 前のスコア)を出力する。
学習パイプライン — 生のモデルから対話 AI へ
ステージ 1: 事前学習(Pre-training)
事前学習では、言語の一般的な知識を獲得するために、Web テキスト、書籍、コードなど数兆トークン規模のコーパスで次のトークンを予測するタスクを学習する。損失は、各位置で正解の次トークン に与えた確率の負の対数を足し合わせたものだ。
この段階のモデルは文の続きを生成できるが、質問に答えたり指示に従ったりするようには学習されていない。
ステージ 2: 教師あり微調整(SFT)
SFT では、モデルが指示に従うように、高品質な(指示, 応答)ペアのデータセットで微調整する(InstructGPT では約 1.3 万件)。これにより、モデルはユーザーの質問に回答するという形式を学習する。
[指示] 日本の首都はどこですか?
[応答] 日本の首都は東京です。ステージ 3: 人間のフィードバックによる強化学習(RLHF)
SFT 後のモデルも、事実に基づかない回答や有害な出力を生成することがある。RLHF は、どちらの回答が良いかという人間の判断を使ってモデルを人間の選好に合わせ、こうした出力を減らす。
- 報酬モデルの学習: 人間のアノテーターが同じプロンプトへの複数の回答を順位付けし、そのデータで回答の良さをスコアにする報酬モデルを学習する
- PPO(近接方策最適化): 報酬モデルのスコアを最大化するようにポリシー(LLM)を更新する。ただし、元のモデルから離れすぎないよう KL ペナルティーを加える
はプロンプト への回答 に報酬モデルが付けるスコア、 は更新するポリシー、 は元の(SFT 後の)モデル、 は KL ペナルティーの強さを決める係数だ。
DPO(Direct Preference Optimization)は RLHF を簡素化した手法で、報酬モデルを明示的に学習せず、選好データから直接ポリシーを最適化する。LLaMA 2 は PPO ベースの RLHF を使用したが、その後 Zephyr、LLaMA 3 などのオープンモデルで DPO が広く採用されている。
現代 LLM の主要テクニック
KV キャッシュ
自己回帰生成では、過去のトークンの K と V はステップが進んでも変わらない。そこで、一度計算した K, V を KV キャッシュとして保存し、以降のステップで再利用する。各ステップでは新しいトークンの分だけを計算すればよいので推論が大幅に速くなるが、キャッシュのメモリー消費は系列長に比例して増える。
量子化
LLM のパラメーターを 32/16 ビット浮動小数点から 4/8 ビット整数に変換し、メモリーと計算コストを削減する。GPTQ や AWQ などの手法を使うと、多くのワークロードで精度の低下を小さく抑えられる。その結果、70B モデルも 4 ビットなら重みが約 35 GB になり、大容量メモリーの GPU 1 枚で動かすことも現実的になる。実際に動かせるかは、コンテキスト長に応じた KV キャッシュの量やレイテンシーの要件による。
MoE(Mixture of Experts)
MoE は、FFN 層を複数の「エキスパート」に分け、トークンごとにルーターが少数のエキスパート(Mixtral では 8 個中 2 個)を選んで計算する手法だ。全パラメーター数は大きいが、推論時に各トークンで使われるパラメーターは一部なので、計算量を抑えたままモデルを大きくできる。
コンテキスト長の拡張
初期の Transformer 系モデル(BERT など)のコンテキスト長は 512 トークン程度だったが、現在は Gemini 1.5 のように 100 万トークン以上を処理できるモデルもある。コンテキスト長の拡張には、前述の RoPE の周波数調整(NTK-aware スケーリングや YaRN)や Ring Attention などの手法が使われている。
まとめ
各節の要点は次のとおりだ。
- 歴史: Word2Vec → Transformer → BERT/GPT → スケーリング則による大規模化
- トークナイゼーション: BPE によるサブワード分割で任意のテキストを数値系列に
- Transformer: 自己注意 + FFN + 残差接続を N 層積み重ねたアーキテクチャ
- 自己注意: で全トークン間の関連度を入力に応じて計算
- テキスト生成: 温度・top-k・top-p サンプリングによる確率的な自己回帰生成
- 学習パイプライン: 事前学習 → SFT → RLHF/DPO で「次トークン予測器」を「対話 AI」に変換
どの段階でも、モデルが出力するのは次のトークンの確率分布だ。この一見単純な仕組みを十分な規模に拡大すると、冒頭で挙げたコードの作成や質問への回答ができるようになる。
参考文献
- A. Vaswani et al. Attention Is All You Need. NeurIPS 2017.
- J. Devlin et al. BERT: Pre-training of Deep Bidirectional Transformers. NAACL 2019.
- T. Brown et al. Language Models are Few-Shot Learners. NeurIPS 2020 (GPT-3).
- J. Kaplan et al. Scaling Laws for Neural Language Models. 2020.
- J. Hoffmann et al. Training Compute-Optimal Large Language Models. NeurIPS 2022 (Chinchilla).
- L. Ouyang et al. Training language models to follow instructions with human feedback. NeurIPS 2022 (InstructGPT / RLHF).
- R. Rafailov et al. Direct Preference Optimization. NeurIPS 2023.