本文說明有關提示流程使用方式的常見問題。
計算會話相關問題
為什麼執行失敗,並出現「沒有名為 XXX 的模組」錯誤?
這種類型的錯誤與缺少必要套件的計算會話有關。 如果您使用預設環境,請確定計算會話的映像使用最新版本。 如果您使用自定義基底映像,請確定您已在 Docker 內容中安裝所有必要的套件。
如何尋找計算會話所使用的無伺服器實例?
您可以在計算頁面的 [計算會話清單] 索引標籤上,檢視計算會話所使用的無伺服器實例。 若要深入瞭解如何管理無伺服器實例,請參閱 管理計算會話。
使用自定義基底映像的計算會話失敗:流程執行相關問題
如何尋找 LLM 工具的原始輸入和輸出以進行進一步調查?
在提示流程中,在 [ 流程 ] 頁面中查看成功執行及其詳細數據頁面,您可以在 [輸出] 區段中找到 LLM 工具的原始輸入和輸出。 選取 [檢視完整輸出 ] 以檢視完整輸出。
追蹤 部分包含每次對 LLM 工具的請求和回應。 您可以檢查傳送至 LLM 模型的原始訊息,以及 LLM 模型的原始回應。
如何修正 Azure OpenAI 的 429 錯誤?
您可能會遇到來自 Azure OpenAI 的 429 錯誤。 此錯誤表示您已達到 Azure OpenAI 的速率限制。 您可以在 LLM 節點的輸出區段中檢查錯誤訊息。 若要深入瞭解速率限制,請參閱 Azure OpenAI 速率限制。
如何識別哪一個節點耗用最多時間?
檢查計算工作階段記錄。
嘗試尋找下列警告記錄格式:
<node_name> has been running for <duration> seconds
。例如:
案例 1:Python 指令碼節點執行過久。
在此情況下,您可以看到該
PythonScriptNode
運行時間很長(近300秒)。 請檢查節點詳細數據,以查看造成問題的原因。案例 2: LLM 節點長時間持續運行。
如果您在記錄中看到訊息
request canceled
,可能是因為 OpenAI API 呼叫花費的時間太長且超過逾時限制。網路問題或需要更多處理時間的複雜要求可能會導致 OpenAI 逾時。
請等候幾秒鐘,然後重試您的要求。 此動作通常可解決任何網路問題。
如果重試無法運作,請檢查您是否使用長內容模型,例如
gpt-4-32k
,然後為max_tokens
設定較大的值。 若是如此,則該行為是正常情況,因為您的提示可能會產生較長的回應,導致時間超出互動式模式的上限。 在此情況下,建議您嘗試Bulk test
,因為此模式沒有逾時設定。
使用自定義基底映像的計算會話失敗:流程部署相關問題
如何解決上游請求超時問題?
如果您使用 Azure CLI 或 SDK 來部署流程,可能會遇到逾時錯誤。 根據預設,request_timeout_ms
是 5000
。 您可以指定最多五分鐘,也就是 300,000 毫秒。 下列範例示範如何在部署 .yaml 文件中指定請求超時。 若要深入瞭解,請參閱 部署架構。
request_settings:
request_timeout_ms: 300000
當 OpenAI API 產生驗證錯誤時,該怎麼辦?
如果您重新產生 Azure OpenAI 金鑰,並手動更新提示流程中使用的連線,可能會遇到「未經授權」之類的錯誤。 存取令牌遺失、無效、目標對象不正確或已過期。當您在重新產生金鑰之前叫用已有的端點時,您可能會看到這些訊息。
因為端點/部署中使用的連線不會自動更新,因此會發生此錯誤。 您應該針對部署中的金鑰或秘密手動更新任何變更,其旨在避免因為意外離線作業而影響在線生產部署。
- 如果在 Azure AI Foundry 入口網站中部署端點,請使用相同的部署名稱,將流程重新部署到現有的端點。
- 如果使用 SDK 或 Azure CLI 部署端點,請修改部署定義,例如新增虛擬環境變數。 使用
az ml online-deployment update
然後來更新您的部署。
如何解決提示流程部署中的漏洞問題?
如需處理提示流執行時期相關的漏洞,請嘗試下列方法:
- 在您的流程資料夾中的
requirements.txt
檔案中,更新相依性套件。 - 如果您使用流程的自定義基底映射,請將提示流程運行時間更新為最新版本,並重建您的基底映射。 然後重新部署流程。
針對受控在線部署的任何其他弱點,Azure AI 會以每月的方式修正問題。
如果我收到「MissingDriverProgram」或「在要求中找不到驅動程式程式」錯誤,該怎麼辦?
如果您部署流程並遇到下列錯誤,則可能與部署環境相關:
'error':
{
'code': 'BadRequest',
'message': 'The request is invalid.',
'details':
{'code': 'MissingDriverProgram',
'message': 'Could not find driver program in the request.',
'details': [],
'additionalInfo': []
}
}
Could not find driver program in the request
有兩種方式可以修正此錯誤:
- 建議:在自定義環境詳細數據頁面上尋找容器映像 URI。 將它設定為檔案中的
flow.dag.yaml
流程基底映像。 當您在 UI 中部署流程時,請選取 [使用目前流程定義的環境]。 後端服務會根據此基底映像和requirement.txt
來為您的部署建立客製化環境。 如需詳細資訊,請參閱 流程定義中指定的環境。 - 在您的自訂環境定義中新增
inference_config
。
下列範例是自定義環境定義的範例。
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: pf-customized-test
build:
path: ./image_build
dockerfile_path: Dockerfile
description: promptflow customized runtime
inference_config:
liveness_route:
port: 8080
path: /health
readiness_route:
port: 8080
path: /health
scoring_route:
port: 8080
path: /score
如果我的模型響應時間過長,我該怎麼辦?
您可能會注意到部署需要太長的時間才能回應。 發生此延遲的原因有數個:
- 流程中使用的模型不夠強大。 (例如,使用 GPT 3.5 而不是
text-ada
。) - 索引查詢未優化,且花費太長的時間。
- 流程有許多要處理的步驟。
請考慮使用上述考慮來優化端點,以改善模型的效能。
如果我無法擷取部署架構,該怎麼辦?
部署端點之後,您必須在 [部署詳細數據] 頁面上的 [ 測試 ] 索引標籤上進行測試。 若要移至 [ 測試 ] 索引卷標,請在左窗格的 [我的資產] 底下,選取 [模型 + 端點]。 然後選取部署以檢視詳細數據。 如果 [ 測試 ] 索引標籤顯示 無法擷取部署架構,請嘗試下列兩種方法來減輕此問題。
- 請確定您已將正確的許可權授與端點身分識別。 如需詳細資訊,請參閱 如何將許可權授與端點身分識別。
- 也許您在舊版運行時間中執行您的流程,然後部署流程,因此部署會使用舊版運行時間的環境。 若要更新執行時期,請遵循 在 UI 上更新執行時期的步驟。 在最新的運行時間重新執行流程,然後再次部署流程。
如果我收到「列出工作區秘密的存取遭拒」錯誤,該怎麼辦?
如果您遇到「拒絕存取列出工作區機密資訊」之類的錯誤,請檢查您是否已授予端點身份的正確許可權。 如需詳細資訊,請參閱 如何將許可權授與端點身分識別。