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」を参照してください。
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 サービスは、パブリック インターネット アクセスを持つストレージ アカウントのみをサポートします。
これを解決するには、サブスクリプション管理者と協力して、使用するストレージ アカウントの例外を取得します。