Azure Quantum のトラブルシューティング

Azure Quantum サービスを使用する場合、これらの一般的な問題が発生する可能性があります。 それらを解決する方法を確認します。

ジョブの送信

問題: 見つかりません targets

ジョブを target 実行する場所が使用可能な target 一覧にない場合は、最新バージョンの Quantum Development Kit for Visual Studio Code に更新する必要がある可能性があります。 詳細については、「 QDK の更新」を参照してください。

問題: 操作によって無効な状態コード 'Unauthorized' が返される

この問題を解決する手順:

  1. Azure portal (https://portal.azure.com) を開き、アカウントを認証します。

  2. [ 移動] で[ サブスクリプション ] を選択し、サブスクリプションを選択します。

  3. [アクセス制御 (IAM)] を選択します。

  4. [アクセスの確認] で、メールアドレスを検索し、アカウントを選択します。

  5. 所有者または共同作成者ロールが一覧表示されません。

  6. [ロールの割り当て] タブを選択します。

    Note

    [ロールの割り当て] タブが表示されない場合は、ポータルを全画面表示にするか、<ご自身の名前> [割り当て] ウィンドウを閉じる必要があります。

  7. [ ロール ] ドロップダウンを選択し、[ 所有者 ] または [ 共同作成者] を選択し、メール アドレスを入力してアカウントを選択します。

  8. [保存] を選択します。

  9. これで、所有者または共同作成者ロールのいずれかでアカウント セットが構成されていることがわかります。

  10. もう一度 Azure Quantum ワークスペースを作成し、この新しいワークスペースに対してジョブを送信します。

問題: CLI を使用して Q# プログラムを送信しようとすると "プログラムをコンパイルできませんでした" というエラーが発生する

コマンド プロンプトで az quantum submit コマンドを使用してジョブを送信しようとすると、次のエラー メッセージが表示される場合があります。

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

このエラーは、コンパイルが失敗する原因となる Q# プログラムに問題がある場合に発生します。

問題: コンパイラ エラー "ゲート パラメーターの数が間違っています"

ローカル Jupyter Notebookまたはコマンド ライン環境から 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];

注意

この問題は、Azure Quantum ポータルでホストされているノートブックでは発生せず、ローカル開発環境でのみ発生します。

問題: コンパイラ エラー "現在のコンパイル構成では使用できません"

VS Code のJupyter Notebookで Q# コード セルを実行すると、エラーが発生する可能性があります。

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

