整合式數據區塊化和內嵌在 Azure AI 搜尋中
重要
此功能在補充使用規定下處於公開預覽狀態。 2023-10-01-Preview REST API 支援此功能。
整合式向量化會將數據區塊化和文字到向量 內嵌至索引器型索引編製中的技能。 它也會將文字到向量轉換新增至查詢。
這項功能僅供預覽。 在一般可用的向量搜尋版本和舊版預覽版本中,數據區塊化和向量化依賴外部元件進行區塊化和向量,您的應用程式程式碼必須處理及協調每個步驟。 在此預覽中,區塊化和向量化是內建至透過技能和索引器編製索引。 您可以設定使用文字分割技能來分割數據的技能集,然後使用 AzureOpenAIEmbedding 技能或自定義技能呼叫內嵌模型。 在編制索引期間使用的任何向量工具也可以呼叫查詢,將文字轉換成向量。
若要編製索引,整合式向量化需要:
針對查詢:
- 在索引架構中定義的向量化工具 ,指派給向量字段,並在查詢時自動使用,將文字查詢轉換成向量。
向量轉換是單向:文字到向量。 查詢或結果沒有向量到文字轉換(例如,您無法將向量結果轉換成人類可讀取的字串)。
元件圖
下圖顯示整合向量化的元件。
以下是負責整合向量化的元件檢查清單:
- 支援索引器型索引編製的數據源。
- 指定向量欄位的索引,以及指派給向量欄位的向量化工具定義。
- 技能集提供數據區塊化的文字分割技能,以及向量化技能(AzureOpenAiEmbedding 技能或指向外部內嵌模型的自定義技能)。
- 選擇性地,索引投影(也定義在技能集中)將區塊化數據推送至次要索引
- 內嵌模型,部署在 Azure OpenAI 上,或可透過 HTTP 端點取得。
- 用來驅動進程端對端的索引器。 索引器也會指定變更偵測的排程、欄位對應和屬性。
此檢查清單著重於整合向量化,但您的解決方案不限於此清單。 您可以新增更多 AI 擴充技能、建立知識存放區、新增語意排名、新增相關性微調和其他查詢功能。
可用性和價格
整合向量化可用性是以內嵌模型為基礎。 如果您使用 Azure OpenAI,請檢查 區域可用性。
如果您使用自定義技能和 Azure 裝載機制(例如 Azure 函式應用程式、Azure Web 應用程式和 Azure Kubernetes),請依區域頁面檢查產品的功能可用性。
數據區塊化(文字分割技能)是免費的,可在所有區域中的所有 Azure AI 服務上使用。
注意
某些在 2019 年 1 月 1 日之前建立的較舊搜尋服務會部署在不支援向量工作負載的基礎結構上。 如果您嘗試將向量字段新增至架構並收到錯誤,則這是過時服務的結果。 在此情況下,您必須建立新的搜尋服務,以試用向量功能。
整合向量化支援哪些案例?
將大型文件細分成區塊,適用於向量和非向量案例。 針對向量,區塊可協助您符合內嵌模型的輸入條件約束。 針對非向量案例,您可能會有聊天樣式的搜尋應用程式,其中 GPT 會組合來自已編製索引區塊的回應。 您可以使用向量化或非向量化區塊進行聊天樣式搜尋。
建置向量存放區,其中所有欄位都是向量欄位,而文件標識碼(搜尋索引所需)是唯一的字串字位。 查詢向量存放區以擷取檔標識碼,然後將檔的向量欄位傳送至另一個模型。
結合混合式搜尋的向量和文字欄位,以及不含語意排名。 整合向量化可簡化向量搜尋支援的所有案例。
使用整合向量化的時機
我們建議使用 Azure AI Studio 的內建向量化支援。 如果此方法不符合您的需求,您可以使用 Azure AI 搜尋的程式設計介面來建立索引器和技能集,以叫用整合式向量化。
如何使用整合向量化
針對僅限查詢向量化:
更常見的案例 - 索引編製期間的數據區塊化和向量化:
- 針對 索引器型索引編製,建立數據源聯機至支持的數據源。
- 建立技能集 ,呼叫 文字分割技能 進行區塊化和 AzureOpenAIEmbeddingModel 或自定義技能,以向量化區塊。
- 建立索引 ,指定查詢時間的 向量化程式 ,並將它指派給向量字段。
- 建立索引器 ,透過編製索引來驅動從數據擷取到技能集執行的所有專案。
您可以選擇性地為進階案例建立次要索引,其中區塊內容位於一個索引中,且在另一個索引中非區塊化。 區塊索引(或次要索引)適用於RAG應用程式。
提示
在撰寫任何程式代碼之前,請在 Azure 入口網站 中嘗試新的匯入和向量化數據精靈,以探索整合式向量化。
或者,設定 Jupyter 筆記本以逐個儲存格執行相同的工作流程,以查看每個步驟的運作方式。
限制
請確定您知道 內嵌模型的 Azure OpenAI 配額和限制。 Azure AI 搜尋具有重試原則,但如果配額用盡,重試就會失敗。
Azure OpenAI 令牌每分鐘限制是每個模型,每個訂用帳戶。 如果您使用查詢和編製索引工作負載的內嵌模型,請記住這一點。 可能的話, 請遵循最佳做法。 為每個工作負載建立內嵌模型,並嘗試在不同的訂用帳戶中部署它們。
在 Azure AI 搜尋上,請記住層級和工作負載都有 服務限制 。
最後,目前不支援下列功能:
- 使用客戶自控的加密金鑰
- 向量化工具的共用私人連結連線
- 目前沒有整合式數據區塊化和向量化的批處理
整合向量化的優點
以下是整合向量化的一些主要優點:
沒有個別的數據區塊化和向量化管線。 程序代碼更容易撰寫和維護。
將端對端編製索引自動化。 當來源中的數據變更時(例如在 Azure 儲存體、Azure SQL 或 Cosmos DB 中),索引器可以透過整個管線來移動這些更新,從擷取到檔破解,透過選擇性的 AI 擴充、數據區塊化、向量化和編製索引。
將區塊內容投影到次要索引。 次要索引的建立方式,就像是任何搜尋索引一樣(具有字段和其他建構的架構),但是索引器會與主要索引一起填入。 在相同的索引執行期間,每個源文檔的內容會流向主要和次要索引中的欄位。
次要索引適用於數據區塊化和擷取增強產生 (RAG) 應用程式。 假設大型 PDF 作為源文檔,主要索引可能有基本資訊(標題、日期、作者、描述),而次要索引具有內容的區塊。 數據區塊層級的向量化可讓您更輕鬆地尋找相關信息(每個區塊可搜尋),並傳回相關的回應,特別是在聊天樣式的搜尋應用程式中。
區塊索引
區塊化是將內容分割成可獨立處理的較小可管理元件(區塊)的程式。 如果原始程式檔太大而無法內嵌或大型語言模型的最大輸入大小,則需要區塊化,但您可能會發現它可提供更好的RAG模式和聊天樣式搜尋索引結構。
下圖顯示區塊索引的元件。