次の方法で共有


Azure Quantum の一般的な問題のトラブルシューティング

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

ワークスペースへの接続

問題: pytket-azure CI を使用して Azure Quantum に対して認証できない

環境変数 "AZURE_TENANT_ID"、"AZURE_CLIENT_ID"、および "AZURE_CLIENT_SECRET" を使用して CI 環境内の pytket-azure パッケージを介して Azure Quantum に対して認証しようとすると、エラーが発生する可能性があります。

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

この問題を解決するには、代わりに接続文字列と環境変数 "AZURE_QUANTUM_CONNECTION_STRING" を使用して認証を試みます。 詳細については、「接続文字列を使用した接続」を参照してください。

connection_string = "[Copy connection string]" 

import os 

os.environ["AZURE_QUANTUM_CONNECTION_STRING"] = connection_string 

ジョブの送信

問題: 見つからない targets

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

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

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

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

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

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

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

  5. Owner または Contributor ロールは表示されません。

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

    Note

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

  7. Role ドロップダウンを選択し、Owner または Contributor を選択し、メール アドレスを入力してアカウントを選択します。

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

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

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

問題: "AuthorizationFailure - この要求は、この操作を実行する権限がありません"

Azure Quantum サービスへの有効な接続がある場合でも、このメッセージでジョブの送信が失敗した場合、ストレージ アカウントがパブリック ネットワーク アクセスをブロックするように構成されている可能性があります。 Azure Quantum サービスでは、パブリック インターネット アクセス経由のストレージ アカウントのみがサポートされます。

ストレージ アカウントを確認するには:

  • Azure Portal の量子ワークスペース ページで、 Overview を選択し、ストレージ アカウントを選択します。
  • ストレージ アカウント ページの Security + networking で、 Networking を選択します。
  • ファイアウォールと仮想ネットワークタブの パブリック ネットワーク アクセスで、すべてのネットワークを有効にするが選択されていることを確認します。

問題: 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];

Note

この問題は、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 プロファイルを Unrestricted に設定するには:

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

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

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

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

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

  • Azure portal で新しい Quantum ワークスペースに移動します
  • Overview>Essentials>Storage アカウントで、ストレージ アカウントのリンクを選択します
  • 左側のナビゲーション バーで [アクセス制御 (IAM)] を選択します
  • [ロールの割り当て] を選択します
  • ワークスペースが共同作成者として表示されていることを確認します
  • ワークスペースが Contributor として表示されない場合は 次のいずれかを実行できます。
    • 新しいワークスペースを作成する。このとき必ず、ブラウザーのタブ、ウィンドウを閉じずにワークスペースの作成が完了するのを待ちます。
    • ストレージ アカウントの下に適切なロールの割り当てを追加する
      • [アクセス制御 (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 との依存関係の競合が原因である可能性があります。 ローカル コンピューター上の pyqirpyqir-*、および 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 を選択し、ジョブ Name を選択して詳細ウィンドウを開きます。
  • Azure Portal ワークスペースで、 Operations > Providers を選択します。 target コンピューターの可用性を確認します。 状態が Degraded のtargetsに送信されたジョブは、通常よりも長くキューに残ることがあります。 ジョブが処理されることがありますが、タイムアウトして target 使用できないエラーが返されることがあります

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

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

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

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

問題: azure-quantum パッケージを更新した後、ジョブを監視するときに "ModuleNotFoundError: no module named qiskit.tools" というエラーが表示される

Qiskit 1.0 の時点で、job_monitor()関数に必要な qiskit.tools モジュールは非推奨になりました。 ジョブを監視するには、 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 は、 Parallel Synthesis Sequential Pauli Computation (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 状態を生成できる 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 は、その時点で maxDuration 制約または maxPhysicalQubits 制約のうち 1 つだけを受け入れますが、2 つは受け入れません。 1 つのジョブに対して maxDurationmaxPhysicalQubitsの両方の制約を指定すると、 BothDurationAndPhysicalQubitsProvided エラーが返されます。

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

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

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

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

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

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

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

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

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

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

問題: Quick create オプションが使用できません

Quick create オプションを使用するには、選択したサブスクリプションの Owner である必要があります。 サブスクリプションと関連するロールの一覧については、「 サブスクリプションの確認を参照してください。 サブスクリプション Contributor の場合は、 Advanced create オプションを使用してワークスペースを作成できます。

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

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

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

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

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

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

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

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

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

この問題には、"ResourceDeploymentFailure - ターミナル プロビジョニング状態 'Failed' で完了した 'AzureAsyncOperationWaiting' リソース操作"、"ProviderDeploymentFailure - Failed to create plan for provider: <Name of the provider>" などの詳細が含まれる場合があります。

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

問題: Quantum ワークスペースのデプロイまたはストレージ アカウントのデプロイが失敗し、次のいずれかのエラーが発生する。

  • ワークスペース: "リソースの書き込み操作は、ターミナル のプロビジョニング状態 'Failed' に達したため、正常に完了できませんでした。"
  • ストレージ アカウント: "ポリシー違反のため、テンプレートのデプロイに失敗しました"。

この問題は、サブスクリプションのセキュリティ ポリシーによって、パブリック アクセスが有効になっているストレージ アカウントの作成がブロックされている場合に発生する可能性があります。 Azure Quantum サービスでは、パブリック インターネット アクセス経由のストレージ アカウントのみがサポートされます。

これを解決するには、サブスクリプション管理者と協力して、使用するストレージ アカウントの例外を取得します。

Azure Quantum ポータル

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

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

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

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

  2. ストレージ アカウントでパブリック インターネット アクセスが有効になっていない場合。 詳細については、「 認証エラー を参照してください。

  3. ワークスペースのマネージド ID がストレージ アカウントに Contributor ではない場合。 ワークスペース ID (ワークスペースと同じ名前を使用) に、ストレージ アカウントへの Contributor ロールの割り当てが残っていることを確認します。 確認するには、ワークスペースの Overview ページを選択し、ストレージ アカウントへのリンクを選択します。 ストレージ アカウントの Overview ページで、 Access コントロール (IAM) を選択し、ワークスペースが Contributor の下に一覧表示されていることを確認します。