Closed3
【論文読解めも】DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter
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).
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 つきのsoftmaxによって平滑性を調整した確率分布を用いて、T とする。ただし、推論時はp_{i}=\frac{\exp \left(z_{i} / T\right)}{\sum_{j} \exp \left(z_{j} / T\right)} とし、通常のsoftmaxになるようにする。T=1 -
:Masked Langage Model Loss。L_{mlm} -
:教師モデルと生徒モデルの隠れ層のコサイン距離。最終出力だけでなく、中間出力も訓練に活用している。L_{cos}
このスクラップは2021/01/19にクローズされました