広告

[D] 大きなバッチサイズで作る。

Reddit r/MachineLearning / 2026/4/3

💬 オピニオンTools & Practical UsageModels & Research

要点

  • Redditのユーザーが、RTX 4050上でRWKV v6の言語モデル(約192.8Mパラメータ)を学習させたところ、勾配蓄積を増やして(=実効バッチサイズを増やして)いくと、パープレキシティ(PPL)が大きく改善したと報告している。
  • 勾配蓄積や学習率を調整し、time_decayに関連する学習率(LR)も含めて検討したにもかかわらず、小さな実効バッチサイズ(例:batch_size=2、gradient_accumulation=4でeffective_batch=8)ではほとんど、またはまったく改善が見られなかった。
  • その後、勾配蓄積を大幅に増やして(例:32→64)いくと、PPLはより劇的に低下し、数時間後には約20 PPLに到達し、その後も複数日かけて改善が継続した。
  • 投稿では、著者の実験に基づいて、この知見を実践的な学習アドバイスとして位置づけており、生成言語モデルをスクラッチから学習する場合だけでなくファインチューニングにも当てはまる可能性があるとしている。
  • 著者はこれを形式的な研究ではなく自身の経験として提示しており、バッチサイズ/スループットのトレードオフが収束挙動を左右し得ることを示唆している。

それは「試す」と「学ぶ」の間みたいなものです。

自分のコードでRTX 4050上にRWKV v6モデルを学習してみました。batch_size=2でgradient_accumulation=4(実効バッチサイズ=2*4=8)として、50kステップ以上学習しました。到達したのは50 PPL(RWKV v6、~192.8Mモデル)で、これ以上はどうしても下がりませんでした。lrやtime_decay lr(RWKVのattention置き換え)なども変えましたが、良くなるどころか悪化するか、何も変わりませんでした……そして次に……gradient_accumulationを32に設定してみました。すると、1つの「epoch」(コード内では擬似epochで、=10kステップ)後に40 PPLまで下がりました。次に64に変えて、3 epoch試してみました。するとPPLがびっくりするくらい20 PPLまで落ちました。このモデルは4日間ぶっ通しで学習しました。そういうことを全部やったときだけ、実効バッチサイズが64(そして128)の状態で学習してから約2〜3時間ほどで、あれほど極端なPPLの低下が得られました……

IDKですが、この投稿は低努力かもしれません。でも、学習している人みんなへのアドバイスとしてはまだ自分の意見です……少なくとも、学習データからの生成系LM(そしてファインチューニングにも役に立ちます!)に関しては!

submitted by /u/Lines25
[link] [comments]

広告