Azure

Azure Cognitive Searchの入門ドキュメントを読んでみた話

更新日:

Azure Congnitive Searchの入門ドキュメントを読んでみた。この界隈の技術は基本的には一次情報をあたるべきかと思う。今回もAzure公式の入門者向けのドキュメントを読んでざっくり要約しながら理解を増やしていく。

Cognitive

Cognitiveを英英辞典で引くと以下。例えば、cognitive psychology/認知心理学、cognitive style/認識方式、みたいな使い方をする。情報科学における「XXX認識」は機械知能の文脈で要素技術が脈々と研究・実用化されている認識。そのうちテキストをインターフェースとする検索を行うためにデータに意味付けをする様を「Cognitive」に当てているような気がする。

related to the process of knowing, understanding, and learning something.

What’s Azure Cognitive Search?

What’s Azure Cognitive Search?

Webや端末やエンプラ向けソリューションにある不均質なデータを検索できるようにするサービス。テキストベースでユーザにソリューションを提供するといったときのシナリオがまとめられている。

– ユーザが所有するテキストに対する全文検索、ベクトル検索
– データからテキストを抽出するための字句(lexical)解析?、変換
– ベクトル検索用クエリ、テキスト検索、全文一致検索、自動補完、曖昧検索など
– Azure SDK API等による実装環境の提供
– Azureのデータ層、ML層との統合

簡単なアーキ図が乗っている。認識するということは意味を付与することだからか、indexed、un-indexedという分詞が当てれている。こんな感じで認識されていないデータを認識してクライアントアプリに提供する仕組み。アプリはAPIを使ってシナリオを実現する。Azureプラットフォームの一部なので、他のAI系ソリューションの組み合わせるのも容易。

Inside a search service

検索サービスの中で、indexing と querying が2大機能。

indexing

要は認識されていない塊を検索できるようにする機能。内部的には、テキストはトークナイズされた後inverted indexesをストアする。ベクトルデータはvector indexesをストアする。外部からJSONを直アップロードするか、indexerを使ってカスタムデータをJSONへシリアライズする。様々なデータをindexingするためにskillという粒度で機能が用意されていて、skillを使ってデータに情報付与(enrichment)したりする。

querying

Querying can happen once an index is populated with searchable text, when your client app sends query requests to a search service and handles responses. All query execution is over a search index that you control.(もうちょっと簡潔に書けないのか..)

Why use Cognitive Search?

Cognitive Searchは以下のようなシナリオに有効。

– 不均質なデータに対してユーザ定義したindexを付与する (勝手認識して使えるようにする)
– indexingとqueryingのワークロードをdedicatedな検索サービスに分離する
– 検索関連の機能を簡単に実装できるようにする
– Blob、CosmosDBにある区別されていないテキストや画像を検索可能なchunkに変換する
– 言語的なカスタム実装。英語でないコンテンツの場合、Lence(ElasticSearchの内部エンジン)やAzureのNLPエンジンを使用できる。

Features of Azure Cognitive Search

How to get started

Microsoftが挙げる入門用ステップ。確かに何も知らん状態だと有益。

1. tierとregionを決める。サブスクリプションごとに1個の無料Search Serviceが使える。全てのクイックスタートは無料でできる。
2. Azure portalでSearch Serviceを作る。
3. Import Data Wizardから始める。ビルトインのサンプルか手元のデータで、indexingとqueryingが数分でできる。
4. Search Explorerで終了。portal clientを使って自身が作成したindexに対してクエリを投げる。

または、

1. Azure portalやREST APIでindexを作る。index schemaにより検索を可能とする構造を定義する。
2. “push”モデルによりあらゆるデータソースから得られたJSONをアップロードする。または、もしデータソースがサポートされた形式であれば”pull”モデル(indexes)を使用できる。

Microsoftによるまとめ

情報の取得と探索が重要なアプリケーションに、Azure上に配置されたコンテンツやデータベースを全文検索させるのであれば Congnitive Searchが全てのクラウドサービスの中で最も強い。(いや..Azureなんだから当たり前だろ..)

主な強みは以下。

– indexing層におけるcrawlerによるインジェスト
– もし検索不可能なコンテンツに対して全文検索をかける際には、Azure AI Servicesと統合されたAI,MLが役に立つ
– Azure ADによる信頼された接続、またはPrivateLinkによるインターネットに出ない環境におけるindexingを実現するプライベート接続の統合
– 56の言語に対する(MSが有する)言語サービス、またはカスタム実装サービス
– rich query language, relevance tuning and semantic ranking, faceting, autocomplete queries and suggested results, and synonyms
– Azureのスケール性、信頼性、world-classな可用性 (regionのこと? 水準のこと?)

サンプルシナリオとアーキテクチャ

ちょっと例がないかなー、と調べたところ、以下のドキュメントを見つけた。画像処理、自然言語処理、およびドメイン固有のデータをキャプチャするカスタム スキルを使用して、テキスト ドキュメントと画像ドキュメントをエンリッチするソリューションが紹介されている。元の複雑で構造化されていない JFK 暗殺記録 (JFK ファイル) データセットから意味を抽出するらしい。
画像とテキストの処理を使用した AI エンリッチメント

AI enrichment with image and text processing

ちょっとこれは次回以降。

まとめ

Azure Cognitive Searchの入門ドキュメント What’s Azure Cognitive Search? を読んでざっくり要約した。

-Azure
-

Copyright© ikuty.com , 2023 AllRights Reserved Powered by AFFINGER4.