LLMで聞く「B」とは?
はじめまして、学生のころからコンピューターサイエンスを専攻していますが初めて技術記事を投稿します。
時間があるときに技術記事を作成していきたいなと思ってます、よろしくお願いします!
結論
- B は Billion parameters(10 億パラメータ) の略
- 同じパラメーター数のモデルでも、1パラメーターあたりの情報量によってLLMのサイズは異なる
はじめに
生成AIの情報収集のためにPodcastを聞いているのですが、よく「新しいこのモデルは◯Bでモバイルでも動きそうですね〜」など B という言葉を聞きます。
そこで、「この B って何の単位?」「数字が大きいと何が変わるの?」と疑問に思った方向けに、
- B の意味
-
代表的モデルの B と必要なメモリ量
について調べてまとめました。
“B” = Billion parameters(10 億パラメータ)
LLM は膨大な数の重み(パラメータ)を持ちます。その個数を表す単位として
| 表記 | 意味 | 例 |
|---|---|---|
| 7 B | 7 × 10<sup>9</sup> ≒ 70 億パラメータ |
Llama‑3‑8B(約 8 B) |
| 70 B | 70 × 10<sup>9</sup> ≒ 700 億パラメータ | Llama‑2‑70B |
| 175 B | 1.75 × 10<sup>11</sup> ≒ 1,750 億パラメータ | GPT‑3 |
パラメータ数が大きければ大きいほど、LLMの学習時間や推論時間が長くなり、LLMを動かすマシンスペックも高いものが要求されます。
1 B あたりどのくらいの重み?
理論値を表に記載します。
実際の推論では KVキャッシュ(長い文脈ほど増える)等で理論値よりも必要なメモリ量が増えます。
| 表現形式 | 重み(理論値) |
|---|---|
| FP32 (32‑bit) | ≈ 4 GB / B |
| FP16 | ≈ 2 GB / B |
| INT8 | ≈ 1 GB / B |
| INT4 | ≈ 0.5 GB / B |
FPについては以下の記事をご参照ください!
備考:
1G=10億
1B=10億パラメーター
FP32の場合、1パラメーターあたり32bit=4byteになります。
4byteのパラメーターが1B存在すると、4GBのメモリが必要になります。
つまり、同じパラメーター数でも、1パラメーターあたりの情報量が異なると必要なメモリサイズも異なります。
ただし、精度を高めたいと思うとFP16やFP32で表現したいですね!
モデル例と必要 GPU のざっくりリスト
パラメーター数に対して単純計算した目安の必要メモリ量を記載しています。
学生時代にResNet-50を学習させて研究していた経験があるため、私にとってわかりやすい目安としてResNet-50も追加しています。(ResNet-50のパラメーター数はChatGPT o3に聞きました)
| モデル | パラメータ | FP16の場合 | INT4に量子化した場合 |
|---|---|---|---|
| ResNet‑50 | 0.026 B | ≈ 50 MB | – |
| Llama‑3‑8B | 8 B | ≈ 16 GB | 4 GB |
| Llama‑3‑70B | 70 B | ≈ 140 GB | 35 GB |
| GPT‑3 175B | 175 B | ≈ 350 GB | 約90 GB |
ResNet-50でも2018年当時GPU使って学習していて、「これがディープラーニングか…!」と思っていたのですが、LLMと比較すると全然ディープじゃないですね…!
まとめ
- “B” は Billion parameters —— パラメータの絶対量を示す単位
- VRAM は (1 B ≒ 2 GB@FP16) を目安にするのが手早い
- ResNet‑50(0.026 B)と比べると LLM は桁違いに大きい
感想
初めて技術記事を書いてみました!
生成AIに助けてもらいつつ執筆しましたが、なかなか大変でした…
時間を見つけて投稿できるように頑張ります!
Discussion