模型訓練與微調
ShadowPEFTがHugging Face PEFTのメインラインに導入、分散したLoRA重み差分を層横断状態で置き換え
ShadowPEFTは、タスク適応を凍結済みバックボーンと並行して動作する訓練可能な小型モデルとして構成し、PEFTの標準的な設定・保存・読み込みインターフェースに統合された。初期実験では、同程度のパラメータ数を持つLoRAとDoRAを上回った一方、追加メモリ、二重のKV cache、安定版にまだ含まれていない点がデプロイ上のコストとなる。

Hugging Face PEFTのメインブランチにShadowPEFTが追加され、開発者は既存の`get_peft_model`、`save_pretrained`、`from_pretrained`インターフェースを通じて、LoRAとは異なるパラメータ効率の高いファインチューニング手法を利用できるようになった。LoRAは選択した線形層の横に、互いに独立した低ランクの重み差分を追加する。これに対してShadowPEFTは、小型で事前学習可能なshadow networkを構築し、Transformerの深さ方向に伝播するタスク状態を維持する。
各デコーダー層ではまず、バックボーンの隠れ状態とshadow stateの差分に基づき、低ランクボトルネックを介して凍結済みバックボーンに補正を注入する。バックボーンがその層の計算を完了すると、候補値とゲートを用いてshadow stateを更新する。この双方向の情報フローにより、後段の層は局所的な重み差分だけに依存せず、それまでに蓄積されたタスクシグナルを利用できる。更新は入力依存の計算経路であるため、ShadowPEFTはLoRAのように元の重みにマージできない。また、インクリメンタルデコーディングでは、バックボーンとshadow networkの両方のKV cacheを同時に維持する必要がある。
このsidecar自体が予測ヘッドを備えており、訓練後は`unload_shadow()`で切り離して単独実行できるほか、既存の小型モデルで初期化することも可能だ。これにより、エッジ側で単純なリクエストを先に処理し、複雑なリクエストは大規模バックボーンと組み合わせて推論する設計が可能になる。ただし、同一の小型モデルを条件なしに異なるバックボーン間で再利用できることを意味するわけではない。
著者らはLlama 3.2 3BをMetaMathQAで訓練し、GSM8Kで評価した。その結果、ShadowPEFTは866万の訓練可能パラメータで48.1%のexact-matchを達成し、LoRAの46.9%とDoRAの46.2%を上回った。一方、ピークメモリ使用量は28.2GBに達し、LoRAの22.3GBを上回った。また、この結果が対象とするモデルとデータセットは限定的で、実行環境も単一のA100構成に限られる。エンジニアリングチームは、この機能が現時点ではPEFTの`main`にのみ存在し、ソースからのインストールが必要で、安定版にはまだ含まれていない点にも注意すべきだ。今後注目すべき点は、長いコンテキストにおけるデコーディングコスト、異なるバックボーンとの互換性、そして切り離したshadowが実際のエッジ・クラウドワークロードで品質を維持できるかどうかである。