HPO(ハイパーパラメータ・ドリフト)[D]

Reddit r/MachineLearning / 2026/4/25

💬 オピニオンDeveloper Stack & InfrastructureIdeas & Deep AnalysisModels & Research

要点

  • 投稿者は、学習完了まで丸一日かかるような非常に大規模なMLモデルで、ハイパーパラメータ最適化(HPO)を回す際の実務的な課題に直面しています。
  • HPO試行では、学習を短縮するためにエポック数を減らし(約1〜2時間/試行、さらにプルーニングで30分未満へ)、その結果「ハイパーパラメータ・ドリフト」が起き、学習率スケジューラなどがフルトレーニング時にうまく機能しないのではないかと懸念しています。
  • 月に2回程度の頻度での再学習が必要で、さらに5種類のモデルを最新状態に保つ必要があり、加えてアーキテクチャの定期的な変更により都度新しいHPOが必要なため、HPOの各試行でフルトレーニングを行うことは現実的でありません。
  • 投稿者は、短いHPO実行とフルトレーニングの間でパラメータのずれを防ぐ典型的な方法や、(中央値プルーナーを用いている場合に)「速く収束するがそれ以上学習しない」モデルが有利になっていないかについて質問しています。
  • また、学習が頭打ちになったと見られるタイミングで学習率スケジューラを最初から再起動する案を検討しており、その有効性について意見を求めています。

みなさん、ちょっと困っていることがあるんですが。私は大規模なMLモデルをトレーニングしていて、完全に学習しきるまで文字通り1日かかります。

モデルの最適なパラメータを得るためにHPO(ハイパーパラメータ最適化)を実行したいのですが、このタスクには非常に高い精度が必要なので、HPOステップが必要です。

モデルは完全にトレーニングするのに1日かかるので、HPO部分については各hPoトライアルが1〜2時間程度で済むように、エポック数を減らしました。

プルーニングを使うことで、1回あたり30分未満まで抑えられます。ですが、これらのモデルとHPOを月に2回程度の頻度で学習させたいので、HPOのために毎回フルの学習を回すことはできません。また、トレーニングして最新の状態を維持しなければならない5種類のモデルがあります。

さらに、モデルのアーキテクチャも定期的に変更するので、それらについては新しいHPO実行が必要になります。

私が主に直面している問題は、HPOのエポック数をフルのトレーニング実行で使っているものより減らしてしまうと、学習率スケジューラやその他のHPOパラメータが、フルのトレーニング実行に対して適切に最適化されていないのではないかと心配している点です。

HPOを使ったこのような大規模な学習をどのように管理していて、フルの学習を行う場合と、小規模なHPO実行を行う場合でパラメータのドリフトが起きないようにどう担保していますか?

もう1つの質問は、プルーニングは「速く収束するモデル」を報酬として与え、「真理に近づくまでよりゆっくり収束するかもしれないモデル」を罰することになるのでしょうか? median prunerでプルーニングしているのですが、ほとんどのモデルは速く収束するものの、ある一定の地点以降は何も学習できていないように見えます。

学習が止まった後に、LR(学習率)スケジューラを最初から再開し直すことを考えています。これでLRの問題が解決できるかもしれません。early stoppingに似ていますが、ここでは一度止まったときにLRを再度立ち上げるイメージです。どう思いますか??

submitted by /u/Counter-Business
[link] [comments]