約2分

蒸留:大きなモデルの振る舞いを小さなモデルへ移す学習

蒸留は、大きなAIモデルの振る舞いを小さなモデルへ引き継いで、軽く使いやすい形へ縮める学習手法です。

ベテラン社員の仕事ぶりを見本にして、少人数で回せるチームへ要点を引き継ぐ。蒸留は、高性能だけれど重い大きなモデルの答え方を、小さくて速いモデルに学ばせる方法です。

大きなモデルを先生役、小さなモデルを生徒役にして、先生の振る舞いを生徒へ移します。目指すのは、大きなモデルをそのまま複製することではありません。用途に必要な能力を、小さなモデルで再現することです。

応答を速くしたい、推論の費用を下げたい、軽いサーバーや端末の上でも動かしたい。大きなモデルの品質をある程度保ったまま、運用の費用を抑えたいときに選ばれます。

既存のモデルを自社の用途へ寄せるファインチューニングが性格や得意分野を調整する作業だとすると、蒸留は性能の要点を残しながら軽くする作業です。同じく軽くする手段である量子化との違いは、量子化の記事で比べています。

何を残して何を捨てるか

小さくすれば、どこかで差は出ます。難しい仕事や長い文脈では、先生との品質の差が表れやすくなります。

だから始める前に、業務の上で最低限これだけは満たしてほしい、という品質の線を決めておきます。何を残して何を捨てるかを決めないまま進めると、ただ精度が落ちただけの小さなモデルになりがちです。軽くはなったけれど使えない、という結果を避けるために、速度、GPU の費用、品質を同じ条件で比べ、蒸留したあとも評価を回して、その線を超えているかを確かめます。