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