Elasticsearch Machine Learning は、機械学習テクノロジーを使用して Elasticsearch データを分析および予測するツールとフレームワークです。Elasticsearch での自然言語処理(NLP)モデルの適用により、Elasticsearch は、センチメント分析、エンティティ認識、テキスト分類、質問応答などの機械学習機能を備えることができます。これにより、ユーザーの検索エクスペリエンスが向上し、Elasticsearch の使用が容易になります。このトピックでは、Elasticsearch Machine Learning の適用と、Elasticsearch でのテキスト埋め込みモデルの適用について説明します。また、Elastic Eland についても説明します。
背景情報
Elasticsearch は、Lucene ベースの検索エンジンです。全文検索機能と、機械学習などの拡張機能を提供します。Elasticsearch Machine Learning は、主に時系列データに対する異常検知、予測分析、その他の分析を実行するために使用されます。Elasticsearch V8.X では、機械学習機能が継続的に改善され、BERT テクノロジーとの統合や NLP タスクのサポートなど、より多くの機能が提供されています。これらの改善により、センチメント分析、エンティティ認識、テキスト分類、質問応答などのシナリオで Elasticsearch を使用できます。Elasticsearch での NLP モデルの適用は、ユーザーの検索エクスペリエンスを向上させ、Elasticsearch の使用における困難を軽減するのに役立ちます。
Elasticsearch Machine Learning の適用
分析タイプ | 説明 | リファレンス |
Elasticsearch Machine Learning は、主にログファイルや金融トランザクションにおける異常な動作など、時系列データにおける異常な動作を検知するために使用されます。このプロセスでは、教師なし学習が実装されます。Elasticsearch は、統計モデルを使用して、データ内の外れ値や異常なパターンを検知します。 | ||
Elasticsearch Machine Learning は、構造化データの分類と回帰分析を実行するために使用できます。このプロセスでは、教師あり学習が実装されます。教師あり学習モードは、質問が定義され、関連するデータタグが決定されているシナリオに適しています。 | ||
Elasticsearch Machine Learning は、他の NLP および機械学習ツールと統合して、テキスト分類やエンティティ認識などのタスクをサポートできます。BERT モデル構造と WordPiece アルゴリズムを使用する Transformer モデルがサポートされています。 説明 サポートされているフレームワークは、Elasticsearch のバージョンによって異なります。Community エディションのオープンソース Elasticsearch でサポートされているフレームワークが主流です。ほとんどの場合、サポートされているフレームワークに基づいてトレーニングされたモデルは、Elastic Eland を使用して Elasticsearch にデプロイできます。モデルと関連 API 操作に対して実行される互換性テストの結果に基づいて、モデルをデプロイできるかどうかを確認できます。 |
Elasticsearch でのテキスト埋め込みモデルの適用
検索は、Elasticsearch のコア機能の 1 つです。全文検索と分析は、Elasticsearch の基盤となる検索機能に依存します。この機能を活用して、大量のデータから必要な情報を見つけることができます。Elasticsearch は、標準トークナイザー、Ngram トークナイザー、ピンイントークナイザーなど、複数のタイプの組み込みテキストアナライザーとトークナイザーを提供します。テキストアナライザーとトークナイザーは、主にテキストの文字形式に基づいてデータをインデックス化および分析し、セマンティック理解、コンテキスト認識、あいまいさの解消などの機能が不足しています。この問題を解決するために、Alibaba Cloud は Elasticsearch とテキスト埋め込みモデルを組み合わせています。テキスト埋め込みモデルは、コンテキストに基づいてより豊富なセマンティック表現を提供し、セマンティクスにおけるあいまいさを排除し、検索と分析の質を向上させて、より深いセマンティック理解とコンテキスト認識を実現できます。
Alibaba Cloud では、サードパーティのテキスト埋め込みモデルを V7.11 以降 の Elasticsearch クラスタにアップロードし、モデルと Elasticsearch インジェストパイプラインを組み合わせて、インデックス作成前にモデルの機能に基づいてテキスト情報をベクトルデータに変換できます。また、Alibaba Cloud Model Studio などの外部サービスを使用して、Elasticsearch クラスタ外でテキスト情報をベクトルデータに変換し、ベクトルデータを Elasticsearch クラスタに書き込むこともできます。これにより、Elasticsearch クラスタのプリプロセス負荷とリソース消費を削減し、書き込みとクエリの安定したパフォーマンスを向上させることができます。ベンチマークテストとタスクにおけるさまざまなモデルのパフォーマンスは異なります。ビジネス要件に基づいてモデルを選択できます。次の表に、テキスト情報をベクトルデータに変換するために使用できるメソッドを使用するためのリファレンスを示します。
ツール | リファレンス |
Alibaba Cloud Model Studio | |
Elastic Eland |
Elastic Eland の概要
Elastic Eland は、Elasticsearch の Python クライアントです。Elastic Eland は、Hugging Face の Transformer ライブラリの事前トレーニングモデルを TorchScript モデルに変換し、TorchScript モデルをチャンクに分割し、チャンクを Elasticsearch にインポートできる統合ソリューションを提供します。TorchScript モデルは、Python インタープリターがない環境で実行できます。
オープンソース Elasticsearch Platinum エディションとオープンソース Elasticsearch Enterprise エディションのみが、Elastic Eland を使用したモデルのアップロードをサポートしています。Alibaba Cloud は、デフォルトで Platinum エディションの Elasticsearch をサブスクライブしています。Alibaba Cloud Elasticsearch にモデルを直接アップロードできます。Elastic Eland を使用して、オンラインまたはオフラインモードでモデルをアップロードできます。オープンソース Elasticsearch は、Hugging Face モデルを推奨しています。
V7.11 以降の Elasticsearch クラスタは、Elastic Eland をサポートしています。 Elasticsearch のバージョンと Elastic Eland の互換性の詳細については、オープンソース Elasticsearch のドキュメントを参照してください。