💻

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については以下の記事をご参照ください!
https://zenn.dev/nixo/scraps/1ae910bb0a8d6f

備考:
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と比較すると全然ディープじゃないですね…!

まとめ

  1. “B” は Billion parameters —— パラメータの絶対量を示す単位
  2. VRAM は (1 B ≒ 2 GB@FP16) を目安にするのが手早い
  3. ResNet‑50(0.026 B)と比べると LLM は桁違いに大きい

感想

初めて技術記事を書いてみました!
生成AIに助けてもらいつつ執筆しましたが、なかなか大変でした…
時間を見つけて投稿できるように頑張ります!

Discussion