96K Views
July 06, 23
スライド概要
モデルやGPU選びの指針として、自分の勉強用に纏めたものです
化学・材料・データ・AI・ロボット
数値で整理する 大規模言語モデル(LLM) の メモ • Kan Hatakeyama Twitter • • • • 2023/7/6 作成 2023/7/7 打ち間違いなど微修正。 GPT-3の必要メモリ(推定値)を追記。 2023/7/8 学習に必要なメモリを修正 2023/7/9 モデルサイズvs学習データ数の情報を追記 • 突貫で作成したため、誤りが多々ありそうです。ご了承(指摘)ください。 1
モチベーション LLMの情報の海に溺れ気味だったので 大きなトレンドを理解するために 数値を中心に整理することにしました 2
全てのまとめ (先に結論) • どのモデルが高性能か? • 原則、規模の大きなモデル • ざっくり、どの程度のGPUメモリが必要か? • X bモデルの場合、4bit量子化やLoraなどを活用して… • 推論: X / 2 [GB] (14bなら7 GB, 4 bit量子化) • 学習: X / 1.5~2 [GB] (60bなら30-40 GB; QLoRA) • 今後、どのレベルのモデルサイズが公開されそうか? • 現行の流れは65 bモデル程度まで (特にllamma系列) • 今後、200 b級が公開されるかも? (100-120 GB程度のVRAMがあると安心?) 3
基本用語 4
モデルの見方 • vicuna-13b • Vicuna • モデルに特有の固有名詞を表します。 • モデルの開発者が、思い思いの名前を付けます • 13b • パラメータサイズを意味します。bはbillion (10億) • 日本語だと、130億パラメータと読み替えられます。 Vicunaはこんな感じの動物のようです (Image by Bing AI) 5
GPU、VRAM • LLMの学習や推論には通常、GPUを使います • GPUはGraphics Processing Unitの略称 です • GPUのメモリはVideo Random Access Memory (VRAM)と呼ばれます • 用例: Vicuna-13bがVRAM 80 GBで 動作しました • GPUはわりと高価です • NVIDIA A100 (VRAM = 80 GB)で、税込み 240万円ほど (参考) 6
参考: fp16, bf16 • 変数の型名を表します • 1パラメータあたり、16 bitということを覚えておけば、とりあえずはOKだと思います • bf16が深層学習ではよく使われるようです。これを4 bit程度まで圧縮するテクニックがあります(後述) https://developer.nvidia.com/ja-jp/blog/nvidia-hopperarchitecture-in-depth/ 7
モデルサイズと性能 結局、どのモデルの性能が良いのか? 8
モデルが多すぎる問題 • 連日のように、大規模言語モデルが投稿されます • どれが良いのか、よく分からなくなる問題が発生します • 最近(2023/7/6時点)、話題になっているのは • • • • XGen-7B MPT-30b OpenChat (based on LLaMA-13B) など • キーワード • • • • • 商用可 トークン長(= 扱える文字数)が大きい プログラミングに特化 ChatGPTよりも優秀(?) … 困った…! (Image by Bing AI) 9
モデルのベンチマーク • ChatBot arena • 人間による比較 • OPEN LLM Leaderboard • • • • オープンソース系LLMの比較 様々なタスクでのベンチマーク わりと網羅的 超最新のものについては、未記載 → 各modelのpreprintなどを読む必要あり 10
ChatBot arena よりコピペ (2023-05-25) • GPT-4が最強、Claude-v1が次点という結果に (このサイトでは、ごく一部のLLMだけを評価している印象) 11
OPEN LLM Leaderboard より抜粋 12
グラフを作成 OPEN LLM Leaderboard 13
Average score タスク毎の評価は次項以降 14
ARC (25-s) ARC: 要約と理由付けのタスク Abstraction and Reasoning Corpus 15
HellaSwag (10-s) HellaSwag: 常識力を問うタスク 16
MMLU (5-s) MMLU: 多言語能力 GPT-4は驚異の86.4点! 17
TruthfulQA (MC) 人間が間違えやすい質問に対する回 答能力 GPT-4でも60程度 18
ミニまとめ • 基本的にサイズが大きい方がbetter • Transformerの有名なscaling lawとも合致 • 7bとか13bで高性能が出ました!というnewsは多いですが、基本は 30bなどにはかなわない印象 • 特に多言語タスク(MMLU)では、モデルサイズの影響大 • TruthfulQAは相当、難しいらしい • 人間の正答率が気になります 19
7/9追記: より大規模なLLMでの比較 • Training Compute-Optimal Large Language Models (2022 arxiv) • 多量のデータで学習した70bのモデルが、>100bモデルを一部凌駕 • モデルサイズも重要だが、学習データ量 (&質?)も重要 20
推論や学習に必要な ハードウェア 結局、どの程度のGPU・VRAMが必要なのか? 21
推論に必要なメモリ • 基本式 • (モデルサイズ) [b] x 2 = 必要なメモリ (GB) • 例 • Vicuna-13b • モデルサイズは13bなので、 13 x 2 = 26 GBが目安 22
学習に必要なメモリ • 推論に比べ、必要なメモリが数倍以上に増加 • 推論関連の必要メモリ • 推論時の4倍程度が目安 (= 1 (for 推論) + 1 (backward)+ 2 (for Adam勾配計算)) • こちらのサイトが分かり易いです • バッチサイズ • ある程度大きい方が、学習が安定化 • サイズ = 1 ~ 32程度? (= 1 ~ 32倍) 23
軽量化の2大テクニック あまりにも膨大なメモリが必要なので、種々のテクニック が考案されています • 量子化 • 変数のbit数を削減 • LoRA • 少ないパラメータを効率的に重みとして付与 詳細はこちらなどを参照 24
量子化 変数を16bit →4 bit程度に圧縮 • 意外と精度が落ちないと評判 (preprint例) 例1: guanaco-7B.ggmlv3.q4 • guanacoの7Bのモデルを4 bitで量子化(quantization) したという意味 • 必要メモリは、 7 x 2 / 4 = 3.5 GB 例2: Vicuna-13b.q4 • 13 x 2 / 4 = 6.5 GB 25
LoRA • ファインチューニング時に、軽量な学習重みを追加 • Preprint や こちらの解説などを参照 • 極限的な条件では、勾配計算に必要なメモリ≒0まで削減可能 • 推論に必要なメモリ ≒ 学習に必要なメモリ • 実際は、必要メモリ = 学習に必要なメモリ + 定数 x ハイパーパラメータ r rを小さくしても、精度はあまり下がらない 26
GPT-3の例 • 今更ながら、LoRAの論文を読み始めました • GPT-3 (175B)に関する記述がありました。 • 論文によると… • 学習に必要なメモリサイズが、以下のように減ったそうです • 通常: 1200 GB (≒ 350 x 4) • LoRA: 350 GB = (≒ 350 for 推論) ※ 16bitでの計算とすると、 推論には175b x 2 =350 GB必要 with バッチサイズ = 1 • この論文では16bitで推論している模様なので、4-bitで回せば… • 350 /4 = 87.5 GB で訓練可能!? 27
Fine tuningに必要なメモリの例 • LLMTune: 4-Bit Finetuning of LLMs on a Consumer GPU (GitHub)より引用 • こちらのページにも、学習条件と実際のマシンスペックの一覧がありました • 7/7追記 Falcon-7bは8.7 GB (< 7x1.5=10.5)で学習できました(学習条件はこちら)。 28
今後の備え • 180bレベルのモデルがいずれ公開されるかも(?) • GPT3 (175b) • GPT4は200b x 8との噂 • NICTの日本語モデル(179b,開発中) • 180bをローカルで動かす際の目安 • 推論: 90 GB程度(?) • 学習: 90-120GB程度(?) (A100 1枚では足りなそうです…) 29
ミニまとめ • もろもろの圧縮テクニックを使えば、コンシューマ向け GPUでも65bレベルまでのfine tuningは可能 • RTX3090(24GB)は1枚あたり、30万円ほど(!) • 最新のH100(80GB)は500万円ほどするので、お得(?) 30
その他 皮算用 31
Q. 自家製のすごいLLMをゼロから作りたい A. 相当な覚悟とお金が必要そうです。GPT-3の学習コスト(試算)は以下の通り 10000000 学習コスト (ドル) 1000000 100000 10000 1000 100 10 1 2020 2025 2030 2035 2040 2045 2050 2055 2060 2065 2070 年 ムーアの法則が成立し続けるとしても、1ドルで学習できるようになるのは2065年 32
Q. LoRAの限界はどのあたりにあるか? • A. 学習可能なデータ量に限界(?) • 7bモデルの場合 • 学習に必要なパラメータ数が元の1/1000とすると • 追加モデルサイズ = 7 x 2 /1000 GB = 14 MB • 全角文字は2byteなので、我が輩は猫である(34万文字)が21冊分の容量 • ただしモデルサイズ = データベースサイズではない • 細かな検証が必要 (or 既に研究がありそう) • rを大きくすれば良い? • 沢山の情報を覚えさせたいなら、基盤モデル構築 / 普通のfine tuningが必 要になる可能性? rを大きくすれば良い? (誰か教えて下さい) 33
モデルサイズとデータセットサイズの関係 モデルサイズ:データサイズ = 1:1~1:100 程度? 目的やドメインのバラツキ等に応じて変わりそうです https://arxiv.org/abs/2306.11644 34
7/9追記: 極端にデータを増やすケース • Training Compute-Optimal Large Language Models (2022 arxiv) • 多量のデータで学習した70bのモデルが、>100bモデルを一部凌駕 • モデルサイズも重要だが、学習データ量 (&質?)も重要 35
Q. GPT-5相当はいつ頃になるか? • A. GPT-4のコストを考えてみる • スパコンの性能 & 膨大すぎるコストが課題 36
Q. GPT-5相当はいつ頃になるか? • A. GPT-4のコストを考えてみる • 学習コスト • 世界最高レベルのスパコンを最低でも数ヶ月以上、回す必要 • 計算性能が律速段階 • GPT-5なので、これまでの10倍くらいの性能はほしい • 計算性能と費用が律速段階 • ムーアの法則を考える (性能が1.5年で2倍に上昇) • 4.5年で8倍 • →→ 5年後くらいには、比較的無理なく、次世代のLLMを作れるイメージ(?) • 2年後くらいに、GPT4.5的な感じで小出しする可能性 • AMD (MI300X: 192 GB)などがNVIDIAと競合したりして、ハードウェアの切磋琢磨が、引き続き継続するこ とを期待.. 37
全てのまとめ (復習) • どのモデルが高性能か? • 原則、規模の大きなモデル • ざっくり、どの程度のGPUメモリが必要か? • X bモデルの場合、4bit量子化やLoraなどを活用して… • 推論: X / 2 [GB] (14bなら7 GB, 4 bit量子化) • 学習: X / 1.5~2 [GB] (60bなら30-40 GB; QLoRA) • 今後、どのレベルのモデルサイズが公開されそうか? • 現行の流れは65 bモデル程度まで (特にllamma系列) • 今後、200 b級が公開されるかも? (100-120 GB程度のVRAMがあると安心?) 38