以自有資料為基礎的 Azure OpenAI
使用本文來了解 Azure OpenAI On Your Data,讓開發人員能夠更輕鬆地連線、擷取及建基其企業資料,以快速建立個人化共同作業 (預覽)。 其可增強使用者理解、加速完成工作、提高作業效率,以及協助制定決策。
什麼 Azure OpenAI On Your Data
Azure OpenAI On Your Data 可讓您在自己的企業資料上執行進階 AI 模型,例如 GPT-35-Turbo 和 GPT-4,而不需要定型或微調模型。 您可以在資料上聊天,並更準確地分析您的資料。 您可以指定來源,以根據指定資料來源中可用的最新資訊來支援回應。 您可以透過 Azure OpenAI Studio 中的 SDK 或 Web 型介面,使用 REST API 存取 Azure OpenAI On Data。 您也可以建立連線至資料的 Web 應用程式,以啟用增強的聊天解決方案,或在 Copilot Studio 中將其直接部署為 Copilot (預覽版)。
開始使用
若要開始使用,請使用 Azure OpenAI Studio 連線您的資料來源,並開始詢問問題並針對您的資料進行聊天。
注意
若要開始使用,您必須已獲得 Azure OpenAI 存取權的核准,並使用 gpt-35-turbo 或 gpt-4 模型將 Azure OpenAI 服務資源部署在支援的區域中。
新增資料來源的 Azure 角色型存取控制 (Azure RBAC)
若要完整使用 Azure OpenAI On Your Data,您必須設定一或多個 Azure RBAC 角色。 如需詳細資訊,請參閱安全地使用 Azure OpenAI On Your Data。
資料格式和檔案類型
Azure OpenAI On Your Data 支援下列檔案類型:
.txt
.md
.html
.docx
.pptx
.pdf
具有上傳限制,而且有一些文件結構的相關注意事項,及其如何影響來自模型的回應品質:
如果您要將資料從不支援的格式轉換成支援的格式,請確保轉換來最佳化模型回應的品質:
- 不會造成重大資料遺失。
- 不會將非預期的雜訊新增至您的資料。
如果您的檔案具有特殊的格式設定,例如資料表和資料行或項目符號點,請使用 GitHub 上可用的資料準備指令碼來準備資料。
對於具有長文字的文件和資料集,您應該使用可用的資料準備指令碼。 指令碼會將資料區塊化,使模型的回應更精確。 此指令碼也支持掃描的 PDF 檔案和影像。
支援的資料來源
您必須連線到資料來源,才能上傳您的資料。 當您要使用您的資料與 Azure OpenAI 模型聊天時,您的資料會在搜尋索引中區塊化,以便根據使用者查詢找到相關資料。
以 V 核心為基礎的 Azure Cosmos DB for MongoDB 中的整合向量資料庫原生支援與 Azure OpenAI On Your Data 整合。
對於某些資料來源,例如從本機電腦 上傳檔案(預覽) 或 Blob 儲存體帳戶中包含的資料 (預覽),則會使用 Azure AI 搜尋。 當您選擇下列資料來源時,您的資料會擷取至 Azure AI 搜尋服務索引。
透過 Azure AI 搜尋服務擷取的資料 | 描述 |
---|---|
Azure AI 搜尋服務 | 使用現有的 Azure AI 搜尋服務索引搭配 Azure OpenAI On Your Data。 |
上傳檔案 (預覽) | 從本機電腦上傳要儲存在 Azure Blob 儲存體資料庫中的檔案,並擷取至 Azure AI 搜尋服務。 |
URL/網址 (預覽) | URL 中的 Web 內容會儲存在 Azure Blob 儲存體中。 |
Azure Blob 儲存體 (預覽) | 從 Azure Blob 儲存體上傳要擷取至 Azure AI 搜尋服務索引的檔案。 |
- Azure AI 搜尋服務
- Azure Cosmos DB for MongoDB 中的向量資料庫
- Azure Blob 儲存體 (預覽)
- 上傳檔案 (預覽)
- URL/網址 (預覽)
- Elasticsearch (預覽)
當您需要進行下列其中一項時,建議您考慮使用 Azure AI 搜尋服務索引:
- 自訂索引建立程序。
- 從其他資料來源擷取資料,重複使用之前建立的索引。
注意
- 若要使用現有的索引,其必須至少有一個可搜尋的欄位。
- 將 CORS [允許原始類型] 選項設定為
all
,並將 [允許的來源] 選項設定為*
。
搜尋類型
Azure OpenAI On Your Data 提供下列搜尋類型,您可以在新增資料來源時使用。
-
若要啟用向量搜尋,您需要部署在 Azure OpenAI 資源中的現有內嵌模型。 連線資料時,選取內嵌部署,然後在 [資料管理] 底下選取其中一個向量搜尋類型。 如果您使用 Azure AI 搜尋服務做為資料來源,請確定索引中有向量資料行。
如果您使用自己的索引,可以在新增資料來源時自訂欄位對應,以定義將在回答問題時進行對應的欄位。 若要自訂欄位對應,請在新增資料來源時,選取 [資料來源] 頁面上的 [使用自訂欄位對應]。
重要
搜尋選項 | 擷取類型 | 其他定價? | 福利 |
---|---|---|---|
keyword | 關鍵字搜尋 | 沒有其他定價。 | 使用任何支援語言中的字詞或片語 (搭配或不搭配運算子),針對可搜尋欄位執行快速且彈性的查詢剖析和比對。 |
語意 | 語意搜尋 | 語意搜尋使用量的其他定價。 | 使用重新排名工具 (搭配 AI 模型) 來了解初始搜尋排名工具所傳回查詢詞彙和文件的語意意義,以改善搜尋結果的精確度和相關性 |
vector | 向量搜尋 | 在 Azure OpenAI 帳戶上呼叫內嵌模型的其他定價。 | 可讓您根據內容的向量內嵌,尋找類似指定查詢輸入的文件。 |
混合式 (向量 + 關鍵字) | 混合向量搜尋和關鍵字搜尋 | 在 Azure OpenAI 帳戶上呼叫內嵌模型的其他定價。 | 使用向量內嵌在向量欄位上執行相似度搜尋,同時支援使用字詞查詢,透過英數字元欄位進行彈性查詢剖析和全文搜索。 |
混合式 (向量 + 關鍵字) + 語意 | 混合向量搜尋、語意搜尋和關鍵字搜尋。 | 在 Azure OpenAI 帳戶上呼叫內嵌模型的其他定價,以及語意搜尋使用量的其他定價。 | 使用向量內嵌、語言理解和彈性查詢剖析來建立豐富的搜尋體驗和生成式 AI 應用程式,可處理複雜且多樣化的資訊擷取案例。 |
智慧型搜尋
Azure OpenAI On Your Data 已針對您的資料啟用智慧型搜尋。 如果您有語意搜尋和關鍵字搜尋,則預設會啟用語意搜尋。 如果您已內嵌模型,則智慧型搜尋預設為混合式 + 語意搜尋。
文件層級的存取控制
注意
當您選取 Azure AI 搜尋服務做為資料來源時,支援文件層級存取控制。
Azure OpenAI On Your Data 可讓您使用 Azure AI 搜尋服務安全性篩選器,來限制可用於回應不同使用者的文件。 當您啟用文件層級的存取時,從 Azure AI 搜尋服務傳回並用來產生回應的搜尋結果,會根據使用者 Microsoft Entra 群組成員資格修剪。 您只能在現有的 Azure AI 搜尋服務索引上啟用文件層級存取,如需詳細資訊,請參閱安全地使用 Azure OpenAI On Your Data。
索引欄位對應
如果您使用自己的索引,系統會在 Azure OpenAI Studio 中提示您定義要對應的欄位,以在您新增資料來源時回答問題。 您可以為內容資料提供多個欄位,且應該包含所有具有您使用案例相關文字的欄位。
在此範例中,對應至內容資料和標題的欄位會將資訊提供給模型以回答問題。 標題也用於標題引用文字。 對應至檔案名稱的欄位會在回應中產生引用名稱。
正確地對應這些欄位有助於確保模型具有更佳的回應和引用品質。 您也可以使用 fieldsMapping
參數,在 API 中另外加以設定。
記錄搜尋篩選條件 (API)
如果您想要實作其他以值為基礎的準則來執行查詢,您可以使用 REST API 中的 filter
參數來設定搜尋篩選。
資料擷取至 Azure AI 搜尋服務的方式
資料會使用下列程序擷取至 Azure AI 搜尋:
擷取資產是在 Azure AI 搜尋服務資源和 Azure 儲存體帳戶中建立。 目前這些資產包括:索引子、索引、資料來源、搜尋資源中的自訂技能,以及 Azure 儲存體帳戶中的容器 (稍後稱為區塊容器)。 您可以使用 Azure OpenAI Studio 或擷取 API (預覽) 來指定輸入 Azure 儲存體容器。
資料會從輸入容器讀取,內容隨即會開啟並區塊化為小型區塊,每個區塊最多 1,024 個權杖。 如果已啟用向量搜尋,服務會計算代表每個區塊內嵌的向量。 此步驟的輸出 (稱為「前置處理」或「區塊化」資料) 會儲存在上一個步驟中建立的區塊容器中。
前置處理的資料會從區塊容器載入,並在 Azure AI 搜尋服務索引中編製索引。
資料連線
您必須選取要如何驗證來自 Azure OpenAI、Azure AI 搜尋服務和 Azure Blob 儲存體的連線。 您可以選擇系統指派的受控識別或 API 金鑰。 選取 API 金鑰 做為驗證類型後,系統會自動填入 API 金鑰,讓您與 Azure AI 搜尋服務、Azure OpenAI 和 Azure Blob 儲存體資源連線。 選取 [系統指派的受控識別] 後,驗證會以您擁有的角色指派為基礎。 預設會選取系統指派的受控識別以獲得安全性。
當您選取 [下一步] 按鈕之後,其會自動驗證您的設定以使用選取的驗證方法。 如果您遇到錯誤,請參閱角色指派一文來更新您的設定。
修正設定之後,請再次選取 [下一步] 以驗證並繼續。 API 使用者也可以使用指派的受控識別和 API 金鑰來設定驗證。
部署至 Copilot (預覽)、Teams 應用程式 (預覽) 或 Web 應用程式
將 Azure OpenAI 連線至您的資料之後,您可以使用 Azure OpenAI Studio 中的 [部署至] 按鈕來部署資料。
這為您提供部署解決方案的多個選項。
您也=可以直接從 Azure OpenAI Studio 部署至 Copilot Studio (預覽) 中的 Copilot,讓您將交談體驗帶入各種頻道,例如:Microsoft Teams、網站、Dynamics 365 和其他 Azure Bot Service 頻道。 Azure OpenAI 服務和 Copilot Studio (預覽) 中使用的租用戶應該相同。 如需詳細資訊,請參閱使用 Azure OpenAI On Your Data 的連線。
注意
在 Copilot Studio (預覽) 中部署至 Copilot 僅適用於美國區域。
安全地使用 Azure OpenAI On Your Data
您可以使用 Microsoft Entra ID 角色型存取控制、虛擬網路和私人端點來保護資料和資源,以安全地使用 Azure OpenAI On Data。 您也可以使用 Azure AI 搜尋服務安全性篩選器,來限制可用於回應不同使用者的文件。 請參閱安全地使用 Azure OpenAI On Your Data。
最佳作法
使用下列各節來了解如何改善模型所提供的回應品質。
擷取參數
將資料擷取至 Azure AI 搜尋服務時,您可以在 Studio 或 擷取 API 中修改下列其他設定。
區塊大小 (預覽)
在擷取文件之前,Azure OpenAI On Your Data 會先將其分割成區塊來處理文件。 區塊大小是搜尋索引中任何區塊權杖數目的大小上限。 區塊大小和擷取的文件數目一起可控制傳送至模型的提示中包含多少資訊 (權杖)。 一般而言,區塊大小乘以擷取的文件數目等於傳送至模型的權杖總數。
設定您使用案例的區塊大小
預設區塊大小為 1,024 個權杖。 不過,鑒於資料的唯一性,您可能會發現不同的區塊大小 (例如 256、512 或 1,536 個權杖) 更有效率。
調整區塊大小可以增強聊天機器人的效能。 雖然尋找最佳區塊大小需要一些試驗和錯誤,但請從考慮資料集的性質開始進行。 較小的區塊大小通常較適合具有直接事實和較少內容的資料集,而較大的區塊大小可能會對更相關的資訊有所幫助,但可能會影響擷取效能。
小型區塊大小 (如 256) 會產生更細微的區塊。 此大小也表示模型會利用較少的權杖來產生其輸出 (除非擷取的文件數目非常高),而且成本可能較低。 較小的區塊也表示模型不必處理及解譯長段的文字,可減少雜訊和干擾。 不過,這種細微度和焦點會造成潛在的問題。 重要資訊可能不在擷取數最高的區塊中,特別是當擷取的文件數目設定為低值 (例如 3) 時。
提示
請記住,改變區塊大小需要重新擷取您的文件,因此最好先調整執行階段參數,例如嚴格度和擷取的文件數目。 如果您仍未取得所需的結果,請考慮變更區塊大小:
- 如果您遇到大量諸如回答「我不知道」,但您的文件中應有問題的解答這類的回應,請考慮將區塊大小降低為 256 或 512 以改善細微性。
- 如果聊天機器人提供一些正確的詳細資料,但卻遺漏其他詳細資料,而在引文中變得很明顯,將區塊大小增加至 1,536 可能有助於擷取更多內容資訊。
執行階段參數
您可以在 Azure OpenAI Studio 和 API 的 [資料參數] 區段中修改下列其他設定。 當您更新這些參數時,不需要重新擷取您的資料。
參數名稱 | 描述 |
---|---|
限制資料的回應 | 此旗標會設定聊天機器人在處理與資料來源無關的查詢,或搜尋文件不足以取得完整答案時的方法。 停用此設定時,除了您的文件之外,模型也會以自己的知識補充其回應。 啟用此設定時,模型會嘗試只依賴您的文件進行回應。 這是 API 中的 inScope 參數,預設會設定為 true。 |
擷取的文件 | 此參數是一個整數,可以設定為 3、5、10 或 20,並控制提供給大型語言模型的文件區塊數目,以制定最終回應。 根據預設,這項設定為 5。 搜尋程序可能會造成雜訊,有時由於區塊化,相關資訊可能會分散在搜尋索引中的多個區塊。 選取前 K 個數字,例如 5,可確保在搜尋和區塊化的固有限制下,模型仍可以擷取相關資訊。 不過,將數字增加得太高可能會分散模型的注意力。 此外,可以有效使用的文件數目上限取決於模型的版本,因為每個文件都有不同的內容大小和處理文件的容量。 如果您發現回應遺漏重要內容,請嘗試增加此參數。 這是 API 中的 topNDocuments 參數,預設為 5。 |
嚴格 | 根據系統的相似度分數來決定篩選搜尋文件的積極度。 系統會查詢 Azure 搜尋服務或其他文件存放區,然後決定要提供給 ChatGPT 等大型語言模型的文件。 篩選出無關的文件可大幅提升端對端聊天機器人的效能。 如果有些文件在轉送至模型之前的相似度分數偏低,則會從前 K 個結果中排除。 這是由介於 1 到 5 的整數值所控制。 將此值設定為 1 表示系統會根據使用者查詢的搜尋相似度來篩選文件。 相反地,設定為 5 表示系統會積極篩選出文件,並套用非常高的相似度閾值。 如果您發現聊天機器人省略相關資訊,請降低篩選條件的嚴格性 (將值設定為接近 1),以包含更多文件。 相反地,如果無關的文件分散回應的注意力,請增加閾值 (將值設定為接近 5)。 這是 API 中的 strictness 參數,預設會設定為 3。 |
未引用的參考
模型可以針對從資料來源擷取的文件,在 API 中傳回 "TYPE":"UNCITED_REFERENCE"
而不是 "TYPE":CONTENT
,但不包含在引文中。 這對於偵錯很有用,且您可以修改上述的嚴格性和擷取的文件執行階段參數來控制此行為。
系統訊息
您可以在使用 Azure OpenAI On Your Data 時定義系統訊息,以引導模型的回覆。 此訊息可讓您在 Azure OpenAI On Your Data 使用的擷取擴增生成 (RAG) 模式之上自訂回覆。 除了內部基底提示之外,系統訊息也會用來提供體驗。 為了支援這項功能,我們會在特定數目的權杖之後截斷系統訊息,以確保模型可以使用您的資料回答問題。 如果您要在預設體驗之外定義額外的行為,請確定系統提示詳盡,並且說明確切的預期自訂。
選取 [新增資料集] 之後,您可以使用 Azure OpenAI Studio 中的 [系統訊息] 區段,或 role_information
API 中的 參數。
潛在的使用模式
定義角色
您可以定義您需要小幫手的角色。 例如,如果您要建置支援 Bot,您可以新增 「您是專家事件支援助理,可協助使用者解決新問題」。
定義所擷取的資料類型
您也可以新增您提供給小幫手的資料本質。
- 定義數據集的主題或範圍,例如「財務報告」、「學術論文」或「事件報告」。例如,針對技術支援,您可能會新增 「使用所擷取檔中類似事件的資訊來回答查詢」。
- 如果您的資料具有特定特性,您可以將這些詳細資料新增至系統訊息。 例如,如果您的檔是日文,您可以新增 「您擷取日文檔,您應該在日文中仔細閱讀,並在日文中回答」。
- 如果您的文件包含如財務報告中資料表的結構化資料,您也可以在系統提示字元中新增此事實。 例如,如果您的數據具有數據表,您可以新增 「您是以與財務結果相關的數據表形式提供的數據,而且您應該逐行讀取數據表行,以執行計算來回答用戶問題」。
定義輸出樣式
您也可以定義系統訊息來變更模型的輸出。 例如,如果您想要確保助理答案在法文中,您可以新增類似「您是 AI 助理,可協助瞭解法文尋找資訊的使用者」之類的 提示。用戶的問題可以是英文或法文。請仔細閱讀擷取的檔,並以法文回答。請將文件的知識翻譯成法文,以確保所有答案都是法文的。
重申重要行為
Azure OpenAI On Your Data 的運作方式是透過以提示形式將指示傳送至大型語言模型,以使用您的資料回應使用者查詢。 如果某個行為對應用程式很重要,您可以重複系統訊息中的行為,以提高其精確度。 例如,若要引導模型只回答檔,您可以新增「請只使用擷取的檔回答」,而不需使用您的知識。請針對答案中的每個宣告產生引文,以擷取檔。如果無法使用擷取的檔回答用戶問題,請說明檔與使用者查詢相關的原因。無論如何,請勿使用您自己的知識回答。
提示工程技巧
提示工程有許多技巧,可供您嘗試來改善輸出。 其中一個範例是,您可以在這裡新增 「讓我們逐步思考所擷取檔中的資訊,以響應用戶查詢。逐步從檔擷取相關知識到用戶查詢,並從相關文件擷取的資訊形成答案。
注意
系統訊息可用來根據擷取的文件修改 GPT 小幫手回應使用者問題的方式。 這不會影響擷取程序。 如果您想要提供擷取程序的指示,最好將這些程序包含在問題中。 系統訊息僅具指導作用。 模型可能不會遵守指定的每個指令,因為其已參考特定行為,例如客觀性,並避免使用爭議性語句。 如果系統訊息與這些行為衝突,則可能會發生非預期的行為。
最大回應
設定每個模型回應的權杖數目限制。 Azure OpenAI On Your Data 的上限為 1500。 這相當於在 API 中設定 max_tokens
參數。
限制資料的回應
此選項鼓勵模型僅使用您的資料來回應,並預設為已選取。 如果您取消選取此選項,模型可能會更傾向於套用其內部知識來回應。 根據您的使用案例和情節來判斷正確的選取範圍。
與模型互動
使用下列做法在與模型聊天時獲得最佳結果。
交談記錄
- 開始新的交談 (或詢問與先前交談無關的問題) 之前,請清除聊天記錄。
- 若在第一個交談回合和後續回合之間針對相同問題取得不同的回應,則可能是因為交談記錄會變更模型的目前狀態。 如果您收到不正確的回答,請將其回報為品質錯誤。
模型回應
如果您對特定問題的模型回應不滿意,請嘗試讓問題更具體或更泛型,以了解模型回應的方式,並據以重新架構您的問題。
已顯示思維鏈提示,讓模型針對複雜問題/工作有效地產生所需的輸出。
問題長度
避免詢問過長的問題,並盡可能將問題細分成多個問題。 GPT 模型對於可接受的權杖數目具有限制。 權杖限制會計入:使用者問題、系統訊息、擷取的搜尋文件 (區塊)、內部提示、交談記錄 (若有),以及回應。 問題超過權杖限制時將會被截斷。
多語言支援
目前,Azure OpenAI On Data 中的關鍵字搜尋和語意搜尋支援查詢的語言與索引中的資料相同。 例如,如果您的資料是日文,則輸入查詢也必須使用日文。 若要擷取跨語言文件,建議您建立啟用向量搜尋的索引。
為了協助改善資訊擷取和模型回應的品質,建議您啟用下列語言的語意搜尋:英文、法文、西班牙文、葡萄牙文、義大利文、德文、中文(Zh)、日文、韓文、俄文、阿拉伯文
建議您使用系統訊息來通知模型您的資料是另一種語言。 例如:
*「*您是 AI 小幫手,設計目的是協助使用者從擷取的日文文件中擷取資訊。請先仔細審查日文文件後,再制定回應。使用者的查詢會以日文顯示,且您也必須以日文回應。」
如果您有使用多種語言的文件,建議您為每個語言建置新的索引,並將其個別連線至 Azure OpenAI。
串流資料
您可以使用 stream
參數傳送串流要求,允許以累加方式傳送和接收資料,而不需要等待整個 API 回應。 這可以改善效能和使用者體驗,特別是針對大型或動態資料。
{
"stream": true,
"dataSources": [
{
"type": "AzureCognitiveSearch",
"parameters": {
"endpoint": "'$AZURE_AI_SEARCH_ENDPOINT'",
"key": "'$AZURE_AI_SEARCH_API_KEY'",
"indexName": "'$AZURE_AI_SEARCH_INDEX'"
}
}
],
"messages": [
{
"role": "user",
"content": "What are the differences between Azure Machine Learning and Azure AI services?"
}
]
}
交談記錄可獲得更好的結果
當您與模型聊天時,提供聊天的記錄可協助模型傳回更高品質的結果。 您不必在 API 要求中包含小幫手訊息的 context
屬性,以提升回應品質。 如需範例,請參閱 API 參考文件。
函式呼叫
某些 Azure OpenAI 模型可讓您定義 tools 和 tool_choice 參數,以啟用函式呼叫。 您可以透過 REST API /chat/completions
設定函式呼叫。 如果要求中同時有 tools
和 資料來源,則會套用下列原則。
- 如果
tool_choice
為none
,則會忽略工具,且只會使用資料來源來產生答案。 - 否則,如果
tool_choice
未指定或指定為auto
或物件,則會忽略資料來源,且回應會包含選取的函式名稱和引數 (若有)。 即使模型決定未選取任何函式,仍會忽略資料來源。
如果上述原則不符合您的需求,請考慮其他選項,例如:提示流程或小幫手 API。
Azure OpenAI On your Data 的權杖使用量估計
Azure OpenAI On Your Data 擷取擴增生成 (RAG) 是一項服務,可運用搜尋服務 (例如 Azure AI 搜尋服務) 和生成 (Azure OpenAI 模型),讓使用者根據提供的資料取得問題解答。
在此 RAG 管線中,高層級有三個步驟:
將使用者查詢重新格式化為搜尋意圖清單。 若要這麼做,請透過提示來呼叫模型,其中包含指示、使用者問題和交談記錄。 讓我們將此稱為意圖提示。
針對每個意圖,會從搜尋服務擷取多個文件區塊。 根據使用者指定的嚴格度閾值篩選掉不相關的區塊,並根據內部邏輯重新調整/彙總區塊之後,會選擇使用者指定的文件區塊數目。
這些文件區塊,以及使用者問題、交談記錄、角色資訊和指示會傳送至模型,以產生最終的模型回應。 讓我們將這個稱為生成提示。
總共對模型進行兩個呼叫:
若要處理意圖:意圖提示的權杖估計包括使用者問題、交談記錄,以及傳送至模型以生成意圖的指示。
若要產生回應:產生提示的權杖估計包括使用者問題、交談記錄、擷取的文件區塊清單、角色資訊,以及傳送至模型以進行生成的指示。
模型產生的輸出權杖 (意圖和回應) 必須考慮到權杖估計總計。 總結下列全部四個資料行,可提供用於產生回應的平均權杖總計。
模型 | 生成提示權杖計數 | 意圖提示權杖計數 | 回應權杖計數 | 意圖權杖計數 |
---|---|---|---|---|
gpt-35-turbo-16k | 4297 | 1366 | 111 | 25 |
gpt-4-0613 | 3997 | 1385 | 118 | 18 |
gpt-4-1106-preview | 4538 | 811 | 119 | 27 |
gpt-35-turbo-1106 | 4854 | 1372 | 110 | 26 |
以上數字是以測試資料集為基礎,當中包含:
- 191 個交談
- 250 個問題
- 每個問題 10 個平均權杖
- 每個交談平均 4 個交談回合
以及下列參數。
設定 | 值 |
---|---|
擷取的文件數 | 5 |
嚴格度 | 3 |
區塊大小 | 1024 |
限制擷取資料的回應? | True |
這些估計值會根據上述參數所設定的值而有所不同。 例如,如果擷取的文件數目設定為 10,且嚴格性設定為 1,則權杖計數將會上升。 如果傳回的回應不限於擷取的資料,則提供給模型的指示較少,且權杖數目將會降低。
估計值也取決於文件的性質以及所詢問的問題。 例如,如果問題為開放式,則回應可能會較長。 同樣地,較長的系統訊息會導致取用更多權杖的較長提示,且如果交談記錄很長,則提示會更長。
模型 | 系統訊息的權杖最大值 |
---|---|
GPT-35-0301 | 400 |
GPT-35-0613-16K | 1000 |
GPT-4-0613-8K | 400 |
GPT-4-0613-32K | 2000 |
GPT-35-turbo-0125 | 2000 |
GPT-4-turbo-0409 | 4000 |
GPT-4o | 4000 |
GPT-4o-mini | 4000 |
上表顯示可用於系統訊息的權杖數目上限。 若要查看模型回應的最大權杖數,請參閱模型文章。 此外,下列項目也會取用權杖:
中繼提示:如果您將模型的回應限制為建基資料內容 (在 API 中為
inScope=True
),則權杖數目上限會較高。 否則 (例如,如果inScope=False
) 最大值較低。 此數字會根據使用者問題和交談記錄的權杖長度而變動。 此估計值包含基礎提示和進行擷取的查詢重寫提示。使用者問題和歷程記錄:變數,但上限為 2,000 個權杖。
擷取的文件 (區塊):所擷取的文件區塊使用的權杖數目取決於多個因素。 這個的上限是擷取的文件區塊數目乘以區塊大小。 不過,其會根據計算其餘欄位之後所使用特定模型的權杖可用權杖來截斷。
20% 的可用權杖會保留給模型回應。 其餘 80% 的可用權杖包括中繼提示、使用者問題和交談記錄,以及系統訊息。 擷取的文件區塊會使用剩餘的權杖預算。
若要計算輸入 (例如您的問題、系統訊息/角色資訊) 所取用的權杖數目,請使用下列程式碼範例。
import tiktoken
class TokenEstimator(object):
GPT2_TOKENIZER = tiktoken.get_encoding("gpt2")
def estimate_tokens(self, text: str) -> int:
return len(self.GPT2_TOKENIZER.encode(text))
token_output = TokenEstimator.estimate_tokens(input_text)
疑難排解
若要針對失敗的作業進行疑難排解,請一律查看 API 回應或 Azure OpenAI Studio 中所指定的錯誤或警告。 以下是一些常見的錯誤和警告:
擷取作業失敗
配額限制問題
無法建立服務 Y 中名稱為 X 的索引。 此服務已超過索引配額。 您必須先刪除未使用的索引、新增索引建立要求之間的延遲,或升級服務以取得更高的限制。
此服務已超過 X 個標準索引子配額。 您目前有 X 個標準索引子。 您必須先刪除未使用的索引子、變更索引子 'executionMode',或升級服務以取得更高的限制。
解決方法:
升級至較高的定價層,或刪除未使用的資產。
前置處理逾時問題
無法執行技能,因為 Web API 要求失敗
無法執行技能,因為 Web API 技能回應無效
解決方法:
將輸入文件細分為較小的文件,然後再試一次。
權限問題
此要求沒有權限執行此作業
解決方法:
這表示無法使用指定的認證來存取儲存體帳戶。 在此情況下,請檢閱傳遞至 API 的儲存體帳戶認證,並確定儲存體帳戶不會隱藏在私人端點後方 (如果未針對此資源設定私人端點)。
使用 Azure AI 搜尋服務傳送查詢時發生 503 錯誤
每個使用者訊息都可以轉譯成多個搜尋查詢,這些查詢全都會以平行方式傳送至搜尋資源。 當搜尋複本和分割區數目很低時,這可能會產生節流行為。 單一分割區和單一複本可能支援的每秒查詢數目上限可能不足。 在此情況下,請考慮增加複本和分割區,或在應用程式中新增睡眠/重試邏輯。 如需詳細資訊,請參閱 Azure AI 搜尋服務文件。
區域可用性和模型支援
區域 | gpt-35-turbo-16k (0613) |
gpt-35-turbo (1106) |
gpt-4-32k (0613) |
gpt-4 (1106-preview) |
gpt-4 (0125-preview) |
gpt-4 (0613) |
gpt-4o ** |
gpt-4 (turbo-2024-04-09) |
---|---|---|---|---|---|---|---|---|
澳大利亞東部 | ✅ | ✅ | ✅ | ✅ | ✅ | |||
加拿大東部 | ✅ | ✅ | ✅ | ✅ | ✅ | |||
美國東部 | ✅ | ✅ | ✅ | |||||
美國東部 2 | ✅ | ✅ | ✅ | ✅ | ||||
法國中部 | ✅ | ✅ | ✅ | ✅ | ✅ | |||
日本東部 | ✅ | |||||||
美國中北部 | ✅ | ✅ | ✅ | |||||
挪威東部 | ✅ | ✅ | ||||||
美國中南部 | ✅ | ✅ | ||||||
印度南部 | ✅ | ✅ | ||||||
瑞典中部 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
瑞士北部 | ✅ | ✅ | ✅ | |||||
英國南部 | ✅ | ✅ | ✅ | ✅ | ||||
美國西部 | ✅ | ✅ | ✅ |
**這是純文字實作
如果您的 Azure OpenAI 資源位於另一個區域,您將無法使用 Azure OpenAI On Your Data。