Azure AI 搜尋中的 AI 擴充

在 Azure AI 搜尋中, AI 擴充 是指與 Azure AI 服務 整合,以處理無法以原始形式搜尋的內容。 透過擴充、分析和推斷,可用來建立先前不存在的可搜尋內容和結構。

由於 Azure AI 搜尋是文字和向量搜尋解決方案,因此 AI 擴充的目的是改善搜尋相關案例中內容的公用程式。 來源內容必須是文字內容(您無法擴充向量),但擴充管線所建立的內容可以使用區塊化和 AzureOpenAIEmbedding 技能等技能,在向量索引中向量進行向量化和編製索引。

AI 擴充是以技能為基礎

內建技能點選 Azure AI 服務。 它們會將下列轉換和處理套用至原始內容:

  • 多語言搜尋的翻譯和語言偵測
  • 從大量文字擷取人員名稱、地點和其他實體的實體辨識
  • 用來識別和輸出重要詞彙的關鍵詞組擷取
  • 光學字元辨識 (OCR) 以辨識二進位檔中的印刷和手寫文字
  • 描述影像內容的影像分析,並將描述輸出為可搜尋的文字欄位

自定義技能會執行您的外部程序代碼。 自定義技能可用於您想要包含在管線中的任何自定義處理。

AI 擴充是連線至 Azure 數據源的 索引器管線 延伸模組。 擴充管線具有索引器管線的所有元件(索引器、數據源、索引),以及 指定不可部分完成擴充步驟的技能集

下圖顯示 AI 擴充的進展:

擴充管線的圖表。

匯入 是第一個步驟。 在這裡,索引器會連線到數據源,並將內容(檔)提取至搜尋服務。 Azure Blob 儲存體 是 AI 擴充案例中最常用的資源,但任何支援的數據源都可以提供內容。

擴充和索引 涵蓋大部分的 AI 擴充管線:

  • 擴充會在索引器 「破解檔」 並擷取影像和文字時啟動。 接下來發生的處理類型取決於您的數據,以及您已新增至技能集的技能。 如果您有影像,可以將影像轉送至執行影像處理的技能。 文字內容會排入佇列以供文字和自然語言處理。 在內部,技能會建立「 擴充檔」 ,以在轉換發生時收集轉換。

  • 擴充的內容會在技能集執行期間產生,除非您儲存它,否則為暫時內容。 您可以啟用 擴充快取 ,以保存破解的檔和技能輸出,以便在未來的技能集執行期間重複使用。

  • 若要將內容放入搜尋索引中,索引器必須有對應資訊,才能將擴充的內容傳送至目標字段。 欄位對應 (明確或隱含)會將源數據的數據路徑設定為搜尋索引。 輸出欄位對應會將 擴充檔的數據路徑設定為索引。

  • 索引編製是原始和擴充內容內嵌至搜尋索引的實體數據結構(其檔案和資料夾)的程式。 這個步驟中會發生語彙分析和標記化。

探索 是最後一個步驟。 輸出一律是 可從用戶端應用程式查詢的搜尋索引 。 輸出可以是知識存放區其中包含 Azure 儲存體 中透過數據探索工具或下游程式存取的 Blob 和資料表。 如果您要建立知識存放區, 投影會 決定擴充內容的數據路徑。 相同的擴充內容可以同時出現在索引和知識存放區中。

使用 AI 擴充的時機

如果原始內容是非結構化文字、影像內容或需要語言偵測和翻譯的內容,擴充就很有用。 透過 內建技能 套用 AI 可以解除鎖定此內容,以取得全文搜索和數據科學應用程式。

您也可以建立 自定義技能 以提供外部處理。 開放原始碼、第三方或第一方程式代碼可以整合至管線作為自定義技能。 識別各種文件類型之突出特性的分類模型屬於此類別,但可以使用任何可增加您內容價值的外部套件。

內建技能的使用案例

內建技能是以 Azure AI 服務 API 為基礎:Azure AI 電腦視覺語言服務。 除非您的內容輸入很小,否則預期會 附加可計費的 Azure AI 服務資源 來執行較大的工作負載。

使用內建技能組合的技能集非常適合下列應用程式案例:

自定義技能的使用案例

自定義技能會執行您在自定義技能 Web 介面提供並包裝的外部程式代碼。 您可以在 azure-search-power-skills GitHub 存放庫中找到 數個自定義技能 範例。

