Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Elasticsearchによる質問応答 ~NLP機械学習モデルの利用~

樋口慎
August 31, 2022

Elasticsearchによる質問応答 ~NLP機械学習モデルの利用~

第49回Elasticsearch勉強会での発表スライドです。
Ver. 8.3 でサポートされた、PyTorchモデルを取り込んでの質問応答タスクについて紹介します。

樋口慎

August 31, 2022
Tweet

More Decks by 樋口慎

Other Decks in Technology

Transcript

  1. ElasticsearchにおけるNLPの変遷 Copyright © Acroquest Technology Co., Ltd. All rights reserved.

    教師あり機械学習を サポート開始 (テキスト分類や言語判定等を利用可) Ver 7.6 Ver 7.7 複数クラスの分類に対応 Ver 8.0 PyTorchモデルのインポートが可能に。 Fill-mask・固有表現抽出・テキスト分類・Embeddingなどに対応 Ver 8.3 質問応答(Question-Answering)に対応
  2. ElasticsearchにおけるNLPの変遷 Copyright © Acroquest Technology Co., Ltd. All rights reserved.

    教師あり機械学習を サポート開始 (テキスト分類や言語判定等を利用可) Ver 7.6 Ver 7.7 複数クラスの分類に対応 Ver 8.0 PyTorchモデルのインポートが可能に。 Fill-mask・固有表現抽出・テキスト分類・Embeddingなどに対応 Ver 8.3 質問応答(Question-Answering)に対応
  3. 質問応答のユースケース例(やりたいこと) Copyright © Acroquest Technology Co., Ltd. All rights reserved.

    製品マニュアル等 「ネットに繋がらない」 大量の情報源の中から 特定の情報を探したい 利用者 「印刷時にカタカタという音がすることがありますが、イン ク・紙の走行によるものであり異常ではありません...<略>... インターネットに繋がらない場合は機器背面のボタンを長押 しして再起動をしてください。...<略>...用紙の設定とカ セットに登録した用紙のサイズ、種類が一致していない場合 は、モニタにメッセージが表示されます。」
  4. 質問応答のユースケース例(Elasticsearchによる実現) Copyright © Acroquest Technology Co., Ltd. All rights reserved.

    ②製品マニュアル等 のテキスト Elasticsearch ネットに繋がらない インターネットに繋がらない場合は機器背面 のボタンを長押しして再起動をしてください 学習済みモデル ①質問文 ③ ②から抽出された回答 印刷時にカタカタという音がすることがありま すが、インク・紙の走行によるものであり異常 ではありません...<略>...インターネットに繋が らない場合は機器背面のボタンを長押しして再 起動をしてください。...<略>...用紙の設定とカ セットに登録した用紙のサイズ、種類が一致し ていない場合は、モニタにメッセージが表示さ れます。
  5. Elasticsearchで質問応答モデルを利用するには Copyright © Acroquest Technology Co., Ltd. All rights reserved.

    Kibana Elasticsearch 学習済みモデル ② Elandを利用して、 学習済みモデルを Elasticsearchに登録する ① 質問応答用に学習した モデルを用意する ネットに繋がらない 製品マニュアル等 ③ 情報源となるドキュメント +質問文を投げて回答を得る
  6. 質問応答の実行方法 Copyright © Acroquest Technology Co., Ltd. All rights reserved.

    Kibana 1.Kibana UI上での実行(モデルのテストという扱い) Elasticsearch 2. Inference APIを利用 3.Ingest Nodeを利用 (Inference Processor) ※Simulateもしくは、登録済みPipelineをデータ登録時に呼び出し POST _ml/trained_models/<model_id>/_infer POST /_ingest/pipeline/my-pipeline-id/_simulate
  7. 質問応答用モデルの用意 Copyright © Acroquest Technology Co., Ltd. All rights reserved.

    1. HuggingFaceのTransformersを活用すると良い (https://huggingface.co/models)
  8. サードパーティーでそのまま利用できる質問応答モデルの例 Copyright © Acroquest Technology Co., Ltd. All rights reserved.

    • BERT large model (uncased) whole word masking finetuned on SQuAD • DistilBERT base cased distilled SQuAD • Electra base squad2 • TinyRoBERTa squad2 ※基本的には英語のデータセットで学習しているモデル。 日本語の場合は、同種の日本語モデルを利用する必要あり。
  9. Eland による import Copyright © Acroquest Technology Co., Ltd. All

    rights reserved. • Elandは、HuggingFaceのモデルをデプロイする簡易なスクリプトを提供 eland_import_hub_model --cloud-id <cloud-id> \ -u <username> -p <password> \ --hub-model-id <HuggingFaceのモデルID> \ --task-type <タスク種別> \ ElasticCloudにモデルをデプロイする例
  10. Eland による import Copyright © Acroquest Technology Co., Ltd. All

    rights reserved. • 質問応答のモデルをデプロイする例 eland_import_hub_model --cloud-id xxxx \ -u ml_import_user -p xxxx \ --hub-model-id deepset/tinyroberta-squad2 \ --task-type question_answering \
  11. まとめ Copyright © Acroquest Technology Co., Ltd. All rights reserved.

    Elasticsearch 8.3から、 既存のNLPタスクに加えて質問応答に対応 1 単純な全文検索だけではなく、 機械学習による情報抽出が可能となった 2 製品マニュアル検索以外に、 ナレッジベースやFAQの検索等、幅広く活用可能と思われる 3