規模は何倍、体感はほんの少し
AIの新モデルが出るたびに、計算量やデータ量の桁が大きくなっています。それなのに実際に使うと、前よりは良いけれど、何倍も賢くなった感じまではしない。そんなことないですか?
発表資料に並ぶ巨大な数字と、普段のチャットで感じる小さな差。この二つが同時に出てくるのは、進歩が止まったからなのでしょうか。
大きくすれば伸びる、だけでは埋まらない差
モデルを大きくし、学習データを増やし、計算時間を延ばせば、性能指標は改善する傾向があります。AI開発に大量の計算資源が投入されるのも、その延長にあるわけです。
でも、ここで一つ不思議があります。資源を2倍にしたら改善も2倍、という比例関係なら、投資額の大きさはそのまま体感差に現れるはずです。現実には、規模の数字ほど差を感じないことがある。増やした資源は、どこへ消えたのでしょう。
改善は足し算ではなく、掛け算で買っている
この食い違いを、スケーリング則と呼ばれる経験則で解釈できるか、やってみましょう。ここでは話を絞り、学習に使う計算量と、テストデータ上の損失との関係を考えます。損失は、予測の外れ具合をまとめた数値で、小さいほど良い指標です。
観測されてきた関係は、計算量を増やすほど損失が滑らかに下がる一方、同じ計算量の追加で得られる改善は次第に小さくなる、という形を取ります。重要なのは「増やせば良くなる」ことより、改善を続けるための資源が足し算では済まないことです。
計算量を100追加するたびに同じだけ良くなるのではありません。残っている誤差を同じ割合だけ削り続けるには、計算量を一定の倍率で増やし続ける必要があります。性能側の小さな一歩に対して、資源側では桁が変わる。この非対称さなら、巨大投資と小さな体感差は矛盾しません。
最後の少しほど、急に高くなる
この構造は、モデル開発のニュースの読み方も変えます。ある世代で計算量が10倍になっていても、性能が10倍になったとは限りません。むしろ、前の世代と同じ割合の誤差削減を続けるために、その10倍が必要だった可能性があります。
データ量やモデル規模についても、条件をそろえた実験では似たべき乗型の関係が報告されています。ただし、どれか一つだけを増やせば無条件に改善するわけではありません。たとえばデータだけを増やしても、モデルが小さすぎれば増えた分を活かしきれず、効果は薄くなります。データ、モデル、計算量の配分が崩れれば、投入した資源を活かし切れない場合もあります。
大量のパラメータを一度の評価からどう調整するかにも興味があれば、最適化の感覚を扱ったこちらの記事がつながります。
「もっと大きく」は単純な力技に見えますが、実際には、どこへ資源を配るかまで含めた設計の問題になっています。
2倍の計算で、誤差は何割減るのか
式に書き直してみると、資源と改善のずれをもう少し正確に読めます。
$$ L(C)=A C^{-\alpha}+B $$
$C$ は学習に使う計算量、$L(C)$ はそのときの損失です。$B$ は計算量を増やしてもこの式の範囲では残る下限、$A$ は全体の尺度を合わせる係数、$\alpha$ は計算量を増やしたときに損失が下がる速さを表します。$\alpha$ は対象や条件で変わり、どのAIにも共通する固定値ではありません。
下限 $B$ を除いた、まだ減らせる部分を $E(C)=L(C)-B$ と置きます。計算量を $r$ 倍したときの比を取ると、
$$ \frac{E(rC)}{E(C)}=r^{-\alpha} $$
となります。つまり、減らせる誤差を同じ割合だけ縮めるには、元の計算量に関係なく $C$ を一定倍率で増やす、という読み方ができます。
例として $\alpha=0.1$ と仮定すると、計算量を2倍にしても、減らせる誤差は $2^{-0.1}\approx0.933$ 倍です。減るのは約6.7%にとどまります。半分まで減らす条件は、
$$ r^{-0.1}=\frac{1}{2} $$
なので、$r=2^{10}=1024$。この例では、誤差を半分にするために計算量を1024倍にする必要があります。指数が小さいほど、この倍率は急激に大きくなります。ここでの0.1はあくまで説明のための値で、実際のモデルがこの数字を取るとは限りません。指数が変われば、必要な倍率も大きく変わります。

両辺から $B$ を除き、対数を取れば $\log E(C)=\log A-\alpha\log C$ です。横軸も縦軸も対数にすると傾き $-\alpha$ の直線になるため、桁をまたぐ実験結果からこの関係を調べられます。
ただし、ここで扱っているのは特定の性能指標です。損失の改善が、そのまま会話の満足度や仕事の成功率に同じ割合で現れるとは限りません。試験の点数が数点上がっても、賢くなったという印象が同じ幅で動くわけではないのと似ています。体感差がさらに小さくも、逆に急に大きくも見える余地があります。
小さな差は、停滞の証拠なのか
AIの規模が何倍にもなったのに、使い心地は少ししか変わらない。その観察だけで、計算資源が無駄だったとも、進歩が止まったとも決められません。小さな改善を維持するために、資源を掛け算で増やさなければならない構造が背後にあるかもしれないからです。本当に頭打ちなら、そのときは兆候が変わります。スケーリング則の直線から外れ、計算量を増やしても損失がほとんど下がらなくなる。今見えている小さな差が、この頭打ちなのか、それとも掛け算の代償なのかは、区別して見る必要があります。
そう考えると、次に問いたくなるのは「新モデルは何倍大きいか」ではありません。その何倍で、どの誤差を、どれだけ削れたのかです。AIの競争は、性能を上げる競争というより、残りわずかな誤差を買う価格がどこまで上がっても続けられるか、という競争になっているのかもしれませんね?
あわせて読みたい関連記事。


