# ExDistilBERT：辞書拡張できる モデル蒸留によるドメインに特化した言語モデル

高 鵬挙 ${ }^{1}$ 山崎 智弘 $^{1}$ 伊藤 雅弘 $^{1}$
1 株式会社東芝 研究開発センター
知能化システム研究所 アナリティクスA I ラボラトリー
\{pengju1.gao, tomohiro2.yamasaki, masahiro20.ito\}@toshiba.co.jp

## 概要

本論文は小規模コーパスでもドメインに特化でき る ExDistilBERTを提案する。蒸留手法において，独自の手法で専門用語を辞書氾追加し, 一般用語と専門用語を独立して計算可能な損失関数を導入し，二種類の語彙や文脈知識を同時に学習できる。

蒸留手法で課題となっている過学習氾る知識忘却の問題を回避できることを実験により確認し，特殊ドメインにおいて, ExDistilBERT は教師モデルの 性能を大幅に超えるだけでなく，軽量化もできた。

## 1 はじめに

近年，大規模コーパスを用いて学習された大規模言語モデルが注目を集めている。

BERT[1]を代表として，自然言語処理 (NLP) 領域 での様々なタスクで，良い性能を達成している。汎化性能が高いと Fine-tuning の訓練コストが低くで きる一方、BERT は Base サイズモデルでも一億を 超えるパラメータを持つため，それを実装するため には膨大な計算リソースが必要である. 様々な場面 で応用するため，モデルの軽量化が要求される。さ らに小規模コーパスで Fine-tuningする場合, 事前学習した知識を忘れて，過学習しやすいことも課題に なる。

金融，インフラ，法律，化学などの様々な分野で は，一般文書にはない専門用語が大量に含まれてい る. 一般文書を使って学習した言語モデルをそれら の分野に応用する場合, 未知語として扱うことや，既知の短い単語の組み合わせに分割することが多 い. 日本語では, 後者の場合が多く, 長い専門用語 がより小さい断片に分割されて，元の意味を保持で きなくなることや，分割によって処理量が増えるな どの恐れがある.
モデル軽量化において，よく使われている手法には知識蒸留 (Knowledge Distillation)[2], 枝刈り (Pruning), 量子化 (Quantization) など [3] が存在する が，元モデルの性能を超えることができない，そ こで我々は, モデル蒸留手法纪辞書拡張機能を 追加し, 教師モデルの知識を学習すると同時に, スムーズに新たな単語を追加することができる ExDistilBERTを提案する. すなわちモデル軽量化と 特殊ドメインへの適応性を両立できる。

結果として, ExDistilBERT は特殊ドメインの性能 が教師モデルより向上することを示す. 同時に，学習速度や推論時間も改善し, 過学習問題も回避でき ることを示す。

## 2 関連研究

本節は本研究と関連性の強い事前学習言語モデ ル, モデル蒸留, 辞書抎張の研究について説明する. BERT[1] は, Transformer[4] ユニットによって構成 される. BERT は Masked Language Model (MLM) と Next Sentence Prediction(NSP) を使って，大規模コー パス用いた教師なしの事前学習法として提案され， NLP の様々なタスクにおいて小規模な教師データ を用いた Fine-tuning によって，非常に良い性能を示 した.

モデル軽量化においてょく使われる知識蒸留 (Knowledge Distillation)[2] では学生モデルが教師 モデルの出力分布を近似するよう学習させる。 NLP 領域では，蒸留手法を用いた軽量版 BERT の DistilBERT[5] がよく使われている. 新納 [6] らは DistilBERTを用いて，ドメインに特化したモデルを 構築したが, Fine-tuning しないと, 教師モデルを超 える性能を取得することが難しいことがわかった。自然言語処理技術を特殊ドメインで活用する ニーズの高まりから，様々な分野に特化した言語モ

