向量搜尋是一種資訊擷取方法,可支援對內容的數值表示進行索引編製和查詢。 由於內容是數值而非純文字,因此比對是以最類似於查詢向量的向量為基礎,在下列項目之間進行比對:
- 語意或概念性相似性。 例如,“dog” 和 “canine” 在概念上相似,但語言上不同。
- 多語系內容,例如英文的「狗」和德文中的「狗」。
- 多種內容類型,例如純文本中的「狗」和狗的影像。
本文提供 Azure AI 搜尋中的向量搜尋概觀,包括支援的案例、可用性和其他 Azure 服務整合。
向量搜尋支援哪些案例?
向量搜尋支援下列案例:
相似性搜尋。 分別使用內嵌模型或開放原始碼模型來編碼文字,例如 OpenAI 內嵌或 SBERT。 接著,您可以使用也會編碼為向量的查詢來擷取檔。
混合式搜尋。 Azure AI 搜尋會將混合式搜尋定義為在相同要求中執行向量搜尋和 關鍵詞搜尋 。 向量支援會在欄位層級上實作。 如果索引包含向量和非向量字段,您可以撰寫以兩者為目標的查詢。 查詢會以平行方式執行,結果會合併成單一回應並據以排名。
多模式搜尋。 使用多模式嵌入來編碼文字和影像,例如 OpenAI CLIP 或 GPT-4 Turbo with Vision 在 Azure OpenAI 中,然後查詢由這兩種內容類型的向量組成的嵌入空間。
多語系搜尋。 Azure AI 搜尋是專為擴充性所設計。 如果您有以多種語言訓練的嵌入模型和聊天模型,您可以在索引端透過自定義或內建技能呼叫它們,或在查詢端利用向量化器呼叫它們。 若要進一步控制文字翻譯,請使用 Azure AI 搜尋在混合式搜尋案例中針對非函式內容支援的 多語言功能 。
已篩選的向量搜尋。 查詢要求可以包括向量查詢和篩選條件運算式。 篩選會套用至文字和數值欄位。 它們適用於元數據篩選,以及根據篩選準則包含或排除搜尋結果。 雖然向量欄位無法篩選,但您可以設定可篩選的文字或數值欄位。 搜尋引擎可以在執行向量查詢之前或之後處理篩選。
向量資料庫。 Azure AI 搜尋服務會儲存您查詢的資料。 當您需要長期記憶體或知識庫、為擷取增強的產生 (RAG) 架構或使用向量的應用程式建立基礎數據時,請使用它作為純向量索引。
向量搜尋在 Azure AI 搜尋服務中的運作方式
Azure AI 搜尋服務支援從搜尋索引編製索引、儲存和查詢向量內嵌。 下圖顯示向量搜尋的索引編製和查詢工作流程。
在索引編製端,Azure AI 搜尋會使用 最接近的鄰近演算法 ,將類似的向量放在索引中。 在內部,它會為每個 向量字段建立向量索引 。
如何從來源內容內嵌至 Azure AI 搜尋,取決於您的處理方法:
針對內部處理,Azure AI 搜尋會在索引器管線中提供 整合式數據區塊化和向量化 。 您可以提供必要的資源,例如 Azure OpenAI 的端點和連線資訊。 然後,Azure AI 搜尋會進行呼叫並處理轉換。 此方法需要索引子、支援的資料來源,以及驅動區塊化和內嵌的技能。
若要進行外部處理,您可以在 Azure AI 搜尋以外生成嵌入,並將預向量化的內容直接推送至搜尋索引中的向量欄位。
在查詢端,用戶端應用程式通常會透過提示收集用戶輸入。 您可以新增編碼步驟來向量化輸入,然後將向量查詢傳送至 Azure AI 搜尋索引以進行相似度搜尋。 如同編制索引,您可以使用 整合式向量化 來編碼查詢。 針對任一種方法,Azure AI 搜尋服務都會在結果中傳回具有所要求 k
個最近鄰項目 (kNN) 的文件。
Azure AI 搜尋支援 混合式案例 ,以平行方式執行向量和關鍵詞搜尋,並傳回統一的結果集,通常提供比向量或關鍵詞搜尋更好的結果。 針對混合式搜尋,向量和非函式內容都會內嵌到相同索引中,以供同時執行的查詢使用。
可用性和價格
若要以入口網站和程式設計方式存取向量搜尋,您可以使用:
- Azure 入口網站中的匯入 和向量化數據精靈 。
- 搜尋服務 REST API。
- 適用於 .NET、 Python 和 JavaScript 的 Azure SDK。
- 其他 Azure 供應專案,例如 Azure AI Foundry。
附註
某些在 2019 年 1 月 1 日之前建立的搜尋服務不支援向量工作負載。 如果您嘗試將向量欄位新增至結構描述並收到錯誤,其為過時服務的結果。 在這種情況下,您必須建立新的搜尋服務以嘗試向量功能。
在 2024 年 4 月 3 日之後建立的搜尋服務 為向量索引提供較高的配額。 如果您有較舊的服務,您可以 升級服務 以取得較高的向量配額。
Azure 整合和相關服務
Azure AI 搜尋服務已深入整合至整個 Azure AI 平台。 下表列出適用於向量工作負載的產品。
產品 | 整合 |
---|---|
Azure AI Foundry | 在聊天遊樂場中,[新增您自己的資料] 會使用 Azure AI 搜尋服務進行基礎資料和交談式搜尋。 遊樂場是 與您的數據聊天的最簡單且最快的方式。 |
Azure OpenAI | Azure OpenAI 提供內嵌模型和聊天模型。 示範和範例以 文字內嵌-ada-002 模型為目標。 我們建議使用 Azure OpenAI 來產生文字的內嵌。 |
Azure AI 服務 | 影像擷取向量化影像 API (預覽) 支援影像內容的向量化。 我們建議使用此 API 來產生影像的內嵌。 |
Azure 數據平臺:Azure Blob 記憶體、Azure Cosmos DB、Azure SQL、OneLake | 您可以使用索引器來自動化資料擷取,然後使用整合向量化來產生嵌入式表示。 Azure AI 搜尋可以自動從 Azure Blob 索引器、 適用於 NoSQL 的 Azure Cosmos DB 索引器、 Azure Data Lake Storage Gen2、 Azure 數據表記憶體和 Fabric OneLake 編製向量數據索引。 如需詳細資訊,請參閱將向量欄位新增至搜尋索引。 |
其也常用於開放原始碼架構,例如 LangChain (英文)。