人工知能の分野では、規模が大きいほど能力が強い傾向があります。より強力な言語モデルを目指し、多くのテクノロジー企業がモデルパラメータとトレーニングデータの増強にしのぎを削っていますが、その結果、コストも急増することが分かりました。経済的で効率的な言語モデルのトレーニング方法はないのでしょうか?
ハーバード大学とスタンフォード大学の研究者らが最近発表した論文によると、モデルトレーニングの精度が、言語モデルトレーニングの「コストの謎」を解く隠された鍵であることが分かりました。
モデルの精度とは何でしょうか?簡単に言うと、モデルパラメータと計算過程で使用される数字の桁数を指します。従来の深層学習モデルは通常、32ビット浮動小数点数(FP32)を使用してトレーニングされてきましたが、近年、ハードウェアの発展に伴い、16ビット浮動小数点数(FP16)や8ビット整数(INT8)など、より低い精度の数値型を使用してトレーニングすることが可能になりました。
では、モデルの精度を下げると、モデルのパフォーマンスにどのような影響を与えるのでしょうか?これが、この論文が探求しようとした問題です。研究者らは、大規模な実験を通じて、様々な精度におけるモデルトレーニングと推論のコストとパフォーマンスの変化を分析し、全く新しい「精度感知」スケーリング則を提案しました。
研究者らは、より低い精度を使用してトレーニングすることで、モデルの「有効パラメータ数」を効果的に削減し、トレーニングに必要な計算量を減らすことができることを発見しました。つまり、同じ計算予算でより大規模なモデルをトレーニングできるか、同じ規模でより低い精度を使用することで、膨大な計算資源を節約できるということです。
さらに驚くべきことに、研究者らは、場合によっては、より低い精度でトレーニングすることで、モデルのパフォーマンスが向上することも発見しました!例えば、「トレーニング後量子化」(post-training quantization)を行う必要があるモデルの場合、トレーニング段階で低い精度を使用すると、モデルは量子化後の精度低下に対してより堅牢になり、推論段階でより良いパフォーマンスを示します。
では、モデルのトレーニングにはどの精度を選択すべきでしょうか?研究者らは、スケーリング則を分析することで、いくつかの興味深い結論を導き出しました。
従来の16ビット精度トレーニングは、最適な選択肢ではない可能性があります。彼らの研究によると、7~8ビット精度の方が経済的で効率的な選択肢となる可能性があります。
極端に低い精度(例えば4ビット)のトレーニングを追求することも賢明ではありません。極端に低い精度では、モデルの有効パラメータ数が急激に低下するため、パフォーマンスを維持するにはモデル規模を大幅に増やす必要があり、かえって計算コストが高くなります。
モデルの規模が異なると、最適なトレーニング精度は異なる可能性があります。大量の「過学習」(overtraining)が必要なモデル(Llama-3やGemma-2シリーズなど)では、より高い精度でトレーニングする方が経済的で効率的な可能性があります。
この研究は、言語モデルのトレーニングを理解し最適化する上で、全く新しい視点を与えてくれます。精度の選択は不変ではなく、具体的なモデル規模、トレーニングデータ量、およびアプリケーションシナリオに応じてバランスを取る必要があることを教えてくれます。
もちろん、この研究にはいくつかの限界もあります。例えば、使用されたモデルの規模は比較的小さく、実験結果はより大規模なモデルに直接適用できない可能性があります。また、モデルの損失関数にのみ注目しており、下流タスクにおけるモデルのパフォーマンスは評価されていません。
それにもかかわらず、この研究は重要な意味を持ちます。モデルの精度とモデルのパフォーマンスおよびトレーニングコスト間の複雑な関係を明らかにし、より強力で経済的な言語モデルの設計とトレーニングのための貴重なインサイトを提供しています。
論文:https://arxiv.org/pdf/2411.04330