デルの研究がある. 英語において, 生物ドメイン のコーパスを使って，特化した BERTを訓練した BioBERT[7], 科学文章から専門用語を抽出し, 科学 ドメインに特化した SciBERT[8], 生物医学に関する データベース PubMed を使って, 生物医学ドメイン に特化した PubMedBERT[9] などが存在する. 日本語においても, 医学分野 [10], 金融分野 [11], 法律分野 [12] などでドメインに特化した BERT が汎用日本語 BERT を超える性能を示した. ただし， ゼロか ら BERTを事前学習するには，大規模コーパスと計算リソースが必要となる. さらにより特化したドメ インにに合致する，大規模コーパスを用意できない 問題も存在する.

## 3 提案手法

本研究では，辞書拡張できるモデル蒸留の手法 ExDistilBERT を提案し，モデルを軽量化すると同時 に，事前に大規模コーパスで訓練した汎用モデルで 課題となっていた特殊ドメインの適応性を解決す る. 提案手法は, 大規模汎用モデルを追加学習し,辞書拡張する従来手法と比べて，小規模コーパスを 用いた条件で，過学習の恐れを低減することを確認 する。

本論文は追加した単語を新単語と呼ぶ，教師 モデル辞書に含んでいる単語を一般用語と呼ぶ。 ExDistilBERT の概念図を図 1 に示す. 新単語と一般用語を分けて, エンベディングや損失関数など処理 を行うことで，新単語の知識と教師モデルの知識を 同時に学習できる.

## 3.1 エンベディングと単語マスク

図 1 の token embedding において, 拡張した辞書 で，センテンスを分割し，単語をエンベディング する.

一般的にモデル蒸留は教師モデルと学生モデルの 辞書を同じものにする必要があるが，辞書拡張のた め, 教師モデルに入力不可の新単語が存在する. 図 1 の token masking において, 教師モデルと学生モデ ルに対する，新単語と一般用語を分けて，特殊なマ スク手段を設計した。

## 新単語のマスク

・教師モデルの辞書には新単語が含んでいないた め，全部マスクして，モデルに入力する.

・学生モデルの辞書には新単語が含んでいるた め，確率 $P(0<P \leqq 1)$ でマスクされる $P=1$ の時, 学生モデルの大力も新単語が全部マ スクされるため，教師モデルの入力と同じになる. もし追加した単語の数が非常に多い場合, $P$ で学生 モデルの入力にマスクされた単語の比率を制御でき る. 新単語の範囲情報 $\mathbf{M}_{\text {newtoken }}$ はマスクベクター の形で損失関数の計算を利用する.

一般用語のマスク 新単語以外の部分において, BERT の MLM タスクと同じく, ランダムで単語の マスクと入れ替えを行う．入り替えの単語は教師モ デルの辞書からピックアップしたものである.

## 3.2 損失関数計算

本節は新単語と一般用語を分けて，損失関数を計算する仕組みを説明する。

図 1 の右半分，二つの入力を教師モデル $(\mathrm{t})$ と学生モデル (s) に入力し, 最後レイヤの隠れ状態べク ター Hidden state, $H_{t, s}$ と単語予測の Logits, $L_{t, s}$ を 取得する. 教師モデルの知識を学習するため, 一般用語の範囲 (selected position) だけに類似度などを計算する。範囲を設定は以下の式 1,2 で行っている.

$
\begin{aligned}
H_{t, s}^{\prime} & =\left.\{H_{t, s}(i) \mid \mathbf{M}_{\text {newtoken }}(i)=0\right.\} \\
L_{t, s}^{\prime} & =\left.\{L_{t, s}(i) \mid \mathbf{M}_{\text {newtoken }}(i)=0\right.\}
\end{aligned}
$

以下の三つの尺度, Cosine 類似度, 式 3 ; カル バック・ライブラー情報量, 式 4 ; MSE 損失 (Mean squared error), 式 5, を用いて，損失関数を計算し，教師モデルの知識を学習させる.