自定義技能不一定很複雜。 例如,如果您有提供模式比對或文件分類模型的現有套件,您可以將它包裝在自定義技能中。

儲存輸出

在 Azure AI 搜尋服務中,索引器會儲存所建立的輸出。 單一索引器執行最多可以建立包含擴充和索引輸出的三個數據結構。

資料存放區 必要 Location 描述
可搜尋的索引 必要 搜尋服務 用於全文搜索和其他查詢表單。 指定索引是索引器需求。 索引內容會從技能輸出填入,以及任何直接對應至索引中欄位的來源欄位。
知識存放區 選擇性 Azure 儲存體 用於知識採礦或數據科學等下游應用程式。 知識存放區定義於技能集內。 其定義將決定擴充的文件會投影為 Azure 儲存體中的資料表還是物件 (檔案或 Blob)。
擴充快取 選擇性 Azure 儲存體 用於快取擴充,以便在後續的技能集執行中重複使用。 快取會儲存匯入、未處理的內容(已破解的檔)。 它也會儲存在技能集執行期間建立的擴充檔。 如果您使用影像分析或 OCR,而且想要避免重新處理影像檔案的時間和費用,快取會很有説明。

索引和知識存放區彼此完全獨立。 雖然您必須附加索引以滿足索引器需求,但如果您唯一的目標是知識存放區,您可以在索引填入之後忽略索引。

探索內容

定義並載入 搜尋索引知識存放區之後,您可以探索其數據。

查詢搜尋索引

執行查詢 以存取管線所產生的擴充內容。 索引就像針對 Azure AI 搜尋所建立的任何其他項目一樣:您可以使用自定義分析器補充文字分析、叫用模糊搜尋查詢、新增篩選,或實驗評分配置檔來調整搜尋相關性。

在知識存放區上使用數據探索工具

在 Azure 儲存體 中,知識存放區可以假設下列形式:JSON 檔的 Blob 容器、映像物件的 Blob 容器,或數據表 儲存體 中的數據表。 您可以使用 儲存體總管Power BI 或任何連線到 Azure 儲存體 的應用程式來存取您的內容。

  • Blob 容器會完整擷取擴充的檔,如果您在其他進程中建立摘要,這會很有用。

  • 如果您需要擴充檔的配量,或是想要包含或排除輸出的特定部分,數據表會很有用。 若要在Power BI 中進行分析,數據表是PowerBI中數據探索和視覺效果的建議數據源。

可用性和價格

擴充適用於具有 Azure AI 服務的區域。 您可以在依區域頁面取得的 Azure 產品上檢查擴充的可用性。

計費會遵循隨用隨付定價模式。 當技能集中指定多區域 Azure AI 服務金鑰時,會傳遞使用內建技能的成本。 還有與影像擷取相關聯的成本,如 Azure AI 搜尋所計量。 不過,文字擷取和公用程式技能無法計費。 如需詳細資訊,請參閱 如何向您收取 Azure AI 搜尋的費用。

檢查清單:一般工作流程

擴充管線是由具有技能集的索引器所組成。 編製索引后,您可以查詢索引來驗證結果。

從支持的數據源中的數據子集開始。 索引器和技能集設計是反覆的程式。 使用小型代表性數據集,工作會更快。

  1. 建立數據源,指定您數據的連線。

  2. 建立技能集。 除非您的專案很小,否則您應該 附加 Azure AI 多服務資源。 如果您要 建立知識存放區,請在技能集內加以定義。

  3. 建立定義搜尋索引的索引架構

  4. 建立並執行索引器 ,將所有上述元件結合在一起。 此步驟會擷取數據、執行技能集,並載入索引。

    索引器也是您指定欄位對應和輸出欄位對應,以設定搜尋索引的數據路徑。

    選擇性地在 索引器組態中啟用擴充快 取。 此步驟可讓您稍後重複使用現有的擴充。

  5. 執行查詢 來評估結果或 啟動偵錯會話 ,以處理任何技能集問題。

若要重複上述任何步驟, 請在執行索引器之前重設索引器 。 或者,刪除並重新建立每次執行的物件(如果您使用的是免費層,建議您這麼做)。 如果您已啟用快取索引器從快取提取,如果來源的數據未變更,而且您對管線的編輯不會使快取失效。

下一步