※本記事は、POSTECH准教授であるNamhoon Lee氏による講演「Mitigating Staleness in Asynchronous Pipeline Parallelism via Basis Rotation」の内容を基に作成されています。本講演は、Pluralis Researchが主催し、ICLR 2026(ブラジル・リオデジャネイロ)にて開催されたProtocol Learning Workshopにて収録されたものです。同ワークショップには、分散・低帯域幅ネットワーク環境における大規模モデル学習に取り組む研究者が集いました。本記事では、講演内容を要約しております。なお、本記事の内容は登壇者の見解を正確に反映するよう努めていますが、要約や解釈による誤りがある可能性もありますので、正確な情報や文脈については、オリジナルの動画をご覧いただくことをお勧めいたします。また、Protocol Learningに関する詳細情報は https://pluralis.ai でご覧いただけます。
1. イントロダクションと大規模AI学習のコスト問題
1.1 発表者・研究背景の紹介
おはようございます。私はナムフンと申します。韓国から参りました。私はこの分散学習・大規模学習という分野に関しては比較的新しい人間ですが、こうした非常に挑戦的でエキサイティングな問題の解決に取り組む研究グループを運営しております。先ほどのAlexとDanのお二人の講演も、私は本当に興味深く拝聴しました。
さて、今回の発表では、私の研究グループで進行中のいくつかの研究をご紹介したいと思います。内容は少し技術的になりますが、そのほとんどは私の優秀な学生たちによって進められているものであり、私自身がその細部まで把握しきれていない部分もあるかもしれません。ですので、議論の途中でも構いませんので、いつでもご質問いただければ、できる限りお答えするよう努めます。
なお、これからお見せするスライドは、正直に申し上げますと数か月前に一般向けの聴衆を想定して作成したものです。ですので、この場にお集まりの皆様にとってはすでにご存知の内容が多く、あまり目新しさはないかもしれませんが、まずは背景からお話しさせてください。
1.2 生成AIの普及とコスト急増という背景
まず、ChatGPTの週間アクティブユーザー数は8億人という数字が出ています。これは数か月前に推定された数字ですので、現在はさらに増えている可能性があります。これは世界人口の約10%に相当しますが、おそらくこの会場にいらっしゃる皆様は、こうした生成AI技術をすでに日常的に活用されていることと思います。実際、Fortune 500企業の92%がこうした技術を利用しているというデータもあります。
しかし、懸念すべき点は、こうした基盤モデル、フロンティアAIモデルを構築・運用するためのコストが非常に高く、しかも増大し続けているということです。Epoch AIとスタンフォード大学による研究論文の抜粋を見ますと、最大規模の学習は、遠い将来の話ではなく、来年にはすでに1兆ドル規模に達するとされています。これは非常に大きな数字です。
もう少し具体的な内訳をお話ししますと、単一の大規模学習の取り組みだけで見ても、フロンティアモデルのスケールでは、償却費用ベースで1億から2億ドルが必要になるというのが実情です。汎用目的のAIを想定したより小規模なモデルであっても、数千万ドルの低い方の水準にはなりますが、それでもこうしたリソースを持たない主体にとっては、すでに手に負えない金額です。
この話は続きます。例えば、Geminiの最初のバージョンについて見てみますと、今ではもう誰も使っていないようなものですが、それでもハードウェアやGPU、クラウドコンピューティングのコストだけで、すでに1億ドルを超える費用がかかっていました。そして近い将来、この種のコストは1億ドルを超える水準に到達すると見られています。内訳を分解すれば、研究開発費、チップ、GPU、インフラ、そしてエネルギー消費といった要素が積み重なっていくことになります。
ここで申し上げたいポイントは、皆が実際にLLMや生成AI技術を日常的に活用しているという事実は疑いようがなく、それはすでに私たちの生活の一部になっているということです。ただ問題は、こうした機械を実際に構築・運用できるのは、数百万、数十億ドル規模の資金を持つ巨大企業だけだという点です。彼らがそれを行っているのは、おそらくそれが自分たちにとって利益になるからだと思われますが、これは懸念すべき事態です。なぜなら、お金は力であり、力の偏在はさまざまな問題を生み出すからです。
私自身、昨年こちらでAJ氏と話をして以来、プロトコル学習というアイデアに非常に魅了されました。そして、私たちはこの状況をより持続可能にするための、より良い方法を考え出したいと考えました。つまり、このままでは一部の企業だけがこうした技術に追随できるという状況になってしまうということです。私たちにはスケーラビリティが必要ですが、果たしてこの方法はスケーラブルなのだろうか、という問いが生まれます。
そこで私は、これらの大規模モデルを分散的な方法で学習させることが、その潜在的な解決策になり得るのではないかと考えています。ここに小さな図をお示ししていますが、これは中央で調整を行うサーバーを持たず、通信はピアツーピアのみで行われる形になっています。ただし、こうしたデバイスは互いに大きく異なる可能性があります。高性能computing施設にあるような高性能GPUのようなコモディティ品ではない、ということです。
私がここで特に取り組みたいと考えている点は、次のようなことです。分散学習はすでに長年研究されてきており、大きな可能性を秘めています。しかし、こうした学習システムを、極めて大規模なモデルに対して実際にデプロイすることが本当に可能なのだろうか、という問いです。もしモデルが本当に巨大であったらどうなるでしょうか。LLMで数十億規模、あるいは1000億、さらには数兆パラメータ規模になった場合、そもそもピアツーピア通信は可能なのでしょうか。
そこで本日は、私の優秀な学生たちと進めている研究プロジェクトのうち、特に2つをご紹介したいと思います。ただし、技術的に言えばこの2つの研究は、それぞれ異なる学習設定を対象としたものであり、その点についてもこれから説明していきます。
2. 分散学習(Decentralized Training)というアプローチ
2.1 分散学習の概念と本発表の位置づけ
こうした巨大企業への一極集中という問題意識から、私は分散的な形での学習が、ひとつの有効な解決策になり得るのではないかと考えています。この分散学習という仕組みには、中央で全体を統括するサーバーが存在しません。通信はあくまでピアツーピア、つまり参加者同士が直接やり取りする形で行われます。ただし、実際にはこうした参加デバイスは互いに大きく性能が異なる可能性があります。高性能computing施設にあるような高性能GPUのようなコモディティ品を前提にできるわけではなく、むしろ非常に多様な、限られた性能のデバイスが混在することを想定する必要があります。
分散学習という考え方自体は、すでに何年も前から研究されてきており、大きな可能性を持つ分野です。しかし、私がここで特に取り組みたいと考えている問いは、こうした学習システムを、実際に極めて大規模なモデルに対してデプロイすることが本当に可能なのだろうか、という点です。もしモデルが本当に巨大であった場合、たとえばLLMで数十億パラメータ、あるいは1000億、さらには数兆パラメータという規模になった場合、そもそもピアツーピアでの通信は現実的に成立するのでしょうか。この問いこそが、本日ご紹介する研究の出発点になっています。
本日は、私の研究グループで進めているプロジェクトのうち、特に2つをご紹介したいと思います。ただし、技術的に申し上げますと、この2つの研究は、それぞれ異なる学習設定を対象としています。1つ目は、パイプライン並列学習という設定を扱うものです。これは、モデルが単一のGPUのメモリには収まらないほど大きい場合に、モデルを複数のデバイスに分割して学習を行うという設定です。2つ目は、より従来的な意味での分散学習、すなわち複数のクライアントがそれぞれローカルなデータを持ち、中央サーバーを介さずに協調してひとつのグローバルなモデルを学習するという設定を扱うものです。この2つのプロジェクトは、扱っている学習設定が異なるという点をあらかじめお断りした上で、これから順にご説明していきたいと思います。
3. プロジェクト1:非同期パイプライン並列学習における基底回転(Basis Rotation)
3.1 問題設定と基底不整合という仮説
最初にご紹介するのは、パイプライン並列学習に関するプロジェクトです。まず、パイプライン並列学習とは何かということからお話しします。モデルが非常に大きく、単一のGPUアクセラレータのメモリに収まらない場合、モデルを複数のデバイスに分割し、データの次元にわたって並列化を行う必要があります。パイプライン並列学習は、こうした潜在的に非常に小さなデバイス群を用いて大規模モデルを学習することを可能にするために設計された仕組みです。
しかし、この素朴な同期型のパイプライン並列学習には問題があります。各ステージは、すべてのマイクロバッチが処理を終えるまで、他のすべてのステージが完了するのを待たなければなりません。その結果、バブルと呼ばれるアイドル期間が生じ、多くのプロセスが実質的に待機状態のまま停止してしまいます。これは明らかに、ハードウェア利用率を著しく低下させる原因となります。
そこで人々が考えたのは、これを非同期にするというアイデアです。つまり、後続のマイクロバッチの処理を、前段の同期を待たずに実行してしまうという方法です。この場合、最初のマイクロバッチはフォワードパスを最後まで進め、その後すぐにバックワードパスを実行します。そして微分情報が得られ次第、それを直ちに現在のモデルの更新に反映させます。
しかし、よく知られている問題として、この非同期パイプライン並列学習を行うと、勾配が時間的に遅れて届くということが挙げられます。勾配が遅延するのです。これが、勾配の陳腐化(gradient staleness)として知られる現象を引き起こします。例えば、ある時点で使われる重みW4に対する勾配が、実際には過去の時点の重みに基づいて計算されたものである、という状況が生じます。この勾配が現在の時点において何らかの意味を持つのか、有効なものであるのかは、特にステージ数が多い場合には疑わしいものになります。ステージ数が多いということは、モデルが非常に大きいということを意味します。モデルが大きければ、それを多くのステージに分割する必要があり、並列度が高まりますが、それと同時に勾配の陳腐化もより大きくなってしまいます。
では、これが実際の学習プロセスにどのような影響を与えるのかを検証するために、私たちは実験を行いました。同一のモデル、つまりパラメータ数がまったく同じモデルを用いて、複数回の学習を実行するという実験です。理論的には、これらは十分に学習されれば同様の性能に収束するはずです。しかし実際には、同じ容量のモデルに対してステージ数を増やしていくと、この非同期パイプライン並列学習は収束にはるかに多くの時間を要するようになることが分かりました。私たちは非常に小さなモデルでこの実験を行いましたが、モデルが大きくなるほどこの現象はさらに深刻になります。実際、6倍という非常に大きな遅延の増加が観測されました。
この研究では、この問題の原因が何であるかを特定しようと試みました。そして私たちがかなり自信を持って見出したのは、この性能劣化が「基底の不整合(basis misalignment)」と呼ぶべきものに起因しているのではないか、ということです。これはどういうことかと言いますと、損失関数のヘシアンの基底が、標準的な座標基底と一致していないということです。よく知られているように、この場合、Adamが持つ座標ごとの曲率適応性、つまりスケール適応性が十分に機能しなくなります。そして、この基底の不整合が、非同期パイプライン並列学習で見られる勾配の遅延と結びつくと、それは破滅的な失敗にまで至ってしまうのです。
Adamの基本的な性質として、次元ごとに曲率が急であろうと緩やかであろうと、SGDとは異なり座標ごとの適応性を持っているという点があります。もしステップサイズを適切に設定しなければ、SGDは振動したり、収束が非常に遅くなったりする可能性があります。しかしAdamは、座標ごとにこのスケーリング特性を持っています。実際、非常にシンプルな二次関数の設定で、ヘシアン行列を制御できる場合を用いて、基底が完全に整列しているケースでSGDとAdamを比較してみますと、SGDはこのような経路をたどって進んでいくのに対し、Adamは学習の初めからほとんど直接的に最小値へと向かっていくことが分かります。
ところが、遅延をオンにすると状況は変わります。SGDはこの遅延に対して非常に敏感に反応し、振動する挙動を示すことが分かりました。一方でAdamは、この完全に基底が整列したケースでは、そのような挙動は見られません。しかし、目的関数の空間を回転させた上で、同じ量の遅延を伴ってAdamを実行してみると、突如としてこの遅延の悪影響が顕在化するのです。つまりこれは、Adamのプリコンディショニングの性質、すなわち座標ごとのスケール適応性という性質に起因する現象だということです。
私たちはここから、もし何らかの形で基底の整列を達成できれば、更新方向、つまり勾配の方向が局所的に一貫したものになり、遅延がある場合の全体的な軌跡が、遅延がない場合の元の軌跡とおおむね類似したものになるのではないか、という仮説を立てました。これを単純な帰納法によって証明し、そこから、遅延を伴う一次モーメントと二次モーメントが、遅延のない場合とおおむね類似したものになるということが示せます。
この図が示しているのは、Adamの場合、二次モーメント情報によって勾配を正規化することで方向を調整できるため、遅延があったとしても更新方向が非常に滑らかになるということです。つまり、過去のある時点で計算された勾配であっても、それが将来の時点でもなお有効である可能性があるということです。そのため軌跡は多少滑らかになり、私たちはそこからすべての解析を進めていきました。
さらに、収束解析についても行いました。これは同様の結論を導くものですので詳細は割愛しますが、単純な収束解析は一定の仮定に基づいており、そこには陳腐化(staleness)の度合いを捉える係数Cが存在し、この係数が遅延項に掛け合わされる形で現れます。このCは、基底の不整合の度合いを表すものです。もしCが大きくなればなるほど、これら2つの項が収束限界において支配的になっていき、それが先ほどのスライドで見たような収束の遅さに影響を与えているということです。
3.2 基底回転手法の提案とその検証実験
そこで私たちが提案するアイデアは非常にシンプルです。Adamは基底が完全に整列している場合にうまく機能することが分かっているのですから、整列した基底の空間の中で最適化を行えばよいのではないか、というものです。これは、標準的なAdamがモデル更新の際に行っている処理と非常によく似ています。一次モーメントと二次モーメントを、回転させた空間の中で計算するのです。ここでUとVは回転行列であり、勾配行列、あるいはモーメンタム化された行列のいずれかに基づいて定められます。
アルゴリズムとしては、勾配を蓄積し、固有基底(eigen basis)を計算します。そして基底を回転させ、モデルの更新を行った後に、再び元の空間に回転させて戻す、という手順になります。これは非常に一般的なフレームワークであり、SOAPやShampooといった既存の手法群も、このフレームワークの特殊なケースとして位置づけることができます。
私たちは、この枠組みにおける様々な選択肢についても解析を行いました。例えば、モーメントの推定を経験的な特徴量を用いて行うのか、それとも既存のモーメンタムバッファを利用するのか、といった選択です。また、片側回転を行うのか、両側回転を行うのかについても、どれだけのリソースを投入したいかに応じて決定できるという性質のものです。こうした点について一定の解析を行った上で、私たちは基底回転というアイデアの有効性を評価するために、数多くの実験を実施しました。
まず、勾配の陳腐化や非同期パイプライン並列学習の問題に対処する従来のアプローチと比較したところ、ステージ数を増やしていく、つまり原理的にはモデルがどんどん大きくなっていくというシナリオを模したときに、基底回転は最終的な学習損失の増加を非常に安定的に抑えることができました。これは従来手法とは対照的な結果です。実験におけるパイプラインステージ数が最大の設定での学習曲線を見ますと、桁違いに高速な収束が実現されていることが分かります。
例えば、実験で確認された最良のベースラインであるPipeDreamと比較しますと、この手法はステップサイズを推定するのですが、パイプラインステージ数を増やすと収束が極端に遅くなり、その減速幅はおよそ4倍に達します。一方で基底回転の場合、このパイプライン化によってほとんど悪影響を受けません。
さらに興味深いのは、先ほどご紹介した実験とは異なり、この実験ではモデルのサイズ自体を大きくしたという点です。これらの既存手法は、モデルサイズを大きくすれば学習性能が向上するはずだというスケーリング則に従わないのですが、基底回転を適切に行った場合には、このスケーリング則の効果をきちんと確認することができました。モデルのサイズを大きくするにつれて、学習性能が向上していく様子が見られたのです。この研究では最大10億パラメータ規模の事前学習まで検証を行い、既存手法との差はさらに広がっていくことが確認されました。具体的には、最良の既存手法と比較して、約75〜76%少ないイテレーション数で済むという結果が得られています。
3.3 パイプライン特化型の改良と追加実験
ここからは、ごく最近追加した内容についてご紹介します。これまでお話しした基底回転の手法は、必ずしもパイプライン並列学習を意識した、あるいはパイプライン並列に特化した回転というわけではありませんでした。しかし、先ほどのパイプラインの仕組みに立ち戻って考えますと、より早い段階のステージほど、大きな遅延が生じ、情報が時間的により遅れて到着することが分かっています。したがって、もし基底回転の近似精度が、性能を向上させるためにより高い精度を必要とするのであれば、そしてその必要性が陳腐化の度合いに応じて変わるのであれば、遅延の大きい早期ステージに対して、より高い精度の近似を割り当てるべきではないか、と考えました。
そこで私たちが行ったのは、早期ステージに対して、基底の推定という操作をより頻繁に割り当てるという工夫です。ただし同時に、全ステージにわたる計算量の総和は一定に保つようにしました。それまでは、すべてのステージに対して一律に計算量を割り当てていたのですが、今回は早期ステージに対しては、基底の推定と回転の実行をより正確に行うようにしたのです。その結果、イテレーションの複雑度において約30%の性能向上が得られました。
さらに、このアイデアを検証するためのシミュレーション研究も行いました。ここでは、固有基底をより正確に計算し、基底回転をより正確に実行するほど、イテレーション数の観点でより大きな性能向上が期待できるということが示されました。ただし、両側回転を行わない場合や、フルの共役因子(conic factor)を用いない場合であっても、既存手法と比較してかなり大きな改善が見られたという点は、非常に励みになる結果でした。
また、この改善が実際のGPU時間としてどの程度反映されるかについても測定を行いました。その結果、実際の学習時間も大幅に削減されることが確認できました。さらに、固有基底の推定頻度をそれほど高くしなくても、例えば100イテレーションごとという頻度であっても、なお十分に良好な性能が得られるということも分かりました。
このプロジェクトは、実は私たちの研究グループにとって、潜在的に非常に大規模な分散学習に取り組む最初のプロジェクトでした。そしてこの研究を通じて、最適化の設計をより良いものにするということが、想定を超えるほど大きな性能改善をもたらし得るのだということを、私たちは学びました。
4. プロジェクト2:SeedFlow(ゼロ次勾配のシード共有による通信コスト削減)
4.1 従来の分散学習設定とゴシップ通信の課題
続いてご紹介するのは、SeedFlowと呼んでいる2つ目のプロジェクトです。タイトルも少し野心的なものになっていますが、これから内容を説明させていただきます。
このプロジェクトが対象とするのは、私にとってはより従来的な意味での分散学習の設定です。ここでは多数のクライアントが存在し、それぞれがローカルなデータを保持しています。最適化のステップを統括するような中央サーバーは存在せず、各クライアントは局所的な近傍のクライアントとのみ通信を行いながら、ローカルなデータに基づいてグローバルなモデルを学習していくことになります。
分散学習には、理想的には中央集権的な従来型の学習方式に比べて多くの利点があります。例えば、あるクライアントが何らかの形で失敗したとしても、学習システム全体がクラッシュしてしまうことはありません。また、常に1台のサーバーがすべてのクライアントと通信することを期待するのではなく、あくまで局所的な通信だけで済むため、通信のスケーラビリティという点でも優れていると言えます。さらに、データが常にローカルに留まるため、セキュリティの観点でも望ましい性質を持っています。
こうした従来型の分散学習の設定において、標準的な手法となっているのがゴシップ通信プロトコルです。これは、この式に表されている通りのものです。具体的には、各クライアントがローカルSGDを実行し、その後、ネットワークトポロジー上でつながっている近傍のクライアントとのみモデルを通信する、という仕組みです。近傍とだけ情報をやり取りすることから、ゴシップという名前が付いています。
実際の運用では、ネットワークが本当に大規模である場合、ゴシップのステップを何度も繰り返し実行する必要があります。なぜなら、単に近傍とだけ通信していたのでは、局所的に学習した有用な情報を、遠く離れたクライアントにまで十分に行き渡らせることができないからです。したがって、ゴシップを行うためには、実際にはかなり頻繁に通信を行う必要が生じます。コンセンサスを確保するための方法には様々なものがありますが、典型的には、ゴシップのステップを何度も繰り返し実行する必要があるのです。
これは実のところ、先ほど申し上げた「ゴシップは通信のスケーラビリティに優れている」という主張と、いくぶん矛盾するものです。仮に、非常に大規模なモデルを協調して学習しようとしており、その大きなモデルを頻繁に局所的な近傍へ送信しなければならないとすれば、これは分散学習においてよく知られた問題であり、そう簡単にはうまくいきません。特に、クライアント同士が非常に低帯域幅のデバイスで接続されているようなネットワークを想定する場合には、なおさらです。
つまり、これは非常に難しい問題であり、そこには一定のトレードオフが存在します。もし、モデルのマージなどを行わずに完璧なコンセンサスを達成したいのであれば、その分、通信コストを大きく犠牲にしなければならないということになります。
4.2 ゼロ次勾配とシード共有・フラッディングによる提案手法
そこで、この小さなプロジェクトにおいて、私たちは主に連合学習(federated learning)の設定における先行研究に着想を得たアイデアを考えました。それは、勾配情報、すなわち微分情報を、ゼロ次(zeroth-order)の手法によっておおまかに推定できるのではないか、というものです。
このケースにおけるシンプルなゼロ次手法とは、単純な2点有限差分です。これは、逆伝播(バックプロパゲーション)を経由することなく、フォワードパスを2回実行するだけで済むというものです。これによって、微分のゼロ次推定値を得ることができます。この式の中で非常に興味深い点は、第一項がスカラーであり、第二項がモデルの次元数を持つベクトルであるということです。
そしてここでの鍵となるアイデアは、実はこの潜在的に非常に大きなベクトル、つまりモデル全体のサイズを持つベクトルを通信する必要は一切ない、ということです。なぜなら、このZベクトルはランダムな摂動ベクトルであり、もしすべてのクライアントが同一の乱数生成器を持っているのであれば、それを送信する必要がないからです。すべてのクライアントが同じ乱数生成器を持っている限り、送るべきものはこのスカラーと、ランダムな摂動ベクトルを再構成するために使われるランダムシードだけで済みます。もしそうであれば、通信するメッセージはスカラーだけで構成されることになり、これはほんの数バイト程度に過ぎません。実質的に何も送っていないに等しいのです。
これは、標準的な分散学習の方法、すなわちモデルサイズに対して線形にコストがかかる方法と比べて、ほぼゼロに近い通信コストであると言えます。これはもちろん線形であり、たとえ何らかの高度な圧縮手法、勾配圧縮手法を適用したとしても、その圧縮率次第では依然としてコストがかかることになります。いずれにせよ、結局はモデルのサイズに依存してしまうのです。ですので、このアイデアはかなり良いもののように思われます。実際、このアイデア自体は連合学習の分野ではすでに検討されてきたものですが、分散学習の文脈ではこれまで扱われていませんでした。
しかし、もうひとつ対処すべき課題があります。何らかの有用な情報、この場合は勾配情報であってモデルそのものではない情報を通信する際、もしゴシッププロトコルにこだわるのであれば、これを何度も繰り返し行う必要があります。しかし、この情報は極めて小さいものです。であれば、この情報を局所的な近傍だけに送るのではなく、ネットワークにつながっているすべてのクライアントに一気に送ってしまえばよいのではないか、と考えました。なぜなら、それは本当に小さな情報であり、通信コストがほとんどかからないからです。
そこで私たちは、計算機科学における古典的なアルゴリズムであるフラッディング(flooding)に着想を得て、ネットワークトポロジー上で発見できるすべてのクライアントに対して、このシードを一斉に伝播させる(flood)ことを試みました。これを行えば、コンセンサスはほぼ100%になることが期待できます。なぜなら、各クライアントが局所的な勾配を生成する際、それらの局所的な勾配のすべてが、すべてのクライアントに共有されることになるからです。
なお、フラッディングには様々なバリエーションがあり、必ずしも100%の完全なフラッディングである必要はありません。部分的なフラッディングを行うことも可能であり、私たちの進行中の研究の中でもこうした方向性を検討しています。このように、シードのフラッディングは、モデルそのものを共有し、それを何度も繰り返さなければならないゴシップと比べて、大きな優位性を持っています。フラッディングは文字通り非常に高速であり、通信コストはほぼゼロに近いものになります。
ここまでの説明で、もしお気づきになった方がいらっしゃるかもしれませんが、唯一懸念される問題点は、ゼロ次勾配があまり正確ではない可能性があるということです。なぜなら、これは単なる有限差分に過ぎず、逆伝播を用いた正確な一次の微分とは到底比較にならないからです。ですので、そこには一定のトレードオフが存在すると考えています。
しかし、私たちが事実として認識しているのは、例えば基盤モデルやLLMのように、学習しようとしているモデルがすでにある程度事前学習済みであり、あなたの仕事が分散ネットワーク上でのファインチューニングだけである、というケースが存在するということです。そして、こうしたケースにおいては、MeZOのような非常に成功を収めた事例をすでに私たちは目にしています。
このスライドで申し上げたいのは、依然として残る問題として、フラッディングはネットワーク上のクライアント数によっては、事実上すべてのクライアントを「洪水(flood)」状態にしてしまう可能性がある、ということです。というのも、再構成すべきゼロ次勾配の数が多くなりすぎてしまうからです。これにより、再構成と集約の両方の段階において、計算上の問題が生じることになります。例えば、重みの数がnであるとすると、実際のランタイムはこの数に応じてかなり増大してしまいます。
そこで私たちが行ったのは、摂動ベクトルをフルの次元数のまま扱うのではなく、それを低ランク構造を持つ何らかの部分空間へと圧縮するというアイデアです。近年では多くの研究がこうした考え方を活用しています。最終的に、MeZOと比較して、このsubCGE(部分空間を用いたConfidence-Guided Estimation、ここでは低ランク圧縮版のゼロ次勾配推定手法)は、計算時間、すなわちランタイムの面で非常に小さく抑えられることが分かりました。
4.3 実験結果
ここからは、非常にシンプルな実験結果についてお示ししたいと思います。このプロジェクト全体の動機は、分散学習における大規模モデルに必要な通信コストを最小化することにありました。ご覧いただけますように、SeedFlowが必要とする通信量は、わずか数キロバイト、具体的には400キロバイト程度です。標準的な、あるいは素朴な分散学習の手法と比較すると、これは文字通り無に等しい水準です。ですので、もしネットワークの帯域幅が非常に限られている環境であれば、このアプローチは検討に値するものになるかと思います。
また実際に、特にファインチューニングのタスクに関しては、性能面での大きな劣化はほとんど見られませんでした。これは非常に励みになる結果でした。グラフは対数プロットになっていますので、通信コストの観点での改善幅は非常に大きなものになっています。さらに興味深いことに、SeedFlowのスケーラビリティは規模を大きくするにつれて向上し続ける一方で、他の手法は大規模な設定においては自然と性能が悪化してしまうという対照的な結果が見られました。
以上が、この2つ目のプロジェクトについての説明になります。スライドは本当に直前になって作成したものですので、その点はどうかご容赦いただければと思います。もしご質問があれば、喜んで議論させていただきます。ありがとうございました。
5. 質疑応答
Q. 基底回転のアルゴリズムについて質問があります。私が発表内容から理解した限りでは、まず勾配を蓄積し、一次モーメンタムバッファを蓄積した上で、それを回転させるという手順になっているかと思います。しかし、二次モーメントに対しては同様の回転を行っていないように見えます。つまり、一次モーメントについては明示的に再回転を行っているわけではなく、回転された勾配を通じて間接的に回転されている状態になっているのではないでしょうか。
A. その通りで、私たちはそれを回転して元に戻すという処理を行っています。
Q. しかし、それだと一次モーメントについては、回転の回数が1回少なくなってしまうのではないでしょうか。
A. ああ、なるほど。そのご指摘はごもっともです。実は、その点についての厳密な導出は論文の中できちんと記載しております。ご質問の趣旨は、この回転の外側でEMA(指数移動平均)を行わない理由は何か、ということかと思います。
Q. はい、その通りです。
A. 固定された回転行列を一定期間維持する場合には、これは数学的にまったく同じ結果になります。ただし正確に申し上げますと、回転行列自体は原理的には毎回のイテレーションごとに計算することも可能ですが、それは非常に計算コストが高くなるため、私たちはそれを行っていません。しかし、もし一定期間は固定された回転行列を使い続けることを許容するのであれば、この平均化のステップを回転の外側に出すことができます。そうすることで、勾配、つまり一次モーメントも回転された状態になるということです。
Q. なるほど、分かりました。ありがとうございます。
A. どういたしまして。
(司会者)ほかにご質問のある方はいらっしゃいますか。それでは、ありがとうございました。
Q. ありがとうございました。