$
\begin{gathered}
\mathscr{L}_{\text {Cosine }}\left(H_{t}^{\prime}, H_{s}^{\prime}\right)=\frac{H_{t}^{\prime} \cdot H_{s}^{\prime}}{\left.\|H_{s}^{\prime}\right.\|\left.\|H_{t}^{\prime}\right.\|} \\
\mathscr{L}_{\mathrm{KL}}\left(L_{t}^{\prime}, L_{s}^{\prime}\right)=\sum_{i} L_{t}^{\prime}(i) \log \frac{L_{t}^{\prime}(i)}{L_{s}^{\prime}(i)} \\
\mathscr{L}_{M S E}\left(L_{t}^{\prime}, L_{s}^{\prime}\right)=\frac{1}{n} \sum_{i=1}^{n}\left(L_{t}^{\prime}(i)-L_{s}^{\prime}(i)\right)^{2}
\end{gathered}
$

次は, BERT と同じく, 学生モデルの Logits $L_{s}$ とラベル $L_{\text {label }}$ を用いて，マスクされた単語を推測 する損失関数 $\mathscr{L}_{M L M}$ を計算する。

最終的な損失関数は，式 6 で以上の各損失の重み 付き和を計算することで取得する。

$
\begin{array}{r}
\mathscr{L}_{\text {final }}=\alpha \mathscr{L}_{\text {Cosine }}+\beta \mathscr{L}_{\mathrm{KL}}+\gamma \mathscr{L}_{M S E}+\delta \mathscr{L}_{M L M}, \\
\quad \text { where } \alpha, \beta, \gamma \geq 0,(\alpha, \beta, \gamma) \neq(0,0,0), \delta>0
\end{array}
$

このような仕組みで，一般用語を学習する同時 に, 専門用語の知識を学習ことで, ドメインに特化 した言語モデルを構築する。

図 1 ExDistilBERT の概念図

表 1 新単語長さ分布と単語例 (新単語数 2000 の場合)長さ 数 単語例

2368 本件, 客様, 発送, 本日, 切替, 用紙, 客先, 取替,取付, 異音, 送出, 新品

3681 不具合, 不適合, 可能性, 再起動, 本事象, 再現性, 設定値, 一時的, 確認後

4648 機体交換, 動作確認, 客様対応, 長期使用, 動作不良, 自動停止, 不具合品

5+ 314 添付ファイル, 不具合現象, 作業管理者, 事象発生時, 点検・修理, 調査結果報告

## 4 評価実験

本節は本研究のデータ設定, 実験設定と結果につ いて説明する.

## 4.1 学習データと評価データ

モデル蒸留と辞書拡張コーパスは東芝社内のイン フラドメインのテキスト文書データ (約 170 万文)を 用いた. 追加した単語の自動抽出は専門用語自動抽出システム [13][14] を使用した. 教師モデルに存在 せずかつ出現頻度高いの単語をピックアップした.新単語長さ分布と単語例は表 1 で示す.

イベント抽出データセットとして長文主体の文書 Data $_{A}$ と短文主体の文書 Data $_{B}$ の 2 種類を用意 して，蒸留したモデルのエンベディング能力を評価 する．イベント抽出タスクは，ドキュメント文書か ら，「配管に亀裂」や「水位が低下」のように原因や 結果となりうる表現を抽出するタスクである. トラ ブル表現を正確に抽出するには，インフラドメイン の文脈を理解することができる言語モデルを構築す ることが重要と考えられる．データセットのセンテ ンス長さと規模を表 2 で示す. 抽出性能は完全一致表 2 データセットのセンテンス長さと規模

表 3 各モデルハイパーパラメータ設定

の $\mathrm{F}$ 值と主要部一致 (イベント末尾 5 形態素のいず れかが重複する [15]) の F 值で評価している。

## 4.2 実験設定

本論文のモデル学習設定について説明する. 本研究のベースラインモデルと ExDistilBERT の教師 モデルは，東北大学乾・鈴木研究室によって作成・公開された BERT モデル bert-base-japanese-v2[16] を使っている. 追加した単語の数は 2000 個であ り, HuggingFace's Transformers[17] の上に, PyTorch の実装を構築した. 従来の手法と比較するため， ExDistilBERT と同じコーパスを用いて，BERT モデ ルから蒸留したBERT_distillation, 同じ辞書で拡張 した BERT_addtoken のモデルも学習した. 各モデル のハイパーパラメータ設定は表 3 に示す.

