1. 概要
Model ZooやHuggingFaceなどで様々なモデルが公開されているが、中には多種多様なスケールを持ったモデル(例えばResnet18/50やDeiT-Ti/S/Bなどがある)が提案されており、どのモデルを手元のデータに適用すればよいのかというのは常にMLエンジニアに付きまとう課題になっている。この研究では、事前学習済みのスケールの異なるネットワークから大量にスケーラビリティの異なるネットワークを生成して、ターゲットのデータに合わせて複雑さやパフォーマンスをフィットさせることで手軽にアプリ開発などができるようにしている。
2. 新規性
スケールの異なる事前学習済みのネットワークに対して、ブロック/レイヤー単位で分割しておき、スティッチングレイヤーを挿入してブロック/レイヤーをつなぐ。ここで、スティッチングレイヤーではつなぐブロック/レイヤーの元の活性化関数をつないだ先のブロック/レイヤーにマッピングするだけの構造になっている。この状態で数エポック学習すると、異なるスケールのネットワークの違いを緩和しながら結合前後の精度をうまく補間してくれるようになっている。
3. 実現方法
実装ではDeiT-Ti/S/Bを使っている。Distilled Vision Transformer(DeiT)は蒸留を用いて軽量化されたトランスフォーマーのモデルで、基本モデル(Base: B)、小モデル(Small: S)、極小モデル(Tiny: Ti)とスケーラブルなモデルが公開されている。スティッチング対象のブロック/レイヤーはランダムサンプリングで選ばれ、結合後の予測値に対してLossが計算され勾配がまかれて重みが更新され学習が進む。また、ランタイム処理の場合はスティッチング位置を切り替えて動的なリソースの制約にも対応できる。
4. 結果
スケールの異なるDeiTに対して、元々のDeit-Ti/S/Bを補間するように柔軟にパラメータサイズを変えながら多種多様なモデルを構築できていることがわかる。
last updates: June 24 2023