分享方式:


Azure AI 搜尋中的 AI 擴充

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

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

AI 擴充是以技能為基礎

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

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

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

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

下圖顯示 AI 擴充的流程:

擴充管線流程圖。

匯入是第一個步驟。 此時索引子會連線至資料來源,並將內容 (文件) 提取至搜尋服務中。 Azure Blob 儲存體是 AI 擴充案例中最常用的資源,但任何支援的資料來源皆可提供內容。

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

  • 當索引子「破解文件」並擷取影像和文字時,擴充即開始。 接下來進行的處理類型將取決於您的資料,以及您將哪些技能新增至技能。 如果您有影像,可以將其轉送至執行影像處理的技能。 文字內容會排入佇列以進行文字和自然語言處理。 在內部,技能會建立「擴充的文件」,以在轉換發生時加以收集。

  • 擴充的內容會在技能集執行期間產生,且若未儲存則是暫時性的。 您可以啟用擴充快取來保存破解的文件和技能輸出,以便在未來的技能集執行期間重複使用。

  • 若要將內容放入搜尋索引中,索引子必須具有對應資訊,用以將擴充的內容傳送至目標欄位。 欄位對應 (明確或隱含) 會設定從來源資料到搜尋索引的資料路徑。 輸出欄位對應會設定從擴充的文件到索引的資料路徑。

  • 索引編製是指原始和擴充的內容擷取至搜尋索引的實體資料結構 (其檔案和資料夾) 中的程序。 在此步驟中會執行語彙分析和 Token 化。

探索是最後一個步驟。 輸出一律是可從用戶端應用程式查詢的搜尋索引。 您可以選擇將輸出作為知識存放區,內含 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 中進行分析,建議採用資料表作為 Power BI 中的資料探索和視覺效果的資料來源。

可用性和價格

在具有 Azure AI 服務的區域中皆可進行擴充。 您可以在依區域提供的 Azure 產品頁面上查看擴充的可用性。

計費採用隨用隨付定價模式。 若在技能中指定了多區域 Azure AI 服務金鑰,則會傳遞使用內建技能的成本。 另外還有與影像擷取相關聯的成本,按 Azure AI 搜尋的計量計費。 不過,文字擷取和公用程式技能不收費。 如需詳細資訊,請參閱 Azure AI 搜尋如何收費

檢查清單:一般工作流程

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

請從支援的資料來源中的資料子集開始。 索引子和技能集設計是反覆進行的程序。 使用具代表性的小型資料集,可加快工作速度。

  1. 建立指定資料連線的資料來源

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

  3. 建立定義搜尋索引的索引結構描述

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

    您也會在索引子中指定欄位對應和輸出欄位對應,以設定搜尋索引的資料路徑。

    您可以選擇在索引子設定中啟用擴充快取。 此步驟可讓您於稍後重複使用現有的擴充。

  5. 執行查詢以評估結果,或啟動偵錯工作階段以處理任何技能集問題。

若要重複任何前述步驟,請先重設索引子再加以執行。 或者,請在每次執行時都刪除並重新建立物件 (若您使用免費層則建議採用)。 在快取啟用時,如果來源的資料未變更,且您對管線的編輯不會使快取失效,則索引子會從快取提取資料。

下一步