計算量Compute

モデルを学習させたり動かしたりするのに要る計算の総量

  • 基本
  • 5分で読める
  • 図 3点

ポイント

  • 計算量は、モデルを学習させたり一度動かしたりするのに必要な掛け算と足し算の合計回数です。
  • かかる時間ではなくやるべき仕事の量です。同じ仕事でも設備を増やして分担すれば時間は減ります。
  • 学習はデータを数え切れないほど繰り返し見るので、答えを一回もらう作業とは比べものにならないほど大きな計算量が必要です。
  • モデルが大きくなり入力が長くなるほど増えます。とくに入力がとても長くなると増える速さが急になります。
  • 計算量は電気代や機材のレンタル料に直結します。置き場所が足りない問題とは別の壁です。

たとえで理解する

宅配便物流センターの一日を思い浮かべてください。今日届いた荷物が1万個、荷物一つが出ていくまでスキャン・仕分け・積み込みの手作業が五回ずつ必要だとします。そうすると今日やるべき仕事は5万回です。この5万回が計算量です。

この数字は倉庫が広くても狭くても、働く人が多くても少なくても変わりません。ベルトコンベヤーを二倍にすれば、同じ5万回を半日で終わらせるだけです。荷物が二倍届いたり、手作業が一段階増えたりして初めて仕事の総量が増えます。

だから物流センターの所長が見る数字は二つです。今日やるべき仕事が何回か、そしてその仕事を何時間で終えられるか。前の数字が計算量です。

くわしく

仕事の量は掛け算の回数で数えます

モデルの中で起きていることは、ほとんどが数を掛けて足す作業です。層を一つ通るたびに、入ってきた数の束とその層が持つ数の束を組み合わせて掛けて足す作業が数百万回起こります。すべての層を通り終えると、その回数が積み重なって答え一回を出すのに必要な総量になります。

だから計算量は秒や分といった時間の単位では数えません。荷物の個数のように仕事そのものの大きさで数えます。時間はこの大きさを機材の処理速度で割った結果にすぎません。同じモデルがあるコンピューターでは1秒、別のコンピューターでは30秒かかっても計算量は同じである理由です。

作るときと使うときでは桁が違います

モデルを使う仕事は、倉庫から荷物を一つ取り出して送り出す仕事に近いです。質問一つに答え一つ、数秒で終わります。モデルを作る仕事は、倉庫全体を何度も整理し直す大工事です。答えを出してみて、どれくらい間違っていたかを測り、さかのぼって直していく過程をデータ全体に対して数え切れないほど繰り返すからです。

さかのぼって直す過程は答えを出す過程より二倍ほど手間がかかります。ここに目を通すデータ全体の量まで掛け合わさると、差は何億倍以上にも広がります。大きなモデル一回の学習にコンピューターが数千台、数週間もかかり切りになるという話はここから来ています。

何が計算量を増やすのか

一つ目はモデルの大きさです。学習で調整される数字が二倍になれば、掛け算の回数もおおむね二倍になります。二つ目はデータの量です。目を通す文章が二倍なら、学習に必要な仕事も二倍になります。

三つ目は入力の長さです。これは少し違う増え方をします。文の中のすべての一片が互いを見比べる計算が入っているので、長さが二倍になるとその部分の仕事は四倍近く跳ね上がります。文書がとても長くなるとこの部分が全体の計算の大きな割合を占めます。そのため同じ分量でも、短い質問に分けるより長い文書一つをまるごと入れるほうが高くつくことがあります。答えを長く受け取ることも同じで、一片ごとに計算が一回余分に回るので、その分だけ増えます。

同じ仕事をもっと安く終わらせる方法

仕事の総量を減らす方向と、処理速度を上げる方向があります。総量を減らすには、小さなモデルを使うか、大きなモデルの知識を小さなモデルに移します。同じ質問が繰り返されるなら、以前計算した結果を保存しておいて使い回す方法もあります。

速度を上げる方向は二つあります。数をもっと粗い単位に変えて一回ごとの掛け算を軽くし、メモリから取り出す量も減らす方法(掛け算の回数はそのままです)と、機材を複数台に分ける方法です。ただし分担は無限にできるわけではありません。前の層の結果が出ないと後ろの層は計算できないので、人をいくら増やしても順番を飛ばすことはできません。分担した結果をやり取りするのにも時間がかかるので、ある地点を超えると機材を足してもあまり速くなりません。

もう少し正確に

計算量はふつう浮動小数点演算の回数(FLOPs, Floating Point Operations)で数えます。大きな言語モデルを学習するのにかかる総量は、おおよそパラメータ数と学習に使ったトークン数を掛けた値に比例すると言われています。答えを出すときは、一片(トークン)を作るたびにパラメータ数の二倍前後がかかり、答えが長いほどその分積み重なります。

たとえがずれる点もあります。宅配便の荷物は互いに関係なく別々に処理できますが、ニューラルネットワークの計算は前の結果が後ろの計算の材料になるので順番を守る必要があります。だから機材を二倍に増やしても時間がぴったり半分にはなりません。

もう一つ、実際に答えが遅く出る理由が掛け算の回数ではないことも多いです。計算する数字をメモリから取り出す時間のほうが長くかかり、計算装置が数字を待って遊んでいる状況がよくあります。計算量は費用を測るよい物差しですが、速さをそのまま予測してくれるわけではありません。

やってみる

よくある誤解

  • 計算量がそのままかかる時間だと思われがちですが、実際には機材の性能と何台に分けて処理するかによって、同じ計算量でも時間は大きく変わります。

  • よいグラフィックカードを買えば大きなモデルが動くと思われがちですが、実際には計算が速くても数字を載せておく場所が足りなければ、そもそも動かせないか、一部を別のメモリに逃がしてとても遅く動かすことになります。

  • 答えを受け取る側は安いから気にしなくてよいと思われがちですが、実際には一回は安くても、多くの人が長く使って積み重なると学習にかかった費用を超えることがあります。

ひとこと要約

つまり

計算量はモデルを動かすのに必要な計算の総量で、料金を見積もる物差しであり、待つ時間にも大きく影響する要因です。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新 2026-10-17