Closed3

【論文読解めも】DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter

takoroytakoroy

DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter

DistilBERTは、蒸留によって軽量化した言語モデル。

Sanh, Victor, et al. "DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter." arXiv preprint arXiv:1910.01108 (2019).

https://arxiv.org/abs/1910.01108

takoroytakoroy

DistilBERT

Distil BERTで使う生徒モデルは、BERTをベースとして、内部で使われる次元数はそのままに、レイヤー数を半分にしている。また、token-type embeddingとpoolerは削除されている。

  • 🤔token-type embeddingってなんだっけ?

    • hugginggace/transformersのドキュメントによると、BERTで使われていたSegment Embeddingsのこと。これによって、入力となる埋め込み表現は、Token EmbeddingsとPosition Embeddingsのみになる。
  • 🤔poolerってなんだっけ?

    • [CLS]トークンの位置にある隠れ層。DistilBERTの訓練にはNext Scentence Predictionが含まれないので、不要ということだろう。特定のタスクのためのファインチューニングでは使うはず。

生徒モデルの半分のレイヤーは、元のBERTのレイヤーのパラメータをコピーすることで初期化する。

訓練に使用する損失は3つの線形結合で表される。

  • L_{ce}:蒸留の損失。L_{c e}=\sum_{i} t_{i} * \log \left(s_{i}\right)で表され、t_iは教師モデルの出力を表す。t_i, s_iは温度パラメータTつきのsoftmaxによって平滑性を調整した確率分布を用いて、p_{i}=\frac{\exp \left(z_{i} / T\right)}{\sum_{j} \exp \left(z_{j} / T\right)}とする。ただし、推論時はT=1とし、通常のsoftmaxになるようにする。
  • L_{mlm}:Masked Langage Model Loss。
  • L_{cos}:教師モデルと生徒モデルの隠れ層のコサイン距離。最終出力だけでなく、中間出力も訓練に活用している。
このスクラップは2021/01/19にクローズされました