IBM Quantum Compute Service 계정을 초기화하세요
IBM Quantum® Compute Service를 사용하기 전에, 자격 증명을 제출(로드)하여 계정을 초기화(인스턴스화)해야 합니다. IBM Quantum Compute Service를 초기화할 때마다 이러한 인증 정보를 수동으로 제출하거나, 재사용을 위해 저장해 둘 수 있습니다.
- 공용 컴퓨터나 기타 신뢰할 수 없는 환경을 사용하는 경우에는 대신 신뢰할 수 없는 환경에서 서비스 초기화의 안내를 따르세요.
- 키스킷 대신 REST API를 사용하여 연결하려면 다음 안내를 따르세요.
- 필요한 경우 이 정보를 사용하여 IBM Quantum API 엔드포인트에 액세스할 수 있도록 방화벽을 구성하세요.
시작하기 전에
이 단계를 완료했는지 확인하세요:
- IBM Cloud 계정의 회원인지 확인합니다. 자세한 지침은 IBM Cloud 계정 설정을 참조하세요.
- 인스턴스를 하나 이상 생성(또는 액세스 권한 보유)해야 합니다. 확인하려면 다음 단계를 따르세요:
- 에 로그인 IBM Quantum Platform.
- 헤더의 계정 전환기에서 올바른 계정과 지역이 선택되었는지 확인합니다.
- 하나 이상의 인스턴스가 표시되면 이 단계는 완료된 것입니다. 그렇지 않으면 인스턴스를 생성하십시오.
- .을 사용하여 활성 Python 환경에서 작업하고 있는지 확인하십시오 Qiskit SDK 그리고
qiskit-ibm-runtime설치했습니다. - Python 가상 환경을 활성화하고 가상 환경에서 Python 을 실행합니다.
접근 자격 증명을 찾으세요
- API 키( API 토큰이라고도 함)를 찾습니다. 대시보드에서 API 키를 생성한 다음 안전한 위치에 복사하여 인증에 사용할 수 있도록 합니다. 토큰이 다시 표시되지 않습니다. 단일 API 키를 사용하여 모든 지역에 연결할 수 있다는 점에 유의하세요.
- 선택 사항입니다: 인스턴스 페이지에서 사용하려는 인스턴스를 찾습니다. CRN 위로 마우스를 가져가 아이콘을 클릭하여 복사한 다음 안전한 위치에 저장하여 인스턴스를 식별하는 데 사용할 수 있습니다.
Qiskit을 IBM Quantum 컴퓨트 서비스 인스턴스에 연결하세요
이 지침은 qiskit_ibm_runtime v0.42 이후 버전에 맞게 설계되었습니다. qiskit_ibm_runtime 의 이전 버전에서는 일부 기능을 사용할 수 없습니다. 이러한 경우 항상 channel, token, instance 에 명시적으로 또는 저장된 계정을 통해 값을 제공해야 합니다.
Qiskit을 양자 컴퓨팅 인스턴스에 연결하는 기본 코드는 다음과 같습니다. 하지만 사용자의 필요에 따라 옵션을 QiskitRuntimeService 맞춤 설정할 수 있는 방법은 여러 가지가 있습니다. 이러한 옵션은 다음 절에서 설명됩니다.
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService(channel=<channel>,
# For `token`, use the 44-character API_KEY you created
# and saved from the IBM Quantum Platform dashboard
token=<your-API_KEY>,
instance=<instance_CRN>)기본 채널은 ibm_quantum_platform 입니다. 이 채널은 거의 항상 적절한 채널이므로 예제에는 포함되지 않았습니다.
빠른 시작 경로: 자격 증명을 명시적으로 지정
QiskitRuntimeService 인스턴스를 실행하는 가장 빠른 방법은 직접 인스턴스화 방식입니다. IBM Quantum Compute Service를 초기화해야 할 때마다 API 토큰(키)과 CRN (인스턴스 식별자)를 명시적으로 제공해야 합니다. 필요한 경우 ‘접속 자격 증명 찾기’를 참조하십시오.
from qiskit_ibm_runtime import QiskitRuntimeService
# For `token`, use the 44-character API_KEY you created
# and saved from the IBM Quantum Platform dashboard
service = QiskitRuntimeService(token=<cloud_api_key>,
instance=<instance_CRN>)이 경로는 안정적이지만 동일한 세부 정보를 반복적으로 로드해야 하는 경우 지루할 수 있습니다. 자격 증명을 여러 번 로드하지 않으려면 신뢰할 수 있는 Python 환경(예: 개인 노트북 또는 워크스테이션)에서 작업하는 경우 다음 섹션에 설명된 대로 저장된 계정 자격 증명을 사용할 수 있습니다.
instance 입력 매개변수는 선택 사항이지만 단일 서비스를 사용하여 여러 인스턴스로 작업하려는 경우가 아니라면 항상 이 정보를 제공하는 것이 좋습니다. 이 상황에서는 자동 인스턴스 선택 섹션을 참조하세요.
빠른 시작 경로: 저장된 자격 증명 지정
이미 자격 증명을 저장한 경우, 기본 자격 증명을 적용하려면 다음 코드를 사용하십시오. 자격 증명 저장 방법에 대한 지침은 '접근 자격 증명 저장'을 참조하십시오.
from qiskit_ibm_runtime import QiskitRuntimeService
# run every time you need the service
service = QiskitRuntimeService()
...하나 이상의 자격 증명 집합에 이름을 지정한 경우(예: 공개 및 프리미엄 액세스용) 다음 코드를 사용하여 명명된 자격 증명 집합을 사용하세요.
from qiskit_ibm_runtime import QiskitRuntimeService
# run every time you need the service
service = QiskitRuntimeService(name="<name_of_saved_credentials>")
...저장된 자격 증명 로드 시 고려 사항
-
token및name으로 서비스를 초기화하면token은 무시되고name계정의 저장된 세부 정보가 로드됩니다.다음 예제에서는
account_A에서 세부 정보를 로드하고token_B을 사용하지 않습니다:from qiskit_ibm_runtime import QiskitRuntimeService service = QiskitRuntimeService(token="token_B", name="account_A") -
서비스를 초기화할 때
name및instance을 제공하면 서비스는name계정을 로드하고 지정된instance에 연결을 시도합니다. 충돌이 발생하면 경고가 표시됩니다.다음 예제에서는
account_A에 지정된 다른 인스턴스가 있더라도account_A에 대한 자격 증명을 로드하고CRN_B인스턴스를 사용하려고 시도합니다:from qiskit_ibm_runtime import QiskitRuntimeService service = QiskitRuntimeService(instance="CRN_B", name="account_A") -
서비스를 초기화할 때
token또는name을 제공하지 않는 경우에만 기본 저장된 계정을 로드하려고 시도합니다. 그러나instance을 명시적으로 제공하면 서비스는 기본 자격 증명을 사용하여 해당 인스턴스에 연결을 시도합니다. 충돌이 발생하면 경고가 표시됩니다.다음 예에서는 기본 계정에 다른 인스턴스가 지정되어 있더라도 서비스가 기본 자격 증명을 로드하고
CRN_B인스턴스를 사용하려고 시도합니다:from qiskit_ibm_runtime import QiskitRuntimeService service = QiskitRuntimeService(instance="CRN_B") -
여러 개의 자격증명 집합을 저장했지만 서비스를 초기화할 때 하나를 지정하지 않고 기본 저장된 계정이 없는 경우 알파벳 순으로 이름이 마지막에 오는 자격증명 집합이 사용됩니다.
다음 예에서는 사용자가 'my_premium' 및 'my_open'이라는 이름의 계정을 저장했지만 어느 쪽도 기본값으로 표시하지 않았습니다. 그런 다음 다음 코드를 사용하여 서비스를 초기화했습니다. 이 경우 "my_premium" 자격 증명이 사용됩니다:
from qiskit_ibm_runtime import QiskitRuntimeService service = QiskitRuntimeService() -
지속적으로 "401 Unauthorized" 오류가 발생한다면, API 키 대신 베어러 토큰을 사용하려고 시도하고 있을 수 있습니다.
인스턴스를 자동으로 선택합니다
서비스를 인스턴스화할 때 토큰을 제공하지만 인스턴스 CRN을 제공하지 않은 경우 QiskitRuntimeService 은 토큰으로 식별된 계정으로 인증하고 자동 인스턴스 선택을 사용하여 요청된 작업에 가장 적합한 인스턴스를 선택합니다. 계정 내에서 여러 인스턴스를 사용할 수 있는 경우 요청된 리소스와 QiskitRuntimeService 옵션(설정된 경우)에 따라 서비스에서 사용 가능한 인스턴스 중에서 자동으로 선택합니다: plans_preference, region, tags.
plans_preference: 우선순위를 지정할 인스턴스 계획 유형입니다. 예를 들어 [open] 을 전달하면 오픈 플랜 인스턴스만 사용할 수 있습니다. 허용되는 값은open,premium,pay-as-you-go,flex,on-prem입니다.plans_preference을 지정하지 않으면 무료 요금제가 유료 요금제보다 우선합니다.region: 인스턴스 지역입니다. 허용되는 값은us-east및eu-de입니다.tags: 인스턴스 태그입니다. 태그 이름 문자열 목록을 허용합니다.
저장된 자격 증명을 설정하여 인스턴스를 자동으로 선택하도록 할 수 있습니다.
인스턴스는 이 순서대로 찾아서 사용합니다:
- 계정에 하나의 인스턴스만 액세스할 수 있는 경우 기본적으로 이 인스턴스가 선택되어 있습니다.
- 저장된 자격 증명이 사용 중이고 해당 자격 증명과 함께 인스턴스가 지정된 경우, 해당 인스턴스가 사용됩니다. 저장된 자격 증명을 불러올 때 고려 사항을 참조하십시오.
- 요청된 QPU에 액세스할 수 있는 인스턴스가 계정에 여러 개 있는 경우, 시스템은 사용자가 지정한 요금제 선호도를 바탕으로 요금제와 인스턴스를 선택합니다. v0.42 및
qiskit-ibm-runtime이후 버전에서는 기본적으로 무료 요금제가 우선적으로 적용됩니다. - 계정에 여러 인스턴스에 대한 액세스 권한이 있지만 요청된 QPU에 액세스할 수 있는 인스턴스가 하나만 있는 경우 액세스 권한이 있는 인스턴스가 선택됩니다. 이 인스턴스가 무료 요금제와 연결되어 있지 않은 경우 비용이 발생합니다.
예
이 예에서는 서비스가 계정에서 사용할 수 있는 모든 인스턴스를 검색하여 지정된 백엔드에 액세스할 수 있는 인스턴스를 찾습니다:
service = QiskitRuntimeService(token=<your-API_KEY>)이 예에서는 서비스가 EU 지역에서 계정에서 사용할 수 있는 모든 인스턴스를 검색하여 지정된 백엔드에 액세스할 수 있는 인스턴스를 찾습니다:
service = QiskitRuntimeService(token=<your-API_KEY>, region="eu-de")이 예에서는 계정에서 사용할 수 있고 services 로 태그가 지정된 모든 인스턴스를 검색하여 지정된 백엔드에 액세스할 수 있는 인스턴스를 찾습니다:
service = QiskitRuntimeService(token=<your-API_KEY>, tags=['services'])이 예에서는 서비스에서 계정에 사용 가능한 모든 프리미엄 및 오픈 인스턴스를 검색하여 지정된 백엔드에 액세스할 수 있는 인스턴스를 찾습니다. 백엔드가 프리미엄 및 오픈 요금제 인스턴스에 모두 있는 경우 plans_preference 에서 premium 이 먼저 지정되므로 프리미엄 요금제 인스턴스가 우선 순위가 지정됩니다.
service = QiskitRuntimeService(token=<your-API_KEY>,
plans_preference=['premium', 'open'])어떤 인스턴스가 선택되었는지 확인하십시오
선택한 인스턴스는 경고로 반환됩니다. 또한 service.active_instance() 을 실행하여 활성 인스턴스를 확인할 수 있습니다.
다음과 함께 로컬 테스트 수행 qiskit-ibm-runtime
QiskitRuntimeService 클래스는 channel=local 으로 초기화하여 로컬 시뮬레이션을 수행할 수 있습니다. 이 경우 인증이 필요하지 않으며 token 또는 instance 에 값을 제공할 필요가 없습니다. 따라서 로컬 계정을 저장하지 않는 것이 좋습니다. 대신 직접 인스턴스화를 수행할 수 있습니다:
from qiskit_ibm_runtime import QiskitRuntimeService
# Initialize for local testing
service = QiskitRuntimeService(channel="local")다음 단계
- 인스턴스를 생성하고 관리합니다.
- 신뢰할 수 없는 환경에서 서비스를 초기화합니다.
- IBM Quantum Platform 를 REST API와 함께 사용하도록 설정하기
- 하드웨어에서 첫 번째 회로 실행 가이드의 단계를 따라 양자 프로그램을 작성하고 실행하세요.