Azure Quantum 故障排除問題

當你使用 Azure Quantum 服務時,可能會遇到連線問題或工作相關問題。 本文將說明如何排除這些問題。

工作區連線問題

問題:我無法用 pytket-azure 來認證 Azure Quantum

當你嘗試在 CI 環境中使用 pytket-azure 套件進行Azure Quantum驗證時,使用環境變數 "AZURE_TENANT_ID""AZURE_CLIENT_ID""AZURE_CLIENT_SECRET",可能會遇到以下錯誤:

Code: InsufficientPermissions
Message: There are not enough permissions to perform this operation.

要解決這個問題,可以用連接字串和環境變數 "AZURE_QUANTUM_CONNECTION_STRING" 來驗證。 欲了解更多資訊,請參閱使用連線字串進行連線

connection_string = "" # Add your connection string

import os 

os.environ["AZURE_QUANTUM_CONNECTION_STRING"] = connection_string 

職缺提交問題

問題:我找不到 target 我想提交工作的機構

如果您想用來執行工作的 Azure Quantum 不在可用的 清單中,請將 (QDK)更新到 Visual Studio Code(VS Code) 的最新版本。 如需詳細資訊,請參閱 更新 QDK

問題:作業傳回無效的狀態代碼 「未經授權」

若要解決這個問題,請依照下列步驟執行:

  1. 登入 Azure 入口網站並驗證您的帳號。
  2. 前往你想提交工作的 Quantum 工作區。
  3. 在工作區導覽窗格中,選擇存取控制(IAM)。
  4. 選擇 「檢視我的存取 」按鈕。 分配欄格打開。
  5. 角色分配表的角色欄中,檢查你是否有擁有者協作者角色。
  6. 如果你沒有這兩個角色,請請訂閱管理員指派你這個工作區的 擁有者貢獻 者角色。

問題:「AuthorizationFailure - 此要求未獲授權執行這項作業」

如果你即使有有效連線到 Azure Quantum 服務,也收到這個訊息,表示儲存帳號可能被設定為阻擋公共網路存取。 Azure Quantum 服務只支援有公開網路存取權的儲存帳號。

要檢查儲存帳號設定,請依照以下步驟操作:

  1. 登入Azure入口網站
  2. 請前往你的 Quantum 工作空間。
  3. 「概覽 」頁面,選擇 儲存帳戶
  4. 在導覽選單中,展開「Security + networking」下拉選單,選擇「網路」。
  5. 公共存取標籤的公共網路存取區塊中,選擇管理按鈕。
  6. 公共網路存取 設定中,選擇 啟用。 在公共 網路存取範圍 設定中,從 所有網路中選擇啟用。
  7. 選取儲存按鈕。

問題:「無法編譯程式」,當你從 Azure CLI 提交 Q# 程式時

當您使用 az quantum submit Azure CLI 指令提交工作時,可能會遇到以下錯誤訊息:

az quantum job submit ...
Failed to compile program.
Command ran in 21.181 seconds (init: 0.457, invoke: 20.724)

當 Q# 程式出現問題導致編譯失敗時,就會發生此錯誤。 確保你的 Q# 程式碼語法正確。

問題:編譯程序錯誤「閘道參數數目錯誤」

當你從本地的 Jupyter Notebook 或 CLI 環境提交工作到 Quantinuum,並且使用舊有的 QASM (OPENQASM 2.0) 翻譯器時,你可能會遇到以下錯誤:

Job ID <jobId> failed or was cancelled with the message: 1000: Compile error: [<file, line>] Wrong number of gate parameters

當使用逗號 「」 或其他非句點字元作為十進位分隔符時,會發生此錯誤。 將所有非週期的十進位分隔符替換為「.」。 例如:

// replace this line:
rx(1,5707963267948966) q[0];

// with this:
rx(1.5707963267948966) q[0];

問題:編譯程序錯誤「不適用於目前的編譯組態」

當你在 Jupyter Notebook 中用 VS Code 執行 Q# 代碼儲存格時,可能會遇到以下錯誤:

