ついに解明:グロッキング - あなたの考えとは違う
8,314 文字
コミュニティの皆さん、信じられないかもしれませんが、グロッキングが起きる理由の説明を手に入れました。ご覧ください。そうですね、ここで私が話しているのは、モデルの名前にgrという文字を使っている特定の企業のことではありません。トランスフォーマーアーキテクチャにおける技術的な現象について、つまり全てのTransformerで起こる純粋に技術的な事象について話しています。
7ヶ月前、私は皆さんにグロッキングを検証する複数の動画をお見せしました。グロッキングとは、精度とトレーニングデータセットがあり、トレーニングデータセットが飽和してLLMのオーバーフィッティングが起きた後、何も起こらず、検証データセットでの性能が本当に悪くなるのですが、オーバーフィッティング後もずっと実行し続けると、突然性能が向上し、検証データセットの精度がほぼ100%になる現象です。
これがすぐに達成できたら素晴らしいと思いませんか?未見のトレーニングデータに対して100%近い精度を達成するシステムがあれば。そしてこのビデオのパート3で、gr LLMとダイレクトシステムの最適化方法を示し、レイヤーアーキテクチャの詳細な解説も行いました。AIエージェントの検索ヘッドが発見され、グロッキング後の因果競争経路についても説明しました。しかし、なぜグロッキングが最初に起こるのか、あるいはどうすれば早期に発生させられるのかを説明することはできませんでした。
そして今日、グロッキングに関する新しい研究が出てきました。これは素晴らしいものです。では、グロッキングが遅く突然発生する理由を説明させてください。それは、LLMが最初に怠惰な訓練レジームに陥り、記憶効果が学習の支配的な力となるからです。その後、システムの勾配が特定の方向に整列します。これについては後ほど説明します。これにより、各レイヤーのロジットが極端な値にスケーリングされ、完全なソフトマックスコラプスにつながります。つまり、LLMのレイヤーが数値的不安定性フェーズに遭遇し、LLMの全ての意味のある学習プロセスが停止するのです。
もし即座に100%理解できなくても大丈夫です。このビデオはそのためのものです。私自身、根本的な原因を理解するのに時間がかかりました。ここでは、グロッキングがなぜ起こるのか、そしてどうすればLLMで100%近い性能を最終的に達成できるのかを、皆さんに理解してもらいたいと思います。
全ては、計算で使用する数値から始まります。私たちは浮動小数点数を使用しており、それらは行列乗算やテンソル計算を行う際の精度を定義する有効桁数を持っています。有効数字の概念は、もちろん科学的表記法にあります。基数は10進数に限らず、2進数やその他好きな基数を使用できます。一般的に、数値は有効数字、基数、指数で構成されます。これらについて説明しましたが、具体的な例を見てみましょう。
有効桁数を数える際、重要なのは、正規化された形式での有効数字には、小数点の前の数字が含まれることです。これは常にゼロ以外の数字で、ほとんどの表現では1と仮定され、2進浮動小数点形式では明示的には保存されません。そして、表現の一部となる小数点以下の数字があります。
簡単な例を挙げると、123456という数字は科学的表記法でこのように書くことができ、有効数字は6桁あります(1、2、3、4、5、6)。次の例を見てください。これは素晴らしい数字で、有効数字は9桁あります。しかし、科学的表記法でこのように書くことができ、ここで何が起こるかのヒントが得られます。
もし有効数字が例えば6桁に制限されている場合、数学的計算の精度によって単純に制限されます。なぜなら、先ほど示したように9桁の有効数字があるのに、6桁しか使用しない場合、この数字は概算でこのように保存されることになります。つまり情報が失われるのです。
10進表現で極端な例を見てみましょう。これが基準値で、これが勾配の補正値です。勾配降下法を計算する際、バックプロパゲーションを計算する際、これらの計算を全て行う必要があります。すぐには分からないかもしれませんが、これはこの数字と同じで、これもこの数字と同じです。
そして、これらの数字を足し合わせると、もちろんこれが答えになりますが、6桁の有効数字でしか計算できないと仮定してください。ここで緑色で示した6桁の有効数字を見てください。計算の数学的精度によって情報が失われることが分かります。
6桁の有効数字という制限により、結果は正しい数学的結果ではなく、LLMに保存される結果は6桁の有効数字でのみ計算されたものとなります。そう、これがトレーニングデータで100%のオーバーフィッティングに達した後にシステムが崩壊する根本的な原因です。
詳しく見てみましょう。これは非常に重要で、もう一度説明します。トランスフォーマーレイヤーのニューラルネットワークで「ソフトマックスコラプス」と呼ばれる新しい表記があります。
タスクは単純で、3つのクラスを識別する問題があり、float32(24ビットの有効数字)を使用しています。単純な3クラス識別のためのロジットが特定のサンプルを持っており、例えば-10、-5、20とします。20が明らかに支配的な数字であることが分かります。
ソフトマックス関数は、これらの指数化された値を確率分布に正規化します。ロジットから単純にソフトマックス計算を行うと、このような結果が得られます。これは問題ないように見えます。これは無視できる値で、これも無視できる値で、これが答えです。
しかし、損失関数を計算すると、これが勾配を与えます。このシンプルな例で、クラス3または20が支配的なクラスまたは支配的な値が真のクラスであると仮定すると、損失は本当に小さくゼロに近づきます。損失関数を計算すると、勾配がゼロに近づくことが分かります。
これが何を意味するのか、もう一度説明させてください。勾配がゼロになるということは、システムが停滞してもう動かないということです。なぜなら、重力ポテンシャルに勾配がなければ、システムは方程式をさらに最適化する方法を知らないからです。勾配がゼロで、ゼロは停止を意味します。これが、トレーニングデータの100%オーバーフィッティングが長期間続くのに、学習が行われない理由です。
もう一度、実例を見てみましょう。浮動小数点計算で、再びfloat32の精度、つまり24ビットの有効数字で計算します。これを取り、これと、この-10、この-5、そして20を使います。さて、X(-10)とX(-5)を計算してみましょう。これらは本当に小さな数字です。数学的精度を少し高めに示しましたが、これらが数字です。
そして支配的な因子X(20)があり、これは485,165,000...などとなります。さて、ソフトマックスを計算することを思い出してください。分母では、私たちのZの、つまりロジットの指数関数の総和を取ります。これが私たちが行ったことです。これらが今、私たちのZの指数値です。
これを合計し、ソフトマックスはまさにこれを割ったものです。これがまさにそうです。そして今、ソフトマックスがこれだと言いますが、問題はありません。再び、私たちが注目しているのは支配的な因子、つまりエントロピー損失、クロスエントロピー損失関数です。これがシステムの発展の方向性を与えてくれます。
ソフトマックス出力が0または1に近づくと、出力は有効な確率分布となります。これがソフトマックスを使用する理由であり、正しく分類されたサンプルのクロスエントロピー損失はゼロに近づきます。つまり、重みに関するクロスエントロピー損失の勾配がゼロになります。局所最小値にさえいない状態で停止してしまいます。
ソフトマックス関数は、ロジットと呼ばれる非正規化スコアZのベクトルを確率分布に変換します。これがソフトマックスを使用する理由です。シンプルな公式です。そして重要なことに、この新しい研究は、トレーニング精度100%に達した後のトレーニング段階で、モデルが特に正しいクラスに対してロジットの大きさを増加させる傾向があることを示しています。
これは何を意味するのかと思われるでしょう。新しい学習を誘導しないシステム構成のために、損失関数が最適化を続けているということですか?その通りです。ロジットZの大きさを増加させるだけなのです。
これは非常に重要なポイントなので、説明したいと思います。ロジットが非常に大きくなると、サンプルの大部分からの勾配がゼロになり、学習プロセスを効果的に停止させ、未見のデータへの知識の一般化をLLMができなくなります。
これが、新しい研究論文がソフトマックスコラプスとして特定する核心的なメカニズムであり、グロッキングを理解する上で重要な要素です。なぜなら、これはグロッキングが起こる前に発生し、LLMが100%に達しない原因となるからです。
単純なXY軸のポテンシャルを考えてみましょう。これが絶対的な最小値で、これがポテンシャルの形だとします。私たちは損失関数の最適化でここにいて、突然勾配がゼロになります。進む方向がなくなります。LLMの新しい知識を学習するための完全なエントロピー損失最適化がゼロに収束します。
そこで停滞し、新しいことを何も学習せず、トラップされてしまいます。このソフトウェアコラプスは、知識の一般化における重要な障害となり、これを克服することがグロッキングを可能にする主要なステップとなります。
興味深いことに、グロッキングの前に、トランスフォーマーの計算に数値的な不安定性が生じます。ソフトウェアコラプスの根本原因を調査することで、著者らはオーバーフィッティングの時点を超えると、勾配が彼らが「素朴な損失最小化方向」(NLMD)と呼ぶ特定のポテンシャルウェルの最小化方向に強く整列することを発見しました。
なぜこれが問題なのでしょうか?モデルは、より意味のある表現を学習することによってではなく、ロジットをスケーリングすることによって損失を減少させます。ロジットのスケーリングが実際に何を意味するのかについては、もう一度説明します。しかし、その効果は知識の一般化を遅らせ、システム全体の数値的不安定性につながります。
つまり、ロジットのスケーリングは、グロッキングの一般化特性の遅延と、LLMの学習が停止する理由を説明しているのです。ロジットのスケーリングを見てみましょう。これは、個々の要素が定数倍されるロジットベクトルZに適用される特定のタイプの変換を指します。
新しい研究では、ネットワークの重みの更新が、定数値Cによるロジットの変更と等価な特定の数学的効果を持つことを特定しています。これが重要なポイントです。理解する必要があるのは、なぜなのかということです。
答えは、スケーリング係数CがロジットベクトルZの各要素に個別に適用されるということです。研究者らは、モデルが100%のトレーニングセット精度を達成した後、勾配更新が「素朴な損失最小化方向」と整列し始めると主張しています。シンプルな数学的な式を求めるなら、ここにあり、定数Cによるスケーリングがあります。
私たちのロジットZは、この係数で単純にスケーリングされます。この特定のNLM方向は、数学的空間において、ロジットのスケーリングという効果を持つ特定の方法でパラメータを更新することに対応します。つまり、完全な関数を取ると、単純に乗算係数になるということです。
この式は、モデルパラメータに更新を適用し、変化によって指定された方向に進むことが、元のニューラルネットワーク出力を正の定数で単にスケーリングすることと等価であることを示しています。何も学習されていないのです。
このDは、新しい研究が特定したパラメータ空間における特定の方向で、トレーニングデータが正しく分類された後に勾配が好む損失最小化方向です。これは、ソフトマックス関数を増加させる代わりに損失を減少させるからです。
更新は現在のパラメータ状態Fに依存し、関数fは入力Xを取り、ソフトマックス関数を適用する前の出力ロジットZを生成するΘによってパラメータ化された複雑な数学的関数である完全なニューラルネットワーク関数を表します。
定数C(1より大きい)でロジットをスケーリングすると、クラスの確率が増加します。興味深いことに、ソフトマックスクラスは1に近づき、クロスエントロピー損失関数は低くなります。
彼らがこれをNLM(素朴な最適化形式)と呼ぶ理由が、すぐに理解できます。なぜなら、モデルは3クラスの問題を区別する学習能力を改善しているのではなく、最適化手法が今や単純に全ての出力値をスケーリングして損失を減少させるという素朴な関数になっているからです。
これは意味がありません。これは学習機能のない、損失を減少させるための単なる数学的操作です。Z1、Z2、Z3の例を考えると、これは現在のXYZ方向に沿って全ての重みをスケーリングすることで達成され、それがロジットをスケーリングする効果を持ちます。
つまり、100%のオーバーフィッティング後に起こることは、単なる間違った形の最適化、素朴な形の最適化であり、それは数字を大きくするための数学的トリックに過ぎず、損失関数による学習を可能にしていないのです。
これは素晴らしい論文です。ロンドン・インペリアル・カレッジのコンピューティング学部による「数値的安定性の境界線におけるグロッキング」という論文で、2025年1月8日に発表されました。GitHubのコードも全て公開されています。
彼らは、ソフトウェアコラプスがグロッキングの発生を妨げていること、そしてソフトウェアコラプスを軽減することで、正則化なしでもグロッキングが起こることを示しています。5分ほど時間をください。これを詳しく説明します。
この根本原因を調査すると、著者らは「オーバーフィッティングの時点を超えると、勾配が我々が素朴な損失最小化方向と呼ぶものと強く整列し、したがってシステムでの学習が起こっていない」と述べています。
式で見たい場合は、とても読みやすいです。この論文を読む前に、このビデオで簡略化した説明を作る際に読んだ方法です。ここにソフトマックスクロスエントロピー損失があり、ここにソフトマックスコラプスが記述されています。
我々が言ったように、SCロスがゼロになるのがソフトウェアコラプスです。そして素朴な損失最小化を機能分解すると、ニューラルネットワークの関数がここで定数因子Cを掛けることとほぼ同等であることがわかります。
これは興味深いです。エントロピー損失最適化に基づく学習プロセス全体が、今では学習機能ではなく、単なるスケーリング機能になっているのです。
さらに彼らは「トランスフォーマーアーキテクチャが適用される大きなクラスのモデル、つまり正の同次性を示すモデルにおいて、100%のトレーニング精度を超えて訓練する場合、重みの方向は確かにLLM方向である」と述べています。
ここには、この式が適用される正の同次性関数の定義があり、Lはレイヤー数に対応します。彼らは、バイアス項のないMLPやトランスフォーマーアーキテクチャなど、多くのニューラルネットワークアーキテクチャが実際に正の同次性を持つ、あるいはトランスフォーマーネットワークの場合はおおよそ同次性を持つと言っています。
これについてもっと学びたい場合は、この論文をお勧めします。古い論文ですが、素晴らしい論文です。清華大学からのもので、2020年12月末のバージョン4です。同次ニューラルネットワークのマージン勾配降下最大化についてのもので、勾配降下アルゴリズムの暗黙的な正則化を研究しています。
数学的な深い考察をしたい場合は、この論文が素晴らしいです。では、LLMが100%のトレーニングデータセット精度に達した後、何が起こるのでしょうか?
素朴な学習動的はモデルに重みをスケーリングすることによってのみロジットをスケーリングするように促します。これは確かにクロスエントロピーの損失を減少させますが、意味のある表現を学習する代わりに、重みの大きさを増加させ、ソフトマックスの数値的不安定性を増加させ、最終的にソフトマックスコラプスにつながります。
ここで、モデルはこの特定のトレーニング動的にトラップされています。L関数の最適化は長年私たちに良く貢献してきましたが、暗い面もあります。モデルをトラップし、さらなる学習とさらなるグロッキングを妨げる可能性があるのです。
興味深いことに、文献を読むと、彼らはいくつかの興味深い点を見つけています。著者らは「入力の次元性を減少させることで、データがLLMにとって記憶しにくくなり、それによって一般化の開始の遅延がグロッキングとともに取り除かれる」と述べています。
これは今、魅力的です。これが、私たちがグロッキングをずっと早く達成するために何をすべきかについての次のヒントです。彼らは「入力表現の次元が減少すると、オーバーフィッティングがLLMによって防止され、LLMはより早く一般化し、グロッキングフェーズが早くなることを確認した」と述べています。
これはまさに私たちが望んでいたことです。しかし、実際の複雑な問題の複雑なマルチジャンプ推論アーキテクチャでは、入力空間を本当に広げるために複雑さが必要なので、入力の次元性を減少させたくありません。
しかし、これは私たちが何をすべきかのヒントを与えてくれます。信じられないかもしれませんが、これらの洞察を得て、著者らは2つの新しいアイデアを提案しています。
私たちは、このトラップから抜け出し、検証データセットで最大100%の精度を可能にする本当に意味のある表現を再び学習し始めるメカニズムを必要としています。これは素晴らしいことではありませんか?
グロッキング前に何が起こっているのか、そしてなぜグロッキングがそんなに遅れるのかを、ようやく理解するのに7ヶ月かかりました。今、私たちはここで何が起こっているのかを理解する立場にいます。そして今、これを理解することで、グロッキングの開始を本当に早い段階に持ってくることができます。
そうすれば、数千、数万回もの最適化ステップのために時間を無駄にする必要がなく、エネルギーを無駄にする必要がなく、時間を無駄にする必要がなく、何も無駄にする必要がありません。私たちは今、グロッキングLLMをずっと早く構築できます。
私は以前グロッキングを行った2つのシステムを持っていて、それらをイギリス帝国の王冠宝石のように大切に保管しています。なぜなら、これらのシステムは単純に驚くべき性能と精度を持っているからです。
これは今、完全に新しい改善の道を開きます。しかし、もちろんこれは明日のビデオの内容となります。グロッキングの紹介、グロッキングが起こる理由の最初の説明、ソフトマックスコラプスとは何かについての説明を楽しんでいただけたと思います。
これらの確率を克服し、数値的不安定性を回避するための4つの方法を考えることができますが、テストを実行しなければならない別の興味深い質問があります。もちろん、人々がコンピュータインフラを持っていない場合、LLMの8ビット量子化に進みます。
そして今、主な疑問は、より早くグロッキングを引き起こすことができる方法で量子化を行うことが可能かどうかです。これは研究者によってfloating16で示されていますが、モデルを量子化することで簡略化を行う場合、どの値を量子化するか、トレーニングのどの段階で量子化モデルを設定するかに大きく依存します。
小さなモデル、スモールランゲージモデルにこれを適用する場合、100%の性能を達成するためのグロッキングの早期開始にどのように対処できるかは、今、絶対に魅力的だと思います。これは驚くべきことでしょう。
しかし、まず第一歩を踏み出しましょう。パート2が近日公開され、LLMのために即座にグロッキングを行い、即座に驚くべき性能を実現する複数のソリューションをお見せします。
楽しんでいただけたと思います。そして私のチャンネルの登録者の方は、パート2が公開されたらすぐに通知を受け取ることができます。