徹底解説: OpenAI の GPT-OSS
- 主催: Machine Learning Tokyo
- 登壇者: Alex Shen(Microsoft Tokyo の AI スペシャリスト)
- リンク: https://www.meetup.com/machine-learning-tokyo/events/310580701/
(以上の勉強会で取ったメモを共有する形で投稿します。主催者よりメモ投稿の許可をいただきました。)
概要
- OpenAI のオープンウェイト(オープンソース)モデル GPT-OSS(120B / 20B 変種)を深掘り。
- パフォーマンス効率:
- 120B モデルは 80GB VRAM を備えた単一 GPU 上で動作可能
- 20B モデルはノート PC でローカル実行可能
- 主なアーキテクチャ上の特徴
- Group Query Attention(GQA)
- スライディングウィンドウ・アテンション
- 学習されたバイアス(learned biases)
- 事前学習はテキストのみのデータで実施
- 強化学習によるポストトレーニング(後学習)
構成
GPT-OSS の導入と概要
- GPT-OSS: OpenAI による最初の推論特化型オープンウェイトモデル
- 2 つのサイズ: 120B と 20B
- 技術的ハイライト:
- Mixture of Experts(MoE)アーキテクチャ
- 単一の 80GB VRAM GPU で動作可能
GPT-OSS のアーキテクチャと正規化
- アーキテクチャ: トランスフォーマブロックとアテンションブロックを備えた標準的な SOTA LLM 構成
- トランスフォーマ層内の MoE(Mixtral of Experts): 速度ループでのアクティベーションと、パラメータ当たり 4.25 ビットへの量子化
- 深層ニューラルネットにおける正規化の重要性(Layer Norm と RMS Norm の比較)
- Layer Norm: 元々の Transformer で使用
- RMS Norm:
- 平均減算を省くことで計算コストが低い
- 品質は Layer Norm と同等
- 正規化の配置(Post-norn vs. Pre-norm)
- Post-norn:
- 残差接続の「後」に正規化を適用
- 各層の出力を安定化
- ただし深いモデルの学習を難しくし、学習率ウォームアップに注意が必要・勾配消失のリスク
- Pre-norm:
- アテンションや MoE ブロックの「前」に正規化を適用
- 非常に深いモデルでも学習が安定
- 学習率スケジュールやウォームアップに対して頑健
- 近年の大規模言語モデルで主流。GPT-OSS も採用
- Post-norn:
アテンションブロックのアルゴリズム上の要点
- Group Query Attention(GQA): クエリヘッドをグループ化し、各グループで 1 組のキー・バリュー(KV)ヘッドを共有
- 元の Transformer の Multi-Head Attention(MHA)と比べ、KV パラメータ数と KV キャッシュのメモリを削減
- 各グループで KV を共有することで、推論時のメモリ/計算負荷を大幅に低減
- スライディングウィンドウ・アテンション: 局所・疎な自己注意で計算量を削減
- 非常に長いシーケンスを効率的に処理
- 各トークンが固定幅の近傍トークンのみに注意
- 計算量は入力長に対して線形にスケール
- メモリと計算の要件を削減
- 標準的な注意機構では非現実的な超長文(最大 128k トークン)にも対応
- GPT-OSS では密な層とスライディングウィンドウ層を交互に配置し、局所情報と大域情報の双方に焦点を当てる
コンテキスト長拡張と位置エンコーディング
- アテンションブロックに学習バイアスを追加し、「どのトークンにも注意を向けない」ことを可能に
- 実トークンではなく特別な「ダミー位置」に注意確率を割り当てられる
- 無関係情報へ注意を向けることを避けられるため有用
- 位置エンコーディングの重要性: サイン波型と Rotary Position Embedding(RoPE)の比較
- 位置エンコーディングにより「dog bites man」と「man bites dog」を区別
- サイン波型:
- 各トークン埋め込みに正弦・余弦のベクトルを加算し、絶対位置を付与
- 語順や距離を学習可能
- 学習時より長い系列への一般化は限定的
- RoPE:
- クエリ・キーに回転行列を適用して位置を符号化
- 相対位置を直接捉え、ベクトルのノルムを保つため学習が安定
- より長い系列への外挿性能が高い
- 近年の LLM のデファクトスタンダード
- YARN(Yet Another RoPE Extension)は周波数次元をスケーリングし、長文での RoPE 性能を改善
- 標準 RoPE では、学習時よりはるかに長い文脈で高周波成分が早く「折り返し」て位置が曖昧・不安定化
- YARN は周波数次元を調整し、極長文でも位置表現の有意味性と安定性を維持
- スケーリングにより高周波の急速な反復を防ぎ、長文でも位置の追跡と推論を改善
- 周波数次元とは、特定の周波数で振動する符号成分
- サイン波/RoPE では、各位置は複数の異なる周波数成分からなるベクトルに写像
- 低周波は位置に対して緩やかに変化し大局的傾向を表現
- 高周波は急速に変化し微細な差異を表現
- 多様な周波数次元の組合せで、絶対・相対位置を一意に符号化
- YARN の利点:
- 微細な局所注意の把握向上
- 粗い大域的フォーカスの維持
学習とポストトレーニングの詳細
- 事前学習: テキストのみのデータを使用し CBRN フィルタを適用
- CBRN は “Chemical, Biological, Radiological, and Nuclear” の略
- 学習時間:
- 120B モデル: 200 万 GPU 時間
- 20B モデル: 100 GPU 時間
- ポストトレーニング: 「train of thought(思考の連なり)」形式を用いた強化学習
- New Harmony チャット形式:
- gpt-oss 向けに新たに導入された応答形式
- 役割・チャネル・特別トークンを明確化し、相互運用性・推論分離・ツール統合を強化
- 変動的な推論努力レベル: タスクの難易度に応じて計算/認知リソース配分を可変化
- 例: より多くの層・反復・複雑な思考手順を難問に割り当てる
- 次のような仕組みで実装:
- 動的な深さ(層の可変)
- 適応計算
- 明示的な推論ステップ(例: chain-of-thought プロンプティング)