<function name> not found. Found a matching item `<function name>' that is not available for the current compilation configuration

這個錯誤表示你把 QIR(量子中間表示) target 配置檔設為 Base ,而函數卻需要無 限制target 配置檔。 如果你沒有指定 target 設定檔類型,編譯器會自動將 設定 target 為 無限制

問題:作業傳回無效的狀態代碼 「禁止」

當你提交第一份工作時,可能會收到 'forbidden' 錯誤代碼。

這個問題發生在你在 Azure 入口網站建立新工作區,而 Azure Quantum 未能完成將工作區連結到指定儲存帳號的角色指派。 這種情況可能發生在你關閉分頁或網頁瀏覽器,還沒完成工作區建立時。

為了確認你是否遇到這個角色分配問題,請遵循以下步驟:

  1. 請前往 Azure 入口網站中的 Quantum 工作空間。
  2. 「概覽 」頁面,選擇 儲存帳戶
  3. 在導航面板中,選擇 存取控制 (IAM)
  4. 選擇 角色分配 標籤。
  5. 角色 欄位中,檢查你工作區的儲存帳號是否有儲存帳號 貢獻者角色儲存區資料貢獻 者角色。

如果工作區的儲存帳號沒有這兩個角色,那麼請執行以下其中一項:

  • 建立一個新工作區,並確保工作區建立完成後才關閉網頁視窗或分頁。
  • 在儲存帳號上為你的工作區分配 儲存帳戶貢獻者儲存 Blob 資料貢獻者 角色。

問題:作業失敗並出現錯誤碼:QIRPreProcessingFailed

當你向 Rigetti 提交工作且工作失敗時,你可能會在 Azure 入口網站的 Quantum 工作區的 Job management 主控台看到以下錯誤訊息:

Error code: QIRPreProcessingFailed
Error message: No match found for output recording set converter from outputrecordingset.v2.labeled to outputrecordingset.v1.nonlabeled

此錯誤可能是因為與pyqirqiskit-qir的舊版之間存在依存性衝突所造成的。 在本地電腦上卸載所有版本的 pyqirpyqir-*qiskit-qir,然後安裝或更新 qdk Python 函式庫,並加入 azureqiskit 額外功能:

pip install --upgrade "qdk[azure,qiskit]"

議題:擷取失敗作業的基本資訊

當你將工作提交給硬體 target時,你的工作可能會在排隊中停留數小時或數天,直到工作失敗。

要取得更多關於工作失敗的資訊,請執行以下其中之一:

  • 要查看工作輸出或錯誤訊息,請使用 get_results() Python 模組中的 qdk.azure 方法:

    job.get_results()
    
  • 在 Azure 入口網站的 Quantum 工作空間中,從 Operations 下拉選單進入 Job Management 窗格,然後選擇工作 Name,以開啟 Job details 窗格。

  • 在 Azure 入口網站中的 Quantum 工作空間,從 Operations 下拉選單中進入 Providers 窗格。 請確認 target 硬體是否可用。 如果 target 狀態是 降級,工作可能會在排隊中停留比平常更久。 有時候工作會被處理,但有時它們會因逾時而傳回錯誤target

問題:當我以程式的方式連接到工作區時,Azure Quantum 要求我進行驗證。

如果你用的是 Azure Quantum Python SDK,並且用 AzureQuantumProvider 類別連接到工作區,那麼每次執行腳本時,可能會跳出一個視窗來驗證 Azure。

這個彈出視窗是因為每次執行腳本時,安全令牌都會被重置。

要解決這個問題,請從Azure CLI執行 az login。 如需詳細資訊,請參閱 az login

Microsoft Quantum 資源估計器問題

以下問題可能導致資源估算作業失敗。

問題:量子演算法至少必須包含一個 T 狀態或度量

為了考慮將任意量子程式映射到邏輯量子位元的二維陣列,資源估計器假設在輸入程式上執行並行合成順序泡利計算(PSSPC)。 在該方法中,所有 Clifford 運算都經過所有 T 閘道、旋轉閘和測量運算交換,留下單一的 Clifford 運算,以經典計算有效地評估。 因此,不包含 T 狀態的量子程式,例如來自 T 閘門、旋轉閘門或測量操作的程式,不需要任何實體量子運算資源。 如需平行合成循序 Pauli 計算的詳細資訊,請參閱 arXiv:2211.07629,附錄 D

Error message: Algorithm requires at least one T state or measurement to estimate resources

問題:實體 T 閘道錯誤率太高

邏輯 T 態錯誤率取決於誤差預算及量子程式中 T 態的數量。 T 工廠 用於從具有物理 T 閘錯誤率的物理 T 閘建立具有所需邏輯 T 狀態錯誤率的 T 狀態。 通常,實體 T 閘道錯誤率高於所需的邏輯 T 閘道錯誤率。 在某些情況下,實體 T 閘道的錯誤率明顯比所需的邏輯 T 狀態錯誤率高得多,因此找不到任何 T 工廠能夠產生符合質量要求的邏輯 T 狀態。

Error message: No T factory can be found, because the required logical T state error rate is too low

要解決此問題,請按照以下作業執行:

  • 增加誤差預算,不論是整體還是針對 T 狀態的部分。
  • 減少量子位參數中的實體 T 閘道錯誤率。
  • 藉由減少 T 閘、旋轉閘和 Toffoli 閘,降低量子程式中的 T 狀態數目。

問題:實體 T 閘道錯誤率太低

當物理T閘錯誤率低於所需的邏輯T狀態錯誤率時,你就不需要T工廠,因為物理T閘錯誤率已經足夠。 然而,你仍需考慮轉移單元將物理 T 狀態從編碼距離 1 轉移到演算法的編碼距離的影響(參見 arXiv:2211.07629,附錄 C)。 一般而言,在 T 工廠的存在下,轉移單位的成本是微不足道的。

Error message: No T factory can be found, because the required logical T state error rate is too high; transfer units are necessary to perform a resource estimation accurately. One possibility to circumvent this problem is to increase the physical T gate error rate of the qubit parameters.

要解決此問題,請按照以下作業執行:

  • 將量子位參數中的實體 T 閘道錯誤率提高到所需的邏輯 T 狀態錯誤率。
  • 減少錯誤預算,或只減少 T 狀態的部分。

問題:錯誤率必須是介於 0 到 1 之間的數位

錯誤率只能有介於 0 到 1 之間的值。 為了使錯誤更正有效,閘與測量的物理錯誤率必須低於依賴錯誤更正碼性質及所需邏輯錯誤率的值。

要解決此問題,請按照以下作業執行:

  • 增加錯誤預算,不論是總預算還是邏輯錯誤專屬的部分。
  • 減少量子位參數中的實體錯誤率。

問題:最大運行時間和最大實體量子位數目的限制條件是互相排斥的。

資源估計器只接受其中一個 maxDurationmaxPhysicalQubits 約束。 如果你同時為單一工作提供 maxDurationmaxPhysicalQubits約束,該工作會回傳錯誤 BothDurationAndPhysicalQubitsProvided

問題:執行 QIR 估算計數容器:未定義的符號 __quantum__rt__result_record_output

當你用 qiskit_qir Python 套件為 Qiskit 電路產生 QIR,且沒有將 record_output 參數設為 False 時,就會發生這個錯誤。

為避免此錯誤,請執行以下其中一項:

  • 使用 qdk.azure Python 模組將 Qiskit 電路提交給 Azure Quantum(建議)。
  • 當你使用 qiskit_qir Python 套件時,請在提交電路前將 record_output 參數設為 False

Azure Quantum 工作區建立問題

當您在 Azure 入口網站建立 Quantum 工作區時,可能會遇到以下問題。

問題:你無法在 Azure 入口網站中存取工作區建立表單,系統要求你註冊訂閱

這個問題是因為你沒有啟用的 Azure 訂閱。

當你訂閱訂閱30天免費試用Azure時,你會獲得免費Azure點數。 當你用完所有免費點數後,或註冊後30天內,你需要升級成隨用付費訂閱才能繼續使用Azure Quantum服務。 當你有有效訂閱時,Azure 入口網站允許你存取工作區建立表單。

若要查看訂用帳戶和相關聯的角色清單,請參閱 檢查您的訂用帳戶

注意

30 天免費試用 Azure 訂閱的 Azure 點數不適用於 Quantum 硬體供應商。

問題:快速建立選項無法使用

您必須是訂閱的 擁有者 才能使用 快速建立 選項。 若要查看訂用帳戶和相關聯的角色清單,請參閱 檢查您的訂用帳戶。 如果您是訂用帳戶 參與者,您可以使用 [ 進階建立] 選項來建立工作區。

問題:您無法建立或選取資源群組或記憶體帳戶

發生此問題的原因是您沒有訂用帳戶、資源群組或記憶體帳戶層級所需的授權。 如需必要存取層級的詳細資訊,請參閱 建立工作區的角色需求。

問題:當你選擇建立時,會跳出「部署驗證失敗」的錯誤訊息

此錯誤訊息可能包含更多詳細資料,例如「用戶端沒有執行動作的授權」。

發生此問題的原因是您沒有訂用帳戶、資源群組或記憶體帳戶層級所需的授權。 如需必要存取層級的詳細資訊,請參閱 建立工作區的角色需求。

如果你最近才被授權使用,可能需要重新整理頁面。 新角色指派可能需要長達一小時才能在整個堆疊的快取權限中生效。

問題:您在 [提供者] 索引標籤上看不到特定的量子硬體提供者

這個問題是因為供應商不支援你訂閱設定的帳單區域。 有關各國/地區的提供者名單及其可用性,請參見 全球供應Azure Quantum提供者的可用性

問題:工作區建立或新增/移除提供者失敗,並出現 “ResourceDeploymentFailure” 或 “ProviderDeploymentFailure”

此問題可能包含更多詳細數據,例如「ResourceDeploymentFailure - 『AzureAsyncOperationWaiting』 資源作業已完成,終端機布建狀態為 'Failed'。」或「ProviderDeploymentFailure - 無法建立提供者的計劃:<提供者>」。

此故障是因為租戶未啟用 Azure Marketplace 購買。 請依照啟用Azure Marketplace購買步驟來啟用Azure Marketplace購買。

問題:量子工作區或儲存帳戶部署失敗

當您嘗試部署 Quantum 工作空間或儲存帳號時,可能會遇到以下其中一種錯誤:

  • 工作區:「資源寫入作業無法順利完成,因為它已達到終端機布建狀態 『Failed』」。
  • 記憶體帳戶:「範本部署因違反原則而失敗」。

如果您的訂用帳戶安全性原則封鎖建立已啟用公用存取的儲存體帳戶,則可能會發生此問題。 Azure Quantum 服務只支援有公開網路存取權的儲存帳號。

若要解決此問題,請與您的訂用帳戶管理員合作,以取得您想要使用的記憶體帳戶例外狀況。