このエラーは、QIR target プロファイルが Basic に設定され、問題の関数に Unrestrictedtarget プロファイルが必要であることを示します。 プロファイルを [無制限]target に設定するには:

  1. VS Code の Q# プログラムで、下部のステータス バーの [Q#: QIR base ] を選択します。
  2. 上部のステータス バーに表示されるオプションから、[ Q#: unrestricted] を選択します。

問題: 操作によって無効な状態コード 'Forbidden' が返される

最初のジョブを送信すると、"禁止" エラー コードが表示されることがあります。

ワークスペースの作成中にこの問題が発生する場合があります。Azure Quantum が、新しいワークスペースを指定したストレージ アカウントにリンクするためのロールの割り当てを完了できません。 よくある原因は、ワークスペースの作成が完了する前にタブまたはブラウザーのウィンドウを閉じることです。

次の手順に従って、このロールの割り当ての問題が発生していることを確認できます。

  • Azure portal で新しい Quantum ワークスペースに移動します
  • [概要>Essentials>ストレージ アカウント] で、ストレージ アカウントのリンクを選択します
  • 左側のナビゲーション バーで [アクセス制御 (IAM)] を選択します
  • [ロールの割り当て] を選択します
  • ワークスペースが共同作成者として表示されていることを確認します
  • ワークスペースが 共同作成者 として表示されない場合は、次のいずれかを実行できます。
    • 新しいワークスペースを作成する。このとき必ず、ブラウザーのタブ、ウィンドウを閉じずにワークスペースの作成が完了するのを待ちます。
    • ストレージ アカウントで適切なロールの割り当てを追加する
      • [アクセス制御 (IAM)] > [ロールの割り当ての追加]
      • [ロール] > [共同作成者]
      • [アクセスの割り当て先] > [ユーザー、グループ、またはサービス プリンシパル]
      • [選択] > [ワークスペース名]
      • [保存]

問題: ジョブがエラー コードで失敗する: QIRPreProcessingFailed

Rigetti プロバイダーにジョブを送信すると、ジョブは失敗し、Azure portalのジョブ 管理コンソールで報告されます。

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 のすべてのバージョンをアンインストールし、[qiskit] パラメーターを使用して azure-quantum Python パッケージをインストールまたは更新します。

pip install --upgrade azure-quantum[qiskit]

問題: 失敗したジョブに関する基本情報の取得

ハードウェア targetにジョブを送信した後、ジョブが失敗する前に数時間、または 1 日または 2 日間キューに配置される可能性があります。

エラーに関する詳細情報を取得するには:

  • get_results()ジョブ オブジェクトと共に メソッドを使用して、出力または返されたエラー メッセージを表示します。
job.get_results()
  • Azure Portal ワークスペースで[Operations Job Management]\(操作ジョブ管理\) >を選択し、ジョブを選択して詳細ウィンドウを開きます。
  • Azure Portal ワークスペースで、 運用 > プロバイダーを選択します。 マシンの可用性を確認します target 。 状態が Degraded の にtargets送信されたジョブは、通常よりも長くキューに残る場合があります。 ジョブが処理される場合もありますが、タイムアウトして使用できないというエラーtargetが返されることがあります。

問題: プログラムによってワークスペースに接続するときに認証を求められ続ける

Azure Quantum Python SDK (たとえば Jupyter ノートブック内) を使用していて、AzureQuantumProvider クラスを使用してワークスペースに接続している場合は、スクリプトを実行するたびに Azure に対して認証するためのポップアップが表示されることがあります。

これは、スクリプトを実行するたびにセキュリティ トークンがリセットされるために発生します。

この問題を解決するには、Azure CLI を使用して を実行 az login します。 詳細については、「 az login」を参照してください。

問題: azure-quantum パッケージを更新した後、ジョブを監視するときに "ModuleNotFoundError: qiskit.tools という名前のモジュールがありません" というエラーが表示されます

Qiskit 1.0 の時点で、関数に qiskit.tools 必要な job_monitor() モジュールは非推奨となりました。 ジョブを監視するには、 または 関数を使用 wait_for_final_state() します result

job = MyTarget.run(circuit, shots=100)

# to wait until the job is complete
job.wait_for_final_state() 

# to return the results of the job
result = job.result()

Azure Quantum リソース推定器

次の一般的なシナリオでは、リソース推定ジョブが完了しない可能性があります。 それらを解決する方法を参照してください。

問題: 量子アルゴリズムには、少なくとも 1 つの T 状態または測定が含まれている必要があります

任意の量子プログラムを論理量子ビットの 2D 配列にマッピングするために、Resource Estimator は、並列合成シーケンシャル パウリ計算 (PSSPC) (arXiv:2211.07629、付録 D を参照) が入力プログラムで実行されることを前提としています。 このアプローチでは、すべてのクリフォード操作は、すべてのTゲート、回転ゲート、および測定操作を通過し、古典的に効率的に評価できる単一のクリフォード操作を残します。 したがって、T ゲートや回転ゲートなどの T 状態も測定操作も含まない量子プログラムでは、物理量子コンピューティング リソースは必要ありません。

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 の値にする必要があります。 さらに、エラー修正を有効にするには、ゲートと測定値の物理的なエラー率が、エラー修正コードのプロパティと必要な論理エラー率に依存する値を下回る必要があります。

このようなシナリオでできることは次のとおりです。

  • 論理エラーの合計または部分のエラー予算を増やします。
  • 量子ビット パラメーターの物理エラー 率を減らします。

問題: 制約の最大ランタイムと物理量子ビットの最大数は相互に排他的です

Resource Estimator は、一度に 1 つまたは複数のmaxDurationmaxPhysicalQubits制約のみを受け入れますが、2 つは受け入れられません。 1 つのジョブに と maxPhysicalQubits制約の両方maxDurationを指定すると、エラーが返されますBothDurationAndPhysicalQubitsProvided

問題: QIR 推定カウント コンテナーの実行: 未定義のシンボル __quantum__rt__result_record_output

このエラーは、 パラメーターを にFalse設定せずに、qiskit_qir Python パッケージを介して Qiskit 回線用の QIR をrecord_output生成した結果です。

このエラーを回避するには、次のいずれかの操作を行います。

  • Azure_quantum Python パッケージを使用して、Qiskit 回線を Azure Quantum に送信します (推奨)。
  • qiskit_qir Python パッケージを使用する場合は、回線を送信する前に 必ず パラメーターを record_outputFalse設定してください。

Azure Quantum ワークスペースの作成

Azure portalを使用してワークスペースを作成すると、次の問題が発生する可能性があります。

問題: Azure portalのワークスペース作成フォームにアクセスできません。代わりにサブスクリプションにサインアップするように求められます

この問題は、アクティブなサブスクリプションがないために発生します。

たとえば、 30 日間の無料試用版 Azure サブスクリプションにサインアップしている可能性があります。これには、Azure サービスで使用する 200 ドル (米国ドル) の無料 Azure クレジットが含まれます。 これらの Azure クレジットは Azure Quantum クレジット と同じで、量子ハードウェア プロバイダーでは使用できないことに注意してください。 30 日間サインアップした後、または 200 ドルの無料 Azure クレジットを使用した後 (どちらか早い方)、Azure Quantum サービスを引き続き使用するには、従量課金制サブスクリプションにアップグレードする必要があります。 アクティブなサブスクリプションを作成すると、Azure portalによってワークスペース作成フォームにアクセスできるようになります。

サブスクリプションと関連するロールの一覧を表示するには、「 サブスクリプションを確認する」を参照してください。

問題: [クイック作成 ] オプションが使用できない

[クイック作成] オプションを使用するには、選択したサブスクリプションの所有者である必要があります。 サブスクリプションと関連するロールの一覧を表示するには、「 サブスクリプションを確認する」を参照してください。 サブスクリプション 共同作成者の場合は、[ 高度な作成 ] オプションを使用してワークスペースを作成できます。

問題: リソース グループまたはストレージ アカウントを作成または選択できない

この問題は、サブスクリプション、リソース グループ、またはストレージ アカウント レベルで必要な承認がないために発生します。 必要なアクセス レベルの詳細については、「 ワークスペースを作成するためのロール要件」を参照してください。

問題: Createを選択すると、"デプロイ検証に失敗しました" というエラー メッセージが表示される

このエラー メッセージには、"クライアントにはアクションを実行するための承認がありません" などの詳細が含まれる場合があります。

この問題は、サブスクリプション、リソース グループ、またはストレージ アカウント レベルで必要な承認がないために発生します。 必要なアクセス レベルの詳細については、「 ワークスペースを作成するためのロール要件」を参照してください。

アクセスが最近許可された場合は、ページの更新が必要になる場合があります。 新しいロールの割り当てがスタック全体でキャッシュされたアクセス許可に対して有効になるまでに最大 1 時間かかる場合があります。

問題: [プロバイダー] タブに特定の量子ハードウェア プロバイダーが表示されない

この問題は、プロバイダーがサブスクリプションが設定されている課金リージョンをサポートしていないために発生します。 たとえば、サブスクリプションがイスラエルで設定されている場合、[プロバイダー] タブに Rigetti が使用可能なプロバイダーとして一覧表示されません。 プロバイダーの一覧と、その国/地域ごとの可用性については、「 Azure Quantum プロバイダーのグローバルな可用性」を参照してください。

問題: ワークスペースの作成またはプロバイダーの追加/削除が "ResourceDeploymentFailure" または "ProviderDeploymentFailure" で失敗する

この問題には、"ResourceDeploymentFailure - ターミナル プロビジョニング状態 'Failed' で完了した 'AzureAsyncOperationWaiting' リソース操作、"ProviderDeploymentFailure - プロバイダーのプランの作成に失敗しました: < プロバイダー>の名前" などの詳細が含まれる場合があります。

これは、テナントが購入Azure Marketplace有効にしていないために発生します。 「Azure Marketplace購入を有効にする」の手順に従って、Azure Marketplace購入を有効にします。

Azure Quantum ポータル

問題: 保存したノートブックが読み込まれない

ワークスペースで [ノートブック] を選択すると、保存したノートブックの一覧に進行状況バーが表示されますが、読み込まれることはありません。

これは、次の 2 つの理由で発生する可能性があります。

  1. ストレージ アカウントが存在しない場合。 これは、ワークスペースにリンクされているストレージ アカウントが削除された場合に発生する可能性があります。 確認するには、ワークスペースの [概要 ] ページを選択し、ストレージ アカウントへのリンクを選択します。 ストレージ アカウントが削除されている場合は、 404 - 見つかりません というエラーが表示されます。

  2. ワークスペースのマネージド ID がストレージ アカウントの 共同作成者 でない場合。 ワークスペース ID (ワークスペースと同じ名前を使用) に、ストレージ アカウントへの 共同作成者 ロールの割り当てが残っていることを確認します。 確認するには、ワークスペースの [概要 ] ページを選択し、ストレージ アカウントへのリンクを選択します。 ストレージ アカウントの [ 概要 ] ページで、[ アクセス制御 (IAM)] を選択し、ワークスペースが [共同作成者] の下に一覧表示されていることを確認します。