訓練環境はRTX6000一枚で行う. ExDistilBERTと BERT_distillation において, $\alpha=3, \beta=1, \gamma=0.2, \delta=1$ の設定をした.

## 4.3 評価結果

MLM タスク可視化, 単語エンベディング能力,計算リソースにおいて，評価を行った.
表 4 MLM タスク出力の可視化 (推測された単語 Top5)

表 5 イベント抽出タスクにおいて，モデル評価結果

 & .599 & .859 & .619 & .868 \\
DistilBERT_Namco[19] & .528 & .758 & .580 & .820 \\

## 4.3.1 Masked Language Model(MLM) の可視化

ベースライン BERT モデルと比べて ExDistilBERT がドメインに特化した文脈理解能力を獲得してい るかを確認するため，MLM タスクの出力を可視化した. [MASK] トークンの推測結果として得ら れた Top5 の単語を表 4 に示す. 表 4 に示す通り， DistilBERT の方が動作確認や納期や試験といったイ ンフラドメインでよく使われる専門用語を優先的に 推測できた.

## 4.3.2単語のエンベディング性能評価

本節では，単語エンベディングの性能評価を提案手法と既存手法で比較する. 4.2 節説明したべース ライン BERT モデル, ExDistilBERT, BERT_distillation と BERT_addtoken を含めて，既存の汎用蒸留モデル の DistilBERT_Laboro[18] と DistilBERT_Namco[19] も 追加し評価を行った. 評価した結果は表 5 で示す. ベースライン BERT や単純なモデル蒸留手法 BERT_distillationと比べて，辞書拡張した ExDistilBERT と BERT_addtoken, Data CD Data $_{B}$ において 性能向上した. 専門用語の拡張効果が確認できた. Data $_{A}$ において ExDistilBERT は BERT_addtoken の 性能を超えて，ベースライン BERT より完全一致の $\mathrm{F}$ 值 5 ポイント以上を向上した. BERT 丸ごとで学習して辞書拡張のは，パラメータ数が大規模であ る. 相対的に小さい規模のコーパスで追加学習する とき，過学習して，元の知識を忘れてしまい，性能表 6 各モデルの学習時間, 推論時間とパラメータ数

モデル学習時間 推論時間 パラメータ数

劣化の恐れがあることから，学習ハイパーパラメー タの最適化という課題を残っている. Data にお いて，ExDistilBERT は BERT_addtoken を超えていな い. 短い文に対して，性能劣化の影響が少ないと推測された. BERT_distillation はできるだけベースラ インの BERT に近づくのが学習目標となっており, ベースライン BERT と大体同じレベル性能を取得し た. 二つ公開された DistilBERT は，性能劣化の恐れ がある. 両者は今回のインフラドメインのコーパス ではなく，一般的な日本語コーパスでモデル蒸留し たもので，教師モデルからの知識勉強が不足の可能性が高いと推測された。

## 4.3.3計算リソース

4.2 節のモデル学習時間と評価実験において 推論時間，パラメータ数を表 6 に示す. ExDistilBERT について，学習時間は従来の蒸留手法 BERT_addtokenと同じレベルであるが，BERTを辞書拡張 BERT_addtoken より 4 倍の学習速度になっ た. 推論時間も BERT_addtokenより約 $23 \%$ 减少し た. パラメータ数は BERT_addtoken より約 $37 \%$ 減少 した. ExDistilBERT の方が計算リソースの観点から も優れていることが確認できた。

## 5 おわりに

本論文は小規模コーパスでもドメインに特化する ExDistilBERT を提案した. 辞書拡張できるモデル蒸留の手法より，一般用語の知識はモデル蒸留によっ て教師モデルから継承すると同時に、専門用語に対 して知識を学習できた。特殊ドメインの性能が教師 モデルと比べて大幅に向上した. 小規模コーパスで BERT を追加学習する場合，元の知識を失う過学習 の問題も回避できて，BERT の追加学習より安定の 学習結果を得ることができた。

## 参考文献

[1] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805, 2018.

[2] Geoffrey Hinton, Oriol Vinyals, Jeff Dean, et al. Distilling the knowledge in a neural network. arXiv preprint arXiv:1503.02531, Vol. 2, No. 7, 2015.

[3] 康平山本, 素子橘, 蔵人前野. ディープラーニングの モデル軽量化技術. Oki テクニカルレビュー, Vol. 86, No. 1, pp. 24-27, 052019.

[4] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. Attention is all you need. Advances in neural information processing systems, Vol. 30, 2017.

[5] Victor Sanh, L Debut, J Chaumond, and T Wolf. Distilbert, a distilled version of bert: Smaller, faster, cheaper and lighter. arxiv 2019. arXiv preprint arXiv:1910.01108, 2019.

[6] 新納浩幸, 白静, 曹鋭, 馬ブン. Fine-tuning による領域に特化した distilbert モデルの構築. 人工知能学会全国大会論文集第 34 回 (2020), pp. 1E3GS9021E3GS902. 一般社団法人 人工知能学会, 2020

[7] Jinhyuk Lee, Wonjin Yoon, Sungdong Kim, Donghyeon Kim, Sunkyu Kim, Chan Ho So, and Jaewoo Kang. Biobert: a pre-trained biomedical language representation model for biomedical text mining. Bioinformatics, Vol. 36, No. 4, pp. 1234-1240, 2020.

[8] Iz Beltagy, Kyle Lo, and Arman Cohan. Scibert: A pretrained language model for scientific text. arXiv preprint arXiv:1903.10676, 2019.

[9] Yu Gu, Robert Tinn, Hao Cheng, Michael Lucas, Naoto Usuyama, Xiaodong Liu, Tristan Naumann, Jianfeng Gao, and Hoifung Poon. Domain-specific language model pretraining for biomedical natural language processing. ACM Transactions on Computing for Healthcare (HEALTH), Vol. 3, No. 1, pp. 1-23, 2021.

[10] Yoshimasa Kawazoe, Daisaku Shibata, Emiko Shinohara, Eiji Aramaki, and Kazuhiko Ohe. A clinical specific bert developed using a huge japanese clinical text corpus. Plos one, Vol. 16, No. 11, p. e0259763, 2021.

[11] 鈴木雅弘, 坂地泰紀, 平野正徳, 和泉潔. 金融文書を 用いた事前学習言語モデルの構築と検証. 人工知能学会第二種研究会資料, Vol. 2021, No. FIN-027, p. 05, 2021.

[12] 宮崎桂輔, 菅原祐太, 山田寛章, 徳永健伸. 日本語法律分野文書に特化した bert の構築. 第 28 回年次大会発表論文集 (2022 年 3 月), 2022.

[13] 専門用語自動抽出システム (配布). http://www. forest.eis.ynu.ac.jp/Forest/ja/ term-extraction.html.

[14] 中川裕志, 湯本紘彰, 森辰則. 出現頻度と連接頻度に 基づく専門用語抽出. 自然言語処理, Vol. 10, No. 1, pp. 27-45, 2003.

[15] 伊藤雅弘, 山崎智弘. アノテーション漏れ推定を用い たエンティティ抽出. 第 27 回年次大会 発表論文集
(2021 年 3 月), 2021.

[16] Tohoku NLP Group. Pretrained japanese bert models. https://github.com/cl-tohoku/bert-japanese.

[17] Hugging Face team. State-of-the-art machine learning for pytorch, tensorflow, and jax. https://github.com/ huggingface/transformers.

[18] 株 式 会 社 Laboro.AI. Laboro distilbert. https://laboro.ai/activity/column/engineer/ laboro-distilbert.

[19] バンダイナムコ研究所技術開発本部. Wikipedia 日本語版全文を学習した distilbert モデ ル. https://github.com/BandaiNamcoResearchInc/ DistilBERT-base-jp.
 高 鵬挙 ${ }^{1}$ 山崎 智弘 $^{1}$ 伊藤 雅弘 $^{1}$ 1 株式会社東芝 研究開発センター 知能化システム研究所 アナリティクスA I ラボラトリー \{pengju1.gao, tomohiro2.yamasaki, masahiro20.ito\}@toshiba.co.jp  