Upgrade to Pro — share decks privately, control downloads, hide ads and more …

論文紹介 / The Llama 3 Herd of Models

論文紹介 / The Llama 3 Herd of Models

第16回最先端NLP勉強会 (2024/08/25, 26)

Kyosuke Nishida

August 19, 2024
Tweet

More Decks by Kyosuke Nishida

Other Decks in Technology

Transcript

  1. 2 Copyright 2023 NTT CORPORATION 本論文の概要 • 新しい基盤モデル「Llama-3」に関する研究開発プロセスを発表 • 15.6Tトークンで学習された

    8B、70B、405B のdense Transformer • 128Kトークンのコンテキストウィンドウを持つ • 多言語性、コーディング、推論、およびツール使用をサポート • GPT-4などの最先端の言語モデルと同等の品質を多くのタスクで提供 • 入出力の安全性を担保する Llama Guard3 もリリース • 画像、動画、音声をLLama3に統合した開発中モデルについても共有
  2. 3 Copyright 2023 NTT CORPORATION 論文の目次 1. Introduction (pp. 1-3)

    2. General Overview (pp. 3-4) 3. Pre-training (pp. 4-15) 4. Post-training (pp.15-28) 5. Results (pp.28-51) 6. Inference (pp.51-53) 7. Vision Experiments (pp. 54-62) 8. Speech Experiments (pp. 63-69) 9. Related Work (pp. 69-70) 10. Conclusion (pp. 70-71)
  3. 4 Copyright 2023 NTT CORPORATION 事後学習 チャット モデル 人のフィードバック プリファレンス

    データ 事前学習用 テキストデータ ①教師なし 学習 ベース モデル 事前学習 Llama-3の学習方法 1. 教師なし学習(自己教師あり学習)により,大量のテキストコーパスからベースのLLMを学習する 2. 現在のチャットモデルでプリファレンスデータ(LLMの出力を人手で比較評価)を作成し,報酬モデリングを実施する 3. 現在のチャットモデル+報酬モデルでSFT用のデータ(完全な人工生成含む)を作成してベースモデルをチューニング 4. プリファレンスデータにLLMをマッチさせるようにDPOででベストモデルを更新(2〜4のラウンドを6回実施) ④アラインメント (DPO) ③報酬 モデリング 報酬 モデル インストラクション データ ②インストラクション チューニング (SFT)
  4. 6 Copyright 2023 NTT CORPORATION モデルアーキテクチャ • 単純なデコーダタイプでMoEの利用は無し。主に性能向上はデータの質・多様さ・量の向上に起因する。 • RoPEのbase

    frequencyを10kから50kに増加。(長い系列に有効) • 語彙はGPT-4の100k+非英語向け28k。Llama-2に比べ、英語では3.17→3.94文字/トークンに改善 Table 3. アーキテクチャ(+Llama-2 7Bとの比較) Llama-2 7B 11,008 32 (GQA無) 32,000 Θ=10,000 モデル サイズ Llama-1/2 32k Mistral-7b/Large(123b) Mixtral-8x7b/22b 32k GPT-3.5/4 100k Llama-3 128k Mistral-Nemo 131k Qwen2 152k GPT-4o/4o mini 200k Gemma-1.1/2 256k Nemotron-4 340b 256k 参考. 代表的なモデルの語彙サイズ
  5. 7 Copyright 2023 NTT CORPORATION 事前学習データの概要 • すべてのモデル(8B、70B、405B)を15.6Tトークンで学習。2023年末までのテキストが含まれる。 • 全体の50%が一般知識、25%が数学・推論、17%がコード、8%が多言語。

    • 系列長は4kから開始で学習の大半を8kで行い、最後に全体の5%程度のデータを使って128kに拡張 モデル トークン数 系列長 Llama-1 (7, 13B) 1.0T 2k Llama-1 (33, 65B) 1.4T 2k Llama-2 2.0T (※Llama-3論 文には1.8Tと記載) 4k Llama-3 15.6T 4k→8k →128K 参考. Llama-1の分野比率 コード5% Web Convers ation Books & News Scien tific Code 参考. Llama-2の言語比率 コード8.38%、多言語2% 参考. Llamaシリーズのトークン数、系列長
  6. 8 Copyright 2023 NTT CORPORATION 事前学習データの前処理 • 個人情報、アダルト、本文抽出、重複除去、品質フィルタリングなどを実施。 • 論文中には概要の記載にとどまっている。

    PII and safety filtering websites, domains単位で個人情報や有害、アダルトをフィルタリング Text extraction and cleaning 独自パーサ作成(注: Trafilaturaなど利用せず)。Alt-text残す。 Markdownマーカは削除(プレーンテキストの方が良いらしい)。 De-duplication URLレベル(新しい版を残す)、文書レベル(Min-hash;パラメータ不明)、 行レベル(30M文書のbucket中で6回出現した行)は削除。 Heuristic filtering Duplicate n-gram coverage ratio [Gopher]、dirty word counting[T5]、 トークン分布のKLダイバージェンスにより文書レベルで削除 Model-based quality filtering fasttextベースで学習したWikipediaから引用される文書か否かの判定+ Llama 2で正解を与えて学習したDistilRobertaモデルによる品質判定。 コードや推論テキスト用には別途DistilRobertaを用意した。
  7. 9 Copyright 2023 NTT CORPORATION パラメータ数の決定: compute-optimal size • Scaling

    Lawsにより計算量に対する最適なトークン数の関係を予測。計算量の予算 3.8✕1025 FLOPs (*1) と近似式に合わせてパラメータ・トークン数を決定(16.55T(*2)、402B (*3) 。実際は15.6T、405Bで学習) • 1)計算量に対するNLL、2)NLLに対する下流タスク(ARC Challenge)精度の予測に成功。 Fig.2 計算量ごとに40M〜16Bモデルで学習 ◆の点がcompute-optimal、 最適トークン数=0.299 ∙ 𝐶0.537で近似可 Fig.4 左: 計算量とNormalized Negative Log-Likelihood (NLL)の関係。 右:Normalized NLLとARC Challengeタスクの精度 *1: 16384 H100 GPUs * 430 TFLOPs/GPU * 62 days (5.35e6 sec) 程度に相当。430は表4、62日は根拠なし。表5の54日は全体日数かどうか不明 *2: 実際に計算すると16.29Tで計算合わず。 *3: パラメータ数の近似式は記載無し。計算量=5.71*パラメータ数*トークン数に相当
  8. 10 Copyright 2023 NTT CORPORATION [参考] Chinchilla [Hoffman+, 2022] との比較

    • 計算量最適とされるモデルのトークン数/パラメータ数(D/N)の比率について、Llama-3はChinchillaのようには 安定していない(D/Nが12.8〜22.3と変化)。 405BモデルではD/N=41.2まで増加する。 • Llama-3基準では、8.03B/15.6Tを学習可能な計算量(7.15e23)なら、計算量最適は63.8B/1.96T 計算量C [FLOPs] パラメータ数N [B] 学習トークン数D [T] D/N C/ND 1.92E+19 0.4 0.008 20.0 6.00 1.21E+20 1.0 0.020 20.2 5.99 1.23E+22 10.0 0.205 20.5 6.00 5.76E+23 67.0 1.500 22.4 5.73 3.85E+24 175.0 3.700 21.1 5.95 9.90E+24 280.0 5.900 21.1 5.99 3.43E+25 520.0 11.000 21.2 6.00 1.27E+26 1000.0 21.200 21.2 5.99 1.30E+28 10000.0 216.200 21.6 6.01 計算量C [FLOPs] パラメータ数N [B] 学習トークン数D [T] D/N C/ND 6.00E+18 0.286 (0.239) 0.0036 (0.0044) 12.8 (18.4) 5.71 1.00E+19 0.363 (0.342) 0.0048 (0.0051) 13.3 (15.0) 5.71 3.00E+19 0.603 (0.696) 0.0087 (0.0076) 14.4 (10.9) 5.71 6.00E+19 0.831 (0.913) 0.0126 (0.0151) 15.2 (12.6) 5.71 1.00E+20 1.053 (1.142) 0.0166 (0.0153) 15.8 (13.4) 5.71 3.00E+20 1.750 (2.079) 0.0300 (0.0257) 17.2 (12.2) 5.71 6.00E+20 2.412 (2.562) 0.0436 (0.0410) 18.1 (16.0) 5.71 1.00E+21 3.055 (3.202) 0.0573 (0.0547) 18.8 (17.1) 5.71 3.00E+21 5.079 (5.374) 0.1034 (0.0983) 20.4 (18.4) 5.71 1.00E+22 8.867 (7.355) 0.1975 (0.2381) 22.3 (32.4) 5.71 3.80E+25 402.0 16.55 41.2 5.71 Chinchilla (Table 3) パラメータ、トークン数 それぞれ独立に近似 Llama-3 トークン数を近似(A=0.299、 alpha=0.53727で計算)。 パラメータ数の近似式は記載が 無いため、最終モデルのC/NDよ り導出。 ()内はFig2から抽出した観測 値(誤差有) https://arxiv.org/abs/2203. 15556 ※ 独自に計算した内容なので誤りあるかもしれません
  9. 11 Copyright 2023 NTT CORPORATION 長期文脈理解: 3段階の事前学習 • Initial training,

    long context, annealingの3段階で行う。バッチサイズや系列長さ、混合比を細かく調整 • Long context事前学習により128kまで系列長さを扱えるようにしている Initial Pre-Training Long context Pre-Training annealing • AdamWで学習。8000stepsで学習率をwarmup(8✕10-5)、 1.2Mstepsでcosine scheduleで減衰(8✕10-7) • バッチのトークン数と系列長を(4M, 4096) → (8M, 8192) → (16M, 8192) と変化。2.87Tトークン学習後に最終ステージ開始。 • データの比率も学習中に調整。英語以外のデータ、数学、最近の webデータの比率を上昇、逆に低品質なデータは比率を下げる 800Bトークン 40Mトークン 事前学習データの大半 • 学習率を0に 減衰させる • 高品質データを upsample • 8k〜128kまで6段階で、 短系列ベンチとneedle- in-a-haystackで評価し ながら拡張 https://github.com/gkamradt/LLMTest_NeedleInAHaystack 参考. Claude-2.1 200kの needle-in-a-haystack評価 系列が長くなると正確に 情報を発見できない
  10. 12 Copyright 2023 NTT CORPORATION 効率的な学習: 4D parallelism • 4種類の並列化を利用。DP:

    バッチ、PP: 層方向、TP: 重みテンソル、CP: 入力系列をそれぞれ分割 • 特に、長い系列を扱うためにContext Parallelism(CP)を導入。(≠Sequence Parallelism) Fig.5 4D parallelism Data, Pipkeline, Tensor, Context Parallelism Table 4. 4D parallelismの設定 (405Bモデル) 例: 16(batch_size)* 128 (dp) * 8,192 (seq_len) =16.7M (tokens/batch) 8?
  11. 13 Copyright 2023 NTT CORPORATION [参考] Context/Tensor Parallelism • この例のCPでは、GPU0と2がグループを作って入力を分割処理し、KVを互いに交換することで全系列を考慮

    • この例のTPでは、GPU0と1がグループを作って、右図の様に重みを分割することで分割処理を行う For CP For TP For CP For TP For TP For TP https://docs.nvidia.com/megatron-core/developer-guide/latest/api-guide/context_parallel.html https://huggingface.co/docs/text- generation- inference/conceptual/tensor_parallelism GPU間通信→
  12. 15 Copyright 2023 NTT CORPORATION 報酬モデリング: 概要 チャット モデル significantly

    better Helpfulness / Safety の基準それぞれで選択 better slightly better negligibly better unsure Output 1 Output 2 各基準について選択>棄却の 「レベル」を決定 プロンプト 作成 出力を 2つ生成 Helpfulness 報酬モデル 教師あり 学習 Safety 報酬モデル ベースモデルを基に学習 Llama-2の方法を基本的に踏襲。 1. アノテータがプロンプトを書き,1入力に対してモデルから2件出力をサンプリングする 2. アノテータはhelpfulness / safetyの基準で出力のどちらが良いか+そのレベルを選択。Llama-3から、さらに 出力をeditすることを推奨。edited > chosen > rejectedの順に高い報酬を出すように学習 3. 報酬モデルを各基準について学習 「chosen」の 報酬評価値 「rejected」の 報酬評価値 例 Llama-2では使っていたレベルによる「マージン項」は削除
  13. 16 Copyright 2023 NTT CORPORATION 報酬モデリング: データ • Llama-2に比べてデータのトークン数が全体的に増えており、より複雑なタスクのデータを重視している •

    複数回のラウンドの繰り返しの中で、モデルの改善状況に応じてアノテータへの指示を変えていく • 報酬モデリングでは該当ラウンド時点での全データを利用、後述するDPOでは最新のデータのみ利用していく。 • 報酬モデリングとDPOの両方で正しく判定されたデータは減らしたり、類似応答のデータは破棄する Table 6. preferenceデータの統計 参考. Llama-2のpreferenceデータ 件数
  14. 17 Copyright 2023 NTT CORPORATION SFT (教師あり学習): 概要 ベース モデル

    SFT SFT モデル チャット モデル 人手作成の プロンプト 人手作成 データ 報酬 モデル Rejection sampling ベスト出力を選択 チャット モデル 人工 データ データの大半は”model-generated” 10〜30個出力 • 多くの学習データはモデルが生成したものを利用(人手作成プロンプト+モデル生成、人工的に生成) • モデル生成データに関しては品質管理をルール&モデルベースで行っている(次スライドで説明) プロンプト部分をマスクした 目的単語のクロスエントロピー loss クリーニング モデル 複数個モデルで品質管理
  15. 18 Copyright 2023 NTT CORPORATION SFT: 生成データのクリーニング • 複数のモデルベースによるフィルタリングを行ってデータの質を高めている トピック分類

    Llama-3 8B SFT データのトピックごとに バランスを取る 報酬 モデル レーティング (Llama-3 ?B) どちらかで 高いスコアを獲得 Topic Classification Quality Scoring Instag (Llama-3 70B) Difficulty Scoring レーティング (Llama-3 70B) たくさんの意図があるか[Lu23]、 難しいと判断したか[Liu23] [Lu23] https://arxiv.org/abs/2308.07074 [Liu23] https://arxiv.org/abs/2312.15685 Semantic deduplication RoBERTa クラスタリングして、 中心に近いものに絞る ルールで 除去 絵文字や謝罪の 乱用を除去 Rule-based Cleaning
  16. 19 Copyright 2023 NTT CORPORATION SFT: 利用データの統計 • “Helpfulness”に関するデータの混合比。(Llama-2では非公開) •

    Code、Multilingual、Reasoning、Tool use、Long Contextについては人工データも利用(後ほど説明) Table 7. SFTデータ(“helpfulness” mix)の統計
  17. 20 Copyright 2023 NTT CORPORATION DPO (Direct Preference Optimization) •

    学習が安定しにくいPPOの代わりに、Direct Preference Optimization [Rafailov, 2023/05] を用いて、 preferenceデータを用いて分類問題として学習することで人の嗜好とLLMのアラインメントを行う • Llama-3ではPreferenceデータのchosenデータに対するNLL lossも正則化として加える [Pang, 2024/04] https://arxiv.org/abs/2305.18290 参考. Mixtral 8x7b [2023/12]、Qwen 2 [2024/07] など、Llama-3以外でもDPOの利用が主流に。 Nemortron-4 340b [2024/06]では DPOに加えて新たにRPOを提案。 参考. RLHFとDPOの違い [Rafailov, 2023/05]
  18. 21 Copyright 2023 NTT CORPORATION 安全性の向上 • Llama-2と同様に、helpfulnessとsafetyのデータを合わせて学習する。適切なデータ比率はパラメータサイズに よって異なる(Fig.18: パラメータ数が少ない場合、safetyデータを増やすべき)

    • さらなる工夫として、一見危険だが安全なプロンプトをborderlineとして収集し、SFTやDPOに利用 • Adversarialプロンプトを得るために、Rainbow Teaming [Samvelyan+,2024] などの手法で人工的にも生成 Figure 18. 違反率と誤拒否率の関係 (SFTのみ?) 参考. Rainbow Teaming [Samvelyan+,2024/02] selection, mutation, evaluationを繰り返して網羅的にデータ生成 https://arxiv.org/pdf/2402.16822
  19. 22 Copyright 2023 NTT CORPORATION Model averaging • 報酬モデリング、SFT、DPOのそれぞれで、別バージョンのデータを使っての学習や、異なるハイパーパラメータで出 来たモデルパラメータの平均を取る(詳細は明記されていないが、以下の論文と[Izmailovf+,2019]

    を引用) 参考. Model soup [Wortsman+, 2022/03] 複数回fine-tuningして平均を取ると性能アップ 参考. Embarrassingly Parallel Training [Li+,2022/08] 別ドメインで学習したExpert LMの平均を取ると性能アップ https://arxiv.org/abs/2208.03306 https://arxiv.org/abs/2203.05482 [Izmailovf] https://arxiv.org/abs/1803.05407
  20. 24 Copyright 2023 NTT CORPORATION コード • Expert training として、85%以上がコードの1Tトークンで継続事前学習+レポジトリレベルで連結したテキス

    トでの学習。さらにコードの割合を増やしたSFTやDPOを実施。 • このexpertでSFT用の人工データを2.7M件生成し、コード生成、文書化、デバッグ、レビューなどの機能を強化。 • また、rejection samplingの品質管理など、事後学習プロセスの中で利用。 人工データ生成例:Execution Feedback Problem description generation Solution generation プログラムを生成 実際のソーススニペットから 問題を生成 Correctness analysis プログラムを解析、実行 (テストコード生成含む) Error feedback and iterative self-correction エラーをLLMに提示し、 自己訂正する Fine-tuning and iterative improvement 複数ラウンドに分けて 生成データの品質強化 人工データ生成例:Backtranslation 説明 テキスト オリジナル コード 生成 復元 コード backtranslate Llama-3 比較評価により、 説明テキストの良さを評価
  21. 25 Copyright 2023 NTT CORPORATION 多言語 • Expert training として、90%以上が多言語のデータで継続事前学習し、SFTやDPOを実施。

    • 7言語についてSFTのデータを用意。全体の18.8%はrejection samplingで得られた生成データ。 • データの翻訳は、推論カテゴリを除いて文化差・各種バイアスの存在から利用しなかった 2.4% 44.2% 18.8% 34.6% Human annotations: 各言語のnative speakerによって 作成されたデータ Data from other NLP tasks: exams-qa [Hardalov+2020]、 Conic10k [Wu+, 2023]などの多言語タスク、 GlobalVoices [Prokopidis+2016]、 Wikimedia [Tiedemann, 2012]の パラレルテキストを利用。 Translated data: 翻訳調(直訳)、 possible name bias、 gender bias、 cultural bias などを考慮して 推論に限定 Rejection sampled data: 温度を調整して多様に作成 1. Portuguese 2. Spanish 3. Italian 4. German 5. French 6. Hindi 7. Thai 英語以外にSFTデータとして 作成した多言語データ
  22. 26 Copyright 2023 NTT CORPORATION 長い系列の理解 • QA、要約、コードに関して長い人工的なデータセットを作成してSFTに利用(全体の0.1%) • DPOにおいては、長い系列のデータの利用が無くても精度が落ちなかったので、利用していない。(SFTに比べて

    学習ステップ数の少なさが要因?) ①8Kチャンクに分割 長い文書 応答 ②Llama-3 でQAを生成 人工データ生成プロセス: QA 人工データ生成プロセス: 要約 ②Llama-3 で要約 ①8Kチャンク に分割 ③さらに Llama-3で要約 長い文書 全体要約 人工データ生成プロセス: コード推論 ①重要ファイル を削除 レポジトリ 質問 レポジトリ 欠損コード
  23. 27 Copyright 2023 NTT CORPORATION ツールの利用 • 検索エンジン(Brave search)、Pythonインタプリタ(ユーザのファイルアップロードに対応)、数学エンジン (Wolfram

    Alpha)をビルトインツールとして利用可能 • 複数段階に分けて人工的にデータを作成し、一連のデータを統合してツール利用を学習させている <|begin_of_text|><|start_header_id| >system<|end_header_id|> Environment: ipython Tools: brave_search, wolfram_alpha Cutting Knowledge Date: December 2023 Today Date: 23 Jul 2024 You are a helpful assistant.<|eot_id|><|start_header_ id|>user<|end_header_id|> Can you help me solve this equation: x^3 - 4x^2 + 6x - 24 = 0<|eot_id|><|start_header_id|>assis tant<|end_header_id|> <|python_tag|>wolfram_alpha.call(qu ery="solve x^3 - 4x^2 + 6x - 24 = 0")<|eom_id|> <|begin_of_text|><|start_header_id|>system<|end_header_id|> Environment: ipython Tools: brave_search, wolfram_alpha Cutting Knowledge Date: December 2023 Today Date: 23 Jul 2024 You are a helpful assistant.<|eot_id|><|start_header_id|>user<|end_header_id|> Can you help me solve this equation: x^3 - 4x^2 + 6x - 24 = 0<|eot_id|><|start_header_id|>assistant<|end_header_id|> <|python_tag|>wolfram_alpha.call(query="solve x^3 - 4x^2 + 6x - 24 = 0")<|eom_id|><|start_header_id|>ipython<|end_header_id|> {"queryresult": {"success": true, "inputstring": "solve x^3 - 4x^2 + 6x - 24 = 0", "pods": [{"title": "Input interpretation", "subpods": [{"title": "", "plaintext": "solve x^3 - 4 x^2 + 6 x - 24 = 0"}]}, {"title": "Results", "primary": true, "subpods": [{"title": "", "plaintext": "x = 4"}, {"title": "", "plaintext": "x = ¥u00b1 (i sqrt(6))"}]}, ... ]}}<|eot_id|><|start_header_id|>assistant<|end_header_id|> The solutions to the equation x^3 - 4x^2 + 6x - 24 = 0 are x = 4 and x = ±(i√6).<|eot_id|> (3) ツールの出力を加えてLLMに再度プロンプト (4)ユーザへの応答をLLMが出力 (1) ツール利用を指定して入力 (2) LLMがFunctionを出力→API実行 https://llama.meta.com/docs/model-cards-and-prompt-formats/llama3_1
  24. 28 Copyright 2023 NTT CORPORATION Zero-shotツールの利用 • Zero-shotツールとしてプロンプトで定義することも可能 • こうしたツールを学習するために、githubのファイルをベースに人工データを生成して学習

    https://llama.meta.com/docs/model-cards-and-prompt-formats/llama3_1 <|begin_of_text|><|start_header_id|>system<|end_header_id|> Environment: ipython Tools: brave_search, wolfram_alpha Cutting Knowledge Date: December 2023 Today Date: 23 Jul 2024 # Tool Instructions - Always execute python code in messages that you share. - When looking for real time information use relevant functions if available else fallback to brave_search You have access to the following functions: Use the function 'spotify_trending_songs' to: Get top trending songs on Spotify { "name": "spotify_trending_songs", "description": "Get top trending songs on Spotify", "parameters": { "n": { "param_type": "int", "description": "Number of trending songs to get", "required": true } } } If a you choose to call a function ONLY reply in the following format: <{start_tag}={function_name}>{parameters}{end_tag} where start_tag => `<function` parameters => a JSON dict with the function argument name as key and function argument value as value. end_tag => `</function>` Here is an example, <function=example_function_name>{"example_name": "example_value"}</function> Reminder: - Function calls MUST follow the specified format - Required parameters MUST be specified - Only call one function at a time - Put the entire function call reply on one line - Always add your sources when using search results to answer the user query You are a helpful assistant.<|eot_id|><|start_header_id|>user<|end_header_id|> Can you check the top 5 trending songs on spotify?<|eot_id|><|start_header_id|>assistant<|end_header_id|> 右に続く <function=spotify_trending_songs>{"n": "5"}</function><eom_id>
  25. 29 Copyright 2023 NTT CORPORATION 事実性 (factualness) • 基本戦略は ”know

    what it knows” : SFTにて新しい知識を学習させようとせず [Gekhman+, 2024]、事前 学習時に提示されたデータに限って学習データを生成したい • 事前学習データの不正確さの懸念から、重要な話題については事実性のラベル付データも利用 事実を問う Q&A 正確であるか、 情報が有益か スニペット 事前学習 コーパス 全体の 一貫性 チェック 生成 ジャッジ 赤字: Llama-3 で生成 生成 データ 人工データ生成プロセス: 事実性 ここがそもそ も不正確な 懸念あり 参考. 新知識の学習について[Gekhman+, 2024] https://arxiv.org/abs/2405.05904 50エポック 学習 学習データ中の新知識の割合 学習を早期終了 Dev Devセットの正解率 既存知識のみで学習 させると忘却抑制
  26. 31 Copyright 2023 NTT CORPORATION LLM外での安全性確保: Llama Guard 3 •

    Llama-3 8Bをベースとてチューニングされた分類器 Llama Guard 3 をリリース。Int8版もリリース。 • 入力 and/or 出力が安全ポリシーに違反していないかを13クラス [Vidgen+, 2024/04] に分類。8言語サポート • プロンプトでのattackを防ぐ Prompt Guard(mDeBERTa-v3-base; 86B)と、危険なコードを推論時に 検出する Code Shield (7言語対応のPythonライブラリ)も提供 [Vidgen] https://arxiv.org/abs/2404.12241 https://huggingface.co/meta-llama/Llama-Guard-3-8B 参考. Responseの分類例 参考. 13クラスの一覧 (Table 26より)
  27. 33 Copyright 2023 NTT CORPORATION チャットモデルのベンチマーク評価 • 全般的に優れた性能。405BモデルはGPT-4oやClaude 3.5 sonnetに匹敵するレベル

    Table 2. +Baseモデルの性能を追加。 赤字はshot数。n=no CoT 66.7 - 37.1 - 37.2 - 57.2 20.34n 79.725 - - - 56.05 - - - 85.2 - 61.6 - 61.0 - 89.0 53.84n 96.125 - - - 87.65 - - - 79.3 - 53.8 - 58.5 - 83.7 41.44n 92.925 - - - 82.85 - - - Llama 3 8B Base Llama 3 70B Base Llama 3 405B Base https://github.com/meta-llama/llama- models/blob/main/models/llama3_1/eval_details.md
  28. 35 Copyright 2023 NTT CORPORATION ベースモデルのベンチマーク評価 • Llama-3 8B(15.6Tトークン)が、Llama-2 70B(1.8Tトークン)と同等の精度を達成

    8B 42.4 - - - 38.8 66.7 64.2CoT 47.6 Llama-3 70B 62.4 - - - 62.6 79.3 81.6CoT 64.6 405B 67.2 - - - 71.4 85.2 85.9CoT 71.6 BBHはLlama-2でCoT有無不明 12.5 109.2 631.8 0.7 1.3 4.6 9.1 1.3 2.3 6.1 12.6 Llama-2論文のTable 3. + Llama-3論文から抜粋。 「パラメータ数N✕学習トークン数D」の列を追加 ND /1e22 Llama-2の学習トークン数は1.8Tとした
  29. 36 Copyright 2023 NTT CORPORATION [参考] Scaling laws • 学習データが違うので参考値になるが、「パラメータ数

    ✕ 学習トークン数」 に応じて性能が向上している Accuracy 点線:対数近似 Llama-2のトークン数は1.8Tとした(Llama-3論文記載値) パラメータ数 ✕ 学習トークン数 Llamaのベースモデルの性能比較(独自作成) L1 7B L1 13B L1 33B L1 65B L2 7B L2 13B L2 34B L2 70B L3 8B L3 70B L3 405B 0 10 20 30 40 50 60 70 80 90 100 5.000E+21 5.000E+22 5.000E+23 5.000E+24 Code Math MMLU AGI Eval
  30. 37 Copyright 2023 NTT CORPORATION 訓練データの丸暗記と生成の問題 • 安全性の評価の一環として、LLMから訓練データをそのまま生成できてしまう問題(Discoverable memorization)[Nasr+, 2023/11][Carlini+,

    2022/07] について評価 Table 24. 記憶していた系列の割合 https://arxiv.org/pdf/2311.17035 参考. Discoverable memorizationの定義 [Nasr+,2023/11] 参考. GPT-Neo、GPT-2(baseline)の記憶 [Carlini+,2022/07] (評価方法[詳細不明のため推測] 一定回数出現している50/1000トークンを プロンプト→続く50トークンを生成?→hitするか?
  31. 38 Copyright 2023 NTT CORPORATION 安全な応答と誤った応答拒否のトレードオフ • 各言語で安全な応答ができている。違反率(vioration rate)を重視したバランスを採用していそう •

    Llama guard 3 を用いることでさらに違反率を抑えられる Figure 19. 安全性評価。LG=Llama Guard (ver 3?) Figure 18. 違反率 vs. 誤拒否率 もっとViolation Rateを下げた (FRRを上げた) モデルを採用している?
  32. 39 Copyright 2023 NTT CORPORATION 405B-FP8モデルがH100 8枚で動作 • FBGEMM FP8

    row-wise 量子化を採用(H100で動作、HuggingfaceやvLLM、TensorRTで利用可) • 405BモデルにおいてFP8で目立った精度劣化なし(論文には報酬モデルでの評価を記載; Fig.26) • 405Bモデルにて、BF16のH100 2ノード(16GPUs; TP8PP2)よりも、FP8 1ノード(TP8)が高速(Fig.27) [FBGEMM] https://github.com/pytorch/FBGEMM/tree/main/fbgemm_gpu/experimental/gen_ai Figure 27. throughput / latencyのトレードオフ: prefill (prompt側; 並列), decode (response側; 自己回帰) FP8 FP8 Latency も改善 1ノードに載る =throughput 2x プロットの数字: (micro)batch size TP= Tensor Parallelism; PP = Pipeline Parallelism
  33. 41 Copyright 2023 NTT CORPORATION Visionモデル • 画像・動画の認識に向けてflamingo [Alayrac+, 2022/04]

    ライクに拡張 • 画像生成はサポートなし ViT-H/14 variant 14x14 pixels = 1 patch N=630M(事前学習)+ 220M(アダプタ) 7680次元 x 最大2308トークン (6722/142=2304) perceiver N=0.6B (@8B/70B) 画像は 4層ごとに Cross-attn 動画は 3層ごとに [Flamingo] https://arxiv.org/abs/2204.14198 最大64フレーム を抽出 画像用: N=100B (@405B) 動画用: N=7B (@8B/70B) 336x336のタイル 最大4つ分にリサイズ: 672x672や 1344x336を許容 Fig.28 LLMへの追加モーダル(ビジョン部分)
  34. 42 Copyright 2023 NTT CORPORATION Visionタスク性能 • 画像・動画共にGPT-4o、Gemini 1.5 Pro、Claude

    3.5と同じレベルを達成 • Llama-3-V 8BでもGPT-4Vレベル Table 29. Image Understandingタスク Table 30. Video Understandingタスク
  35. 43 Copyright 2023 NTT CORPORATION Speechモデル Comformer N=1B Conv, Transformer,

    Linear N=100M Speech frame長 80ms • 音声inのみならず音声outも可能。音声インタフェースは日本語含む34言語対応 • 音声認識や音声翻訳でWhisper、SeamlessM4T、Geminiなどと比較して良好な結果。 Fig.28 LLMへの追加モーダル(音声部分) Fig. 29 音声インタフェース • Text Normalization: 書き言葉から話し言葉へ。LSTMベース [Kang+, 2024] 例. “123”を文脈に応じて”one hundred twenty-three”や”one two three”に変換 • Prosody Modeling: 韻律の付与。decoder-only Transformerを利用 [Kang] https://arxiv.org/pdf/2401.06321
  36. 44 Copyright 2023 NTT CORPORATION Speechタスク性能 • 70Bベースで音声認識・翻訳共にトップクラスの性能を実現。 • 音声ベースの毒性の評価でもGemini

    1.5 Proと同等の性能 Table 31. Speech Recognitionタスク (Word Error Rate) Table 32. Speech Translationタスク (BLEU) Table 33. Speech Toxicity (合成込の評価; AT=Added Toxicity; LT=Lost Toxicity) [Mutox] https://arxiv.org/abs/2401.05060
  37. 46 Copyright 2023 NTT CORPORATION Conclusionsで述べられたこと • 高品質な基盤モデルの開発はまだ初期段階にあり、さらなる改善が期待できる。 • 高品質なデータ、規模、およびシンプルさに強く焦点を当てることが一貫して最良の結果をもた

    らす。複雑なモデルアーキテクチャや訓練も試みたが、得られる利益は少ない。 • 開発の体制が重要である。例えば、事前学習データはベンチマークに過剰適合しないように別 のチームが調達・処理。評価はモデル開発に関与しない少数の研究者が実施。 • 開発プロセスの詳細やマルチモーダル機能の統合の試みについて共有した。研究の加速や一 般の人々での理解・議論が進むことを期待。 • 安全性に関する肯定的な結果を受けて、Llama-3を公開した。基盤モデルの公開は、社会 におけるAI開発において重要な役割を果たすと信じており、責任あるAGIの開発を促進する ことを期待する。