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

Azure AI Search入門 - 基本概念理解からAzure OpenAI Searc...

Azure AI Search入門 - 基本概念理解からAzure OpenAI Searchとの連携まで

部内の勉強会(TechTalk)で共有をしたAzure AI Searchについての資料です。
Azure AI Searchを理解するための基本的な用語・概念から、Azure AI Search側からのAzure OpenAI Serviceとの連携部分についてまで扱っています。

AITC - DENTSU SOKEN

February 09, 2024
Tweet

More Decks by AITC - DENTSU SOKEN

Other Decks in Technology

Transcript

  1. 目次 第I部 - Azure AI Searchの基本概念理解編 • Azure AI Searchとは

    • Azure AI Searchを理解するための用語・概念整理 • 全文検索とベクトル検索の違い • Azure AI Searchの検索インデックスにデータを投入する方法 第II部 – インデクサーでのAzure OpenAI Serviceとの連携編 • Azure OpenAI Serviceと連携したRAGアーキテクチャ • インデクサーによるチャンク分割、ベクトル化、保存する方法 2
  2. 第I部 - Azure AI Searchの基本概念理解編 • Azure AI Searchとは •

    Azure AI Searchを理解するための用語・概念整理 • 全文検索とベクトル検索の違い • Azure AI Searchの検索インデックスにデータを投入する方法 3
  3. Azure AI Searchとは? ▍ Azureのフルマネージドの検索サービス ▍ 全文検索、ベクトル検索、ハイブリッド検索、あいまい検索、 自動補完、geo検索など豊富な検索ソリューションに対応 ▍ 他のAzureサービスとの強力な統合機能を提供

    ⚫ データソースから自動での検索インデックスへの保存処理(インデクサー) ⚫ OCRやテキストの翻訳などデータソースのコンテンツをAIで解析(スキル、エンリッ チメント、ナレッジストア) 4
  4. Azure AI Searchに保存されるデータに関する用語と概念 5 用語 概要 検索インデックス 検索のためのデータのコレクション。 1つの検索インデックス内に複数のドキュメントが格納される。 ※単に「インデックス」と表記をする場合もあるが本資料内では「検索インデック

    ス」と表記する。 スキーマ 検索インデックスの構造を定義するもの。 スキーマは、検索インデックスに格納されるドキュメントにどのようなフィールド が含まれ、それぞれのデータ型など情報を含む。 ドキュメント 検索インデックス内に格納される個々のデータ項目。 Azure AI SearchではJSON形式で表現される。 フィールド ドキュメント内の個々の属性を示す。RDBの列に似たもので型が存在する。 フィールドによって検索結果の並び替えやフィルタリングが行える。
  5. Azure AI Searchのスケーラビリティに関する用語と概念 7 用語 概要 SU (検索ユニット、 スケールユニット) Azure

    AI Searchサービスの課金単位。 SUの数はレプリカとパーティションの数によって決定される。 レプリカ Azure AI Searchでホストされるインスタンスの数。 各レプリカは検索インデックスの完全なコピーを持っており、独立でクエリの処理が可能。 レプリカ数を増やすことで負荷分散、高可用性を実現できる。 パーティション Azure AI Searchでのストレージの単位。 パーティションを増やすと書き込み性能が向上する。 シャード 検索インデックスを分割した単位。 Azure AI Searchでは各インデックスは事前にシャードの単位で分割され、パーティションごとに 均等に分散されて保存される。 なおシャードは実装の詳細であるためサービス利用者が意識する必要はない。
  6. Azure AI Searchでサポートされる検索シナリオ Azure AI Search は「全文検索」と「ベクトル検索」のどちらにも対応し ている ❖ 全文検索

    フルテキストインデックスによって作成された転置インデックスを利用してドキュメン トを検索する ❖ ベクトル検索 ベクトルの近傍検索によってドキュメントを検索する 11
  7. ベクトル検索を理解するための用語と概念 16 用語 概要 Embedding (埋め込みベクトル、 分散表現) テキストなどのデータを多次元のベクトルとして表現したもの。 意味的に類似性の高いコンテンツはベクトル空間内で互いに近くに位置する。 vectorizer

    (ベクタライザー) テキストなどembeddingに変換するコンポーネント 最近傍検索 与えられたクエリポイント(ベクトル値)に最も近いデータポイントをベクトル空間から探索する 方法。 クエリポイントと各データポイントのベクトル間の距離を計算し、最も距離が小さいポイントを特 定する必要があるため大規模なデータほど計算コストが必要になる。 近似最近傍検索 与えられたクエリポイント(ベクトル値)に近似的に最も近いデータポイントをベクトル空間から 探索する方法。 正確さに犠牲にしパフォーマンスを向上させる方法であり、大規模なデータにも対応できる。
  8. フィールドの属性 フィールドはデータ型に加えて、検索時にフィールドがどのように使用されるかを示す属性を 定義する 21 属性 概要 searchable フルテキストインデックスを作成するかを制御する filterable $filterクエリで参照できるかを制御する

    sortable ソート対象に利用できるかを制御する facetable 検索結果の集約化に利用するかを制御する key ドキュメントの一意識別子となるフィールド このフィールドは文字列(Edm.string)で定義される retrievable 検索結果に含めるかを制御する Falseにしたフィールドはスコアリングの内部ロジックなどに応用できる
  9. Pushモデル vs Pullモデル • Pushモデルの利点  任意のデータソースから検索インデックスにドキュメントを登録できる  検索結果にリアルタイム性をサポートできる •

    Pullモデルの利点  スケジューリングによる自動更新のサポート  データソースの変更追跡によるドキュメントの最新化  スキルセットによるエンリッチメントのサポート 24
  10. Pullモデルを理解するための用語と概念 28 用語 概要 データソース インデクサーのデータ抽出対象となるクラウド上のデータソース Azure Blob StorageやAzure Cosmos

    DBなどがサポートされる インデクサー インデクサーはデータソースのデータをAzure AI Searchの検索インデックスのスキーマ構造にマッ ピングする処理を行うコンポーネント 一般的な検索システムの「クローラー」のような処理を担う スキル インデクサーでコンテンツを検索インデックスに投入する際に、コンテンツを変換する単一の操 作を提供するもの スキルセット スキルセットは特定のインデクサーで利用するスキルの集合。少なくとも1つのスキルから構成さ れ、最大で30のスキルを含む。 エンリッチメント インデクサーの拡張機能で、画像などのテキスト情報を持たないデータを検索可能な構造に変換 するもの ナレッジストア エンリッチメントされたコンテンツを保存するストレージ Azure Blob StorageやAzure Table Storageを利用できる
  11. 利用されるスキル - テキスト分割スキル(TextSplitSkill) チャンク分割をするスキル https://learn.microsoft.com/ja-jp/azure/search/cognitive-search-skill-textsplit 37 { "@odata.type": "#Microsoft.Skills.Text.SplitSkill", "name":

    "#1", "description": null, "context": "/document", "defaultLanguageCode": "en", "textSplitMode": "pages", "maximumPageLength": 2000, "pageOverlapLength": 100, "maximumPagesToTake": 1, },
  12. 利用されるスキル - Azure OpenAI Embedding スキル (プレビュー) Azure OpenAIでEmbedding化を行うスキル https://learn.microsoft.com/ja-jp/azure/search/cognitive-search-skill-azure-openai-

    embedding 38 { "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill", "name": "#2", "description": "Azure OpenAI Embedding Skill", "context": "/document/pages/*", "resourceUri": "https://*****.openai.azure.com", "apiKey": "*****", "deploymentId": "emebedding-ada-002", "authIdentity": null }
  13. インデクサーの計算リソース インデクサーはAzure AI Searchのマネージド環境で実行される 41 環境 概要 プライベート環境 リソース固有の環境。 ここで実行されるインデクサージョブは最大24時間実行可能。

    プライベート環境で実行可能なインデクサージョブの数は検索ユニットで1つ。 プライベートエンドポイント経由で他のリソースにアクセスする必要があるインデクサージョブはこの環境で実 行する必要がある マルチテナント マネージドな環境。 ここで実行されるインデクサージョブは最大2時間実行可能。 実行できるインデクサージョブの数は不確定。