BERTモデルを利用した
Elasticsearchによる文書分類
Acroquest Technology 株式会社
Elastic Certified Professional
樋口 慎 @shin0higuchi
Elasticsearch勉強会
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 1
自己紹介
 名前:樋口 慎
 所属:Acroquest Technology株式会社
 業務:Elasticコンサルティング全般、データ分析、システム開発
 資格/執筆:
世界初「Elastic Certification」3種取得
Elasticsearch NEXT STEP 執筆
概要
1. Elasticsearch 8.0.0-beta1の新機能として、
PyTorchのBERTモデルをインポートし利用できるようになった。
当該機能を利用した文書分類について紹介します。
2. 利用環境
① Ubuntu 20.04LTS (WSL2)
② ElasticStack 8.0.0-beta1
③ Python 3.8.11 (Pyenv + Poetry)
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
目次
1. 前提
① やりたいこと(文書分類)
② BERT
③ Elandとは
④ ElasticsearchでBERT利用
– 概要
– 構成図
2. デモ(文書分類)
① BERTモデルの準備/Elandによるモデルのインポート
② 文書分類
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
前提
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
やりたいこと(文書分類)
機械学習モデル
文書群
(例:ニュース記事など)
カテゴリA (スポーツ)
カテゴリB (経済)
カテゴリC (政治)
これを手動でやるのは大変
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
BERTとは
1. Googleによって発表された自然言語処理モデル
2. 言語を事前に学習したモデルが提供されており、色々なタスクに利用できる
(タスク ≒ モデルにやらせたいこと、すなわち文書分類や、質問応答など)
BERT
モデル
タスク用
モデル
(文書分類用)
カテゴリA
カテゴリB
カテゴリC
タスクに合わせたモデルと接続する
→ 転移学習と呼ぶ
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Eland
1. Elasticのpythonライブラリ (https://github.com/elastic/eland)
① ElasticsearchのデータとDataFrameを相互変換する
② 学習済みの機械学習モデルをElasticsearchにアップロードする機能もある
2. Version 8から、PyTorch版BERTモデルを扱えるようになる
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
ElasticsearchでBERT利用(構成図)
BERT
モデル
タスク用
モデル
(文書分類用)
カテゴリA
カテゴリB
カテゴリC
インポート
Elasticsearch
文書取りこみ時に
インポート済み機械学習モデルを呼び出し、
カテゴリフィールド付与などが可能
(Ingest Node の inference processorを利用)
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
デモ
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
まとめ
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
まとめ
1
2
3
v8以降、自然言語処理の強力なモデル "BERT" を
Elasticsearchで利用することができるようになる
BERTを利用することで、文書分類をすることができた
→固有表現抽出や質問応答など、応用の幅も広い!
詳細な手順等は、後日ブログで公開します
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
ご清聴ありがとうございました。
Evolve the Earth with Emotion of Technology
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Appendix
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Elastic ML セットアップ
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Trial License 有効化
1. 「Stack Management」 > 「License Management」と進み、
Trial Licenseを有効化する。(代わりに Platinum License を適用しても問題ない)
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Model Management画面への移動
1. 「Machine Learning」 > 「Model Management」と進む
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
モデル一覧の確認
1. デフォルトでは、 lang_ident_model_1 というモデルのみが登録されている。
① UIからの追加インポートは不可。後述のElandで独自モデルをインポートする。
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
[参考]Elandのセットアップ
1. 注意事項
① 2021/12/08時点での最新 eland では、 PyTorchのモデルをサポートしていないため、
Githubのmainブランチからインストールする。動作は保証されない。
2. elandなどのライブラリをインストール
① poetry add git+https://github.com/elastic/eland@main 
tqdm elasticsearch torch transformers sentence-transformers fugashi ipadic
3. Elasticsearchへの接続確認 (Elasticsearchが起動済みであることが前提)
> import eland as ed
> df = ed.DataFrame("http://user:pass@localhost:9200", es_index_pattern="<index pattern>")
> df
kibana_sample_data_flightsを<index pattern>に指定した時の出力例
Copyright © Acroquest Technology Co., Ltd. All rights reserved.

第45回elasticsearch勉強会 BERTモデルを利用した文書分類