產生搜尋查詢和文件的內嵌

Azure AI 搜尋不會裝載向量化模型,因此您的其中一項挑戰是建立查詢輸入和輸出的內嵌。 您可以使用任何內嵌模型,但本文假設 Azure OpenAI 內嵌模型。 範例存放庫中的示範會點選 Azure OpenAI 的相似度內嵌模型

維度屬性至少有 2 個,且每個向量欄位最多 3072 個維度。

注意

本文適用於一般可用的向量搜尋版本,其假設您的應用程式程式代碼會呼叫外部資源,例如 Azure OpenAI 進行向量化。 稱為整合向量化新功能,目前為預覽版,提供內嵌向量化。 整合向量化相依於索引器、技能集,以及 AzureOpenAIEmbedding 技能或指向從 Azure AI 搜尋外部執行的模型自定義技能。

如何使用模型

  • 查詢輸入需要您將使用者提供的輸入提交至內嵌模型,以快速將人類可讀取的文字轉換成向量。

    • 例如,您可以使用 text-embedding-ada-002 來產生文字內嵌和 影像擷取 REST API 以進行影像內嵌。

    • 若要避免 速率限制,您可以在工作負載中實作重試邏輯。 針對 Python 示範,我們使用頑強。

  • 查詢輸出是搜尋索引中找到的任何相符檔。 您的搜尋索引之前必須已載入具有一或多個內嵌向量欄位的檔。 無論您用於編製索引的模型為何,請針對查詢使用相同的模型。

在相同的區域中建立資源

如果您想要相同區域中的資源,請從下列項目開始:

  1. 相似度內嵌模型的區域,目前在歐洲和 美國。

  2. Azure AI 搜尋的區域。

  3. 若要支援包含語意排名的混合式查詢,或如果您想要在 AI 擴充管線中使用自定義技能來嘗試機器學習模型整合,請注意提供這些功能的區域。

產生即興查詢的內嵌

下列 Python 程式代碼會產生內嵌,您可以貼到向量查詢的「值」屬性中。

!pip install openai==0.28.1

import openai

openai.api_type = "azure"
openai.api_key = "YOUR-API-KEY"
openai.api_base = "https://YOUR-OPENAI-RESOURCE.openai.azure.com"
openai.api_version = "2023-05-15"

response = openai.Embedding.create(
    input="How do I use Python in VSCode?",
    engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)

內嵌模型整合的 提示 和建議

  • 識別使用案例: 評估將向量搜尋功能內嵌模型整合的特定使用案例,可為您的搜尋解決方案增加價值。 這可以包括比對影像內容與文字內容、跨語言搜尋,或尋找類似的檔。
  • 優化成本和效能:向量搜尋可能會耗用大量資源,而且受限於最大限制,因此請只考慮向量化包含語意意義的字段。
  • 選擇正確的內嵌模型: 為您的特定使用案例選取適當的模型,例如文字型搜尋的文字內嵌或圖像內嵌的視覺搜尋。 請考慮從 OpenAI 使用預先定型的模型,例如文字內嵌-ada-002,或從 Azure AI 電腦視覺 REST API。
  • 正規化向量長度:確定向量長度在儲存在搜尋索引之前已正規化,以改善相似性搜尋的精確度和效能。 大部分預先定型的模型已經正規化,但並非全部。
  • 微調模型:如有需要,請微調領域特定數據上選取的模型,以改善其效能和與搜尋應用程式的相關性。
  • 測試和逐一查看:持續測試和精簡內嵌模型整合,以達到所需的搜尋效能和用戶滿意度。

下一步