QiskitRuntimeService
class QiskitRuntimeService(*args, **kwargs)
베이스: object
IBM Quantum Compute (구 Qiskit Runtime ) 서비스와 상호작용하기 위한 클래스입니다.
권장 용도:
-
직접 인스턴스화:
from qiskit_ibm_runtime import QiskitRuntimeService service = QiskitRuntimeService( channel="ibm_quantum_platform", # optional token="API_KEY", instance="CRN" # recommended ) -
기본 계정 저장하기:
from qiskit_ibm_runtime import QiskitRuntimeService QiskitRuntimeService.save_account( token="API_KEY", instance="CRN", set_as_default = True ) service = QiskitRuntimeService()
비로컬 채널에 대한 서비스 인증에 필요한 최소 정보는 token. local 채널은 인증이 필요하지 않습니다. 로컬이 아닌 채널의 경우 항상 관련 instance 을 제공하여 API 호출을 최소화하는 것이 좋습니다. instance 이 정의되지 않은 경우, 서비스는 region, plans_preference, tags 으로 필터링된 계정 내에서 액세스할 수 있는 모든 인스턴스를 가져옵니다. plans_preference 을 설정하지 않으면 무료 및 평가판 인스턴스가 유료 인스턴스보다 우선적으로 사용됩니다.
여러 인스턴스를 사용할 경우, QiskitRuntimeService 시스템이 내부적으로 특정 시점에 어떤 인스턴스가 활성 상태인지 관리합니다. backend(), backends(), job() 및 jobs() 와 같은 방법은 활성 인스턴스를 변경할 수 있습니다. 어떤 인스턴스가 활성 상태인지 확인하려면 메서드를 active_instance() 사용하는 것이 좋으며, 보다 세밀한 제어를 위해 인스턴스마다 별도의 QiskitRuntimeService 객체를 사용하는 것도 좋습니다.
또한 API 토큰당 하나의 계정만 사용할 수 있다는 점에 유의하세요. API 토큰은 해당 토큰이 생성된 계정에 연결됩니다. 여러 개의 계정을 사용하려면 여러 개의 API 토큰을 만들어야 합니다.
서비스 생성자에 명시적으로 token 을 제공했더라도 (a) 인스턴스화 중에 명시적으로 token 이 제공되지 않았거나 (b) name 이 지정된 경우 서비스는 파일에서 계정을 로드하려고 시도합니다. 계정은 다음 기준에 따라 선택됩니다:
-
filename가filename지정된 경우, 계정 정보는 에서 불러오게 됩니다.그렇지 않으면 기본 구성 파일에서 불러오게 됩니다.
-
가
name지정된 경우, 해당 계정 정보가 다음 위치에서 불러오게 됩니다.proxies``channel구성 파일에는,token,instanceregion,plans_preference,, 및 고급 구성 매개변수인,urlurl_resolver,private_endpointverify,, 가 포함됩니다.instance중요 사항 : 인스턴스화 과정에서 명시적으로instance지정된 값은 로드된 값을 덮어씁니다. -
지정되지 않은
name경우: 지정된 경우channel, 서비스는구성 파일에서 해당 채널과 연결된 기본 계정.
set_as_default=True그렇지 않으면, 호출save_account()시 정의된 전체 기본 계정으로 돌아갑니다.
부터, qiskit-ibm-runtime``0.49 이 클래스는 로도 접근할 수 있습니다 qiskit_ibm_runtime.IBMQuantumComputeService.
매개변수
- 채널 – 서비스 플랫폼을 식별하는 문자열. 이 설정은
ibm_quantum_platform기본적으로 로 설정되어 있지만, 추가로local및 값을ibm_cloud가질 수도 있습니다.ibm_cloud이는 구식 옵션이며 와 동일한 경로를 가리키므로ibm_quantum_platform, 권장 값은ibm\_quantum\_platform\입니다.local을 선택하면 로컬 테스트 모드가 사용되며, 기본 쿼리는 로컬 시뮬레이터에서 실행됩니다. 자세한 내용은 IBM Quantum Compute 의 로컬 테스트 모드 설명서를 참조하십시오. 비국소 모드의 경우, 이 채널은 기본 API URL 값을 확인하는 데 사용됩니다.ibm_cloud이는 구형 IBM Cloud 플랫폼의 식별자였으며, 해당 URL 주소는 새로운ibm_quantum_platform주소로 리디렉션될 예정입니다. - 토큰 – IBM Cloud API 키. IQP 인증을 위해서는 API 키를 제공해야 합니다. 명시적으로 지정하지 않으면, 이 API 키에 대해 기본 저장 계정이 조회됩니다.
- url – 기본 API URL. IBM Quantum Platform 에 액세스하는 비로컬 채널(예:
ibm_quantum_platform,ibm_cloud)의https://cloud.ibm.com경우 기본값은 입니다. 이 URL 는 에url_resolver의해 처리되어 요청을 올바른 서비스 진입점으로 라우팅합니다.url_resolver``url사용자 정의 를 제공하는 경우, 이에 대응하는 도 함께 제공해야 합니다.https://quantum.cloud.ibm.com/api/v[x]기본 리졸버는 기본 주소 URL 을 로 다시 작성합니다. - 파일 이름 – 계정이 생성된 파일의 전체 경로. 기본값: _DEFAULT_ACCOUNT_CONFIG_JSON_FILE.
- 이름 – 파일에서 불러올 계정의 이름.
- 인스턴스 – 사용할 서비스 인스턴스입니다.
ibm_quantum_platform및 의 경우ibm_cloud, 이는 클라우드 리소스 이름( CRN ) 또는 서비스 이름입니다. 이 값이 설정된 경우, 서비스 인스턴스 생성을 위한 인스턴스가 정의되며, 설정되지 않은 경우 서비스는 지정된 필터링 기준에 따라 계정 내에서 접근 가능한 모든 인스턴스를 가져옵니다. “인스턴스가 설정되지 않았습니다”라는 경고가 표시되지 않도록 자동 선택을 명시적으로 요청하려면 Pass를"auto"사용하십시오. 이 값은 을 통해save_account()계정 파일에 저장할 수도 있으므로, 인스턴스가 생성될 때마다 자동으로 적용됩니다. - 프록시 – 프록시 설정. 지원되는 선택적 키는
urls(프로토콜 또는 프로토콜과 호스트를 프록시의 URL 에 매핑하는 사전으로, https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies 에 설명되어 있음),username_ntlm,password_ntlm(NTLM 사용자 인증을 활성화하기 위한 사용자 이름과 비밀번호)입니다 - 확인 – 서버의 TLS 인증서를 확인할지 여부.
- private_endpoint – 비공개 API URL 에 연결합니다.
- url_resolver – IBM Quantum Compute URL 을(를) 해석하는 데 사용되는 함수입니다. 지정되지 않은 경우, 다양한 서비스 엔드포인트에 액세스하기 위해 기본 리졸버가 사용됩니다.
- 영역 – 인스턴스 자동 선택을 위한 영역 기본 설정을 지정합니다. 가
instance지정된 경우 이 인수는 무시 됩니다.eu-de허용되는 값은 또는 입니다us-east. 인스턴스가 전달되지 않은 경우, 이 리전을 가진 인스턴스가 우선적으로 선택됩니다. - plans_preference – 자동 인스턴스 선택을 위해 우선순위 순으로 정렬된 계정 플랜 이름 목록. 가
instance지정된 경우 이 인수는 무시 됩니다. 지정된 플랜 이름을 가진 인스턴스만 고려됩니다. 예를 들어, 프리미엄 계정을 사용하지 않으려면 매개변수를 전달하여"open"오픈 플랜 인스턴스만 사용하도록 설정할 수 있습니다. 허용되는 값은 다음과 같습니다(이에 국한되지 않음):open,premium,flex,on-prem,pay-as-you-go. - 태그 – 자동 인스턴스 선택을 위해 사용 가능한 인스턴스를 필터링할 태그 목록을 설정합니다. 가
instance지정된 경우 이 인수는 무시 됩니다.
리턴
로컬 채널이 설정된 경우 QiskitRuntimeLocalService 또는 QiskitRuntimeService 의 인스턴스.
레이즈
IBMInputValueError - 입력이 유효하지 않은 경우.
인스턴스를 QiskitRuntimeService 생성합니다.
속성
channel
사용된 채널 유형을 반환합니다.
리턴
사용된 채널 유형입니다.
메소드
active_account
active_account()
현재 세션에 사용 중인 IBM 퀀텀 계정을 반환합니다.
리턴
현재 세션에 있는 계정에 대한 정보가 포함된 사전입니다.
리턴 유형
[d] ictstr, str | None
active_instance
backend
backend(name, instance=None, use_fractional_gates=False, calibration_id=None)
지정된 필터링과 일치하는 단일 백엔드를 반환합니다.
백엔드 가용성은 회로 제출 시에만 확인된다는 점에 유의하십시오. 백엔드 상태를 미리 확인하려면 백엔드 객체의 메서드를 status() 사용하세요:
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.backend()
status = backend.status()
assert status.operational and status.status_msg == "active"매개변수
- name (str) – 백엔드 이름입니다.
- instance (str | None) – IBM Cloud 계정 CRN을 지정합니다.
- use_fractional_gates (bool | None) – 백엔드가 소수 게이트를 포함할 수 있도록 하려면 True로 설정하십시오. 제한 사항에 대해서는 ‘분수 게이트를 사용하지 말아야 할 경우’를 참조하십시오.
- calibration_id (str | None) – 백엔드를 인스턴스화하는 데 사용되는 캘리브레이션 ID입니다.
리턴
필터링과 일치하는 백엔드입니다.
레이즈
- QiskitBackendNotFoundError - 백엔드를 찾을 수 없는 경우
- IBMInputValueError – 분수 게이트가 요청되었으나 백엔드에서 지원되지 않는 경우.
리턴 유형
백엔드
backends
backends(name=None, min_num_qubits=None, instance=None, dynamic_circuits=None, filters=None, *, use_fractional_gates=False, calibration_id=None, **kwargs)
선택적 필터링에 따라 이 계정을 통해 액세스할 수 있는 모든 백엔드를 반환합니다.
매개변수
-
name (str | None) – 필터링할 백엔드 이름입니다.
-
min_num_qubits (int | None) – 백엔드에 필요한 최소 큐비트 수입니다.
-
instance (str | None) – IBM Cloud 계정 CRN
-
dynamic_circuits (bool | None) – 백엔드가 동적 회로를 지원하는지 여부에 따라 필터링합니다.
-
filters (Callable[[IBMBackend], bool] | None) –
람다 함수 등 보다 복잡한 필터. 예를 들어,
QiskitRuntimeService.backends( filters=lambda backend: ( (status := backend.status()).operational and status.status_msg == "active" ) )작동 중이고 활성 상태인 백엔드만 반환합니다.
-
use_fractional_gates (bool | None) – True로 설정하면 백엔드에 프랙셔널 게이트가 포함될 수 있습니다. 이제 유니티의 백엔드는 동적 회로와 프랙셔널 게이트를 동시에 지원합니다. 동적 회로 기능을 사용할 때 더 이상 이 플래그를 비활성화할 필요가 없습니다(예:
if_else) 를 알고리즘에 추가하세요. 이 플래그를 True로 설정하면 제어 흐름 명령이 백엔드에서 제거되지 않습니다.None이면 분수 게이트와 제어 흐름 연산이 모두 백엔드에 포함됩니다. -
calibration_id (str | None) – 백엔드를 인스턴스화하는 데 사용되는 캘리브레이션 ID입니다. 캘리브레이션 ID는 백엔드별로 정의되므로 단일 백엔드를 선택할 때만 사용해야 합니다.
-
**kwargs* (모든)* - -
백엔드 구성 또는 상태의 속성에 특정 값이 필요한 단순 필터입니다. 예:
# Get the operational real backends QiskitRuntimeService.backends(simulator=False, operational=True) # Get the backends with at least 127 qubits QiskitRuntimeService.backends(min_num_qubits=127) # Get the backends that support OpenPulse QiskitRuntimeService.backends(open_pulse=True)백엔드 어트리뷰트의 전체 목록은 IBMBackend 클래스 문서를 참조하세요
리턴
필터와 일치하는 사용 가능한 백엔드 목록입니다.
레이즈
- IBMInputValueError - 입력이 유효하지 않은 경우.
- QiskitBackendNotFoundError - 백엔드가 인스턴스에 없는 경우.
리턴 유형
목록[ IBMBackend ]
delete_account
static delete_account(filename=None, name=None, channel=None)
디스크에서 저장된 계정을 삭제합니다.
매개변수
- filename (str | None) – 계정을 삭제할 파일 이름입니다.
- name (str | None) – 삭제할 저장된 계정의 이름입니다.
- channel (ChannelType | None) – 삭제할 기본 계정의 채널 유형. 계정 이름이 지정된 경우 무시됩니다.
리턴
계정이 삭제된 경우 true입니다. 계정을 찾을 수 없으면 거짓입니다.
리턴 유형
부울
delete_job
delete_job(job_id)
IBM Quantum Compute 작업을 삭제합니다.
이 작업은 되돌릴 수 없음을 유의하십시오.
매개변수
job_id (str) – 삭제할 작업의 ID.
레이즈
- RuntimeJobNotFound – 그 직책은 존재하지 않습니다.
- IBMRuntimeError – 메서드가 지원되지 않습니다.
리턴 유형
없음
instances
instances()
현재 계정에 사용할 수 있는 인스턴스 목록을 반환합니다.
각 인스턴스에 대해 “crn”, “plan”, “name”이라는 인스턴스 식별자를 가진 일련의 사전이 포함된 목록을 반환합니다.
리턴
활성 계정에 사용할 수 있는 인스턴스가 있는 목록입니다.
리턴 유형
Sequence[ [dic] tstr, Any]
job
job(job_id)
IBM Quantum Compute 작업을 조회합니다.
매개변수
job_id (str) – 작업 ID.
리턴
IBM Quantum Compute 구직 정보가 검색되었습니다.
레이즈
- RuntimeJobNotFound - 작업이 존재하지 않는 경우.
- IBMRuntimeError - 요청이 실패한 경우.
리턴 유형
jobs
jobs(limit=10, skip=0, backend_name=None, pending=None, program_id=None, instance=None, job_tags=None, session_id=None, created_after=None, created_before=None, descending=True)
선택적 필터링 조건에 따라 모든 ‘ IBM Quantum Compute ’ 작업을 조회합니다.
매개변수
- limit (int | None) – 검색할 작업 수입니다.
None는 제한이 없다는 의미입니다. - skip (int) – 작업 검색을 위한 시작 인덱스입니다.
- backend_name (str | None) – 작업을 검색할 백엔드의 이름입니다.
- pending (bool | None) – 작업 보류 상태별로 필터링합니다.
True, '대기 중' 및 '실행 중' 작업이 포함되어 있습니다.False, '완료', '취소됨', '오류' 작업이 포함되어 있습니다. - program_id (str | None) – 프로그램 ID로 필터링합니다.
- instance (str | None) – IBM Cloud 인스턴스 crn으로 필터링합니다.
- job_tags (list[str] | None) – 작업에 할당된 태그로 필터링합니다. 일치하는 작업은 모든 태그와 연관됩니다.
- session_id (str | None) – 세션 ID로 필터링합니다. 세션의 모든 작업은 작업 생성 날짜가 오래된 순서대로 반환됩니다.
- created_after (datetime | None) – 지정된 시작 날짜(현지 시간)를 기준으로 필터링합니다. 생성 날짜가 이 현지 날짜/시간 이후(이보다 크거나 같은)인 작업을 찾는 데 사용됩니다.
- created_before (datetime | None) – 지정된 종료일(현지 시간)을 기준으로 필터링합니다. 생성 날짜가 이 현지 날짜/시간 이전(또는 이보다 작거나 같은)인 작업을 찾는 데 사용됩니다.
- descending (bool) –
True, 한도에 도달할 때까지 일자리 생성 날짜의 내림차순(즉, 가장 최근의 일자리부터)으로 일자리를 반환합니다.
리턴
IBM Quantum Compute 채용 공고 목록.
레이즈
IBMInputValueError - 입력 값이 유효하지 않은 경우.
리턴 유형
목록[ RuntimeJobV2 ]
least_busy
least_busy(min_num_qubits=None, instance=None, filters=None, use_fractional_gates=False, **kwargs)
사용 가능한 백엔드 중 가장 사용량이 적은 백엔드를 반환합니다.
매개변수
-
min_num_qubits (int | None) – 백엔드에 필요한 최소 큐비트 수입니다.
-
instance (str | None) – IBM Cloud 계정 CRN.
-
filters (Callable[[IBMBackend], bool] | None) –
필터는 다음과 같이 정의할 수 있습니다
backends()메서드로 정의할 수 있습니다. 5개의 큐비트로 연산 백엔드를 가져오는 예제입니다:QiskitRuntimeService.least_busy(n_qubits=5, operational=True) -
use_fractional_gates (bool | None) –
True이 경우, 소수 게이트를 포함하는 백엔드만 고려되며, 반환된 백엔드에는 소수 게이트가 포함됩니다. 제한 사항에 대해서는 ‘분수 게이트를 사용하지 말아야 할 경우’를 참조하십시오. -
kwargs (Any) – 백엔드 쿼리에 전달된 추가 인자.
리턴
보류 중인 작업 수가 가장 적은 백엔드입니다.
레이즈
QiskitBackendNotFoundError - 기준과 일치하는 백엔드가 없는 경우.
리턴 유형
save_account
static save_account(token=None, url=None, instance=None, channel=None, filename=None, name=None, proxies=None, verify=None, overwrite=False, set_as_default=None, private_endpoint=False, region=None, plans_preference=None, tags=None)
나중에 사용할 수 있도록 계정을 디스크에 저장합니다.
매개변수
- token (str | None) – IBM Cloud API 키.
- url (str | None) – API URL. 기본값은 https://cloud.ibm.com.
- instance (str | None) – 이 매개변수는 선택 사항으로, CRN 또는 서비스 이름을 지정하는 데 사용됩니다. 이 값이 설정된 경우, 서비스 인스턴스 생성을 위한 기본 인스턴스가 지정되며, 설정되지 않은 경우 서비스는 해당 계정 내에서 접근 가능한 모든 인스턴스를 가져옵니다. 을(를
"auto")로 설정하면 자동 선택을 환경 설정으로 명시적으로 저장하게 되며, 이로 인해 이후 인스턴스화 시 “인스턴스가 설정되지 않았습니다”라는 경고가 표시되지 않습니다. - channel (ChannelType | None) – 채널 유형.
ibm_cloud또는ibm_quantum_platform. - filename (str | None) – 계정이 저장된 파일의 전체 경로입니다.
- name (str | None) – 저장할 계정의 이름입니다.
- proxies (dict | None) – 프록시 설정. 지원되는 선택적 키는
urls(프로토콜 또는 프로토콜과 호스트를 프록시의 URL 에 매핑하는 사전으로, https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies 에 설명되어 있음),username_ntlm,password_ntlm(NTLM 사용자 인증을 활성화하기 위한 사용자 이름과 비밀번호)입니다 - verify (bool | None) – 서버의 TLS 인증서를 확인합니다.
- overwrite (bool | None) –
True기존 계정을 덮어쓰려는 경우 를 입력합니다. - set_as_default (bool | None) –
True이면 계정이 기본 계정으로 파일 이름에 저장됩니다. - private_endpoint (bool | None) – 비공개 API에 연결 URL.
- region (RegionType | None) – 지역 설정을 지정하세요. us-east 또는 eu-de. 인스턴스가 전달되지 않은 경우, 이 리전을 가진 인스턴스가 우선적으로 선택됩니다.
- plans_preference (PlanType | None) – 계정 계획명 목록 (
open,premium, 등), 선호도 순으로 정렬됨. 목록의 첫 번째 값을 가진 인스턴스가 우선적으로 고려되며, 지정된 플랜 이름을 가진 인스턴스만 검토 대상이 됩니다. 예를 들어, 프리미엄 계정의 사용을 피하고 싶다면, 오픈 플랜 인스턴스만 사용하도록 매개변수를 전달하기만"open"하면 됩니다.plans_preference가instance지정된 경우 무시됩니다. - tags (list[str] | None) – 사용 가능한 인스턴스를 필터링할 태그 목록을 설정합니다. 인스턴스가 전달되지 않은 경우, 이러한 태그를 가진 인스턴스가 우선순위로 처리됩니다.
리턴 유형
없음
saved_accounts
static saved_accounts(default=None, channel=None, filename=None, name=None)
디스크에 저장된 계정을 나열합니다.
매개변수
- default (bool | None) – True로 설정하면 기본 계정만 반환됩니다.
- channel (ChannelType | None) – type.\
\ibm_cloud`` 채널 또는ibm_quantum_platform. - filename (str | None) – 계정이 반환되는 파일 이름입니다.
- name (str | None) – 이 옵션을 설정하면 지정된 이름의 계정만 반환됩니다.
리턴
디스크에 저장된 계정에 대한 정보가 포함된 사전입니다.
레이즈
ValueError - 디스크에서 잘못된 계정을 발견한 경우.
리턴 유형
dict