Azure Quantum サービスを使用すると、接続またはジョブ関連の問題が発生する可能性があります。 この記事では、これらの問題をトラブルシューティングする方法について説明します。
ワークスペースの接続に関する問題
問題: pytket-azure を使用してAzure Quantumに対して認証できない
環境変数 pytket-azure、"AZURE_TENANT_ID"、および "AZURE_CLIENT_ID" を使用して、CI 環境で "AZURE_CLIENT_ID" パッケージを使用してAzure Quantumを認証しようとすると、次のエラーが発生する可能性があります。
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 targetが使用可能な target リストにない場合は、最新バージョンの Quantum Development Kit (QDK) for Visual Studio Code (VS Code) に更新します。 詳細については、 QDK の更新を参照してください。
問題: 操作によって無効な状態コード 'Unauthorized' が返される
この問題を解決するには、次の手順を実行します。
- Azure ポータルにサインインし、アカウントを認証します。
- ジョブを送信しようとしている Quantum ワークスペースに移動します。
- ワークスペースのナビゲーション ウィンドウで、[ アクセス制御 (IAM)] を選択します。
- [アクセス権の 表示 ] ボタンを選択します。 [割り当て] ウィンドウが開きます。
- [ロールの割り当て] テーブルの [ロール] 列で、所有者ロールと共同作成者ロールのどちらを持っているかを確認します。
- どちらのロールも持っていない場合は、サブスクリプション管理者に依頼して、このワークスペースの 所有者 ロールまたは 共同作成者 ロールを割り当てるように依頼してください。
問題: "AuthorizationFailure - この要求は、この操作を実行する権限がありません"
Azure Quantum サービスへの有効な接続がある場合でも、このメッセージが表示される場合は、ストレージ アカウントがパブリック ネットワーク アクセスをブロックするように構成されている可能性があります。 Azure Quantum サービスは、パブリック インターネット アクセスを持つストレージ アカウントのみをサポートします。
ストレージ アカウントの設定を確認するには、次の手順に従います。
- Azure portal にサインインします。
- Quantum ワークスペースに移動します。
- [ 概要 ] ページで、 ストレージ アカウントを選択します。
- ナビゲーション ウィンドウで、[ セキュリティ + ネットワーク ] ドロップダウンを展開し、[ ネットワーク] を選択します。
- [パブリック アクセス] タブの [パブリック ネットワーク アクセス] セクションで、[管理] ボタンを選択します。
- [ パブリック ネットワーク アクセス ] 設定で、[ 有効] を選択します。 [パブリック ネットワーク アクセス スコープ] 設定で、[すべてのネットワークから有効にする] を選択します。
- [保存] ボタンを選択します。
問題: 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];
問題: コンパイラ エラー "現在のコンパイル構成では使用できません"
VS Code のJupyter Notebookで Q# コード セルを実行すると、エラーが発生する可能性があります。
<function name> not found. Found a matching item `<function name>' that is not available for the current compilation configuration
このエラーは、関数に target プロファイルが必要な場合に、QIR (量子中間表現) プロファイルを target に設定したことを示します。 target プロファイルの種類を指定しない場合、コンパイラは自動的にtargetを Unrestricted に設定します。
問題: 操作によって無効な状態コード 'Forbidden' が返される
最初のジョブを送信すると、 'forbidden' エラー コードが表示されることがあります。
この問題は、Azure ポータルで新しいワークスペースを作成するときに、Azure Quantumが、指定したストレージ アカウントにワークスペースをリンクするロールの割り当てを完了できない場合に発生します。 これは、ワークスペースの作成が完了する前にタブまたは Web ブラウザーを閉じるときに発生する可能性があります。
このロールの割り当ての問題が発生していることを確認するには、次の手順に従います。
- Azure ポータルで Quantum ワークスペースに移動します。
- [ 概要 ] ページで、 ストレージ アカウントを選択します。
- ナビゲーション ウィンドウで、Access Control (IAM) を選択します。
- [ ロールの割り当て ] タブを選択します。
- [ ロール ] 列で、ワークスペースのストレージ アカウントに ストレージ アカウント共同作成者 ロールと ストレージ BLOB データ共同作成者 ロールがあるかどうかを確認します。
ワークスペースにストレージ アカウントにこれらのロールの両方がない場合は、次のいずれかの操作を行います。
- 新しいワークスペースを作成し、Web ブラウザー ウィンドウまたはタブを閉じる前に、ワークスペースの作成が完了していることを確認します。
- ストレージ アカウントの共同作成者ロールとストレージ BLOB データ共同作成者ロールを、ストレージ アカウントのワークスペースに割り当てます。
問題: エラー コード QIRPreProcessingFailed でジョブが失敗する
Rigetti target にジョブを送信すると、ジョブが失敗すると、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
このエラーは、以前のバージョンの pyqir または qiskit-qirとの依存関係の競合が原因で発生する可能性があります。 ローカル コンピューター上の pyqir、pyqir-*、および qiskit-qir のすべてのバージョンをアンインストールし、qdk および azure の追加機能を使用して、qiskit Python ライブラリをインストールまたは更新します。
pip install --upgrade "qdk[azure,qiskit]"
問題: 失敗したジョブに関する基本情報の取得
ハードウェア targetにジョブを送信すると、ジョブが失敗するまで数時間または数日間、ジョブがキューに配置されることがあります。
ジョブの失敗に関する詳細情報を取得するには、次のいずれかの操作を行います。
ジョブの出力またはエラー メッセージを表示するには、
get_results()Python モジュールのqdk.azureメソッドを使用します。job.get_results()Azure ポータルの Quantum ワークスペースで、 Job Management ペインの Operations ドロップダウンから移動し、ジョブ Name を選択して、Job details ペインを開きます。
Azure ポータルの Quantum ワークスペースで、
Operations ドロップダウンから ペインに移動します。 target ハードウェアが使用可能であることを確認します。 target状態が低下している場合、ジョブは通常よりも長くキューに残る可能性があります。 ジョブが処理されることがありますが、タイムアウトして target 使用できないエラーが返されることがあります。Providers
問題: Azure Quantumプログラムでワークスペースに接続するときに認証を求めるメッセージが表示される
Azure Quantum Python SDK を使用していて、AzureQuantumProvider クラスを使用してワークスペースに接続している場合は、スクリプトを実行するたびに、Azureに対する認証を行うポップアップが表示されることがあります。
このポップアップは、スクリプトを実行するたびにセキュリティ トークンがリセットされるために発生します。
この問題を解決するには、Azure CLIから az login を実行します。 詳細については、「 az login」を参照してください。
Microsoft Quantum リソース推定の問題
次の問題により、リソース推定ジョブが失敗する可能性があります。
問題: 量子アルゴリズムに少なくとも 1 つの T 状態または測定が含まれている必要がある
任意の量子プログラムを論理量子ビットの 2D 配列にマッピングするために、リソース推定器は、入力プログラムに対して並列合成シーケンシャル パウリ計算 (PSSPC) が実行されることを前提としています。 このアプローチでは、すべてのクリフォード操作が T ゲート、回転ゲート、測定操作を通過する形で移動され、その結果、古典的に効率的に評価できる単一のクリフォード操作が残ります。 したがって、T 状態を含まない量子プログラム (たとえば、T ゲートや回転ゲートから)、または測定操作では、物理的な量子コンピューティング リソースは必要ありません。 並列合成シーケンシャル パウリ計算の詳細については、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 ゲート、回転ゲート、およびトフォリ ゲートを減らすことで、量子プログラムの 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 の値のみを指定できます。 エラー修正を有効にするには、ゲートと測定の物理的な誤差率が、誤差修正コードのプロパティと必要な論理誤差率に依存する値を下回る必要があります。
この問題を解決するには、次のいずれかの操作を実行します。
- エラー予算 (合計または論理エラーの部分) を増やします。
- 量子ビット パラメーターの物理エラー 率を減らします。
問題: 制約の最大ランタイム数と物理量子ビットの最大数が相互に排他的である
リソース推定器は、 maxDuration 制約または maxPhysicalQubits 制約のいずれかを受け入れます。 1 つのジョブに対して maxDuration と maxPhysicalQubitsの両方の制約を指定すると、ジョブは BothDurationAndPhysicalQubitsProvided エラーを返します。
問題: QIR の推定カウント コンテナーを実行: 未定義のシンボル __quantum__rt__result_record_output
このエラーは、qiskit_qir Python パッケージを使用して Qiskit 回線の QIR を生成し、record_output パラメーターを False に設定していない場合に発生します。
このエラーを回避するには、次のいずれかの操作を行います。
-
qdk.azurePython モジュールを使用して、Qiskit 回線をAzure Quantumに送信します (推奨)。 -
qiskit_qirPython パッケージを使用する場合は、回線を送信する前に、record_outputパラメーターをFalseに設定します。
Azure Quantum ワークスペースの作成に関する問題
Azure ポータルで Quantum ワークスペースを作成すると、次の問題が発生する可能性があります。
問題: Azure ポータルでワークスペース作成フォームにアクセスできないので、代わりにサブスクリプションにサインアップするように求められます
この問題は、アクティブなAzure サブスクリプションがないために発生します。
30 日間無料試用版Azure サブスクリプションにサインアップすると、無料のAzure クレジットが得られます。 すべての無料クレジットを使用した後、またはサインアップ後 30 日後に、Azure Quantum サービスを引き続き使用するには、従年払いサブスクリプションにアップグレードする必要があります。 アクティブなサブスクリプションがある場合は、Azure ポータルでワークスペース作成フォームにアクセスできます。
サブスクリプションと関連するロールの一覧については、「 サブスクリプションの確認を参照してください。
注
30 日間の無料試用版Azure サブスクリプションのAzure クレジットは、量子ハードウェア プロバイダーでは使用できません。
問題: [簡易作成] オプションが使用できない
クイック作成オプションを使用するには、サブスクリプションの所有者である必要があります。 サブスクリプションと関連するロールの一覧については、「 サブスクリプションの確認を参照してください。 サブスクリプション Contributor の場合は、 Advanced create オプションを使用してワークスペースを作成できます。
問題: リソース グループまたはストレージ アカウントを作成または選択できない
この問題は、サブスクリプション、リソース グループ、またはストレージ アカウント レベルで必要な承認がないために発生します。 必要なアクセス レベルの詳細については、「 ワークスペースを作成するためのロール要件を参照してください。
問題: [作成] を選択すると、"デプロイ検証に失敗しました" というエラー メッセージが表示される
このエラー メッセージには、"クライアントにはアクションを実行するための承認がありません" などの詳細が含まれている場合があります。
この問題は、サブスクリプション、リソース グループ、またはストレージ アカウント レベルで必要な承認がないために発生します。 必要なアクセス レベルの詳細については、「 ワークスペースを作成するためのロール要件を参照してください。
最近アクセス権が付与された場合は、ページの更新が必要になる場合があります。 新しいロールの割り当ては、スタック全体でキャッシュされたアクセス許可に対して有効になるまでに最大 1 時間かかることがあります。
問題: [プロバイダー] タブに特定の量子ハードウェア プロバイダーが表示されない
この問題は、プロバイダーがサブスクリプションが設定されている課金リージョンをサポートしていないために発生します。 プロバイダーの一覧とその国/リージョン別の可用性については、Azure Quantum プロバイダーのグローバル可用性を参照してください。
問題: ワークスペースの作成またはプロバイダーの追加/削除が "ResourceDeploymentFailure" または "ProviderDeploymentFailure" で失敗する
この問題には、「ResourceDeploymentFailure - ターミナル プロビジョニング状態「Failed」で完了した「AzureAsyncOperationWaiting」リソース操作」、または「ProviderDeploymentFailure - プロバイダーの計画作成に失敗しました: <プロバイダーの名前>」などの詳細が含まれる場合があります。
このエラーは、テナントがAzure Marketplace購入を有効にしていないために発生します。 Azure Marketplace購入を有効にするには、Azure Marketplace購入の手順に従います。
問題: 量子ワークスペースまたはストレージ アカウントのデプロイが失敗する
Quantum ワークスペースまたはストレージ アカウントをデプロイしようとすると、次のいずれかのエラーが発生する可能性があります。
- ワークスペース: "リソースの書き込み操作は、ターミナル のプロビジョニング状態 'Failed' に達したため、正常に完了できませんでした。"
- ストレージ アカウント: "ポリシー違反のため、テンプレートのデプロイに失敗しました"。
この問題は、サブスクリプションのセキュリティ ポリシーによって、パブリック アクセスが有効になっているストレージ アカウントの作成がブロックされている場合に発生する可能性があります。 Azure Quantum サービスは、パブリック インターネット アクセスを持つストレージ アカウントのみをサポートします。
これを解決するには、サブスクリプション管理者と協力して、使用するストレージ アカウントの例外を取得します。