Amazon Web Services ブログ
Amazon OpenSearch Service による検索ワークショップ(日本語版)のご紹介
Amazon OpenSearch Service は、オープンソースの全文検索エンジン OpenSearch および可視化・分析ツールの OpenSearch Dashboards を、安全かつスケーラブルな形で提供するマネージドサービスです。
この度、日本語で検索技術について学べる Amazon OpenSearch Service のハンズオンコンテンツ「Amazon OpenSearch Service 検索ワークショップ」を公開したことをお知らせいたします。
ワークショップの概要
検索ワークショップは、OpenSearch の基本から最新の検索機能まで、段階的に学習することが可能なコンテンツです。Jupyter Notebook 形式で提供される「ラボ」を実行していくことで、OpenSearch を使用した検索機能の使い方を無理なく身に付けることができます。
日本語にフォーカスしたワークショップであることも大きなポイントです。ラボのコンテンツは日本語の特性を考慮した内容になっており、使用するデータや ML モデルも全て日本語に対応しています。
ワークショップに必要な AWS リソースは AWS CloudFormation を利用して素早く展開することが可能です。
ラボの紹介
ワークショップ内に現在実装されているラボは以下の通りです。ラボは随時追加、アップデートを行っていきます。
事前にラボの詳しい内容を確認したい場合は、「JupyterLab のセットアップ」ページ内の 「ワークショップアセットのダウンロードと展開」セクションに記載された URL を参考に、ノートブックのアーカイブファイルをローカル環境にダウンロードしてください。ローカル環境上の JupyterLab や Visual Studio Code といった .ipynb ファイルに対応したツールより、実行コードも含めたワークショップの内容をご確認いただけます。
OpenSearch の基本概念・検索の基礎
OpenSearch をはじめとした検索エンジンに初めて触れる方をターゲットとしたラボです。リレーショナルデータベースと検索エンジンとの違いを知りたい方にも最適です。本ラボでは、検索エンジン固有の概念の解説に始まり、データの管理方法や基本的な検索クエリを網羅的に試すことができます。本ラボで獲得したスキルは、システムにおける検索エンジンの採用要否の判断、使用するクエリの選定に役立ちます。
日本語全文検索の実装
日本語テキストの全文検索の実装を検討されている方、精度改善を検討されている方をターゲットとしたラボです。本ラボでは、表記ゆれといった日本語検索固有の課題を解消するための OpenSearch の機能や、日本語の形態素解析器である Kuromoji および Sudachi の利用方法を解説しています。本ラボで獲得したスキルは、日本語検索のチューニングに役立てることができます。
サジェスト機能の実装
サジェストは、ユーザーが検索窓に入力した文字列を元に適切なクエリの候補を返却する機能です。オートコンプリートなどとも呼ばれており、ユーザー体験向上や、ゼロ件ヒット削減に役立ちます。本ラボでは、日本の住所サンプルデータを使用し、プレフィクスベースのサジェスト機能を実装していきます。またサジェストを実装する上で、日本語固有の考慮事項についてもフォローしています。本ラボで獲得したスキルは、サジェストの実装に役立てることができます。
AI-powered search
本ラボは、従来型の全文検索では対応が難しい曖昧な文章による意味的検索や、文書の類似検索といった高度な検索要件を実現する手がかりを探している方をターゲットとしています。また、ベクトル検索などの最新の検索技術に興味がある方にも適しています。ベクトル検索をはじめとした機械学習モデルと連携した検索機能の実装方法を、手を動かしながら学習することができます。このラボは、以下のサブモジュールから構成されています。
ベクトル検索
ベクトル検索は、ある意味的に類似性のあるアイテムを検索する際に有用です。「暖かい服」で検索して 「セーター」の結果を得たいようなケースで役に立ちます。また、テキストだけではなく、画像や音声といった非構造データも扱うことが可能です。本モジュールでは、従来の全文検索では解決できない課題を、ベクトル検索を使って解決することを通してベクトル検索の有用性を確認していきます。また、OpenSearch のコネクタと呼ばれる機能についても学習します。コネクタを使用することで、テキストベースのクエリを機械学習モデルと連携してベクトルベースのクエリに変換し検索を行う、ニューラル検索を実装することができます。類似検索の実装方法を知りたい方にとって有用です。
スパース検索
スパース検索は、スパースエンコーディングモデル (単語の出現頻度に基づく疎なベクトル表現を生成するモデル) を活用した検索です。従来のベクトル検索と比較して、少ないリソースで類似検索を実装することができます。本ラボでは日本語に対応した SPLADE モデル (Sparse Lexical and Expansion Model) を用いて、ベクトル検索とは異なるアプローチで類似検索を実装していきます。ベクトル検索に加えて、異なる選択肢も検討したい方にお勧めです。
ハイブリッド検索
ハイブリッド検索は、複数の検索クエリの結果を組み合わせて、より精度の高い検索結果を提供するための機能です。テキスト検索・ベクトル検索のどちらが精度が出るかは対象のデータだけでなく、検索クエリにも依存します。ハイブリッド検索でベクトル検索と全文検索の組み合わせ検索を行うことで、様々な検索クエリに対して適切な結果を返すことが可能となります。本ラボでは、OpenSearch のハイブリッド検索機能を実際に試すことができます。ハイブリッド検索の実装を検討されている方にお勧めです。
リランキング
リランキングは、一段階目の検索結果に対して、特定のロジックに基づき並べ替えを行うアプローチです。本ラボでは、ドキュメントとクエリ間の類似度を計算するクロスエンコーダーモデルを使用した、意味的類似度に基づくリランキングの実装方法を学ぶことができます。モデルによるリランキングの効果を確かめたい方にお勧めです。
ワークショップの開始方法
本ワークショップは AWS がホストするイベントでの提供の他、ご自身の AWS アカウントを利用して実行することもできます。AWS CloudFormation 用のテンプレートを使用することで、ワークショップに必要な以下のリソース群を素早く作成し、ラボを開始することができます。
詳しい始め方については、ワークショップ内の準備作業をご確認ください。
ご自身の AWS アカウントでワークショップを実行する場合、デプロイされたリソースに応じて料金が発生します。不要な料金発生を抑制するために、必ずワークショップ終了後はクリーンアップ手順に沿ってワークショップリソースの削除を行ってください。
まとめ
OpenSearch は柔軟性の高い強力な検索エンジンです。基本的なテキスト検索から最新のベクトル検索、ハイブリッド検索まで幅広い検索機能を提供しています。ワークショップを通して、OpenSearch の可能性を探ってみてください。
Amazon OpenSearch Service について更に詳しく知りたい方は、Amazon OpenSearch Service 開発者ガイドおよび AWS Black Belt 資料をご覧ください。
ソリューションアーキテクト 榎本 貴之 (X: @tkykenmt)