AI・機械学習
中級
DistilBERT(蒸留BERT)(ディスティルバート)
HuggingFaceが2019年に提案したBERTの知識蒸留版。BERTの層数を6層(原型12層の半数)に削減しながら97%のNLP性能を維持、推論速度60%向上・モデルサイズ40%削減を達成した代表的蒸留モデル。
0 回閲覧
0 いいね
2026/6/6 更新
関連タグ
DistilBERT
BERT蒸留
HuggingFace
NLPモデル圧縮
Transformer
DistilBERT とは
DistilBERT(2019)はHugging FaceのVictor Sanh等が発表したBERTの知識蒸留版。「大型Transformerモデルを実用的なサイズに圧縮できる」ことを示した先駆的成果として、NLP研究・実応用の両面で大きな影響を与えた。
アーキテクチャと削減内容
| 比較項目 | BERT-base | DistilBERT | 削減率 |
|---|---|---|---|
| Transformerレイヤー数 | 12層 | 6層 | 50%削減 |
| パラメータ数 | 110M | 66M | 40%削減 |
| 推論速度 | 基準 | 60%高速 | 1.6倍 |
| GLUEスコア(平均) | 100% | 97% | 3%損失 |
| モデルサイズ | 440MB | 265MB | 40%削減 |
訓練の3要素損失関数
DistilBERTは3種類の損失を組み合わせて訓練される:
- 蒸留損失: 教師BERTのソフトラベルとのKLダイバージェンス(温度T=4)
- コサイン埋め込み損失: 生徒の隠れ状態が教師の対応する層と同方向を向くよう学習
- MLM損失: 通常のBERT訓練と同じMasked LMタスクの損失
層の初期化戦略
教師の12層を2層おきに取り(2・4・6・8・10・12層目)生徒の6層を初期化。ランダム初期化より大幅に収束が速く最終性能も向上する。
主なタスク別性能
| タスク | BERT-base | DistilBERT | 差異 |
|---|---|---|---|
| SST-2(感情分析) | 93.5 | 91.3 | -2.2 |
| SQuAD v1.1(QA) | 88.5/81.2 | 85.8/79.1 | -2.7/-2.1 |
| MNLI(推論) | 84.6 | 82.2 | -2.4 |
DistilBERT以降の発展
- TinyBERT(2019, Huawei): 4層・14.5Mパラメータ、中間層蒸留を強化
- MobileBERT(2020, Google): ボトルネック構造で4.3Mパラメータ
- DistilRoBERTa: DistilBERT手法をRoBERTaに適用
活用ケース
- エッジデバイス: Raspberry Pi・スマートスピーカーでのオフラインNLP
- リアルタイム処理: チャットbotの応答速度改善
- 大量バッチ処理: コスト削減を優先する企業ユースケース