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 목록에서 누락된 경우 최신 버전의 Quantum Development Kit Visual Studio Code로 업데이트해야 할 수 있습니다. 자세한 내용은 QDK 업데이트를 참조 하세요.

문제: 작업이 잘못된 상태 코드 '권한 없음'을 반환합니다.

이 문제를 해결하는 단계:

  1. Azure Portal(https://portal.azure.com)을 열고 계정을 인증합니다.

  2. 탐색에서 구독을 선택하고 구독을 선택합니다.

  3. 액세스 제어(IAM) 를 선택합니다.

  4. 액세스 확인에서 전자 메일 주소를 검색하고 계정을 선택합니다.

  5. 소유자 또는 참가자 역할이 나열되지 않아야 합니다.

  6. 역할 할당 탭을 선택합니다.

    참고 항목

    역할 할당 탭이 표시되지 않으면 포털을 전체 화면으로 확장하거나 <사용자 이름> 할당 창을 닫아야 할 수 있습니다.

  7. 역할 드롭다운을 선택하고 소유자 또는 참가자를 선택한 다음 전자 메일 주소를 입력하고 계정을 선택합니다.

  8. 저장을 선택합니다.

  9. 이제 Owner 또는 Contributor 역할로 구성된 계정 집합이 표시됩니다.

  10. Azure Quantum 작업 영역을 다시 만들고 이 새 작업 영역에 대해 작업을 제출합니다.

문제: "AuthorizationFailure - 이 요청은 이 작업을 수행할 권한이 없습니다."

Azure Quantum 서비스에 대한 유효한 연결이 있더라도 이 메시지와 함께 작업 제출이 실패하는 경우 공용 네트워크 액세스를 차단하도록 스토리지 계정을 구성할 수 있습니다. Azure Quantum 서비스는 공용 인터넷 액세스를 통해서만 스토리지 계정을 지원합니다.

스토리지 계정을 확인하려면 다음을 수행합니다.

  • Azure Portal의 양자 작업 영역 페이지에서 개요를 선택하고 스토리지 계정을 선택합니다.
  • 스토리지 계정 페이지의 보안 + 네트워킹에서 네트워킹을 선택합니다.
  • 공용 네트워크 액세스의 방화벽 및 가상 네트워크 탭에서 모든 네트워크 사용이 선택되어 있는지 확인합니다.

문제: 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 포털의 호스트된 Notebook에서 발생하지 않고 로컬 개발 환경에서만 발생합니다.

문제: 컴파일러 오류 "현재 컴파일 구성에 사용할 수 없음"

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 프로필이 기본으로 설정되고 문제의 함수에 무제한target 프로필이 필요했음을 나타냅니다. 프로필을 무제한으로 설정하려면 다음을 target 수행합니다.

  1. VS Code의 Q# 프로그램에 있는 동안 아래쪽 상태 표시줄에서 Q#: QIR 베이스를 선택합니다.
  2. 위쪽 상태 표시줄에 표시되는 옵션에서 Q#: 무제한을 선택합니다.

문제: 연산이 잘못된 상태 코드 ‘금지됨’을 반환

첫 번째 작업을 제출하면 '사용할 수 없음' 오류 코드가 나타날 수 있습니다.

이 문제는 작업 영역을 만드는 동안 발생할 수 있습니다. Azure Quantum은 새 작업 영역을 지정된 스토리지 계정에 연결하는 역할 할당을 완료하지 못합니다. 이 상황에 대한 일반적인 시나리오는 작업 영역 생성이 완료되기 전에 탭 또는 웹 브라우저 창이 닫히면 발생합니다.

다음 단계에 따라 이 역할 할당 문제가 발생하는지 확인할 수 있습니다.

  • Azure Portal에서 새 양자 작업 영역으로 이동합니다.
  • 개요>Essentials>Storage 계정에서 스토리지 계정 링크를 선택합니다.
  • 왼쪽 탐색 영역에서 액세스 제어(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 작업 영역에서 작업 작업 관리를 선택한 다음 작업 이름을 선택하여 세부 정보 창을 엽니다.>
  • Azure Portal 작업 영역에서 작업 공급자를 > 선택합니다. 컴퓨터의 가용성을 확인합니다 target . 성능 저하 상태로 제출된 targets 작업은 평소보다 더 오래 큐에 있을 수 있습니다. 때로는 작업이 처리되지만 시간이 초과되어 사용할 수 없는 오류가 target 반환되는 경우도 있습니다.

문제: 프로그래밍 방식으로 작업 영역에 연결할 때 인증하라는 메시지가 계속 표시됩니다.

예를 들어 Jupyter Notebook 내에서 Azure Quantum Python SDK를 사용하고 AzureQuantumProvider 클래스를 사용하여 작업 영역에 연결하는 경우 스크립트를 실행할 때마다 Azure에 인증하는 팝업이 발생할 수 있습니다.

이 문제는 스크립트를 실행할 때마다 보안 토큰이 다시 설정되기 때문에 발생합니다.

Azure CLI를 사용하여 실행 az login 하여 이 문제를 해결할 수 있습니다. 자세한 내용은 az login을 참조 하세요.

문제: azure-quantum 패키지를 업데이트한 후 작업을 모니터링할 때 "ModuleNotFoundError: qiskit.tools라는 모듈 없음" 오류가 발생합니다.

Qiskit 1.0 qiskit.tools 부터 함수에 job_monitor() 필요한 모듈은 더 이상 사용되지 않습니다. 작업을 모니터링하려면 함수 또는 함수를 result 사용합니다wait_for_final_state().

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 리소스 추정기

다음 일반적인 시나리오에서는 리소스 예측 작업이 완료되지 않을 수 있습니다. 해결 방법을 참조하세요.

문제: 양자 알고리즘은 하나 이상의 T 상태 또는 측정값을 포함해야 합니다.

임의의 양자 프로그램을 논리 큐비트의 2D 배열에 매핑하기 위해 리소스 추정기는 PSSPC(병렬 합성 순차 Pauli 계산)(arXiv:2211.07629 참조, 부록 D)가 inputprogram에서 수행된다고 가정합니다. 이러한 접근 방식에서 모든 클리포드 작업은 모든 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 사이의 값이어야 합니다. 또한 오류 수정이 적용되려면 게이트 및 측정값의 실제 오류 비율이 오류 수정 코드의 속성과 필요한 논리적 오류 비율에 따라 달라지는 값보다 낮아야 합니다.

이러한 시나리오에서 수행할 수 있는 작업은 다음과 같습니다.

  • 논리적 오류에 대한 총 또는 부분의 오류 예산을 늘입니다.
  • 큐비트 매개 변수의 실제 오류 비율을 줄입니다.

문제: 제약 조건 최대 런타임 및 최대 물리적 큐비트 수는 상호 배타적입니다.

리소스 추정기는 당시에 하나 또는 maxPhysicalQubits 제약 조건 중 하나 maxDuration 만 허용하지만 두 가지 제약 조건은 허용하지 않습니다. 단일 작업에 대한 제약 조건과 둘 다 maxDuration 제공하면 오류가 반환됩니다BothDurationAndPhysicalQubitsProvided.maxPhysicalQubits

문제: QIR 예측 개수 컨테이너 실행: 정의되지 않은 기호 __quantum__rt__result_record_output

이 오류는 매개 변수를 설정하지 않고 qiskit_qir Python 패키지를 통해 Qiskit 회로에 대한 QIR을 record_output 생성합니다False.

이 오류를 방지하려면 다음 중 하나를 수행합니다.

  • azure_quantum Python 패키지를 사용하여 Qiskit 회로를 Azure Quantum에 제출합니다(권장).
  • qiskit_qir Python 패키지를 사용하는 경우 회로를 제출하기 전에 매개 변수를 설정 record_output 해야 False 합니다.

Azure Quantum 작업 영역 만들기

Azure Portal을 사용하여 작업 영역을 만들 때 다음과 같은 문제가 발생할 수 있습니다.

문제: Azure Portal에서 작업 영역 만들기 양식에 액세스할 수 없습니다. 대신 구독에 등록하라는 메시지가 표시됩니다.

이 문제는 활성 구독이 없기 때문에 발생합니다.

예를 들어 Azure 서비스에서 사용할 USD200 무료 Azure 크레딧을 포함하는 30일 무료 평가판 Azure 구독에 등록했을 수 있습니다. 이러한 Azure 크레딧은 Azure Quantum 크레딧과 동일하지 않으며 양자 하드웨어 공급자에서 사용할 수 없습니다. 등록 30일 후 또는 200달러의 무료 Azure 크레딧을 사용한 후(먼저 발생하는 경우) Azure Quantum 서비스를 계속 사용하려면 종량제 구독으로 업그레이드해야 합니다. 활성 구독이 있으면 Azure Portal에서 작업 영역 만들기 양식에 액세스할 수 있습니다.

구독 및 관련 역할 목록을 보려면 구독 확인을 참조하세요.

문제: 빠른 만들기 옵션을 사용할 수 없음

빠른 만들기 옵션을 사용하려면 선택한 구독의 소유자여야 합니다. 구독 및 관련 역할 목록을 보려면 구독 확인을 참조하세요. 구독 참가자인 경우 고급 만들기 옵션을 사용하여 작업 영역을 만들 수 있습니다.

문제: 리소스 그룹 또는 스토리지 계정을 만들거나 선택할 수 없습니다.

이 문제는 구독, 리소스 그룹 또는 스토리지 계정 수준에서 필요한 권한 부여가 없기 때문에 발생합니다. 필요한 액세스 수준에 대한 자세한 내용은 작업 영역을 만들기 위한 역할 요구 사항을 참조 하세요.

문제: 만들기를 선택한 후 "배포 유효성 검사 실패" 오류 메시지가 나타납니다.

이 오류 메시지에는 "클라이언트에 작업을 수행할 권한이 없습니다."와 같은 자세한 정보가 포함될 수 있습니다.

이 문제는 구독, 리소스 그룹 또는 스토리지 계정 수준에서 필요한 권한 부여가 없기 때문에 발생합니다. 필요한 액세스 수준에 대한 자세한 내용은 작업 영역을 만들기 위한 역할 요구 사항을 참조 하세요.

액세스 권한이 최근에 부여된 경우 페이지를 새로 고쳐야 할 수 있습니다. 스택 전체에서 캐시된 권한에 대해 새 역할 할당이 적용되는 데 최대 1시간이 걸릴 수 있습니다.

문제: 공급자 탭에 특정 양자 하드웨어 공급자가 표시되지 않음

이 문제는 공급자가 구독이 설정된 청구 지역을 지원하지 않기 때문에 발생합니다. 예를 들어 구독이 이스라엘에서 설정된 경우 공급자 탭은 Rigetti를 사용 가능한 공급자로 나열하지 않습니다. 공급자 목록 및 국가/지역별 가용성은 Azure Quantum 공급자의 글로벌 가용성을 참조 하세요.

문제: "ResourceDeploymentFailure" 또는 "ProviderDeploymentFailure"로 작업 영역 만들기 또는 공급자 추가/제거가 실패합니다.

이 문제에는 "ResourceDeploymentFailure - 터미널 프로비저닝 상태 'Failed'로 완료된 'AzureAsyncOperationWaiting' 리소스 작업", "ProviderDeploymentFailure - 공급자에 대한 계획을 만들지 못했습니다. <공급자> 이름"과 같은 자세한 내용이 포함될 수 있습니다.

이는 테넌트가 Azure Marketplace 구매를 사용하도록 설정하지 않았기 때문에 발생합니다. Azure Marketplace 구매를 사용하도록 설정하여 Azure Marketplace 구매를 사용하도록 설정하는 단계를 따릅니다.

문제: 다음 오류 중 하나로 양자 작업 영역 배포 또는 스토리지 계정 배포가 실패합니다.

  • 작업 영역: "터미널 프로비저닝 상태 '실패'에 도달했기 때문에 리소스 쓰기 작업이 성공적으로 완료되지 못했습니다."
  • 스토리지 계정: "정책 위반으로 인해 템플릿 배포에 실패했습니다."

이 문제는 구독 보안 정책에서 공용 액세스가 사용하도록 설정된 스토리지 계정 생성을 차단하는 경우에 발생할 수 있습니다. Azure Quantum 서비스는 공용 인터넷 액세스를 통해서만 스토리지 계정을 지원합니다.

이 문제를 해결하려면 구독 관리자와 협력하여 사용하려는 스토리지 계정에 대한 예외를 가져옵니다.

Azure Quantum 포털

문제: 저장된 전자 필기장이 로드되지 않음

작업 영역에서 전자 필기장을 선택하면 저장된 전자 필기장 목록에 진행률 표시줄이 표시되지만 로드되지는 않습니다.

이 오류는 다음 세 가지 이유로 발생할 수 있습니다.

  1. 스토리지 계정이 더 이상 존재하지 않는 경우 이 문제는 작업 영역에 연결된 스토리지 계정이 삭제된 경우에 발생할 수 있습니다. 확인하려면 작업 영역에 대한 개요 페이지를 선택하고 스토리지 계정에 대한 링크를 선택합니다. 스토리지 계정이 삭제 된 경우 404 - 찾을 수 없음 오류가 표시됩니다.

  2. 공용 인터넷 액세스를 위해 스토리지 계정을 사용하도록 설정하지 않은 경우 자세한 내용은 권한 부여 실패를 참조하세요.

  3. 작업 영역의 관리 ID가 스토리지 계정에 기여자가 아닌 경우 작업 영역 ID(작업 영역과 동일한 이름을 사용)에 스토리지 계정에 대한 기여자 역할 할당이 여전히 있는지 확인합니다. 확인하려면 작업 영역에 대한 개요 페이지를 선택하고 스토리지 계정에 대한 링크를 선택합니다. 스토리지 계정의 개요 페이지에서 액세스 제어(IAM)를 선택하고 작업 영역이 참가자 아래에 나열되어 있는지 확인합니다.