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) に更新する必要があります。 詳細については、 QDK の更新を参照してください。
問題: 操作によって無効な状態コード 'Unauthorized' が返される
この問題を解決する手順:
Azure portal (https://portal.azure.com) を開き、アカウントを認証します。
[ Navigate で Subscriptions を選択し、サブスクリプションを選択します。
[アクセス制御 (IAM)] を選択します。
[アクセスの確認] で、メールアドレスを検索し、アカウントを選択します。
Owner または Contributor ロールは表示されません。
[ロールの割り当て] タブを選択します。
注
[ロールの割り当て] タブが表示されない場合は、ポータルを全画面表示にするか、<ご自身の名前> [割り当て] ウィンドウを閉じる必要があります。
Role ドロップダウンを選択し、Owner または Contributor を選択し、メール アドレスを入力してアカウントを選択します。
[保存] を選択します。
これで、所有者または共同作成者ロールのいずれかでアカウント セットが構成されていることがわかります。
もう一度 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];
注
この問題は、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 に設定されており、問題の関数に 無制限のtarget プロファイルが必要であることを示します。 target プロファイルを Unrestricted に設定するには:
- VS Code の Q# プログラムで、下部のステータス バーで Q#: QIR base を選択します。
- 上部のステータス バーに表示されるオプションから、 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 を選択し、ジョブ Name を選択して詳細ウィンドウを開きます。
- Azure Portal ワークスペースで、 Operations > Providers を選択します。 target コンピューターの可用性を確認します。 状態が targets のに送信されたジョブは、通常よりも長くキューに残ることがあります。 ジョブが処理されることがありますが、タイムアウトして target 使用できないエラーが返されることがあります。
問題: プログラムによってワークスペースに接続するときに認証を求められ続ける
Jupyter Notebook 内など、Azure Quantum Python SDK を使用していて、AzureQuantumProvider
クラスを使用してワークスペースに接続している場合は、スクリプトを実行するたびに Azure に対して認証するポップアップが表示されることがあります。
このポップアップは、スクリプトを実行するたびにセキュリティ トークンがリセットされるために発生します。
この問題を解決するには、Azure CLI を使用して az login
を実行します。 詳細については、「 az login」を参照してください。
問題: azure-quantum パッケージを更新した後、ジョブを監視するときに "ModuleNotFoundError: no module named 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) が入力プログラムで実行されることを前提としています。 このアプローチでは、すべてのクリフォード操作が 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 状態を生成できる 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 つのジョブに対して maxDuration
と maxPhysicalQubits
の両方の制約を指定すると、 BothDurationAndPhysicalQubitsProvided
エラーが返されます。
問題: QIR の推定カウント コンテナーを実行: 未定義のシンボル __quantum__rt__result_record_output
このエラーは、 パラメーターを record_output
に設定せずに、False
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 クレジットは、量子ハードウェア プロバイダーでは使用できません。 30 日間のサインアップ後、または 200 ドルの無料 Azure クレジット (どちらか早い方) を使用した 後、Azure Quantum サービスを引き続き使用するには、従量課金制サブスクリプション にアップグレード 必要があります。 アクティブなサブスクリプションを取得すると、Azure portal からワークスペース作成フォームにアクセスできるようになります。
サブスクリプションと関連するロールの一覧については、「 サブスクリプションの確認を参照してください。
問題: Quick create オプションが使用できません
Quick create オプションを使用するには、選択したサブスクリプションの Owner である必要があります。 サブスクリプションと関連するロールの一覧については、「 サブスクリプションの確認を参照してください。 サブスクリプション Contributor の場合は、 Advanced create オプションを使用してワークスペースを作成できます。
問題: リソース グループまたはストレージ アカウントを作成または選択できない
この問題は、サブスクリプション、リソース グループ、またはストレージ アカウント レベルで必要な承認がないために発生します。 必要なアクセス レベルの詳細については、「 ワークスペースを作成するためのロール要件を参照してください。
問題: Create を選択すると、"デプロイ検証に失敗しました" というエラー メッセージが表示される
このエラー メッセージには、"クライアントにはアクションを実行するための承認がありません" などの詳細が含まれている場合があります。
この問題は、サブスクリプション、リソース グループ、またはストレージ アカウント レベルで必要な承認がないために発生します。 必要なアクセス レベルの詳細については、「 ワークスペースを作成するためのロール要件を参照してください。
最近アクセスが許可された場合は、ページの更新が必要になる場合があります。 新しいロールの割り当てが、スタック全体でキャッシュされたアクセス許可に対して有効になるまでに最大 1 時間かかる場合があります。
問題: [プロバイダー] タブに特定の量子ハードウェア プロバイダーが表示されない
この問題は、プロバイダーがサブスクリプションが設定されている課金リージョンをサポートしていないために発生します。 たとえば、サブスクリプションがイスラエルで設定されている場合、[プロバイダー] タブには、利用可能なプロバイダーとして Rigetti が一覧表示されません。 プロバイダーの一覧とその国/リージョン別の可用性については、「azure Quantum プロバイダーのグローバルな可用性を参照してください。
問題: ワークスペースの作成またはプロバイダーの追加/削除が "ResourceDeploymentFailure" または "ProviderDeploymentFailure" で失敗する
この問題には、「ResourceDeploymentFailure - 'AzureAsyncOperationWaiting' リソース操作がターミナル プロビジョニング状態 '失敗' で完了しました。」や「ProviderDeploymentFailure - プロバイダーのプランを作成できませんでした: <プロバイダーの名前>」などの詳細が含まれる場合があります。
このエラーは、テナントが Azure Marketplace の購入を有効にしていないために発生します。 Azure Marketplace の購入の有効化の手順に従って、Azure Marketplace の購入を有効にします。
問題: Quantum ワークスペースのデプロイまたはストレージ アカウントのデプロイが失敗し、次のいずれかのエラーが発生する。
- ワークスペース: "リソースの書き込み操作は、ターミナル のプロビジョニング状態 'Failed' に達したため、正常に完了できませんでした。"
- ストレージ アカウント: "ポリシー違反のため、テンプレートのデプロイに失敗しました"。
この問題は、サブスクリプションのセキュリティ ポリシーによって、パブリック アクセスが有効になっているストレージ アカウントの作成がブロックされている場合に発生する可能性があります。 Azure Quantum サービスでは、パブリック インターネット アクセス経由のストレージ アカウントのみがサポートされます。
これを解決するには、サブスクリプション管理者と協力して、使用するストレージ アカウントの例外を取得します。
Azure Quantum ポータル
問題: 保存されたノートブックが読み込まれない
ワークスペースで Notebooks を選択すると、保存したノートブックの一覧に進行状況バーが表示されますが、読み込まれることはありません。
このシナリオは、次の 3 つの理由で発生する可能性があります。
ストレージ アカウントが存在しなくなった場合。 これは、ワークスペースにリンクされているストレージ アカウントが削除された場合に発生する可能性があります。 確認するには、ワークスペースの Overview ページを選択し、ストレージ アカウントへのリンクを選択します。 ストレージ アカウントが削除されている場合は、404 - 見つかりません エラーが表示されます。
ストレージ アカウントでパブリック インターネット アクセスが有効になっていない場合。 詳細については、「 認証エラー を参照してください。
ワークスペースの管理対象の ID がストレージ アカウントの共同作成者でない場合。 ワークスペース ID (ワークスペースと同じ名前を使用) に、ストレージ アカウントへの Contributor ロールの割り当てが残っていることを確認します。 確認するには、ワークスペースの Overview ページを選択し、ストレージ アカウントへのリンクを選択します。 ストレージ アカウントの Overview ページで、 Access コントロール (IAM) を選択し、ワークスペースが Contributor の下に一覧表示されていることを確認します。