X

[論文読み] SGDでVisionモデルをfinetuneするときは最初の層をfreezeする:HOW TO FINE-TUNE VISION MODELS WITH SGD

ICLR 2024の論文を読んだ。Visionモデルをfinetuneする際にSGDを使って最初の層をfreezeすることで、AdamWと同程度の性能を少ないメモリ消費量で実現できる。
論文:HOW TO FINE-TUNE VISION MODELS WITH SGD (ICLR 2024)

どんなもの?

AdamWとSGDのどちらがfinetuningする際に適した手法かを検証。AdamWの方がコンスタントに良い性能を出す傾向にあるが、詳細に分析することでモデルの入力層に近いembedding層の勾配が大きくなっていることを確認した。embedding layerをfreezeしてfine tuningすることでSGDを使った場合にAdamW

OOD性能についても確認しており、SGD(freeze-embed)で良い性能が出ている。

先行研究と比べてどこがすごい?

AdamWとSGDのどちらをfine tuningに使うべきかという点については、統一的な見解は今まで無かった。各層の勾配を分析することで最初の層がoutlierになっており、そこをfreezeしてfine tuningすることでSGDでも良い性能を出せることを示した。

技術や手法のキモはどこ?

SGDでfine tuningする際は最初の層をfreezeしてから行う。これによりAdamWと同等程度の性能を少ないメモリ消費量で実現可能。GPUメモリ消費量が少なくて済むため、batch sizeを上げることができるため、学習時間の短縮につながる。

また、複数の実験により、SGDが良い場合というのはfine-tuningに使うデータがpretrainingに使ったデータと近い場合だという傾向もみられている。

どうやって有効だと検証した?

5つのデータセットに対して7つのモデルをfine tuningして結果をAdamW, SGD, SGD(freeze-embed), SGD(freeze-embed, no momentum)の学習方法違いで性能を比較。

議論はある?

AdamWではfreeze embedでfine tuneを行ったが通常のAdamWよりも大きな性能向上はなかった。これはおそらく通常のAdamWで十分なためと考えられる。

次に読むべき論文は?

Tim Dettmers, Mike Lewis, Sam Shleifer, and Luke Zettlemoyer. 8-bit optimizers via block-wise quantization. 9th International Conference on Learning Representations, ICLR, 2022

Hiro: