# 概要
固有表現抽出モデルの処理速度向上
- ドキュメント管理サービスで、文章内の人名や技術的キーワードを取得するのに使用されている固有表現抽出(NER)モデルのブラッシュアップを行いました。
## 課題1
精度を維持しつつ処理速度を向上すること
## 取組内容
- transformerベースのモデルの調査
精度を確保するため、transformerベースのモデルを重点的に調査。
BERT関連の論文や技術ブログから、モデルの精度やパラメータ数を調べる。
現行で使用されているBERT base よりパラメータ数が少なく、モデルの精度指標の内、NERにタスクの内容が近しいSQuaDの精度が高いモデルをピックアップ。
- 分析環境での簡易検証
選定したモデル(ALBERT, TinyBERT, DistilBERT)を検証する環境をDockerで構築し、NERの処理速度と精度を簡易検証。また、spaCyの枠組みで各種BERTモデルを使用する方法を調査。
- 教師なし事前学習(Masked Language Model)の実施
少しでも精度が向上するよう、MLMの事前学習を実施。公開されている日本語特許データの取得し学習データとして使用、前処理パイプラインの構築、訓練アルゴリズムの実装、実行。
- モデルのサービスへの組み込み
コマンドのオプションで使用モデルが選択できるような形で、Djangoで構築された既存サービスへモデルを組み込みを行う。
予測部分をバッチ処理できるよう改修。
## 課題2
NERモデルの英語ドキュメントへの対応
## 担当内容
- transformerベースのモデルの調査
上記と同様、精度を担保するため、transformerベースのモデルを調査。リリーススケジュールの制限があり、HuggingFaceで公開されているモデルの内、追加学習なしで、サービスの要件に適したNERを行えるモデルを選定。
- 分析環境での簡易検証
精度の検証:特に技術的キーワードが抽出できるかを簡易検証。
- モデルのサービスへの組み込み
上記同様、現行のサービスに組み込み、対象ドキュメントが英語かどうかを判定し、使用モデルが自動選択されるようアルゴリズムを改修。
出力される人名とキーワードを紐付ける後処理ロジックを実装。
# 結果
NERの処理時間を4割削減できるモデルをサービスに組み込む。
英語ドキュメントへの対応。
# チーム
PM 1名
SE兼PG 4名
DS 1名
担当 DS
# 環境
Docker, AWS, Jupyter, Colabratory