IBM Quantum 컴퓨트 클라이언트 릴리스 노트
0.49.0 (2026-08-10)
업그레이드 주의사항
- 이
options_models패키지의 옵션 클래스는 이제 대신BaseModelPydantic의 를 기반으로 합니다dataclass. ( 3042 ) - Executor의 기본 스키마 버전을 2.0 로 변경했습니다. ( 3043 )
- Qiskit Runtime 서비스가 IBM Quantum Compute 서비스로 명칭이 변경되었으며, 관련 문서의 내용도 이에 따라 업데이트되었습니다. 이
QiskitRuntimeService클래스는 이제IBMQuantumComputeService.로 제공됩니다. ( 3070 )
지원 중단 노트
- 이제 이
options_models패키지의 옵션 클래스를asdict사용하는 stdlib는 더 이상 권장되지 않습니다. 해당 클래스들은 이제 Pydantic 모델로 변경되었기 때문입니다. 대신, 이를. 파일로 직렬화할 때는 를 직접options.model_dump()사용하십시오dict. ( 3042 ) - 이
post_selection옵션은 이제NoiseLearnerV3사용이 권장되지 않으며, 향후 릴리스에서 제거될 예정입니다. ( 3160 )
새 기능
- 지침
MidCircuitReset및ConvertToMidCircuitResetAndMeasure트랜스파일러 패스를 추가했습니다. 이 새로운 패스는 비종단reset명령어를 하드웨어별 회로 중간 리셋 구현 방식으로 대체함으로써 기존 기능을ConvertToMidCircuitMeasure확장합니다. ( 2903 ) - NoiseLearnerV3Options 에 bit_flip_checks 필드를 추가하여, 사용자가 노이즈 학습 회로의 결과에 대해 비트 플립 검사를 요청할 수 있도록 했습니다. ( 2907 )
- 에 선택적 매개변수를
persist추가했습니다FakeBackendV2.refresh(). 기본적으로 (persist=True) 동작은 변함이 없습니다. 새로 고쳐진 구성 및 속성이 설치된 패키지에 포함된 데이터 파일을 덮어쓰기 때문에, 업데이트 내용은 세션 간에도 유지됩니다. 대신persist=FalsePassing을 사용하면 갱신된 데이터가 임시 디렉터리에 기록되므로, 패키지가 읽기 전용 위치(예: 시스템 전체 디렉터리site-packages)에 설치된 경우에도 번들 파일을 덮어쓰면 오류가 발생할 수 있는 상황에서Passing이 성공적으로 수행될refresh()수 있습니다PermissionError. 해당 모드에서는 백엔드가 현재 세션에 대해서만 업데이트되며, 변경 사항은 디스크에 영구적으로 저장되지 않습니다. ( 2977 ) IBMBackend이제 속성이physical_qubits추가되었으며, 이 속성은 백엔드의 물리적 큐비트 수(프로그래밍 가능 큐비트, 리셋 큐비트 및 커플러를 합한 수)를 반환합니다. 이 속성은 더 이상 사용되지 않는 백엔드가 아닌 경우에도FakeBackendV2사용할 수 있습니다. ( 3080 )- 에서 사용하는 IAM URL 은 이제 IBM SDK의 및
GLOBAL_SEARCH_URLGLOBAL_CATALOG_URL변수와 동일한 규칙에 따라 환경IAM_URL변수를 통해 재정의할 수QiskitRuntimeService.instances()있습니다. 이를 통해 코드 변경 없이 VPE 환경에서 IAM 트래픽을 사설 엔드포인트(예:https://private.iam.cloud.ibm.com)를 통해 라우팅할 수 있습니다. ( 3135 )
버그 수정
- 로컬에 설치된 버전보다 최신 버전의 Qiskit 릴리스로 직렬화된 작업을 검색했을 때 표시되는 경고 메시지를 개선합니다. 이제
RuntimeDecoder함수를 호출하기 전에qiskit.qpy.load, 내장된 QPY 형식 버전이 설치된 Qiskit이 지원하는 버전보다 최신일 경우pip install -U qiskit, 를 사용하여 업그레이드할 것을 권장하는 명확한 메시지를 표시합니다. ( 2426 ) FakeProviderForBackendV2.backends()이제 기존에 반환되던FakeAachen,FakeBerlin,,FakeBoston,FakeBrusselsFakeKingston,FakeMiami,FakePittsburgh, 및 외에도, 에서 임포트할 수qiskit_ibm_runtime.fake_provider있었지만 제공자의 백엔드 목록에는 포함되지 않았던 8개의 가짜 백엔드도 함께 반환합니다FakeStrasbourg. 이전에는 백엔드 클래스가 존재했음에도QiskitBackendNotFoundError불구하고FakeProviderForBackendV2().backend(name="fake_kingston")(및 나머지 7개)를 호출하면 오류가 발생했습니다. ( 3164 )
0.48.0 (2026년 7월 14일)
업그레이드 주의사항
0.18.0``2.3.0현재 필요한 Qiskit의 최소 버전은 이며, Samplomatic의 최소 버전은 입니다. 이제 사용자들은ExecutorSamplomatic 버전0.17.0이상에서 지원되는 트윌링 그룹을"local_c1"사용하여 회로를 회전시킬 수 있습니다. ( 2925 )
지원 중단 노트
-
결과를 나타내는 모든 클래스는 이제 패키지를
qiskit_ibm_runtime.results통해 사용할 수 있게 되었으며, 이에 따라 다음 클래스들이 results 패키지로 이동되었습니다:qiskit_ibm_runtime.utils.noise_learner_result``PauliLindbladError,LayerError,NoiseLearnerResult(이전에는 ~의 일부였음)qiskit_ibm_runtime.utils.estimator_pub_result``EstimatorPubResult(이전에는 ~의 일부였음)
이전 위치에서 가져오기 기능은 더 이상 권장되지 않으며, 향후 릴리스에서 관련 참조가 제거될 예정입니다. ( 2835 )
-
PUB마다 서로 다른
pub.shots값을 사용하여 작업을SamplerV2실행하는 것은 더 이상 권장되지 않습니다. 마찬가지로, 여러 PUB에 걸쳐 서로 다른pub.precision값을 사용하여 작업을EstimatorV2실행하는 것은 더 이상 권장되지 않습니다. ( 2992 ) -
값을
int로 설정하는MeasureNoiseLearningOptions.shots_per_randomization것은 더 이상 권장되지 않으며, 향후 릴리스에서 제거될 예정입니다. 대신 를 사용해"auto"주세요. ( 3004 )
새 기능
-
이
RuntimeJobV2.usage()메서드는 이제 선택적partial매개변수( 2884 )를 지원합니다:False플래그가partial인 경우, 이 메서드는 작업 사용량 계산이 완료될 때까지 를 반환합니다0.True플래그가partial인 경우, 계산이 완료되었는지 여부와 관계없이 이 메서드는 증분된 부분 작업 사용량을 반환합니다.
-
Executor 작업을 실행할 때 회로 일정 타이밍을 요청하고, 개별 회로의 구간별 수치 해상도를 반환하는 옵션이 추가되었습니다. ( 2790 ) ( 2789 )
-
QiskitRuntimeService.save_account()및 에서QiskitRuntimeService에instance="auto"대한 지원이 추가되었습니다. 이 매개변수를 전달하면instance="auto"백엔드 검색 중에 “인스턴스가 설정되지 않았습니다” 경고나 “인스턴스 로딩/사용 중” 경고가 발생하지 않으면서 자동 인스턴스 선택 기능을 명시적으로 활성화합니다. 이 값을 계정 파일에 저장하면 이후 모든 인스턴스 생성 시 해당 값이 적용됩니다. ( 2854 ) -
QiskitRuntimeService.backend()QiskitRuntimeService.least_busy()의 매개변수를use_fractional_gates추가하여, 의 동일한 매개변수와 동일한 동작을 하도록 했습니다.True로 설정하면, 기본 게이트에 소수 게이트가 포함된 백엔드만 고려되며, 소수 게이트가 없는 백엔드는 건너뛰고, 그 다음으로 부하가 적은 적격 백엔드가 선택됩니다. ( 2855 ) -
와
RuntimeJobV2.result()에RuntimeJobV2여러 개의 결과 디코더를 전달하는 기능이 다시 도입되었습니다. ( 2899 ) -
양자 프로그램 결과에 분류된 측정값과 커널 처리된 측정값이 모두 포함되도록 요청하는 데 사용할 수 있는 기능에
QuantumProgram.meas_level = "both"대한 지원이 추가되었습니다. ( 2973 )
버그 수정
pi트랜스파일러 단계에서FoldRzzAngle,Rzz각도가 경계+-pi(예:3*pi-3*pi,,7*pi)에 정확히 닿는 게이트가 전역 위상이 인 회로로 접혀 들어가는 버그를 수정했습니다. 이제 이 패스는 감긴 각도에서 드롭된2*pi권선 패리티를 직접 도출하므로, 접힌 회로는 모든 각도에서 전체 유니터리(전역 위상 포함)를 보존합니다. ( 2856 )SamplerV2.run()서로 다른 인스턴스의 백엔드를 사용할 때,EstimatorV2.run(), 및 기타 기본.run()요소의 메서드에서 사용하는 서비스는 이제 작업 제출에 사용되는 API 클라이언트가 항상 활성 API 클라이언트를 사용하는 대신 해당 백엔드에 속한 클라이언트인지 확인합니다. ( 2931 )- 트랜스파일링 과정에서 범위를 벗어난
rzz각도의 접힘 현상을 수정했습니다.pi/2이전 설정에서는 ‘ FoldRzzAngle ’ 단계 이후에 실행된 번역 단계에서 각도가 수정되어 음수나.보다 큰 값이 될 수 있는 버그가 있었습니다. 이 버그는 백엔드의 타깃에서 게이트에rzz대한 값을angle_bounds로(0, pi/2)설정하고, 트랜스파일러의WrapAngles패스에 래퍼를rzz등록함으로써 수정됩니다. 이 메커니즘은 플러그인과IBMDynamicFractionalTranslationPlugin트랜스파일러 패스의FoldRzzAngle사용을 대체합니다. ( 2960 )
기타 참고사항
- 이 라이브러리는 현재 Qiskit Runtime REST API의 해당 버전을
2026-04-15사용하고 있습니다. ( 2845 ) - 사용 중단된 트랜스파일러 플러그인이
IBMFractionalTranslationPlugin제거되었습니다. ( 2880 ) - Executor의 기본 스키마 버전은 이제
1.1.입니다. ( 2911 )
0.47.0 (2026년 5월 12일)
새 기능
-
Samplomatic 패키지가 제공하는 다양한 기능을 최대한 활용할 수 있도록 Executor 및 QuantumProgram 클래스를 추가했습니다.
-
주석이 달린 상자가 포함된 명령문의 노이즈를 파악하기 위해
NoiseLearnerV3클래스를 추가했습니다. -
실제 백엔드의 구성 및 속성을 가져오는 스크립트를 추가했습니다.
-
FakeKingston새로운 가짜 백엔드 하나가 추가되었습니다. 이것은 156 큐비트 규모의 헤론(Heron) 양자 컴퓨팅 장치입니다. r2 ( 2711 ) -
IBM Cloud 플랫폼 서비스(인스턴스화 과정에서
QiskitRuntimeService발생하는, 서비스 이름은global_search,global_catalog및resource_controller)와의 상호 작용은 이제 IBM Cloud SDK 구성 메커니즘을 따르며, 이를 통해 환경 변수나 자격 증명 파일을 통해 사용자 지정 구성을 전달할 수 있습니다. ( 2712 ) -
새로운 청크 타이밍 컨테이너 클래스인
ChunkTiming의 하나 이상의 인스턴스에 대한 실행 타이밍을 대화형 막대 차트로 표시하기 위해 에qiskit_ibm_runtime.visualization추가되었습니다draw_chunk_timings().job.result().timing.draw()단일 결과의 경우, 를 통해 편리한ChunkTiming.draw()메서드도 사용할 수 있습니다. ( 2727 ) -
2711번 이슈에서 소개된 가짜 백엔드 스냅샷 스크립트를 기반으로, 이 스크립트는 이제 각 백엔드에 대한 및
fake_<backend_name>.py파일도 생성하며__init__.py, 서로 다른 클라우드 리전(예: us-east 대 eu-de)에서 백엔드 데이터를 가져올 때 지정된 계정을 선택할 수 있도록 새로운-a/--account인수를 추가합니다.이 업데이트된 스크립트를 사용하여 다음과 같은 누락된 가짜 백엔드가 추가되었습니다:
FakeAachen,FakeBerlin,FakeBostonFakeBrussels,,FakeMiami,FakePittsburgh, 및FakeStrasbourg. ( 2736 )
업그레이드 주의사항
- 이제 및
RuntimeJobV2.wait_for_final_state()메서드는RuntimeJobV2.result()선택적poll_interval매개변수를 지원하며, 이를 통해 서비스에 대한 요청 간격을 사용자 지정할 수 있습니다. 이제0.5비세션 작업의 기본값은 초이며, 세션 작업의 기본값은0.1초입니다. ( 2762 )
지원 중단 노트
-
Python 패키지가
extras리팩토링되었습니다:v0.48``common및documentation는 더 이상 사용되지 않으며, 에서 제거될 예정입니다.performance추가적인 성능이나 기능을 제공하는 선택적 비개발자 의존성을 위해 도입되었습니다.- 개발 종속성의 세분화 수준이 더욱 세분화되었습니다 (
style,style_local,test,doc), 여기서 추가 옵션을dev사용하면 전체 개발 스위트를 계속 설치할 수 있습니다. ( 2707 )
버그 수정
- 이제 에 대한
QiskitRuntimeService및ssl_verification인수가proxies기본 HTTP 요청을 통해`GlobalSearchV2,GlobalCatalogV1, 및IAMAuthenticator서비스로 전달되므로, 프록시를 사용할 때 를QiskitRuntimeService올바르게 인스턴스화할 수 있습니다. ( 2592 ) session_id.에서 세션을 초기화할 때 및use_fractional_gates을 지정할calibration_id수 있는 기능이 추가되었습니다. 이 업데이트는 알려진 버그를 수정합니다. 구체적으로, 를 통해from_id객체를Session인스턴스화할 때, 원래Session의 초기 인스턴스화 과정에서 설정된 의calibration_id값이나 백엔드의 초기 인스턴스화 과정에서 설정된 의use_fractional_gates값이 유지되지 않는 문제를 해결합니다. ( 2652 )NoiseLearner.run()이제 제너레이터,map,filter, 제너레이터 표현식 및 기타 단일 통과 반복자를 올바르게 지원합니다. 이전에는 초기 유형 검사 후 이러한 리소스가 모두 소진되어, 회로가 전혀 없는 상태로 작업이 제출되곤 했습니다. ( 2759 )
0.46.1 (2026년 3월 23일)
버그 수정
- 이전 릴리스에서
~=8.0가 에 잘못setuptools_scm고정되었던 문제를 수정했습니다. 버전 제약 조건을 다시 적용했습니다>=6.2.
0.46.0 (2026년 3월 23일)
기타 참고사항
- Qiskit의 최소 요구 버전은 이제
2.2.0.입니다. ( 2689 )
0.45.1 (2026-02-12)
버그 수정
- 백엔드 객체를 생성할 때, 이전 버전의 .QiskitRuntimeService 는 백엔드의 기본 게이트 중 게이트만
rzz확인하여 캐시를 사용할지 아니면 새로운 백엔드 객체를 생성할지 결정했습니다. 이제 .QiskitRuntimeService 는 백엔드의 기본 게이트에서 및rxrzz게이트를 모두 확인하여 구성 정보를 새로 고칠지 아니면 캐시에서 가져올지 결정합니다. ( 2524 ) - 인스턴스의 카탈로그 정보를 검색할 수 없는 경우(예: 인스턴스가 아카이브된 경우) 초기화가
QiskitRuntimeService더 이상 실패하지 않습니다. ( 2603 )
0.45.0 (2026-01-08)
새 기능
qiskit-ibm-runtime이제 Qiskit v2.3 과 호환됩니다.- 해당
delete_job()방법이 재도입되었습니다. ( 2541 )
버그 수정
- 백엔드 베이스에서 게이트만
Rzz확인하는 대신, 플래그가use_fractional_gates=True및Rzz게이트 중 하나 또는 둘Rx모두를 확인하는 경우를QiskitRuntimeService.backend()수정했습니다. ( 2520 )
기타 참고사항
- Qiskit
1.x시리즈가 더 이상 지원되지 않으므로, 필요한 Qiskit의 최소 버전은 이제 입니다2.0.0. ( 2543 )
0.44.1 (2026년 2월 12일)
지원 중단 노트
- 값이 비어 있지 않은 회로를
circuit.calibrations제출하는 기능은 더 이상 권장되지 않으며,qiskit-ibm-runtimev0.45 에서 제거될 예정입니다. ( 2574 )
버그 수정
- 백엔드 객체를 생성할 때, 이전 버전의 .QiskitRuntimeService 는 백엔드의 기본 게이트 중 게이트만
rzz확인하여 캐시를 사용할지 아니면 새로운 백엔드 객체를 생성할지 결정했습니다. 이제 .QiskitRuntimeService 는 백엔드의 기본 게이트에서 및rxrzz게이트를 모두 확인하여 구성 정보를 새로 고칠지 아니면 캐시에서 가져올지 결정합니다. ( 2524 ) - 인스턴스의 카탈로그 정보를 검색할 수 없는 경우(예: 인스턴스가 아카이브된 경우) 초기화가
QiskitRuntimeService더 이상 실패하지 않습니다. ( 2603 )
0.44.0 (2025-12-16)
업그레이드 주의사항
-
QiskitRuntimeService.backend()에서 플래그를use_fractional_gates=True설정하여 소수 게이트를 지원하지 않는 백엔드가 요청될 경우,IBMInputValueError가 발생합니다. ( 2405 ) -
URL 해결기가 업데이트되어 이제 및
ibm_quantum_platformibm_cloud채널 모두 동일한 런타임 진입점인 URL (https://quantum.cloud.ibm.com/api/v[x])을 생성합니다. 이전에는ibm_cloud채널이 더 이상 사용되지 않는 URL 을 생성하고 리디렉션을 사용했습니다. 이번 변경으로 해당 종속성이 제거되었으며, 채널 간 URL 생성이 통일되었습니다. 사용자에게 보이는 변경 사항은 없습니다. ( 2486 ) -
이제 입력
included_channels인수의 채널 순서에 따라 에 대한 y축 채널draw_circuit_schedule_timing()정렬이 적용되었습니다. ( 2492 ) -
에
draw_circuit_schedule_timing()새로운merge_common_instructions입력 인수를 추가했는데, 이 인수를 로 설정하면 시간적 연속성에 따라 동일한True유형의 명령어를 병합합니다.예시 ( 2494 ):
from qiskit_ibm_runtime.visualization import draw_circuit_schedule_timing job_result: SamplerPubResult = job.result() circuit_schedule: str = job_result[0].metadata["compilation"]["scheduler_timing"]["timing"] fig = draw_circuit_schedule_timing( circuit_schedule=circuit_schedule, merge_common_instructions=True ) fig.show()
새 기능
-
작업이 제출될 때, 사용 중인 인스턴스가 한도에 도달한 경우 경고가 표시됩니다. ( 2458 )
-
모듈에
fake_provider“Fake Nighthawk” (FakeNighthawk) 백엔드를 추가했습니다.커플링 맵과 기본 게이트는 실제 나이트호크 백엔드의 것과 일치하지만, 해당 속성은 전형적인 나이트호크 오류 값을 나타내려는 의도가 아닙니다. 이 가짜 백엔드를 사용하여, 예를 들어 다가올 Nighthawk 백엔드를 대비해 회로를 트랜스파일하고 최적화할 수 있습니다. 100큐비트 정사각 격자 아이징 회로에 대해 10개의 트로터 단계를 적용했을 때, 헤론 백엔드 대비 회로 깊이가
FakeNighthawk600% 향상된 것으로 나타났다. ( 2476 ) -
이
qiskit_ibm_runtime.transpiler.passes모듈에 새로운 트랜스파일러 패스가 추가되었습니다:ConvertMidCircMeas. 이 패스는 회로 내의 비단말Measure명령어를 감지하여, 대상 기기에서 지원하는 회로 중간 측정 명령어로 변환합니다. 이 패스는 두 개의 인자로 구성됩니다:-
target(필수): 지원되는 명령어를 정의하는 백엔드 타겟. -
mcm_name(선택 사항): 사용할 중간 회로 측정 명령의 이름.기본값은
measure_2.입니다. 이름은 다음 형식을 따라야measure_[X]합니다(예:measure_3,measure_reset).
초기화 과정에서 패스는 지정된 대상이 적어도 하나의 큐비트에서 주어진 중간 회로 측정 명령을 지원하는지 확인합니다. 그렇지 않으면 시공이 실패합니다. 이 패스가 실행되면 다음과 같은 작업을 수행합니다:
- 이미 배선된 회로에서 작동합니다.
- 대상 큐비트가 해당 물리적 큐비트에서
Measure`이를 지원하는 경우에만, 비종단 명령어만을 지정된 회로 중간 측정 명령어로 대체합니다.
다음과 같은 기능은 제공하지 않습니다:
- 이는 터미널 측정을 대체하지 않습니다.
- 이는 기존의 회로 중간 측정 지침을 대체하지 않습니다(예:
measure_2~measure_3). - 회로 중간 지점의 측정값을 단자 측정값으로 다시 변환하지 않습니다.
사용 예시 ( 2317 ):
from qiskit import QuantumCircuit from qiskit.transpiler import PassManager from qiskit.providers.fake_provider import GenericBackendV2 from qiskit_ibm_runtime.circuit import MidCircuitMeasure from qiskit_ibm_runtime.transpiler.passes import ConvertToMidCircuitMeasure from qiskit.transpiler.target import Target # Fake target construction for demo purposes mcm = MidCircuitMeasure() target = GenericBackendV2(num_qubits=2, seed=0).target target.add_instruction(mcm, {(i,): None for i in range(2)}) # Example usage qc = QuantumCircuit(2, 2) qc.measure(0, 0) qc.cx(0,1) qc.measure(1, 1) my_pass = ConvertToMidCircuitMeasure(target) pm = PassManager([my_pass]) new_qc = pm.run(qc) print(new_qc)예상 출력:
┌────────────┐ q_0: ┤0 ├──■───── │ │┌─┴─┐┌─┐ q_1: ┤ Measure_2 ├┤ X ├┤M├ │ │└───┘└╥┘ c_0: ╡0 ╞══════╬═ └────────────┘ ║ c_1: ════════════════════╩═ -
버그 수정
- .
QiskitRuntimeService에 지정된 프록시 구성 사용 시 IAM 인증 버그 수정 클라우드 인증(CloudAuth)을 사용할 때 패치는 에서IAMTokenManager속성을proxies``verify``QiskitRuntimeService로 주입합니다. ( 2344 )
기타 참고사항
- 사용 중단된 메서드
check_pending_jobs()와delete_job()메서드, 그리고 Python 3.9 에 대한 지원이 제거되었습니다. ( 2439 ) - 선택적 입력으로
CircuitSchedule추가됨.draw_circuit_schedule_timing()이를 통해 회로 스케줄 타이밍 데이터를 드로잉 기능 외부에서 수동으로 전처리할 수 있습니다. ( 2457 )
0.43.1 (2025-10-23)
업그레이드 주의사항
- 저장된 계정으로 초기화할
QiskitRuntimeService때, 저장된 계정 이름(또는 기본 계정)과 관련된 로그 메시지 수준이info``warning로 하향 조정되었습니다. ( 2445 )
0.43 (2025-10-14)
지원 중단 노트
-
트랜스파일러 분석 및 패딩 처리 단계가 끝난 후 초기화자에 새로운
target인자,PadDelayALAPScheduleAnalysis,PadDynamicalDecoupling,BlockBasePadder가 추가되었습니다. 이 변경 사항으로 해당 처리 단계들이 더 광범위한 Qiskit 트랜스파일러 아키텍처와 일관성을 갖게 되었으며, 인자의durations사용은 더 이상 필요하지 않게 되었습니다.사용자 정의 스케줄링 패스에서 사용되던 이
DynamicCircuitInstructionDurations클래스는qiskit-ibm-runtimev0.43 부터 더 이상 사용되지 않게 되었습니다. 이 클래스는 Eagle 프로세서에서 스케줄링 작업을 수행하도록 최적화되었으나, 현재 제공되는 Heron 프로세서 환경에서는 더 이상 사용되지 않게 되었습니다. 이 클래스는 위에 나열된 스케줄링 단계(ALAPScheduleAnalysis,PadDelay,PadDynamicalDecoupling,BlockBasePadder)에서 인수를`durations정의하는 데 사용되었습니다. 이 인수 또한 더 이상 사용되지 않으며, 향후 릴리스에서 제거될 예정입니다. 사용자 여러분께서는 인수로target마이그레이션하시기를 권장합니다. ( 2403 ) -
RuntimeOptions클래스는 더 이상 사용되지 않습니다. 이 클래스는 원래 사용자 지정 프로그램에만 사용하도록 되어 있었으며 더 이상 필요하지 않습니다. (2435 )
새 기능
-
circuit.library이qiskit_ibm_runtime패키지에 와 라는circuit두 가지 새로운 모듈이 추가되었습니다. 이 모듈들은 해당qiskitSDK 모듈의 구조를 반영하도록 설계되었으며, 동시에 회로 객체 및 명령어에 대한 벤더별 구현을 제공합니다.이 새로운 회로 라이브러리에 처음 추가된 것은
MidCircuitMeasure클래스입니다. 이 클래스를 사용하면 명명 규칙(measure_<identifier>)을 따르는 명령어를 생성할 수 있으며, 이 명령어는 해당 패턴과 일치하는 특정 중간 회로 측정 하드웨어 명령어에 매핑됩니다. 이 인스트럭션의 기본 이름은"measure_2"입니다.사용 예:
from qiskit import QuantumCircuit from qiskit_ibm_runtime.circuit import MidCircuitMeasure measure_2 = MidCircuitMeasure() measure_3 = MidCircuitMeasure("measure_3") qc = QuantumCircuit(1, 1) qc.append(measure_2, [0], [0]) qc.append(measure_3, [0], [0]) qc.measure([0], [0])출력:
┌────────────┐┌────────────┐┌─┐ q: ┤0 ├┤0 ├┤M├ │ Measure_2 ││ Measure_3 │└╥┘ c: ╡0 ╞╡0 ╞═╩═ └────────────┘└────────────┘convert_to_target()유틸리티는 백엔드 구성 파일(configuration.json)에서 추가"instruction_signatures"필드를 지원하도록 업데이트되었습니다. 이 필드는 백엔드에서 보고하는 비단일, 비표준 지침을 나타내기 위한 것으로 다음 스키마를 준수해야 합니다:"instruction_signatures" = [ { "name": "measure_2", "num_qubits": 1, "num_clbits": 1, "parameters": [], "return_type": "Bool", "description": "An alternative measurement. This can be used as a mid-circuit measurement in a dynamic circuit. ", }, { "name": "reset_2", "num_qubits": 1, "num_clbits": 1, "parameters": [], "return_type": "Bool", "description": "An alternative reset instruction.", } ]이 변경 사항 외에도
convert_to_target()함수는 이제custom_name_mapping인수를 허용하고 원래 핵심 구현에서add_delay및filter_faulty플래그를 노출합니다. (2316 ) -
calibration_idQiskitRuntimeService.backends()그리고QiskitRuntimeService.backend()새로운 매개변수인 가 있습니다. 이 사용자 지정 보정 설정은 타깃을 생성하는 데 사용될 뿐만 아니라, 백엔드에서 기본 작업(primitive jobs)을 실행할 때도 사용됩니다. ( 2432 ) -
작업 결과 메타데이터에 반환된 회로 스케줄 타이밍 데이터를 플로팅하는 새로운 함수
visualization.draw_circuit_schedule_timing()를 추가했습니다. 이 기능은 현재 베타 기능이며 아래와 같이"scheduler_timing"실험적 옵션을True으로 설정해야 합니다. 현재Sampler작업에만 사용할 수 있습니다.sampler = SamplerV2(backend) sampler.options.experimental = { "execution": { "scheduler_timing": True, }, }그런 다음 작업의 결과 메타데이터에서 다음과 같이 회로 스케줄 데이터에 액세스할 수 있습니다:
job_result: SamplerPubResult = job.result() circuit_schedule = job_result[0].metadata["compilation"]["scheduler_timing"] circuit_schedule_timing = circuit_schedule["timing"]이 함수는 새로운
CircuitSchedule클래스를 사용하여 Plotly 지원 인터페이스를 사용하여 플로팅을 위한 데이터를 로드, 구문 분석, 전처리 및 추적합니다. (2328 ) -
이제 IBM Quantum Platform 에 대한 가상 비공개 엔드포인트가 지원됩니다. 가상 사설 엔드포인트 가이드에서 자세히 알아보세요. (2367 )
-
QiskitRuntimeService.job()이제.을 사용하여 해당 작업을 실제로 불러오지 않고도 작업의 태그를 조회할 수 있습니다. ( 2420 ) -
ConvertISAToClifford패스는 이제 분수 게이트가 포함된 회로의 클리포디제이션을 지원합니다. (2427 )
0.42.0 (2025-09-15)
버그 수정
- 이
QiskitRuntimeService.least_busy()메서드의 동작이 일관되지 않았던 이유는, API 스키마에서 선택 사항으로 표시된 “reason” 필드에 대해 API로부터 고정된 응답을 기대했기 때문입니다. 이 필드에 더 이상 의존하지 않도록 함으로써 이 문제가 해결되었습니다. ( 2411 )
업그레이드 주의사항
-
인스턴스 없이 초기화되고 저장된 계정 인스턴스가 없는 경우
QiskitRuntimeService, 이제 현재 필터(tags,region, 및plans_preference)와 사용 가능한 인스턴스에 대한 세부 정보를 담은 경고 메시지가 표시됩니다. 이 옵션이 설정되지 않은 경우plans_preference, 무료 및 체험판 요금제 인스턴스가 유료 인스턴스보다 우선적으로 처리됩니다.현재 활성 인스턴스를 더 명확하게 알리기 위해 추가 경고도 추가되었습니다:
- 사용자에게 저장된 계정을 사용하고 있는지 아니면 수동으로 지정한 자격 증명을 사용하고 있는지 알려주는 경고 메시지입니다.
- Qiskit Runtime 에서 요청된 백엔드에 대한 인스턴스를 자동으로 선택하면 인스턴스 이름과 요금제 유형이 포함된 경고가 표시됩니다.
이제 API 토큰(키)만으로도 초기화할
QiskitRuntimeService수 있습니다. 채널 이름이ibm_quantum제거되었고, 채널과ibm_quantum_platform채널이ibm_cloud모두 동일한 API를 가리키게 되었으므로, 매개변수는channel더 이상 필요하지 않습니다.ibm_quantum_platform기본 채널입니다. ( 2375 ) -
스트리밍 결과에 대한 지원이
0.32.0에서 제거되었으므로 더 이상 사용되지 않는(0.38.0) 환경 옵션callback과BaseRuntimeJob매개변수client_params및user_callback도 제거되었습니다.RuntimeJob클래스도 제거되었습니다. 모든 프리미티브는 작업을RuntimeJobV2로 반환합니다. 코드베이스 전반의 유형 힌트가 이 변경 사항을 반영하도록 업데이트되었습니다. (2298 ) -
RuntimeJobV2.properties()이제 작업이 생성된 시점이 아닌, 작업이 실행되기 시작한 시점의 백엔드 속성을 가져옵니다. ( 2369 ) -
초기화와 직렬화 간의 일관성을 유지하기 위해 의
QasmBackendConfigurationrep_times단위 변환에서 발생한 불일치를 수정했습니다.default_rep_delay``to_dict()이제 초기화 과정에서 해당 매개변수가 마이크로초에서 초로 올바르게 변환되며, 를 통해 직렬화될 때는 다시 마이크로초로 변환되어,rep_delay_range다른 타이밍 매개변수인 및 의 동작과 일치합니다. ( 2386 ) -
QiskitRuntimeService이제 서비스 초기화 시.에 유효하지 않은 API 토큰이 전달되면 일관된 오류가 발생합니다.지정된 토큰과 연결된 계정에 지정된 인스턴스에 대한 액세스 권한이 없는 경우에도 오류가 발생합니다. 이는 이전에
0.40.0릴리즈 노트에 문서화된 동작입니다. (2408 )
새 기능
-
이제 백엔드가 분수 게이트와 동적 회로를 모두 포함하는 작업 실행을 지원하므로
use_fractional_gates=True을 사용할 때 제어 흐름 명령이 더 이상 필터링되지 않습니다. 그 결과 동적 회로와 분수 게이트가 모두 있는 회로를 대상으로 하는 새로운 번역 상태 플러그인(IBMDynamicFractionalTranslationPlugin)이 있습니다.IBMFractionalTranslationPlugin는 더 이상 필요하지 않으므로 더 이상 사용되지 않습니다. (2366 )
0.41.1 (2025-08-18)
버그 수정
-
기본 저장된 인스턴스가 있거나 인스턴스 이름을 전달할 경우 / 생성 시 발생하는 여러 버그를
IBMInputValueError수정했습니다.Session/Batch또한,
QiskitRuntimeService.least_busy()매개변수가instance전달되었거나 기본 인스턴스가 없는 경우, 이제 가장 부하가 적은 백엔드를 올바르게 반환합니다. ( 2359 )
0.41.0 (2025-07-24)
Prelude
Qiskit-ibm-runtime v0.41.0 릴리스는 IBM 퀀텀 플랫폼 클래식의 제거와 새로운 IBM 퀀텀 플랫폼의 사용자 경험 개선에 중점을 두고 있습니다. 새로운 기능, 개선 사항 및 사소한 버그 수정 중 이번 릴리스의 주요 내용은 다음과 같습니다:
ibm_quantum채널과 IQP 클래식은 더 이상 지원되지 않습니다.QiskitRuntimeService.least_busy()훨씬 더 빠릅니다.QiskitRuntimeService.usage()현재 인스턴스의 사용 한도, 사용량 및 남은 시간에 대한 정보를 반환하도록 업데이트되었습니다.
업그레이드 주의사항
- IBM Quantum Platform 클래식의 일몰로 인해
ibm_quantum채널은qiskit-ibm-runtime에서 더 이상 지원되지 않습니다. 저장된ibm_quantum채널 계정 및 데이터는 액세스할 수 없습니다. 대신ibm_quantum_platform채널을 사용하세요. 자세한 내용은 마이그레이션 가이드를 참조하세요. (2289)
새 기능
-
tags초기화자 및QiskitRuntimeService.save_account()메서드에QiskitRuntimeService새로운 매개변수 가 추가되었습니다.tags이를 사용하여 인스턴스를 필터링함으로써, 지정된 태그가 있는 인스턴스만 반환되도록 할 수 있습니다.또한
tags,region,plans_preference필터를 사용할 때 유효한 인스턴스가 반환되지 않으면 이제 초기화 시 오류가 발생합니다. 전달된tags및region의 이름이tags또는region인스턴스와 정확히 일치하는지 확인합니다(대소문자 구분 없음).plans_preference의 경우 일치하는 플랜 이름이 전달되는 한, 일치하는 플랜 이름을 가진 인스턴스가 우선순위를 갖습니다. (2277 ) -
새로운 IBM 퀀텀 플랫폼으로 마이그레이션하면서 IBM 퀀텀 플랫폼 클래식과 몇 가지 불일치가 있어 이를 해결해야 했습니다:
QiskitRuntimeService.usage()이제 현재 활성화된 IBM Cloud 인스턴스에 대한 사용량 정보를 반환합니다.QiskitRuntimeService.delete_job()새로운 플랫폼에서는 지원되지 않으므로, 더 이상 사용되지 않게 되었습니다.RuntimeJobV2.instance()은 이제 IBM Cloud 인스턴스 CRN을 반환합니다.RuntimeJob.queue_usage()는 새 플랫폼에서 지원되지 않으므로 더 이상 사용되지 않습니다. (2296 )
-
Python 3.9 에서
qiskit-ibm-runtime실행에 대한 지원은 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다.또한
qiskit-ibm-runtime이제 공식적으로 Python 3.13 을 지원합니다. (2314) -
이제 계정을 저장할 때
region,plans_preference,tags매개변수가 유효한지 확인하는 유효성 검사가 추가되었습니다. (2319 ) -
현재 활성화된 인스턴스의
IBM CloudCRN 를 반환하는 새로운 메서드가 있습니다.QiskitRuntimeService.active_instance()이
QiskitRuntimeService.jobs()메서드는 작업을 필터링하는 데 사용할 수 있는 매개변수를instance올바르게 처리하도록 업데이트되었습니다. ( 2325 ) -
QiskitRuntimeService.usage()해당usage_remaining_seconds필드가 포함되도록 업데이트되었습니다.usage_consumed_seconds이 필드에는 보고된usage_limit_seconds값 또는usage_allocation_seconds(인스턴스 구성 방식에 따라)과 사이의 차이가 포함됩니다. 인스턴스 할당 한도에 대한 자세한 내용은 여기에서 확인하세요. ( 2329 ) -
refresh()에는 새로운 매개변수use_fractional_gates,True으로 설정하여 가짜 백엔드에 분수 게이트를 포함할 수 있습니다. 이 방법은 실제 백엔드에 액세스할 수 있는 경우에만 작동합니다. (2342) -
이
QiskitRuntimeService는 새로운 API 버전을 사용하도록 업데이트되었습니다. 새 버전에서는 메서드가QiskitRuntimeService.least_busy()업데이트된BackendsResponseV2의 장점을 활용하도록 개선되어 속도가 상당히 빨라졌습니다. ( 2323 ) -
Class에는
TwirledSliceSpan기본값이 1인 정수형 데이터 멤버가data_slice_version하나 추가되었습니다. 이 값을 2로 설정하면, 데이터 슬라이스 튜플에는 반환되는 배열의 형태를 결정하는 데TwirledSliceSpan.mask()사용되는 PUB 샷에 대한 정보가 포함됩니다.pub_shots마지막 축은 잘려져 그 길이가 로 줄어듭니다. ( 2312 ) -
에 대한 직렬화 추가
qiskit.quantum_info.PauliLindbladMap. (2297 ) -
PUB 을 Rzz 제약 조건과 호환되는 동등한 PUB 으로 변환하는 데 사용할 수 있는 새로운 메서드
convert_to_rzz_valid_pub()가 있습니다. 이 방법은 현재 동적 회로를 지원하지 않으며 전역 위상을 보존하지 않습니다. (2126 )
버그 수정
BatchBasePrimitive매개변수mode없이 또는Batch컨텍스트 매니저Session내에서 인스턴스화된 프리미티브가, 또는 에Session전달된 백엔드를 사용하는 대신 서비스에서 (이름을 통해) 백엔드를 가져오던 버그를 수정했습니다. 사용자가 또는Batch백엔드를Session수정했을 때(예를 들어, 게이트를 제거한 경우), 프라이미티브가 서비스에서 수정되지 않은 백엔드 객체를 가져오게 되므로 문제가 발생할 수 있습니다. 수정 후에는 또는Batch백엔드 객체가Session직접 사용됩니다. ( 2282 )basis_gates백엔드 객체가 갱신된 후에도, 등의 속성 변경 사항이 유지되던 문제를IBMBackend수정했습니다. ( 2283 )- 실행 스팬의 직렬화 문제를 수정하여, 구버전의 qiskit-ibm-runtime에서 새로 인코딩된 실행 스팬을 디코딩하려고 할 때 크래시가 발생하지 않도록 했습니다. 하지만 이전 버전을 사용한 역직렬화 시에는 이제 실행 스팬이 객체
ExecutionSpans형태가 아닌 딕셔너리 형식으로 반환됩니다.TwirledSliceSpanV2TwirledSliceSpan이 작업의 일환으로, 우리는 또한 필드를data_slice_version제거했습니다. pub 샷을 인식하는 twirled 슬라이스 스팬은 이제 새로운 클래스 에 의해 관리됩니다. ( 2347 )
기타 참고사항
None더 이상 사용되지 않는IBMBackend속성인max_shots및max_experiments가 제거되었으며, 메서드는IBMBackend.max_circuits()이제 를 반환합니다. 자세한 내용은 작업 제한 가이드를 참조하십시오. ( 2235 )- 사용 중단된
IBMBackend및FakeBackendV2defaults()메서드가 제거되었습니다. 이 기능들은 ‘ v0.38.0 ’ 릴리스에서 더 이상 권장되지 않게 되었습니다. 또한 모든 가짜 백엔드에서 펄스 기본값이 제거되었습니다. ( 2238 ) - span 요소 내에 포함되지 않은 PUB 에 대해 호출될 때
ExecutionSpan.mask()반환되는 오류 메시지를 개선했습니다. ( 2311 )
0.40.1 (2025-06-04)
버그 수정
- 초기화 시 저장된 인스턴스가 없거나 인스턴스가 전달되지 않은 경우, 또는
QiskitRuntimeService.backends()이 먼저 호출될 때까지QiskitRuntimeService.backend()서비스가 API 호출을 수행할 수 없던 문제를 수정했습니다. use_fractional_gates이 설정되었지만 백엔드 구성이 이미 캐시된 경우 잘못된 구성이 반환될 수 있는 버그가 수정되었습니다. (2269 )
기타 참고사항
- 회로 검증 중
rzz게이트 각도가 허용 범위인 0에서 범위를 벗어나는 것과 관련된 오류 메시지가 백엔드에서 제공한 각도 값이 아니라 회로에서 요청한 각도 값이 문제였음을 명확히 하기 위해 업데이트되었습니다. (2276 )
0.40.0 (2025-05-28)
새 기능
-
곧 예정된 IBM Quantum 플랫폼 마이그레이션을 지원하기 위해 다음과 같이 변경되었습니다:
-
서비스 초기화를 위한 새로운 채널 유형인
ibm_quantum_platform이 도입되었습니다(QiskitRuntimeService()). 이 채널은 기존ibm_quantum(현재는 사용되지 않음) 및ibm_cloud채널에 합류합니다. 기본적으로 채널을 지정하지 않으면ibm_quantum_platform이 선택됩니다. 이 새 채널은 새로운 IBM 퀀텀 플랫폼 API에 연결되며ibm_cloud을 대체할 예정입니다. 그 동안ibm_cloud채널은 새 API로 리디렉션되지만 계속 사용하는 것은 권장하지 않습니다. -
새로운 플랫폼(
ibm_quantum_platform, 그리고 일시적으로ibm_cloud채널)에서 계정을 저장(QiskitRuntimeService.save_account())하거나 초기화(QiskitRuntimeService())할 때 더 이상 값이instance필요하지 않습니다.QiskitRuntimeService.save_account()인스턴스가 전달되지 않은 경우, 백엔드를 가져올 때 모든 인스턴스가 확인됩니다 (service.backend("backend_name")). 인스턴스가 에 전달되거나 초기화 과정에서 전달된 경우, 해당 인스턴스는 백엔드를 가져올 때 기본 인스턴스로 사용됩니다. 초기화 시 전달된 인스턴스는 계정에 저장된 인스턴스보다 우선 적용됩니다. -
새로운 플랫폼에서 계정을 저장(
QiskitRuntimeService.save_account())하거나 초기화(QiskitRuntimeService())하려면 IBM Cloud API 토큰(token)이 필요하다는 점에 유의하십시오. 이는 계정 식별자로 간주되며, 토큰이 생성된 계정과 연결된 리소스의 잠금을 해제합니다. 계정별 토큰 목록은 여기에서 확인할 수 있습니다. API 토큰당 하나의 계정만 사용할 수 있습니다. 여러 계정을 사용하려면 여러 개의 API 토큰을 생성해야 합니다. -
백엔드를 가져올 때 를
instance명시적으로 전달할 수 있도록 및QiskitRuntimeService.backends()메서드가QiskitRuntimeService.backend()업데이트되었습니다:service.backend(name="...", instance="..."). -
초기화자 및
QiskitRuntimeService.save_account()메서드에QiskitRuntimeService새로운 매개변수,region, 및plans_preference가 추가되었습니다. 이를 통해 CRN 를 명시적으로 지정하지 않고도 새로운 플랫폼(ibm_quantum_platform및 일시적으로ibm_cloud채널)에서 특정 인스턴스의 우선 순위를 지정할 수 있습니다. 좀 더 자세히 설명하자면:region: 지역 기본 설정을 설정합니다.us-east또는eu-de.plans_preference: 기본 설정에 따라 정렬된 계정 유형 목록입니다. 목록에서 첫 번째 유형의 인스턴스가 우선순위를 갖습니다.
예를 들어
region이us-east으로 저장된 경우us-east의 인스턴스만 확인됩니다.plans_preference을 설정하면 지정된 순서대로 인스턴스의 우선 순위가 지정되므로['Open', 'Premium']은 모든 오픈 요금제 인스턴스, 모든 프리미엄 요금제 인스턴스, 나머지 인스턴스 순으로 우선 순위가 지정됩니다.plans_preference의 요금제 이름은 API 이름과 정확히 일치해야 합니다(대소문자 구분 없음). -
의
QiskitRuntimeService입력 매개변수가instance확장되어 및ibm_cloud채널에ibm_quantum_platform대한 새로운 입력 유형을 지원하게 되었습니다. IBM Cloud 리소스 이름( CRN ) 외에도, 이제 인스턴스 값으로 인스턴스 이름을 전달할 수 있습니다. -
이
instances()메서드는 이미 활성화된ibm_quantum채널 외에도, 및ibm_cloud채널과ibm_quantum_platform관련된 모든 사용 가능한 인스턴스를 표시하도록 확장되었습니다.다음 코드 스니펫은 위에서 설명한 변경 사항 (2239) 으로 활성화된 새로운 사용 패턴을 보여줍니다:
# save account service = QiskitRuntimeService.save_account( # No channel needs to be specified, ibm_quantum_platform is the default token=token, region="eu-de", # Optional plans_preference=['Open',...], #Optional set_as_default=True #Optional ) # initialize account service = QiskitRuntimeService() # defaults to ibm_quantum_platform account service.backend(name="...") # picks instance based on saved preferences service.backend(name="...", instance="...") # can also explicity pass in an instance to use # initialize account with instance service = QiskitRuntimeService(instance = "...") # sets instance as default instance service.backend(name="...") # only checks default instance, fails if the backend not in the instance service.backend(name="...", instance="...") # can still explicity pass in a different instance # OR # save account with instance service = QiskitRuntimeService.save_account( # No channel needs to be specified, ibm_quantum_platform is the default token=token, instance="..." # This will be the default instance region="us-east", # Optional plans_preference=['Open',...], #Optional set_as_default=True #Optional ) # initialize account service = QiskitRuntimeService() # defaults to ibm_quantum_platform account service.backend(name="...") # only checks saved default instance from save_account service.backend(name="...", instance="...") # can also explicity pass in an instance which takes precendence # initializing account with instance works the same way service = QiskitRuntimeService(instance = "...") # sets instance as default instance, overrides instance from save_account service.backend(name="...") # only checks default instance, fails if the backend not in the instance service.backend(name="...", instance="...") # can still explicity pass in a different instance
-
-
EnvironmentOptions아래의private옵션이 이제ibm_cloud및ibm_quantum_platform채널(신규 IBM 퀀텀 플랫폼)에서 지원됩니다. 이 옵션을True으로 설정하면 작업은 매개 변수 없이 반환되며, 결과는 한 번만 검색할 수 있습니다.작업의 비공개 여부를 반환하는 새로운
private()속성도 있습니다. (2263 )
버그 수정
target()에서defaults()로의 호출은 백엔드 기본값이 더 이상 대상 생성에 사용되지 않기 때문에 제거되었습니다. (2261)
0.39.0 (2025-05-13)
새 기능
- 이제 지원되는 최대 QPY 서비스 버전은 14입니다. (2231)
- 이제 에
EstimatorV2대한 Pub 입력은, 관측 가능량이 오직 {I, X, Y, Z} 만을 포함하는 파울리 연산으로 구성되어 있는지 확인하는 새로운 유효성 검사 단계를 거치게 됩니다. ( 2254 )
버그 수정
- 및
Session클래스에Batch새로운 매개변수가create_new추가되었습니다. 이 매개변수를 통해 사용자는 클래스를 초기화할 때 POST 세션 API 엔드포인트를 호출할지 여부를 제어할 수 있습니다. 대부분의 사용자 대상 워크플로우에서 이와 같은 방식으로 설정되므로, 기본값은 로True설정됩니다. 그러나 기존 세션이 아직 활성화된 상태에서는 새 세션이 생성되지 않도록 로False설정하는 등의Session.from_id()방법을 사용할 수 있습니다..from_id()이를 통해.을 호출할 때 여러 세션이 동시에 생성되던 문제가 해결되었습니다. ( 2195 ) Batch및 에서Session매개변수에backend대한 잘못된Optional타입 힌트를 제거했습니다. ( 2222 )Session.from_id()이제 세션에 알려진 백엔드가 없는 경우 오류가 발생합니다. 세션에서 아직 어떤 작업도 실행되지 않은 경우 대개 이런 현상이 발생합니다. ( 2226 )
기타 참고사항
- IBM Cloud 계정은 이제 사용자가 제공한 토큰 대신 액세스 토큰을 사용하여 Qiskit Runtime API를 호출합니다. (2102 )
IBMInputValueError는 이제 기존 부모 클래스IBMError외에ValueError에서 상속합니다. 이전에ValueError예외를 발생시켰던 일부 유효성 검사 함수는 이제IBMInputValueError예외를 발생시킵니다. (2250 )
0.38.0 (2025-04-15)
지원 중단 노트
RuntimeJob이 기능은 이제 사용 중단되었으며, 이번 릴리스일로부터 최소 3개월이 지난 후에 제거될 예정입니다.RuntimeJob모든 기본 구현에서 로RuntimeJobV2대체되었으므로, 이 기능의 사용 중단은 사용자에게 아무런 영향을 미치지 않을 것입니다. 이 두 클래스의 가장 큰 차이점은 가status()Qiskit의JobStatusenum 대신 문자열을 반환한다는 점입니다. ( 2170 )- 펄스 게이트가 더 이상 지원되지 않으므로, 및
FakeBackendV2defaults()메서드는IBMBackend더 이상 권장되지 않으며, 이번 릴리스일로부터 최소 3개월 후에 제거될 예정입니다. 이 메서드는 여전히 존재하지만, 이러한 펄스 기본값은 더 이상 백엔드 타깃을 구성하는 데 사용되지 않습니다. ( 2186 ) ibm_quantum채널 옵션은 더 이상 사용되지 않으며 7월 1일에 일몰됩니다. 이 날짜 이후에는ibm_cloud,ibm_quantum_platform,local만 유효한 채널이 됩니다.ibm_cloud채널의 새로운 IBM Quantum Platform 채널로 마이그레이션하는 데 도움이 필요하면 마이그레이션 가이드를 참조하세요. (2205 )
새 기능
- 이제
backend.<attribute_name>을 사용하여 가짜 백엔드 구성의 속성을 직접 검색할 수 있습니다. (2202)
버그 수정
DoubleSliceSpan.mask()및TwirledSliceSpan.mask()에 1차원 슬라이스가 포함될 때 오류가 발생하는 버그가 수정되었습니다. (2184 )
업그레이드 주의사항
0.32.0에서 스트리밍 결과에 대한 지원이 제거되었으므로 나머지 관련 웹소켓 코드도 제거되었습니다. 이 프로세스의 일환으로 환경 옵션callback과BaseRuntimeJob의 매개 변수client_params및user_callback는 더 이상 사용되지 않습니다. (2143 )
0.37.0 (2025-03-13)
지원 중단 노트
IBMBackend속성max_shots및max_experiments과 속성max_circuits은 모두 더 이상 사용되지 않습니다. 이러한 속성 값은 한 작업에서 제출할 수 있는 최대 샷 수와 회로를 나타내곤 했지만 더 이상 그렇지 않습니다. 자세한 내용은 작업 한도 가이드를 참조하세요. (2166 )
새 기능
-
qiskit-ibm-runtime이제 키스킷과 호환됩니다 2.0. 이는 키스킷 2.0 에서 제거된 클래스와 메서드도 그에 따라 제거되거나 처리되었음을 의미합니다.pulse및channel관련 변경 사항은 아래에 강조 표시되어 있습니다:Channel메서드가 제거되었습니다(IBMBackend).- 백엔드 구성 클래스
PulseBackendConfiguration가 제거되었으므로 이제 모든 백엔드는QasmBackendConfiguration로 반환됩니다. PulseDefaults(백엔드 기본값)은 여전히 검색할 수 있지만 백엔드를 만들 때 더 이상 필요하지 않습니다Target.
자세한 내용은 Pulse 마이그레이션 가이드를 참조하세요. (2116 )
-
세션 또는 배치 컨텍스트 관리자 외부에서 프리미티브가 초기화될 때 경고를 추가했습니다. 이 시나리오에서는 세션이나 배치 대신 작업 모드에서 작업이 실행됩니다. (2152 )
버그 수정
- 키스킷 2.x 에서 사용자 정의 스케줄링 트랜스파일러 단계에 대한 지원을 수정했습니다. (2153 )
- ConvertConditionsToIfOps 이제 키스킷 1.x 을 사용할 때 동적 회로에 대한 스케줄링 플러그인의 모든 최적화 수준에서 올바르게 실행됩니다. (2154 )
jobs()을 사용하여 작업을 가져올 때, v1 와 v2 기본 유형을 구분할 방법이 없습니다.RuntimeJobV2``0.28.0v1 의 기본 요소가 6개월여 전에 완전히 제거됨에 따라, 에서jobs()반환된 작업은 이제 기본적으로 로 설정됩니다. ( 2156 )
0.36.1 (2025-02-14)
버그 수정
qiskit-aer을 설치하지 않으면 가져오기 오류가 발생하던 문제를 수정했습니다. (2144 )
0.36.0 (2025-02-14)
업그레이드 주의사항
-
최소 요구 사항인
qiskit버전은 이제 1.3 입니다. 키스킷( 1.3 )에서 QPY 버전 13을 소개합니다. 최소 요구되는 키스킷 버전이 상향되어 Qiskit Runtime 에서 작업 제출 시 회로를 직렬화할 때 최신 QPY 버전을 사용할 수 있게 되었습니다. (2096 ) -
다음과 같은 오래된 사용 중단이 제거되었습니다:
- 클라우드 시뮬레이터에서 시뮬레이터 옵션(
noise_model)에 대한 지원이 제거되었습니다. 이 옵션은 로컬 테스트 모드에서도 계속 작동합니다. NoiseLearnerResult속성generators및rates이 제거되었습니다.error속성에서 계속 액세스할 수 있습니다.- 유틸리티 기능
get_runtime_api_base_url()이 제거되었습니다. (2124 )
- 클라우드 시뮬레이터에서 시뮬레이터 옵션(
0.35.0 (2025-02-04)
업그레이드 주의사항
- Python 3.8 2024년 10월 7일에 수명이 종료됩니다. 키스킷 SDK는
qiskit 1.3에서 3.8 에 대한 지원을 중단했습니다. 같은 맥락에서qiskit-ibm-runtimePython 3.8 더 이상 지원하지 않습니다. (2097 ) backend.run()에 대한 지원이 제거되었습니다.backend.run()을 사용하는 기존 코드를 새로운 V2 프리미티브 인터페이스로 마이그레이션하는 방법은 마이그레이션 가이드를 참조하세요. (1962 )- RZZ 게이트가 있는 매개변수 표현식은 PUB 에서 할당된 값과 비교하여 확인됩니다. PUB 에 지정된 매개변수 값이 잘못된 각도(음수이거나
pi/2보다 큰 값)로 평가되면IBMInputValueError이 발생합니다. (2093 ) - 유지 관리 중단이 발생하면
QiskitRuntimeService을 초기화하려고 할 때 적절한 오류 메시지가 표시됩니다. (2100 )
새 기능
- 이제 로컬 테스트 모드에서 실행되는 작업은 새 클래스인
LocalRuntimeJob의 인스턴스를 반환합니다. 이 새로운 클래스는 키스킷의PrimitiveJob클래스를 상속하면서BaseRuntimeJob에 있는 메서드와 프로퍼티를 추가합니다. 이렇게 하면 로컬 테스트 모드에서 작업을 실행하는 것이 실제 백엔드에서 작업을 실행하는 것과 더 유사해집니다. (2057 ) - 두 개의 새로운 가짜 백엔드(
FakeFez및FakeMarrakesh)가 추가되었습니다. 156-큐비트 헤론 디바이스입니다. (2112 )
0.34.0 (2024-12-05)
새 기능
-
ZNE를 사용하여 실험 데이터를 시각화할 수 있는
draw_zne_evs및draw_zne_extrapolators함수를 추가했습니다. 해당 시각화 함수를 호출하는draw_zne_evs및draw_zne_extrapolators메서드와 함께EstimatorPubResult을 추가했습니다. (1820 ) -
로컬 샘플러에 노이즈 모델 및 레벨 1 데이터 지원 추가
이제 해당
SamplerV2simulator.noise_model옵션은, 해당 프리미티브가 run_options 옵션을 지원하는 경우(이 지원 기능은 Qiskit v1.3 에서 추가됨), run_options 아래의 noise_model 옵션으로BackendSamplerV2전달됩니다.run_options마찬가지로, 옵션은SamplerV2execution.meas_type이제 를BackendSamplerV2지원하는 경우, 의 아래에run_options있는 및meas_return옵션으로meas_level변환됩니다. 이번 변경을 통해 로컬 테스트 모드에서 레벨 1 데이터를 지원할 수 있게 되었으며, 이전에는 레벨 2(기밀) 데이터만 지원되었습니다. ( 1990 ) -
새로운 기능
validate_rzz_pubs이 추가되었습니다. 이 함수는 숫자 매개변수(예:rzz(np.pi/4, 0))의 경우rzz매개변수가0과pi/2사이의 범위에 있는지, 그리고 게시글에 대체할 값이 제공된 무제한 매개변수(rzz(theta, 0))의 경우 매개변수가 과 사이의 범위에 있는지 확인합니다. 매개변수 표현식(예:rzz(theta + phi, 0))은 아직 유효성이 검사되지 않았습니다. (2021 ) -
FoldRzzAngle새로운 트랜스파일러 번역 플러그인과IBMFractionalTranslationPlugin패스를 추가했습니다. 이 플러그인은 opt-in으로use_fractional_gates가져온 백엔드에 자동으로 적용되며, 백엔드 타깃에 gate가RZZ포함되어 있을 때 폴딩 단계가 추가됩니다.새로운 패스는 입력 양자 회로를 수정하여 모든
RZZ회로의 게이트는 IBM Quantum 프로세서에서 지원되는 [0, pi/2] 내의 각도 매개변수를 갖습니다. (2043 )
업그레이드 주의사항
-
0.26.0릴리스의 사용 중단이 제거되었습니다.Session,Batch,Sampler,Estimator에 백엔드를 문자열로 전달하는 것은 더 이상 유효하지 않습니다. 대신 실제 백엔드 객체를 사용하세요.- 이전에는
SamplerV2또는EstimatorV2에 백엔드를 모드로 전달하면 세션 컨텍스트 관리자가 열려 있어도 작업 모드에서 작업이 실행되었습니다. 이제 이러한 작업은 열린 세션 내에서 실행됩니다. 또한 세션 백엔드와 다른 백엔드가 모드로 전달되면 오류가 발생합니다. Service는Session및Batch에서 더 이상 유효한 매개 변수가 아닙니다. (2027 )
버그 수정
FakeBackendV2.refresh()에서 백엔드 속성, 기본값 및 구성이 항상 새로 고쳐지지 않던 문제를 수정했습니다. (2020 )CouplingMap에RuntimeEncoder추가되어 이제 해당NoiseLearner프로그램에 전달할 수 있게 되었습니다. ( 2026 )- 의
QiskitRuntimeService.backend()인수의use_fractional_gates동작이 변경되었습니다.False이 옵션이 로 설정되면, API의 구성 및 속성 데이터에서 분수 게이트에 대한 모든 참조를 필터링합니다. 마찬가지로, 이 옵션이 로True설정되면 모든 동적 회로 명령어가 구성 및 속성 데이터에서 필터링됩니다. 이전에는 이 옵션이 백엔드 타깃의 생성에만 영향을 미쳤기 때문에, 타깃 내의 지침이 구성 및 속성 데이터에 포함된 지침과 일치하지 않았습니다. 대부분의 경우, 이 변경 사항은 사용자에게는 눈에 띄지 않을 것이지만, 모든 명령어를 포함하는 구성 및 속성 데이터에 의존하는 코드가 있다면 이를 업데이트해야 합니다(를 로None설정하면use_fractional_gates필터링 없이 모든 명령어가 로드된다는 점에 유의하십시오). ( 2031 ) - 서버에 유효하지 않거나 존재하지 않는 백엔드 구성으로 인해 더 이상
service.backends()로 모든 백엔드를 검색할 수 없습니다. (2048 ) pydantic종속성 버전을<2.10에 고정하여 빌드 프로세스가 중단되는 회귀를 방지하세요. (2049 )
기타 참고사항
-
requirements.txt및setup.py파일은pyproject을 사용하는 새로운 종속성 관리 방식을 위해 제거되었습니다. 이러한 전환은 개발 워크플로를 간소화합니다. 이제 종속성은 pyproject.toml 파일을 통해 직접 관리됩니다.pip install -e .를 사용하여 qiskit-ibm-runtime 종속성을 설치한다.pip install -e ".[dev]"을 사용하여 개발 종속 요소를 설치합니다.pip install -e ".[visualization]"을 사용하여 시각화 종속 요소를 설치합니다. (2053 )
0.33.2 (2024-11-11)
버그 수정
- RZZ 유효성 검사에서 매개변수 표현식을 올바르게 처리하지 못하는 문제를 수정했습니다. (2035 )
0.33.1 (2024-11-08)
기타 참고사항
decode_backend_configuration()에 비공개 별칭을 추가했습니다. (2028 )
0.33.0 (2024-11-07)
새 기능
- 하나 이상의
LayerError객체에 대한 스웜 플롯을 그리는 메서드가 추가되었습니다draw_layer_errors_swarm(). 또한 특정 인스턴스에서 그리기 함수를 호출할 수 있는 편의 메서드도draw_swarm()추가했습니다. ( 1988 ) TwirledSliceSpan샘플러에서 트위링이 활성화되었을 때 사용되는 를ExecutionSpan추가했습니다. 특히, 이 기능은 회전 무작위화에 해당하는 추가적인 모양 축을 추적하며, 이 축이 모양 튜플의 맨 앞에 위치하는지, 아니면 샷 축 바로 앞에 위치하는지도 함께 추적합니다. ( 2011 )
업그레이드 주의사항
- 나머지 가짜 V1 백엔드(
FakeMelbourne,FakePoughkeepsie,FakeTenerife,FakeTokyo,FakeRueschlikon)는 제거되었습니다. (2012)
버그 수정
draw_execution_spans()함수의 호버 텍스트 위치를 수정했습니다. 이 수정 이전에는 잘못된 마커에 그려져 있었습니다. (2014 )
0.32.0 (2024-10-30)
새 기능
-
draw_execution_spans()하나 이상의ExecutionSpans객체를 시각화하는 Plotly 그림을 생성하는 함수인 ``가 추가되었습니다. 또한 특정 인스턴스에서 그리기 함수를 호출할 수 있는 편의 메서드도draw()추가했습니다. ( 1923 )from qiskit_ibm_runtime.visualization import draw_execution_spans # use the drawing function on spans from sampler job data spans1 = sampler_job1.result().metadata["execution"]["execution_spans"] spans2 = sampler_job2.result().metadata["execution"]["execution_spans"] draw_execution_spans(spans1, spans2) # convenience to plot just spans1 spans1.draw() -
서버의 최신 업데이트로 현재 백엔드 대상을 새로 고치는 새로운 메서드(
backend.refresh())를 추가했습니다. (1955 ) -
DoubleSliceSpan두 개의 슬라이스를 한ExecutionSpan번에 처리할 수 있는 기능을 추가했습니다. ( 1982 ) -
SamplerV2,EstimatorV2, 및noise_learner.NoiseLearner각 클래스에는 이제 해당 클래스가 설정된 백엔드를 반환하는 메서드가backend()있습니다. ( 1995 )
업그레이드 주의사항
-
0.25.0릴리스에서 더 이상 사용되지 않는 기능이 제거되었습니다.optimization_level은 더 이상EstimatorV2에 유효한 옵션이 아닙니다.- 작업 방법
interim_results()및stream_results()이 제거되었습니다. (1965 )
-
QiskitRuntimeService의channel_strategy매개 변수가 제거되었습니다. 워크플로에서 Q-CTRL을 계속 사용하려면 다음 옵션을 살펴보세요:- 조직에 기존 IBM 퀀텀 프리미엄 플랜 인스턴스가 있는 경우: 키스킷 함수 카탈로그에 있는 Q-CTRL 성능 관리 기능으로 마이그레이션하세요.
- IBM Cloud 에서 Qiskit Runtime 계속 사용하려면 Q-CTRL을 통해 직접 액세스할 수 있는 동일한 성능 관리 제품인 Q-CTRL Fire Opal로 마이그레이션하십시오. IBM Cloud 의 API 키와 Qiskit Runtime 의 CRN을 Fire Opal에 연결할 수 있습니다. ( 1966 )
0.31.0 (2024-10-15)
새 기능
- 추정기 작업의 예상 성능을 이해하는 데 도움이 되는 클래스인 노이즈 추정기 분석기 도구(NEAT)를 추가했습니다. (1950 )
rzz각도가[0, pi/2]사이인지 확인하도록 ISA 검사를 업데이트했습니다. (1953 )
업그레이드 주의사항
- 가짜 V1 백엔드가 제거되었습니다. (1946 )
버그 수정
- 제어 작업 내부의 연결과 관련된 변경 사항이 올바르게 적용되지 않는 ISA 유효성 검사 문제를 수정했습니다. (1954 )
0.30.0 (2024-09-23)
지원 중단 노트
-
유틸리티 함수
get_runtime_api_base_url는 더 이상 사용되지 않습니다. 대신default_runtime_url_resolver을 사용하세요. (1914 ) -
channel_strategy매개 변수는 더 이상 사용되지 않습니다. Q-CTRL 성과 관리 전략은 2024년 10월 18일에 삭제될 예정입니다. 워크플로에서 Q-CTRL을 계속 사용하려면 다음 옵션을 살펴보세요:- 조직에 기존 IBM 퀀텀 프리미엄 플랜 인스턴스가 있는 경우: 키스킷 함수 카탈로그에 있는 Q-CTRL 성능 관리 기능으로 마이그레이션하세요.
- IBM Cloud 에서 Qiskit Runtime 계속 사용하려면 Q-CTRL을 통해 직접 액세스할 수 있는 동일한 성능 관리 제품인 Q-CTRL Fire Opal로 마이그레이션하십시오. IBM Cloud 의 API 키와 Qiskit Runtime 의 CRN을 Fire Opal에 연결할 수 있습니다. ( 1931 )
-
향후 릴리스에서는
RuntimeJob.status()가JobStatus. (1933)의 인스턴스 대신 문자열로 반환됩니다
새 기능
-
작업 및 세션 사용에 관한 정보를 모두 반환하는 새로운 메서드
Session.usage(),Batch.usage(),Job.usage()를 추가했습니다. 자세한 내용은 여기를 참조하세요. (1827 ) -
회로의 게이트를 클리포드 게이트로 변환하는
ConvertISAToClifford트랜스필레이션 패스를 추가했습니다. (1887 ) -
private_endpointQiskit Runtime API( URL )를 사용자 정의 방식으로 생성할 수 있도록, 제공된url,instance및 을 기반으로 하는 선택적 입력 매개변수를QiskitRuntimeService생성자에 추가했습니다url_resolver. 명시되지 않은 경우 기본 해결기가 사용됩니다.# Define a custom resolver. In this case returns the concatenation of the provided `url` and the `instance` def custom_url_resolver(url, instance, *args, **kwargs): return f"{url}/{instance}" service = QiskitRuntimeService(channel="ibm_quantum", instance="ibm-q/open/main", url="https://baseurl.org" url_resolver=custom_url_resolver) # resulting resolved url will be: `https://baseurl.org/ibm-q/open/main` -
유틸리티 기능 추가
default_runtime_url_resolver. (1914 ) -
QiskitRuntimeService.backend()및QiskitRuntimeService.backends()의use_fractional_gates플래그는 이제None이 될 수 있습니다.None로 설정하면 명령어 필터링이 수행되지 않으며 반환된 백엔드 타깃에는 부분 게이트와 제어 흐름 연산이 모두 포함될 수 있습니다. (1938 )
업그레이드 주의사항
-
0.24.0릴리스에서 더 이상 사용되지 않는 기능이 제거되었습니다. 다음과 같은 변경 사항이 적용되었습니다.- 샘플러 및 추정기에 대한 인수 백엔드 및 세션이 제거되고 "모드"로 대체되었습니다
- 원시
Session속성은 다음과 같이 대체되었습니다mode - 전체 사전 구조 없이 옵션을 지정하는 것은 더 이상 지원되지 않습니다
Job.program_id()로 대체되었습니다Job.primitive_id()Service.run()및Session.run()은 비공개 방식으로 대체되었습니다,_run()Service.backend()에서 "이름"은 이제 필수 매개 변수입니다Service.get_backend()가 제거되고backend()(1907 )로 대체되었습니다
버그 수정
- 분수 게이트가 있는 세션 컨텍스트에서 프리미티브를 실행할 수 없던 버그를 수정했습니다. (1922)
0.29.1 (2024-09-17)
새 기능
- 인코딩 및 디코딩 로직이 추가되었습니다
NoiseLearnerResult. (1908 )
0.29.0 (2024-09-04)
지원 중단 노트
- 시뮬레이터 옵션
noise_model은 이제 실제 기기에서 실행되는 작업에 대해 더 이상 사용되지 않습니다.noise_model는 로컬 테스트 모드를 사용할 때 여전히 허용되는 옵션입니다. (1892 )
새 기능
- 새로운 클래스인,
ExecutionSpan및ExecutionSpanSet을 추가했습니다. 이 클래스들은 기본 결과 메타데이터에서 배치 작업의 시작 및 종료 시간에 대한 정보를 전달하는 데 사용됩니다. ( 1833 ) EnvironmentOptions에 새로운private옵션이 추가되었습니다. (1888 )- ZNE 외삽기에
fallback옵션을 추가했습니다. (1902 )
버그 수정
0.15.0에서 제거되었으므로qiskit-aer에서Noise_model.from_dict()메서드를 포팅했습니다. (1890 )- 타겟이 더 이상 캐시되지 않는
backend.target으로 이전 변경 사항을 되돌립니다. (1891 ) Session.from_id()이 새 빈 세션을 생성하는 문제를 수정했습니다. (1896 )
0.28.0 (2024-08-15)
새 기능
ResilienceOptionsV2에 새 필드layer_noise_model가 있습니다. 이 필드를 설정하면 노이즈 데이터가 필요한 모든 완화 전략은 노이즈 학습 단계를 건너뛰고 대신layer_noise_model에서 필요한 정보를 수집합니다. (1858 )
업그레이드 주의사항
- V1 의 Primitives 및
SamplerV1가EstimatorV1완전히 제거되었습니다. V2 의 기본 요소 사용 방법을 알아보려면 ‘기본 요소 소개’를 참조하십시오. ( 1857 ) service매개 변수는 이제Session.from_id()에서 필수입니다. (1868 )
0.27.1 (2024-08-12)
새 기능
PauliLindbladError및LayerError을 인코딩 및 디코딩하는 로직이 추가되었습니다. (1853 )
0.27.0 (2024-08-08)
새 기능
- 레이어 노이즈 프로세스를 나타내는
PauliLindbladError및LayerError클래스를 추가했습니다. (1844 )
버그 수정
- 세션과 함께 에어 시뮬레이터 및 로컬 서비스 모드를 사용할 때 발생하는 문제를 수정했습니다. (1838 )
0.26.0 (2024-07-31)
지원 중단 노트
Session,Batch,EstimatorV2,SamplerV2에 문자열로 백엔드를 전달하는 것은 더 이상 사용되지 않습니다. 대신 실제 백엔드 객체를 사용하세요. (1804 )SamplerV2및EstimatorV2에서 백엔드를 모드로 전달하면 현재Session또는Batch컨텍스트 관리자 내부에서도 작업 모드에서 작업이 실행됩니다. 이 동작은 더 이상 사용되지 않으며 향후 릴리스에서는 세션/배치가 우선합니다. (1816 )Session에서service으로 전달하기,Batch는 더 이상 사용되지 않습니다.service매개 변수는 백엔드에서 서비스를 추출할 수 있으므로 더 이상 필요하지 않습니다. (1826 )BackendProperties및BackendConfiguration를 포함한qiskit.providers.models의 백엔드 모듈은 키스킷 1.2 에서 더 이상 사용되지 않으므로qiskit-ibm-runtime로 복사되었습니다. 이 클래스를 사용하려면 최신 버전(0.26.0)으로 업그레이드해야 합니다. (1803 )
새 기능
-
properties,defaults,configuration,check_faulty메서드가FakeBackendV2에 추가되었습니다. (1765 ) -
세션이 이미 닫혀 있는
QiskitRuntimeService.Session.from_id()으로 만든 세션에서 작업을 실행하면 작업이 즉시 거부됩니다. (1780 ) -
작업의 입력 매개변수는 더 이상 캐시되지 않습니다. 이러한 매개변수에는 큰 회로가 포함될 수 있으며 메모리에 자동으로 보관되어서는 안 됩니다. (1783)
-
QiskitRuntimeLocalService는 로컬 테스트 모드를 지원하기 위해 만들어졌습니다. 별도의 클래스를 초기화할 필요가 없도록 'local'이 유효한QiskitRuntimeService채널로 추가되었습니다.service = QiskitRuntimeService(channel="local")는
QiskitRuntimeLocalService인스턴스를 반환합니다. (1793 ) -
이제 오픈 플랜에서 작업을 실행할 때 최대 보류 중인 작업 수 제한에 도달하면 경고가 표시됩니다. 또한 이 서비스는 새 작업을 제출하기 전에 가장 오래된 보류 중인 작업이 실행이 완료될 때까지 기다립니다. (1794 )
-
NoiseLearner및 관련 기능(예:NoiseLearnerOptions및NoiseLearnerResults)을 추가했습니다. (1805 )
버그 수정
- 모든 회로가 ISA 규정을 준수하는지 확인합니다. 이 검사의 일부로 백엔드에서 지원하지 않는 명령어가 감지되면 오류가 발생합니다. 이전에는 버그로 인해 일부 명령어(제어 흐름 연산 본문 내부에 있는 명령어)가 건너뛰는 문제가 있었습니다. 이번 릴리스에서는 버그를 수정했습니다. (1784 )
IBMBackend.target_history()을 호출하면 백엔드 타겟이 캐시된 후IBMBackend.target()을 호출하면 캐시된 타겟이 잘못 반환되는 문제를 수정했습니다. (1791 )- 다른 관련 옵션을 사용할 때
zne_mitigation또는pec_mitigation이True로 설정되어 있는지 확인하기 위한 옵션 유효성 검사가 제거되었습니다. (1792 ) - 사용자 환경에 파이썬 라이브러리(
simplejson)가 설치된 경우 사용자가 작업 결과를 검색할 수 없던 문제를 수정했습니다. (1800)
0.25.0 (2024-07-02)
지원 중단 노트
EstimatorV2의optimization_level옵션은 더 이상 사용되지 않습니다. 대신 키스킷 트랜스파일러 또는 키스킷 트랜스파일러 서비스를 사용하여 회로 최적화를 수행할 수 있습니다. (1748 )qiskit_ibm_runtime.RuntimeJobV2.interim_results(),qiskit_ibm_runtime.RuntimeJobV2.stream_results(),qiskit_ibm_runtime.RuntimeJob.interim_results(),qiskit_ibm_runtime.RuntimeJob.stream_results()는 이제 모두 사용되지 않습니다. (1776 )
새 기능
QiskitRuntimeLocalService에backend,backends,least_busy메서드를 추가했습니다. (1764 )BaseRuntimeJob에 작업이 실행된 인스턴스를 반환하는instance속성을 추가했습니다. (1771 )default_shots이제 로컬 테스트 모드에서EstimatorV2을 사용할 때 지원되는 옵션입니다. (1773 )
0.24.1 (2024-06-18)
버그 수정
- 기본적으로 프랙셔널 게이트를 허용하지 않으므로 백엔드 타겟이 제어 흐름을 제외하지 않습니다. (1755 )
0.24.0 (2024-06-10)
지원 중단 노트
-
name는 이제 backend() 의 필수 매개변수가 됩니다.name을 제공하지 않으면backend()은 더 이상 모든 백엔드 중 첫 번째 백엔드를 반환하지 않습니다. (1147 ) -
사용자 지정 프로그램이 제거된 후 다음 메소드가 더 이상 사용되지 않고 이름이 변경됩니다.
qiskit_ibm_runtime.QiskitRuntimeService.run()은 더 이상 사용되지 않으며 비공개 메서드qiskit_ibm_runtime.QiskitRuntimeService._run()로 대체됩니다.qiskit_ibm_runtime.Session.run()은 더 이상 사용되지 않으며 비공개 메서드qiskit_ibm_runtime.Session._run()로 대체됩니다.qiskit_ibm_runtime.RuntimeJob.program_id()는 더 이상 사용되지 않으며qiskit_ibm_runtime.RuntimeJob.primitive_id()로 대체됩니다. (1238 ) -
Sampler 및 Estimator 의 해당
backend인수는 더 이상 사용되지 않습니다. 대신 를mode사용해 주세요.sessionSampler 및 Estimator 의 인자 또한 더 이상 사용되지 않습니다. 대신 를mode사용해 주세요. ( 1556 ) -
qiskit_ibm_runtime.QiskitRuntimeService.get_backend()은(는) 더 이상 사용되지 않습니다. 대신 이것을 사용해 주세요qiskit_ibm_runtime.QiskitRuntimeService.backend().FakeProviderForBackendV2V1 의 가짜 백엔드인,FakeBackend, 및FakeProvider는 V2 의 가짜 백엔드인 및 로 대체됨에 따라 더 이상 사용되지 않게 됩니다. ( 1689 ) -
전체 사전 구조 없이 옵션을 지정하는 것은 더 이상 사용되지 않습니다. 대신 완전히 구조화된 사전을 전달하세요. 예를 들어
{'log_level': 'INFO'}대신{'environment': {'log_level': 'INFO'}}을 사용합니다. (1731 )
새 기능
-
실행 모드와 관련하여 샘플러 및 추정기에는 이제
mode인수가 포함됩니다.mode매개변수는 백엔드, 세션, 배치 또는 없음일 수 있습니다. 따라서 백엔드 이름은 더 이상 사용되지 않으며 더 이상 유효한 실행 모드로 지원되지 않습니다. (1556 ) -
ZneOptions.증폭기 옵션이 추가되었으며, 이 문자열 중 하나가 될 수 있습니다:
"gate_folding"(기본값)은 2쿼비트 게이트 폴딩을 사용하여 노이즈를 증폭합니다. 노이즈 계수가 게이트의 하위 집합만 증폭해야 하는 경우 이러한 게이트는 무작위로 선택됩니다."gate_folding_front"는 2쿼비트 게이트 폴딩을 사용하여 노이즈를 증폭합니다. 노이즈 계수가 게이트의 하위 집합만 증폭해야 하는 경우, 이러한 게이트는 위상적으로 정렬된 DAG 회로의 전면에서 선택됩니다."gate_folding_back"는 2쿼비트 게이트 폴딩을 사용하여 노이즈를 증폭합니다. 노이즈 계수가 게이트의 하위 집합만 증폭해야 하는 경우 위상적으로 정렬된 DAG 회로의 뒷부분에서 이러한 게이트가 선택됩니다. (1679 )
-
계정을 저장할 때
True으로 설정하면 사용자가 비공개 IBM Cloud API에 연결할 수 있는 새로운 매개 변수(private_endpoint)가 있습니다. 이 매개 변수는 서비스를 초기화할 때도 사용할 수 있습니다(예:QiskitRuntimeService(private_endpoint = True). (1699 ) -
IBMBackend.에 분할 게이트를 지원하는 새로운 옵트인 기능이 추가되었습니다. IBM 현재 백엔드는 동적 회로와 분수 게이트만을 지원하며, 이 두 가지 기능은 동일한 기본 작업에서 함께 사용할 수 없습니다. 또한, PEC나 PEA와 같이 추정기 프리미티브와 함께 사용할 수 있는 일부 오류 완화 프로토콜은 분수 게이트를 사용한 게이트 트와일링을 지원하지 않을 수 있습니다. Qiskit Target 모델은 이러한 제약 조건을 반영하지 않기 때문에, 우리는 ‘옵트인(opt-in)’ 방식을 채택했습니다. 이 방식에서는 백엔드가 옵트인(또는 옵트아웃)되었을 때, 백엔드 타깃에 분수 게이트(제어 흐름 명령어)만 포함되도록 합니다.QiskitRuntimeService이 기능은.에서 대상 백엔드를 불러올 때 제어됩니다.from qiskit_ibm_runtime import QiskitRuntimeService backend = QiskitRuntimeService(channel="ibm_quantum").backends( "name_of_your_backend", use_fractional_gates=True, )[0]분수 기능이 활성화되면 트랜스파일된 회로는 기존의 IBM 베이스 게이트(예: [sx, rz, ecr] )에 비해 더 짧은 깊이를 가질 수 있습니다.
제어 흐름 명령어를 사용하는 경우(예:
if_else, 회로에서 프랙셔널 게이트 기능을 비활성화해야 실행 가능한 ISA 회로를 얻을 수 있습니다. 이제 명령어 세트의 선택은 사용자의 책임입니다.이 패턴은 향후 개발 과정에서 IBM 백엔드가 업데이트될 때 더 이상 사용되지 않고 수정되거나 제거될 수 있다는 점에 유의하세요. (1715 )
-
이제 의
qiskit_ibm_runtime.options.EstimatorOptions실험적 옵션을 사용하여 추정기 작업에 확률적 오차 증폭(PEA) 오차 완화 방법을 활성화할 수 있습니다. ( 1728 ) -
이제 키스킷 버전
1.1이 지원되며 필수입니다. (1700 )
업그레이드 주의사항
QiskitRuntimeService.backends()이제 동일한 쿼리를 사용하더라도 항상 새로운IBMBackend인스턴스를 반환합니다. 백엔드 속성 및 기본값 데이터는 각 인스턴스에 처음 액세스할 때마다 서버에서 가져오는 반면, 구성 데이터는 서비스 인스턴스 내에 내부적으로 캐시됩니다. ( 1732 )
버그 수정
- Job() 및 jobs() 로 작업을 검색하면 작업이 V2 프리미티브로 실행되더라도
RuntimeJob인스턴스만 반환되던 문제를 수정했습니다. 이제 V2 프리미티브 작업은RuntimeJobV2인스턴스로 올바르게 반환됩니다. (1471 ) - 긴 작업 프로세스 중 네트워크 중단을 방지하기 위해 웹소켓 오류가 더 이상 발생하지 않습니다. (1518 )
PadDynamicalDecoupling의insert_multiple_cycles및coupling_map옵션 조합 문제를 수정했습니다.sequence_min_length_ratios이러한 조합을 통해, 에 의해 설정된 임계값을 초과하는 각 지연 시간 내에 여러 시퀀스 주기가 포함된 엇갈린 동적 분리 방식을 선택할 수 있습니다. ( 1630 )- 작업 메타데이터를 디코딩하면 오류가 발생하던 직렬화 문제를 수정했습니다. (1682)
- 샘플러에 대해 기본적으로 활성화되어 있다고 잘못 표시되던 측정 회전 문서 문자열을 수정했습니다. (1722 )
- 중첩된 실험적 하위 옵션이 실험적이지 않은 하위 옵션을 재정의하도록 수정되었습니다. (1731 )
- 백엔드 유틸리티 메서드
convert_to_target가 키스킷의 convert_to_target 메서드로 대체되었습니다. 이렇게 하면 타겟 생성 및 보정 데이터와 관련된 몇 가지 문제가 해결됩니다. (1600 )
0.23.0 (2024-04-15)
지원 중단 노트
- backend.run () 는 더 이상 사용되지 않습니다. 대신 프리미티브를 사용하세요. 자세한 내용은 마이그레이션 가이드 에서 확인할 수 있습니다. (1561 )
- 향후 릴리스에서는 from_id() 에
service매개변수가 필요합니다. (1311 )
새 기능
- 이제
Options및OptionsV2인쇄가 표로 형식이 지정됩니다. (1490 ) BaseDynamicCircuitAnalysisBlockBasePadder,PadDynamicalDecouplingPadDelay,, 및 에 인수를 추가합니다block_ordering_callable. 이를 통해 사용자는 자신이 선택한 알고리즘을 사용하여 블록을 구성할 수 있습니다. 이 함수가block_ordering_callable생성하는 출력의 유효성에 대해서는 어떠한 가정이나 검증도 이루어지지 않습니다. 이 주장의 근거는, 특정 회로 계열의 경우 기존 함수가block_order_op_nodes매우 느릴 수 있다는 점입니다. ( 1531 )- 샘플러 및 추정기 V2 프리미티브는 채널_전략 속성이 "q-ctrl"로 설정된 경우 사용자 지정 유효성 검사 절차를 통합하도록 개선되었습니다 이 맞춤형 유효성 검사 로직은 잘못된 입력 옵션을 효과적으로 수정하고 사용자가 실수로 Q-CTRL의 성능 향상 기능을 비활성화하지 않도록 보호합니다. (1550 )
SamplerV2이제 회전 기능을 지원합니다. 트윌링은 조건부 논리에 포함되지 않은 측정 레지스터에만 적용됩니다. ( 1557 )- 이제 세션 세부 정보()에 새 필드
usage_time가 포함됩니다. 사용량은 양자 시스템이 작업을 완료하기 위해 투입된 시간으로 정의됩니다. (1567 )
버그 수정
RuntimeJobV2API가 알 수 없는 상태를 반환하더라도 더 이상 오류가 발생하지 않습니다. 대신 API에서 반환된 상태가 직접 반환됩니다. ( 1476 )/jobs요청에서 사용자 지정 헤더가 전송되지 않던 버그가 수정되었습니다. (1508 )- 인코딩/디코딩 관련 버그 수정
ParameterExpression. (1521 ) - 에서
RuntimeJobV2in_final_state() 메서드가 호출되었을 때 상태가 업데이트되지 않던 문제를 수정했습니다. ( 1547 )
0.22.0 (2024-03-21)
업그레이드 주의사항
PadDynamicalDecoupling.의 생성자에 대한 선택적 플래그를 수정합니다skip_reset_qubits. 만약False그렇다면, 큐비트의 상태에 관계없이, 심지어 회로 초반부의 지연 단계에 대해서도 동적 디커플링이 적용된다. 이 옵션은 이제 Qiskit의 동작과 일치합니다. ( 1409 )
새 기능
- 새로운 로컬 테스트 모드가 추가되었습니다. 이를 통해 퀀텀 프롬을 물리적 시스템으로 전송하기 전에 검증할 수 있습니다. 로컬 테스트 모드는 프리미티브 또는 세션을 인스턴스화할 때
qiskit_ibm_runtime.fake_provider또는 키스킷 에어 백엔드 인스턴스의 가짜 백엔드 중 하나가 사용되는 경우 활성화됩니다. (1495 )
버그 수정
EstimatorV2의resilience_level=0설정이 무시되고 기본값이 대신 사용되던 버그를 수정했습니다. (1541 )
0.21.2 (2024-03-18)
버그 수정
RuntimeDecoder에서 임의의 클래스를 가져올 수 있던 버그를 수정했습니다. (1527 )
0.21.1
버그 수정
- 별칭 정의 방식에 문제가 있어
SamplerV1및EstimatorV1을 가져올 수 없는 버그가 수정되었습니다.
0.21.0
업그레이드 주의사항
- Qiskit Runtime 프리미티브는 ``가 사용되지 않는
channel_strategy="q-ctrl"한, 대상 하드웨어 정의와 일치하지 않는 회로를 더 이상 지원하지 않습니다. 회로 변환 방법에 대한 지침은 트랜스파일레이션( transpile ) 문서를 참조하고, 연산자 변환과 결합된 예시는 기본 예제( run/primitives-examples )에서 확인할 수 있습니다.
지원 중단 노트
-
향후 릴리스에서는
qiskit_ibm_runtime.Sampler,session이 지정되지 않은 경우qiskit_ibm_runtime.Estimator,ibm_cloud채널을 사용하는 경우에도backend이 필수 파라미터가 됩니다.qiskit_ibm_runtime.Session및qiskit_ibm_runtime.Batch에도 필수 매개 변수가 됩니다.
버그 수정
IBMBackend.target에서 지원되는 제어 흐름 작업(IfElseOp,WhileLoop등)을 잘못 제외하는 문제를 수정했습니다 백엔드에서 지원하는지 확인합니다.FakeProviderForBackendV2.backend()을 통해 가짜 백엔드를 검색하면 유형 오류가 발생하는 버그가 수정되었습니다.- 레이아웃이 없는 펄스 게이트 및 회로를 허용하도록 ISA 회로 확인을 수정했습니다.
0.20.0
새 기능
-
dd_barrier선택적 입력을 PadDynamicalDecoupling 생성자에 선택적 입력을 추가하여 동적 디커플링(dd)을 적용할 회로의 부분을 선택적으로 식별할 수 있습니다. 이 문자열이 회로의 배리어 레이블에 포함되어 있으면 해당 문자열로 끝나는 지연(동일한 큐비트)에 dd가 적용되고, 그렇지 않으면 적용되지 않습니다. -
Python 3.12 이제 지원됩니다.
-
이제 세션은 다양한 실행 모드를 허용하는 새로운
/sessions엔드포인트로 시작됩니다. 이제Batch을 통해 배치 모드가 지원되며, 세션은 이전과 동일한 방식으로 작동합니다. 자세한 내용은 실행/세션을 참조하세요.이 릴리스 이전에
qiskit-ibm-runtime에서 생성된Session및Batch은 2024년 3월 31일 이후에는 더 이상 지원되지 않습니다. 이 날짜 이전에 가능한 한 빨리qiskit-ibm-runtime버전을 업데이트하세요.또한 세션과 함께 시뮬레이터를 사용하는 것은 더 이상 지원되지 않습니다. 사용자는 여전히 문제 없이 시뮬레이터로 세션을 시작할 수 있지만 실제로 세션이 생성되지는 않습니다. 세션 ID가 없습니다.
-
qiskit_ibm_runtime.IBMBackend.open_session () 으로 시작된 세션은 새로운 것을 사용합니다.
/sessions종착점.세션 기능은 변경되지 않지만 이 릴리스 이전의
backend.run()세션은 2024년 3월 31일 이후에는 더 이상 지원되지 않습니다. 이 날짜 이전에 가능한 한 빨리qiskit-ibm-runtime버전을 업데이트하세요.
지원 중단 노트
- 2024년 3월 1일 이후에는 대상 하드웨어 정의와 일치하지 않는 회로에 대한 지원이 중단됩니다. 회로 변환 방법에 대한 지침은 트랜스파일레이션( transpile ) 문서를 참조하고, 연산자 변환과 결합된 예시는 기본 예제( run/primitives-examples )에서 확인할 수 있습니다.
버그 수정
- 제어 흐름이 있는 회로를 예약할 때 명령어 기간 할당을 수정했습니다. 이 수정 이전에는 내부 블록의 명령어 인덱스가 외부 DAG의 물리적 인덱스에 매핑되지 않았습니다.
기타 참고사항
- 이제
PadDelay의 생성자에도InstructionDurations기간 입력이 필요합니다.
0.19.1
업그레이드 주의사항
DynamicCircuitInstructions.from_backend()을 확장하여BackendV1및BackendV2개체에서 기간을 추출하고 패치합니다. 또한Target객체를 대신 사용하려면DynamicCircuitInstructions.from_target()을 추가하세요.
버그 수정
dt단위가 아닌 지속 시간이 있는 지침에 대해DynamicCircuitInstructions의 패치를 수정합니다.use_symengine플래그가True로 평가되지만 실제로는 부울True이 아닌 진실한 객체로 설정된 경우 생성된 QPY 페이로드가 손상되는qpy.dump()함수의 문제를 수정했습니다.
0.19.0
업그레이드 주의사항
- qiskit-ibm-provider는 사용 중단 대기 중이며, 따라서 더 이상 qiskit-ibm-runtime에 대한 종속성이 되지 않습니다.
- qiskit-ibm-runtime은 이제 1.0.0 을 포함한 키스킷 버전 >= 0.45 과 호환됩니다.
0.18.0
새 기능
- 동적 회로를 지원하는 백엔드를 필터링할 수 있도록 backends() 에 dynamic_circuits라는 새로운 매개변수를 추가했습니다.
IBMBackend.open_session()에max_time파라미터를 추가했습니다.- 백엔드에서 대기열 정보를 가져오는 메서드
RuntimeJob.queue_info()를 추가했습니다. 이 기능은qiskit_ibm_provider에서 이전되었습니다.
지원 중단 노트
QiskitRuntimeService.runtime()는 더 이상 사용되지 않습니다.
버그 수정
- 의 많은 메서드 RuntimeJob 의 많은 메서드는
job_get()를 사용하여 API에서 작업 데이터를 검색해야 합니다. 이제 이 API 호출은 qiskit_ibm_runtime.RuntimeJob.inputs() 에서만 필요하므로params필드를 기본적으로 제외합니다.
0.17.0
새 기능
- 작업이 실행된 시점의 작업의 백엔드 속성을 반환하는 새로운 메서드 properties() 를 추가했습니다.
- 세부 정보() 에는 세션이 활성으로 변경된 시점의 타임스탬프인 활성화된_at라는 새 필드가 있습니다.
버그 수정
-
instance매개변수를 사용하여 단일 백엔드를 검색하는 경우,service.backend('ibm_torino', instance='ibm-q/open/main') # raises error if torino is not in ibm-q/open/main but in a different instance # the user has access to service = QiskitRuntimeService(channel="ibm_quantum", instance="ibm-q/open/main") service.backend('ibm_torino') # raises the same error백엔드가 인스턴스에 있지 않고 사용자가 액세스할 수 있는 다른 인스턴스에 있는 경우 오류가 발생합니다. 이제 초기화 시 인스턴스가 전달된 후 해당 인스턴스에 없는 백엔드가 검색되는 경우에도 동일한 오류가 발생합니다.
-
일부 백엔드의 커플링_맵을 검색하면 NameError 이 표시되던 문제를 수정했습니다.
0.16.0
Prelude
이제 세션은 스레드에 안전하며 여러 개의 대화형 실험을 동시에 진행할 수 있습니다.
새 기능
- 이제 세션이 스레드 안전합니다.
업그레이드 주의사항
- 사용자 지정 프로그램 사용과 관련된 메소드가 제거됩니다.
버그 수정
q-ctrl이channel_strategy으로 전달되지 않은 상태에서q-ctrl활성화된 클라우드 인스턴스가 사용되면 오류가 발생합니다.
0.15.1
버그 수정
- 0.15.0 변경을 from_id() 로 되돌리면 적절한 지원 중단 없이 변경된 것이므로 변경 사항을 되돌릴 수 없습니다.
0.15.0
새 기능
-
새로운 모듈 qiskit_ibm_runtime.fake_provider 이 추가되어 IBM 퀀텀 디바이스의 스냅샷에서 파생된 일련의 가짜 백엔드에 액세스할 수 있습니다. 이 기능은 원래
qiskit.providers.fake_provider모듈에서 제공되었지만 곧 더 이상 사용되지 않는 qiskit_ibm_runtime.fake_provider.가짜 백엔드에서 제공하는 스냅샷은 트랜스파일러의 로컬 테스트와 실제 기기에서 실행하기 전에 시스템의 로컬 노이즈 시뮬레이션을 수행하는 데 유용합니다. 다음은 번역 및 시뮬레이션에 가짜 백엔드를 사용하는 예시입니다:
from qiskit import QuantumCircuit from qiskit import transpile from qiskit_ibm_runtime.fake_provider import FakeManilaV2 # Get a fake backend from the fake provider backend = FakeManilaV2() # Create a simple circuit circuit = QuantumCircuit(3) circuit.h(0) circuit.cx(0,1) circuit.cx(0,2) circuit.measure_all() # Transpile the ideal circuit to a circuit that can be directly executed by the backend transpiled_circuit = transpile(circuit, backend) # Run the transpiled circuit using the simulated fake backend job = backend.run(transpiled_circuit) counts = job.result().get_counts() -
backend.run()에 대한 지원이 추가되었습니다. 기능은qiskit-ibm-provider에서와 유사합니다. -
channel_strategy으로q-ctrl을 전달하고 계정 인스턴스에q-ctrl이 활성화되어 있지 않은 경우 초기화 중에 오류가 발생합니다. -
제거된 저장 결과는
RuntimeJob._results. 대신results()메서드가 호출될 때마다 결과를 검색합니다.
지원 중단 노트
- 계정 정보에 대한
~/.qiskit/qiskitrc.json파일 사용은 더 이상 사용되지 않습니다. 대신~/.qiskit/qiskit-ibm.json을 사용하세요.
버그 수정
- 취소 및 실패한 작업이 잘못된 결과를 반환하여 유형 오류가 발생하고 실제 오류가 사용자에게 반환되지 않던 문제를 수정했습니다.
- DE 환경을 사용하는 경우 모든 기능이 지원되지 않으므로 초기화 시 경고가 표시됩니다.
- 세션이 여러 백엔드를 지원하지 않기 때문에 from_id() 의
backend매개 변수는 더 이상 사용되지 않습니다. 또한service매개 변수는 더 이상 선택 사항이 아닙니다. - 추정기 및 샘플러의
circuit_indices및observable_indices실행 입력이 완전히 제거되었습니다.
기타 참고사항
- Qiskit_ibm_provider가 아닌
backend.run에서 실행하기 위한 마이그레이션 코드가 추가되었습니다.
0.14.0
새 기능
- 새로운 클래스(
qiskit_ibm_runtime.Batch)가 있는데, 현재 이 클래스는 qiskit_ibm_runtime.Session 와 동일한 방식으로 작동하지만 한 번에 여러 개의 작업을 제출하는 것을 더 잘 지원하도록 나중에 업데이트될 예정입니다. Options에서 임의의 키와 값은 더 이상 허용되지 않습니다.
지원 중단 노트
- qiskit-ibm-runtime 0.14.0 버전부터 사용자 정의 프로그램이 더 이상 지원되지 않으며, 2023년 11월 27일에 제거될 예정입니다. 사용자는 대신 Qiskit Serverless 를 사용하여 사용자 정의 프로그램을 Qiskit Runtime 기본 요소가 사용되도록 변환할 수 있습니다.
0.13.0
새 기능
-
최대 세션 시간, 남은 활성 시간, 현재 상태, 세션의 작업 수락 여부 등 세션에 대한 정보를 반환하는 새로운 메서드 details() 를 추가했습니다.
또한 세션의 현재 상태를 반환하는 status() 함수도 추가되었습니다.
-
초기화 시 직접 입력하지 않으면 공급자가 선택한 기본값
instance이 'INFO' 레벨에 기록됩니다. 작업을 실행할 때 선택한 백엔드가 기본 인스턴스가 아니라 사용자가 액세스 권한이 있는 다른 인스턴스에 있는 경우 해당 인스턴스도 기록됩니다.
업그레이드 주의사항
-
qiskit_ibm_runtime.Session.close (
Session)를 더 이상 신규 채용을 받지 않는 것으로 표시하도록 업데이트되었습니다. 세션은 더 이상의 작업을 수락하지 않지만 대기 중인 모든 작업이 완료되거나 최대 시간이 만료될 때까지 계속 실행됩니다. 세션 컨텍스트 관리자가 종료될 때도 자동으로 수행됩니다. 작업을 수락하지 않는 세션이 실행할 작업이 부족하면 즉시 종료되어 백엔드에서 대화형 시간 초과를 기다리지 않고 더 많은 작업을 실행할 수 있는 여유를 확보할 수 있습니다.이전의 close 메서드 동작은 새로운 메서드인 qiskit_ibm_runtime.Session.cancel () 로 옮겨졌습니다. 이 메서드에서는 세션 내의 대기 중인 모든 작업이 취소되고 종료됩니다.
버그 수정
- 널 타입으로 전달된
shots이 제대로 직렬화되지 않던 버그가 수정되었습니다. - 지정된 날짜에서 백엔드 속성을 검색하는 데 datetime 매개 변수가 사용되지 않던 target_history() 의 버그가 수정되었습니다.
0.12.2
새 기능
channel_strategy을 사용하는 경우 해당channel_strategy을 지원하는 백엔드만 사용자가 액세스할 수 있습니다.- 계정 json 파일에 기본 계정을 정의하는 옵션을 추가했습니다. 계정을 기본값으로 선택하려면
QiskitRuntimeService.save_account()에서set_as_default=True을 정의합니다. - 주어진 아이디로 새 세션을 생성하는 새로운 메서드
Session.from_id를 추가했습니다. - 이제 사용자가 시스템 실행 시간 월간 할당량인 10분을 초과할 것으로 예상되는 작업을 제출하는 경우 경고가 표시됩니다. 이는 인스턴스의 실제 하드웨어에서 실행되는 작업에만 적용됩니다
ibm-q/open/main. 작업이 할당량을 초과하게 되면 해당 작업은 취소됩니다.
업그레이드 주의사항
- 이제 작업 오류 메시지에 오류 코드가 포함됩니다. 오류 코드는 오류에서 찾을 수 있습니다.
0.12.1
새 기능
- 사용자는 새 환경 변수
USAGE_DATA_OPT_OUT를 사용하여 이 값을True으로 설정하여 사용자 모듈 사용량 추적을 옵트아웃할 수 있습니다. 또한, 쿼스킷 또는 쿼스킷_으로 시작하는 모든 모듈이 아닌 특정 쿼스킷 모듈만 추적됩니다. - 이제 사용자는
channel_strategy매개 변수에default값을 전달할 수 있습니다 qiskit_ibm_runtime.QiskitRuntimeService. 이제 계정이 특정 채널 전략으로 구성된 경우 사용자는default을 전달하여 이를 재정의할 수 있습니다. - 샘플러 및 추정기 프리미티브는 :class:qiskit_ibm_runtime.QiskitRuntimeService 내의 채널_전략 속성이 "q-ctrl"로 구성될 때 사용자 지정 유효성 검사 절차를 통합하도록 개선되었습니다 이 맞춤형 유효성 검사 로직은 잘못된 입력 옵션을 효과적으로 수정하고 사용자가 실수로 Q-CTRL의 성능 향상 기능을 비활성화하지 않도록 보호합니다.
버그 수정
- 이제 properties() 로 백엔드 속성을 검색할 때
datetime매개변수를 전달하여 과거 날짜의 속성을 검색할 수 있습니다. - 이제
qiskit_ibm_runtime.options.ResilienceOptions의noise_factors및extrapolator옵션은resilience_level이 2로 설정되지 않는 한None으로 기본값이 변경됩니다. 복원력 수준과 관련된 옵션만 설정되므로resilience_level2를 사용하는 경우noise_factors은 여전히 기본값이(1, 3, 5)으로,extrapolator은 기본값이LinearExtrapolator으로 설정됩니다. 또한 값이None인 옵션은 더 이상 서버로 전송되지 않습니다. - 작업 오류 메시지가 더 이상 모두 대문자로 반환되지 않습니다.
- 최대_실행_시간 옵션은 이제 벽시계 시간 대신 시스템 실행 시간을 기준으로 합니다. 시스템 실행 시간은 시스템이 작업을 처리하는 데 할애하는 시간입니다. 이 시간 제한을 초과하는 작업은 강제로 취소됩니다. 시뮬레이터 작업은 계속해서 벽시계 시간을 사용합니다.
0.12.0
새 기능
-
사용자가 QiskitRuntimeService, 을 정의하면 서비스가 명시적으로 전달되지 않더라도 프리미티브에서 사용하도록
global_service을 추가했습니다. 예를 들어,from qiskit_ibm_runtime import QiskitRuntimeService, Sampler service = QiskitRuntimeService(channel="ibm_quantum") # Sampler._service field will be initialized to ``service`` sampler = Sampler(backend="ibmq_qasm_simulator") -
사용자가 속한 모든 인스턴스(허브/그룹/프로젝트)를 반환하는 새로운 메서드 qiskit_ibm_runtime.QiskitRuntimeService.instances() 를 추가했습니다.
ibm_cloud채널에는 여러 인스턴스가 없으므로ibm_quantum채널에만 해당됩니다. -
딕셔너리의 두 번째 수준, 즉 복원력, 시뮬레이터, 실행 및 번역 각각에 대한 옵션에 대한 유효성 검사를 추가하여 해당 옵션이 지원되는지 확인합니다. 그렇지 않으면 예외를 발생시킵니다.
-
초기화에서 설정할 수 있는 새로운 매개변수
channel_strategy가 있습니다 qiskit_ibm_runtime.QiskitRuntimeService 또는 qiskit_ibm_runtime.QiskitRuntimeService.save_account() 에 저장할 수 있습니다.channel_strategy을q-ctrl으로 설정하면 서비스 내의 모든 작업에서 Q-CTRL 오류 완화 전략을 사용합니다.
업그레이드 주의사항
- 회로 및 기타 입력 매개변수는 더 이상 런타임 작업에 자동으로 저장되지 않습니다. qiskit_ibm_runtime.RuntimeJob.inputs() 로 검색할 수 있습니다.
지원 중단 노트
noise_amplifier복원력 옵션은 더 이상 사용되지 않습니다. 사용 중단 기간 이후에는 로컬 폴딩 증폭만 지원됩니다. 를 참조하세요 https://github.com/qiskit-community/prototype-zne 를 참조하세요.
버그 수정
- "ibm_cloud" 채널에서 실행하는 경우 백엔드를 지정하지 않을 수 있습니다. 이 경우 시스템은 이 서비스에 사용 가능한 백엔드 중 하나를 선택합니다. 이슈 #625 https://github.com/Qiskit/qiskit-ibm-runtime/issues/625 에서
job.backend()에서 반환한 백엔드가 작업이 실행된 실제 백엔드가 아닌 경우가 있다고 보고했습니다. 이 PR은 이 버그를 수정합니다. - test_job.py 의 test_cancel_running_job() 테스트에서 작업 취소를 수행할 수 없는 경쟁 조건을 수정합니다. 자세한 내용은 #1019 <https://github.com/Qiskit/qiskit-ibm-runtime/issues/1019> _를 참조하세요.
- 이전에는 작업이 실행될 때 유효성 검사를 추가하여 회로 수가 해당 백엔드의 최대값(
backend.max_circuits)보다 크지 않은지 확인했습니다. 세션 내에서 실행되는 프리미티브에는 실제로 이 제한이 필요하지 않습니다.
0.11.3
새 기능
- Error_message() 메서드 호출 시 실패 이유를 추가했습니다.
- 예상 시스템 실행 시간을 반환하는 새로운 속성, usage_estimation() 을 추가했습니다(
quantum_seconds). 시스템 실행 시간은 시스템이 작업을 처리하는 데 할애하는 시간을 나타냅니다. _run_primitive()으로 전달되는 회로 수가 백엔드에서 지원되는 회로 수를 초과하는 경우 예외를 발생시킵니다.- 작업의
job_tags을 업데이트하는 데 사용할 수 있는 새로운 메서드 update_tags() 가 있습니다. instance이 qiskit_ibm_runtime.QiskitRuntimeService에 파라미터로 제공되면QiskitRuntimeService.backends()에서 필터로 사용된다.instance이 공급자 인스턴스 중 하나로 인식되지 않으면 예외가 발생합니다. 이전에는 경고만 발령했습니다.
0.11.2
새 기능
-
작업이 취소되었고 job.result ()가 요청된 경우 None을 반환하는 대신 예외를 던집니다.
-
새로운 메서드인 qiskit_ibm_runtime.options.SimulatorOptions.set_backend() 를 사용하면 백엔드에 대한 시뮬레이터 옵션을 더 쉽게 설정할 수 있습니다.
from qiskit.providers.fake_provider import FakeManila from qiskit_aer.noise import NoiseModel # Make a noise model fake_backend = FakeManila() # Set options to include the noise model options = Options() options.simulator.set_backend(fake_backend) options.simulator.seed_simulator = 42
버그 수정
- IBMB백엔드 딥카피 시도 시 무한 재귀를 수정했습니다. 메서드 추가
qiskit_ibm_runtime.IBMBackend.deepcopy(). - 회로 메타데이터가 올바르게 직렬화되지 않아 유형 오류가 발생하던 문제를 수정했습니다.
0.11.1
지원 중단 노트
- qiskit_ibm_runtime.RuntimeJob.metrics() 에서 bss 필드는 사용량으로 대체됩니다.
0.11.0
새 기능
-
qiskit_ibm_runtime.IBMRuntimeService.job()로 작업을 검색할 때params은 더 이상 API에서 반환되지 않습니다. 대신 qiskit_ibm_runtime.RuntimeJob.inputs() 에서 실제로 필요할 때 느리게 로드됩니다. -
QiskitRuntimeService.run에서 백엔드가 활성화되지 않은 경우 경고를 추가했습니다.
-
시뮬레이터 옵션으로 제공된 경우
CouplingMap유형의 입력을 지원합니다. 예를 들어 이전에는 다음과 같이 지원했습니다:options.simulator = {"coupling_map": [[0, 1], [1, 0]]}이제 다음 기능도 지원합니다:
options.simulator = {"coupling_map": CouplingMap.from_line(10)}
업그레이드 주의사항
- 에 백엔드 이름이나 백엔드 인스턴스를 전달하면 기본 세션이 더 이상 열리지 않습니다 qiskit_ibm_runtime.Sampler 또는 qiskit_ibm_runtime.Estimator 생성자에 전달하면 기본 세션이 더 이상 열리지 않습니다. 대신 프리미티브는 세션 없이 실행됩니다. 또한 이제
session매개변수 대신backend매개변수를 사용하여 백엔드 이름 또는 인스턴스를 전달해야 합니다(세션을 전달하는 데 계속 사용할 수 있음). - 의 첫 번째 매개변수는 qiskit_ibm_runtime.Sampler 및 qiskit_ibm_runtime.Estimator 생성자의 첫 번째 매개변수는 이제
session대신backend입니다.
지원 중단 노트
- 초기화할 때
session매개변수에 백엔드 이름 또는 백엔드 인스턴스를 전달합니다 qiskit_ibm_runtime.Sampler 또는 qiskit_ibm_runtime.Estimator 는 더 이상 사용되지 않습니다. 대신backend매개변수를 사용하세요.session매개 변수를 사용하여 세션을 계속 전달할 수 있습니다.
0.10.0
새 기능
- Python 3.11 이제 지원됩니다.
업그레이드 주의사항
- 사용자가 '최대_실행_시간'에 지원되지 않는 값을 정의하는 경우 오류 메시지를 추가했습니다. 이전에는 이 유효성 검사가 서버 측에서 수행되었습니다.
버그 수정
- RuntimeJob.inputs의 매개변수 역직렬화가 추가되었습니다. 이전에는 회로를 직렬화된 형식으로 반환했습니다. 문제 #829를 수정합니다.
- 백엔드 중 하나에 구성이 누락된 경우에도 사용자가 모든 백엔드를 검색할 수 있도록 허용합니다. 구성이 없는 백엔드는 반환되지 않습니다.
0.9.4
새 기능
transpilation및environment옵션에 입력 옵션의 유효성을 검사하는 메서드를 추가했습니다.
업그레이드 주의사항
- 백엔드 구성 시
qiskit.transpiler.Target, 백엔드 구성에서 결함이 있는 큐비트와 게이트는 필터링됩니다.
지원 중단 노트
-
더 이상 사용되지 않는 인자
circuits,parameters,service,skip_transpilation는 샘플러에서 제거되었습니다.마찬가지로 더 이상 사용되지 않는 인수
circuits,observables,parameters,service,skip_transpilation도 Estimator에서 제거되었습니다.키스킷런타임서비스에서
auth매개변수가 제거되었습니다. 또한 qiskit_ibm_runtime.QiskitRuntimeService.run() 에서instance,job_tags,max_execution_time매개 변수가 제거되었습니다. 대신RuntimeOptions을 통해 전달할 수 있습니다.RuntimeOptionsbackend_name내부는 더 이상 지원되지 않습니다. 대신backend을 사용하세요.
버그 수정
noise_model또는seed_simulator옵션 없이 백엔드에서 작업을 검색하면 키 오류가 발생하는 버그가 수정되었습니다.
0.9.3
업그레이드 주의사항
- 사용자가 '최적화_수준' 또는 '복원력_수준'에 지원되지 않는 값을 정의하는 경우 오류 메시지를 추가했습니다.
resilience에 입력으로 제공된 옵션에 대한 유효성 검사를 추가했습니다. 이전에는 이 유효성 검사가 서버 측에서 수행되었습니다. 클라이언트 측에 추가하면 장애 발생 시 응답이 훨씬 빨라집니다. 환경 변수QISKIT_RUNTIME_SKIP_OPTIONS_VALIDATION는 유효성 검사를 제어하는 데 사용됩니다. 설정하면 유효성 검사를 건너뜁니다. - 백엔드 구성이 더 이상 로드되지 않습니다 QiskitRuntimeService 가 초기화되면 백엔드 구성이 더 이상 로드되지 않습니다. 대신, 구성은 get_backend() 및 backends() 중에만 로드되고 캐시됩니다.
버그 수정
- Option 객체를 생성하고
resilience_options에 입력 옵션을 전달할 때 이 옵션은resilience_options에 포함되었지만 다른 기본 옵션은 제거되었습니다. 이 문제가 수정되었으므로 이제 다른 옵션 유형과 마찬가지로 입력이 올바르게 처리됩니다.
0.9.2
새 기능
- 프로그램_run 메서드에
session_time라는 새 인수를 추가하고qiskit_ibm_runtime.RuntimeOptions. 이제 사용자가 세션max_time에 입력한 값은session_time으로 서버 측에 전송됩니다. 이를 통해 사용자는max_time와max_execution_time세션에 대해 서로 다른 값을 지정할 수 있습니다. - Target_history() 메서드를 추가했습니다. 이 메서드는 target() 과 유사합니다. 차이점은 새로운 메서드에서는 사용자가 백엔드에서 기록 데이터를 검색하기 위해 날짜 시간 매개변수를 전달할 수 있다는 점입니다.
업그레이드 주의사항
- 레벨 1에서 주어진 모든 옵션을 수락하고 적절한 계층적 옵션 유형에 할당합니다. 예를 들어 사용자가 샘플러/에스티메이터에 입력으로
options = {"shots": 10}을 제공하면options = {"execution: {"shots": 10}}으로 해석됩니다. - 백엔드 없이 작업이 반환된 경우 qiskit_ibm_runtime.RuntimeJob.backend() 를 통해 백엔드를 검색하면 서버에서 데이터를 다시 검색하고 백엔드를 업데이트하려고 시도합니다. 또한 더 이상 사용되지 않는 속성인
job_id및backend은 qiskit_ibm_runtime.RuntimeJob 의 속성이 제거되었습니다. - 사용자가 옵션에서 지원되지 않는 옵션을 전달할 때 사용자 경고를 추가했습니다.
버그 수정
optimization_level및resilience_level의 기본값이 올바르게 설정되지 않던 버그를 수정했습니다.- 백엔드를 선택하지 않으면
optimization_level및resilience_level이None로 기본값이 설정되어 작업이 실패하는 문제를 수정했습니다. - qiskit_ibm_runtime.QiskitRuntimeService.get_backend() 에 인스턴스가 전달된 후 세션에서 백엔드가 사용되는 경우 세션 내의 모든 작업은 전달된 원래 인스턴스에서 실행됩니다.
- JSON 인코더에서
BlueprintCircuits의 추가 분해를 제거했습니다. 이 기능은 버그 수정으로 도입되었지만 이후 수정되었습니다. 여전히 분해 작업을 수행하면 분해된 회로가 더 이상 백엔드의 올바른 베이시스 세트에 있지 않을 경우 문제가 발생할 수 있습니다.
0.9.1
업그레이드 주의사항
-
qiskit_ibm_runtime.QiskitRuntimeService.jobs() 에는 이제 지정된 백엔드로 실행된 작업만 반환하는 데 사용할 수 있는
backend_name매개 변수가 있습니다. -
사용자가 매개변수에서 지정한 파일에 계정 세부 정보를 저장할 수 있도록 허용합니다.
filename. 기본값은 ~/.qiskit/qiskit-ibm.json 으로 유지됩니다. 사용 예시: Ex:QiskitRuntimeService.save_account(channel="ibm_quantum", filename="~/my_account_file.json", name = "my_account", token="my_token") service = QiskitRuntimeService(channel="ibm_quantum", filename="~/my_account_file.json", name = "my_account",)
지원 중단 노트
backendqiskit_ibm_runtime.Session.run ()을 사용할 때 더 이상 지원되는 옵션이 아닙니다. 세션은 여러 개의 크로스 백엔드를 지원하지 않습니다. 또한 옵션을 통해 전달된 백엔드가 활성 세션의 원래 세션 백엔드와 일치하지 않는 경우 예외가 발생합니다.
버그 수정
ECRGate및CZGate매핑이Target생성자에 추가되어 트랜파일 버그를 수정했습니다.
기타 참고사항
- 실패한 작업의 오류 메시지가 길어질 수 있으므로 메시지의 마지막
Traceback부터 시작하도록 단축했습니다.
0.9.0
업그레이드 주의사항
optimization_level및resilience_level의 기본값을qiskit_ibm_runtime.Options에서 변경했습니다. 사용자가 값을 정의한 경우 해당 값은 수정되지 않습니다. 설정하지 않으면 백엔드가 노이즈 없는 시뮬레이터인 경우optimization_level은 1로 설정되고resilience_level은 0으로 설정되며, 그렇지 않으면 각각 3과 1로 설정됩니다.- 세션_id() 및 태그() 가 추가되어 작업의 세션_id 및 작업_tag를 쉽게 반환할 수 있습니다.
버그 수정
- 세션이 종료되기 전에 실행되지 않은 작업이 실제로 해당 세션의 일부로 실행되지 않는 버그가 수정되었습니다. 컨텍스트 관리자의 종료로 세션이 닫히더라도 작업은 세션의 일부로 실행되어야 합니다.
- 쓰기 작업 시간 초과로 인해 대용량 작업 제출이 실패하는 문제를 수정했습니다.
0.8.0
새 기능
- Python 3.10 이제 지원됩니다.
- 이제
options.resilience에서 고급 복원력 옵션을 설정할 수 있습니다. 사용 가능한 모든 옵션은qiskit_ibm_runtime.options.ResilienceOptions을 참조하세요. - 이제 qiskit_ibm_runtime.QiskitRuntimeService.run() 메서드의
result_decoder파라미터에 결과 디코더 쌍을 지정할 수 있습니다. 쌍을 지정하면 첫 번째 쌍은 중간 결과를 디코딩하는 데 사용되고 두 번째 쌍은 최종 결과를 디코딩하는 데 사용됩니다.
업그레이드 주의사항
- 기본값
resilience_level옵션이 0에서 1로 변경되었습니다. 또한 기본값optimization_level옵션이 1에서 3으로 변경되었습니다.
지원 중단 노트
- 번역 옵션
translation_method및timing_constraints은 더 이상 사용되지 않습니다.
버그 수정
- 인스턴스가 qiskit_ibm_runtime.IBMBackend 인스턴스가 생성자에 전달되면 qiskit_ibm_runtime.Session 생성자에 인스턴스가 전달되면 기본 계정 서비스 대신
IBMBackend인스턴스를 초기화하는 데 사용된 서비스가 세션에 사용됩니다.
0.7.0
새 기능
qiskit_ibm_runtime.Options클래스는 이제 임의의 키워드 인수를 허용합니다. 이를 통해 사용자는qiskit_ibm_runtime을 업그레이드하지 않고도 기본 프로그램에 새로운 옵션을 지정할 수 있습니다. 그러나 이러한 임의의 키워드 인수는 유효성이 검사되지 않습니다.- 이제 qiskit_ibm_runtime.options.EnvironmentOptions 클래스는 이제
callback매개 변수를 허용합니다. 이 매개변수는 프리미티브의 중간 결과와 최종 결과를 스트리밍하는 데 사용할 수 있습니다. qiskit_ibm_runtime.Options클래스는 이제max_execution_time을 첫 번째 레벨 옵션으로,job_tags을environment아래 옵션으로 허용합니다.qiskit_ibm_runtime.RuntimeOptions도 이 두 매개변수를 포함하도록 업데이트되었습니다.
업그레이드 주의사항
- 이 버전의 qiskit-ibm-runtime은 qiskit-terra 버전 0.22 이상이 필요합니다.
requirements.txt파일이 그에 따라 업데이트되었습니다.
지원 중단 노트
- Qiskit Runtime 프로그램
torch-train,torch-infer,sample-expval,sample-program,quantum_kernal_alignment은 사용량이 적어 더 이상 사용되지 않습니다. - qiskit_ibm_runtime.QiskitRuntimeService.run() 에
instance매개 변수를 전달하는 것은 더 이상 사용되지 않습니다. 대신options매개변수 안에instance매개변수를 전달할 수 있습니다. - 에
job_tags및max_execution_time을 매개 변수로 전달하는 것은 qiskit_ibm_runtime.QiskitRuntimeService 은 더 이상 사용되지 않습니다.options안으로 전달해 주세요.
버그 수정
- 사용법 가이드에서 작업 검색에 대한 섹션이 누락된 부분을 수정합니다.
0.7.0rc2
업그레이드 주의사항
Sampler.run()에 유효성 검사를 추가했습니다. 클래식 비트가 없는 경우 오류가 발생합니다.- 샘플러
SamplerResult는SamplerResult.quasi_dists을QuasiDistrbution의 목록으로 반환하도록 업데이트됩니다.dict의 목록을SamplerResult.quasi_dists으로 설정했지만SamplerResult의 디자인을 따르지 않았습니다. - 클래스는 이제 RuntimeJob 클래스는 이제
qiskit.providers.Job의 서브클래스입니다.
지원 중단 노트
job_id및backend속성의 qiskit_ibm_runtime.RuntimeJob 속성은 더 이상 사용되지 않습니다. 대신 qiskit_ibm_runtime.RuntimeJob.job_id() 및 qiskit_ibm_runtime.RuntimeJob.backend( ) 메서드를 사용하세요.qiskit_ibm_runtime.RuntimeOptions의backend_name속성은 더 이상 사용되지 않으며backend로 대체됩니다.
0.7.0rc1
Prelude
세션 내에서 프리미티브가 호출되는 방식과 프리미티브에서 사용할 수 있는 옵션이 크게 변경되었습니다. 자세한 내용은 나머지 릴리스 노트와 튜토리얼을 참조하세요.
새 기능
-
이제 세션 내에서 동일하거나 다른 기본 프로그램을 여러 번 호출할 수 있습니다. 예를 들어,
from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler, Estimator, Options from qiskit.test.reference_circuits import ReferenceCircuits from qiskit.circuit.library import RealAmplitudes from qiskit.quantum_info import SparsePauliOp # Initialize account. service = QiskitRuntimeService() # Set options, which can be overwritten at job level. options = Options(optimization_level=1) # Prepare inputs. bell = ReferenceCircuits.bell() psi = RealAmplitudes(num_qubits=2, reps=2) H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) theta = [0, 1, 1, 2, 3, 5] with Session(service=service, backend="ibmq_qasm_simulator") as session: # Submit a request to the Sampler primitive within the session. sampler = Sampler(session=session, options=options) job = sampler.run(circuits=bell) print(f"Sampler results: {job.result()}") # Submit a request to the Estimator primitive within the session. estimator = Estimator(session=session, options=options) job = estimator.run( circuits=[psi], observables=[H1], parameter_values=[theta] ) print(f"Estimator results: {job.result()}") -
새로운
qiskit_ibm_runtime.Options클래스가 도입되었습니다. 이 클래스를 사용하면 원시 프로그램과 관련된 옵션을 자동으로 완성할 수 있습니다. 예를 들어,from qiskit_ibm_runtime import Session, Sampler, Options from qiskit.test.reference_circuits import ReferenceCircuits options = Options() options.optimization_level = 3 # This can be done using auto-complete. with Session(backend="ibmq_qasm_simulator") as session: # Pass the options to Sampler. sampler = Sampler(session=session, options=options) # Or at job level. job = sampler.run(circuits=ReferenceCircuits.bell(), shots=4000) -
qiskit_ibm_runtime.RuntimeJob 에는 새로운 메서드 metrics() 가 있습니다. 이 메서드는 타임스탬프 정보를 포함한 작업의 메트릭을 반환합니다.
-
이제 qiskit_ibm_runtime.QiskitRuntimeService
channel를 환경 변수로 저장할 수 있습니다(QISKIT_IBM_CHANNEL). 이렇게 하면 런타임 프리미티브를 사용할 때 서비스를 수동으로 인스턴스화할 필요 없이 환경 변수에서 직접 생성할 수 있습니다.
업그레이드 주의사항
-
작업이 너무 오래 실행되면 프로그램에서 적절하게 처리할 수 있도록
RuntimeJobMaxTimeoutError을(를) 올리세요. -
실험 매개변수
transpilation_settings,resilience_settings,max_time를 :class:` qiskit_ibm_runtime.Sampler 및 qiskit_ibm_runtime.Estimator 생성자가 제거되었습니다. 대신qiskit_ibm_runtime.Options클래스를 사용하여 설정을 지정할 수 있으며, 새 세션을 시작할 때max_time을 지정할 수 있습니다. 예를 들어,from qiskit_ibm_runtime import Session, Sampler, Options options = Options() # This can be done using auto-complete. option.optimization_level = 3 options.resilience_level = 1 with Session(max_time="2h") as session: # Pass the options to Sampler. sampler = Sampler(session=session, options=options) -
일부 계정에는 많은 런타임 프로그램이 있으므로
programs()첫 호출 시 모든 프로그램 목록을 캐싱하는 기능이 제거되었습니다. 대신 기본값이 20인limit까지만 프로그램이 캐시됩니다.
지원 중단 노트
-
호출 qiskit_ibm_runtime.Sampler 및 qiskit_ibm_runtime.Estimator 를 컨텍스트 관리자로 사용하는 것은 더 이상 사용되지 않습니다. 대신 qiskit_ibm_runtime.Session 클래스를 사용하여 새 세션을 생성하고 세션 내에서 하나 이상의 프리미티브를 호출할 수 있습니다.
따라서
circuits,observables,parameter_values,service와 같은 입력 매개변수를Sampler및Estimator의 생성자에 전달하는 것도 더 이상 사용되지 않습니다. 이제 입력값을 프리미티브 클래스의run()메서드에 전달할 수 있으며,service을 qiskit_ibm_runtime.Session 에 전달할 수 있습니다. -
skip_transpilation를 :class:` qiskit_ibm_runtime.Sampler 및 qiskit_ibm_runtime.Estimator 생성자 전달은 더 이상 사용되지 않습니다. 대신qiskit_ibm_runtime.Options클래스를 사용하여 이 옵션을 지정할 수 있습니다. 예를 들어,from qiskit_ibm_runtime import Options options = Options() # This can be done using auto-complete. options.transpilation.skip_transpilation = True
버그 수정
- 최신 버전
qiskit-ibm-runtime은0.20.0또는 이전 버전qiskit-terra과 호환되지 않으므로 최소 요구되는qiskit-terra버전을0.21.0으로 높여 문제 #428 을 수정합니다.
0.6.0
업그레이드 주의사항
-
qiskit-ibmq-provider에서 마이그레이션할 때ibm_quantum채널 자격 증명이 qiskitrc 파일에서 자동으로 복사되며, 파일이 없는 경우 qiskit-ibm.json 파일이 생성됩니다. 매개변수를 전달하지 않고 QiskitRuntimeService 클래스를 매개변수 전달 없이 초기화하기만 하면 기본ibm_quantum계정으로 복사된 이 계정을 사용할 수 있습니다.예:
from qiskit_ibm_runtime import QiskitRuntimeService service = QiskitRuntimeService() -
IBMEstimator클래스는 이제 더 이상 사용되지 않습니다. 앞으로 추정기 클래스를 사용하세요. -
IBMRuntimeService클래스는 이제 더 이상 사용되지 않습니다. 사용 QiskitRuntimeService 클래스를 사용하세요.
0.5.0
Prelude
이번 릴리스에서는 API 및 대기열 개선 사항을 활용하여 런타임 세션 인식 기능을 강화했습니다. 결과적으로 프리미티브(샘플러 및 추정기)를 사용할 때 동일한 세션의 런타임 작업이 대기열의 앞쪽으로 건너뛰게 되어 런타임 세션이 시작되면 속도가 빨라집니다.
새 기능
-
클래스의 인스턴스인
service객체는 이제 QiskitRuntimeService 클래스의 인스턴스인service객체는 이제 속성을 사용하여 IBMBackend 클래스에서 액세스할 수 있습니다.예:
backend = service.get_backend("ibmq_qasm_simulator") backend.service # QiskitRuntimeService instance used to instantiate the backend
업그레이드 주의사항
-
jobs() 에는
created_after와created_before라는 두 개의 새로운 매개 변수가 있습니다. 현지 시간으로 생성 날짜별로 작업을 필터링하는 데 사용할 수 있습니다. -
estimator호출 시circuit_indices및observable_indices매개 변수는 이제 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 이제circuits및observables매개 변수를 사용하여 인덱스 또는 객체를 전달할 수 있습니다.예:
with Estimator( circuits=[qc1, qc2], observables=[H1, H2, H3], service=service, options=options ) as estimator: # pass circuits and observables as indices result = estimator(circuits=[0, 1], observables=[0, 1], parameter_values=[theta1, theta2]) # pass circuits and observables as objects result = estimator(circuits=[qc1, qc2], observables=[H1, H3], parameter_values=[theta1, theta3]) -
estimator호출 시circuit_indices및observable_indices매개 변수는 이제 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 이제circuits및observables매개 변수를 사용하여 인덱스 또는 객체를 전달할 수 있습니다.예:
with Sampler( circuits=[qc1, qc2], service=service, options=options ) as sampler: # pass circuits as indices result = sampler(circuits=[0, 1], parameter_values=[theta1, theta2]) # pass circuit as objects result = sampler(circuits=[qc1, qc2], parameter_values=[theta2, theta3]) -
이제 런타임 세션에서 첫 번째 작업의 작업 ID인
session_id를 매개변수session_id와 함께 jobs() 에서 필터로 사용할 수 있습니다. -
run()은 이제 새로운 매개변수
job_tags를 지원합니다. 이러한 태그는 jobs() 로 작업을 필터링할 때 사용할 수 있습니다. -
이제 run()은 기본 프로그램 최대 실행 시간을 재정의하는 데 사용할 수 있는 새로운 매개변수
max_execution_time를 지원합니다. 프로그램 최대 실행 시간보다 작거나 같아야 합니다. -
jobs()에 새로운 매개변수
descending가 추가되었습니다. 이 매개변수의 기본값은True이며, 여기서 작업은 생성 날짜를 기준으로 내림차순으로 반환됩니다. -
RuntimeJobTimeoutError이제 결과() 또는 wait_for_final_state( )에 설정된timeout이 만료될 때 발생합니다. -
초기화할 때 QiskitRuntimeService 를 초기화하고 유효하지 않은 토큰을 사용하면
RequestsApiError대신IBMNotAuthorizedError이 발생합니다. -
IBMSampler클래스는 이제 더 이상 사용되지 않습니다. 앞으로 샘플러 클래스를 사용하세요. -
이제 쿼비트_프로퍼티() 는
IBMQubitProperties이라는QubitProperties의 하위 클래스를 반환하며 t1, t2 및QubitProperties클래스가 이미 노출한 주파수 외에 부조화도 노출합니다.
0.4.0
업그레이드 주의사항
-
IBMRuntimeServiceQiskitRuntimeSericeIBMRuntimeService클래스는 이제 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다.예:
과거:
from qiskit_ibm_runtime import IBMRuntimeService service = IBMRuntimeService(channel="ibm_cloud", token="...", instance="...")이후:
from qiskit_ibm_runtime import QiskitRuntimeService service = QiskitRuntimeService(channel="ibm_cloud", token="...", instance="...") -
IBMEstimator클래스는 이제 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 앞으로 추정기 클래스를 사용하세요.예:
과거:
from qiskit_ibm_runtime import IBMRuntimeService, IBMEstimator service = IBMRuntimeService(channel="ibm_cloud", token="...", instance="...") estimator_factory = IBMEstimator(service=service, backend="ibmq_qasm_simulator") with estimator_factory(circuits=[qc], observables="...", parameters="...") as estimator: result = estimator(circuit_indices=[0], ...)이후:
from qiskit_ibm_runtime import QiskitRuntimeService, Estimator service = QiskitRuntimeService(channel="ibm_cloud", token="...", instance="...") with Estimator( circuits=[qc], observables="...", parameters="...", service=service, options={ "backend": "ibmq_qasm_simulator" }, # or IBMBackend<"ibmq_qasm_simulator"> ) as estimator: result = estimator(circuit_indices=[0], ...) -
IBMSampler클래스는 이제 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 앞으로 샘플러 클래스를 사용하세요.예:
과거:
from qiskit_ibm_runtime import IBMRuntimeService, IBMSampler service = IBMRuntimeService(channel="ibm_cloud", token="...", instance="...") sampler_factory = IBMSampler(service=service, backend="ibmq_qasm_simulator") with sampler_factory(circuits=[qc], parameters="...") as sampler: result = sampler(circuit_indices=[0], ...)이후:
from qiskit_ibm_runtime import QiskitRuntimeService, Sampler service = QiskitRuntimeService(channel="ibm_cloud", token="...", instance="...") with Sampler( circuits=[qc], parameters="...", service=service, options={ "backend": "ibmq_qasm_simulator" }, # or IBMBackend<"ibmq_qasm_simulator"> ) as sampler: result = sampler(circuit_indices=[0], ...)
지원 중단 노트
IBMRuntimeService,IBMEstimator및IBMSampler클래스는 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 대신 QiskitRuntimeService, 추정기 및 샘플러 클래스를 사용하세요. 예시와 함께 자세한 설명은 업그레이드 노트 섹션을 참조하세요.
0.3.0
업그레이드 주의사항
- 이제
qiskit_ibm_runtime.IBMRuntimeService클래스와save_account(),saved_accounts(),delete_account()와 같은 메서드에도 새로운 매개변수channel가 추가되었습니다.ibm_quantum또는ibm_cloud으로 설정하여 현재 Qiskit Runtime 서비스가 제공되는 두 가지 채널 중 하나로 인증할 수 있습니다.channel는 현재 더 이상 사용되지 않는auth매개 변수를 대체합니다.
지원 중단 노트
qiskit_ibm_runtime.IBMRuntimeService클래스와save_account(),saved_accounts(),delete_account()와 같은 메서드에 대한auth매개 변수는 이제 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 대신 새로운channel매개변수를 사용하세요.
버그 수정
- 샘플러 또는 추정기 프리미티브에 단일
QuantumCircuit을 전달할 때 오류가 발생하던 #291을 수정했습니다.
0.2.0
새 기능
qiskit_ibm_runtime.IBMEstimator및qiskit_ibm_runtime.IBMSampler클래스를 사용하면 이제estimator및sampler기본 프로그램과 쉽게 상호 작용할 수 있습니다. 사용 방법에 대해 자세히 알아보려면 각 클래스 문서 문자열의 예제를 참조하세요.
버그 수정
- 작업이 이미 완료되었고 qiskit_ibm_runtime.RuntimeJob.status() 가 미리 호출된 경우 qiskit_ibm_runtime.RuntimeJob.wait_for_final_state() 가 NoneType 오류를 발생시키는 버그를 수정했습니다.
0.1.0
Prelude
Qiskit Runtime 서비스를 통해 IBM Quantum의 양자 프로그램, 시스템 및 시뮬레이터에 액세스하기 위한 새로운 Python API 클라이언트인 qiskit-ibm-runtime입니다.
이 새로운 패키지는 qiskit-ibmq-provider 패키지의 qiskit.providers.ibmq.runtime 모듈에서 이미 수행된 작업을 기반으로 구축되었으며 앞으로 이를 대체합니다. 이제 qiskit-ibmq-provider 패키지의 런타임 모듈이 더 이상 사용되지 않습니다.
qiskit-ibm-runtime은 키스킷 메타 패키지의 일부로 포함되어 있지 않으므로 pip install qiskit-ibm-runtime 을 사용하여 별도로 설치해야 한다.
새 기능
qiskit_ibm_runtime.IBMRuntimeService.least_busy()를 사용하면 이제 가장 덜 바쁜 백엔드를 찾을 수 있습니다.
업그레이드 주의사항
-
qiskit-ibm-runtime 패키지는 더 이상 qiskit-ibmq-provider가 자격 증명을 저장하는 데 사용하는 $ HOME/.qiskit/qiskitrc 파일을 사용하지 않는다. 이제
qiskit_ibm_runtime.IBMRuntimeService.save_account()메서드를 사용할 때 자격 증명이 $ HOME/.qiskit/qiskit-ibm.json 파일에 JSON 형식으로 저장됩니다.이제 여러 개의 자격 증명을 저장하고 각 자격 증명에 선택적으로 이름을 지정할 수 있습니다.
-
Qiskit Runtime 서비스는 IBM 퀀텀(레거시) 계정 또는 IBM Cloud (클라우드) 계정을 사용하여 액세스할 수 있습니다. qiskit-ibm-runtime을 사용하면 이러한 계정 중 하나에 연결할 수 있습니다:
# Legacy from qiskit_ibm_runtime import IBMRuntimeService service = IBMRuntimeService(auth="legacy", token="abc") # Cloud from qiskit_ibm_runtime import IBMRuntimeService service = IBMRuntimeService(auth="cloud", token="abc", instance="IBM Cloud CRN or Service instance name") -
qiskit_ibm_runtime.IBMBackend 클래스는 이제
qiskit.providers.BackendV2인터페이스를 구현하며, 예를 들어 백엔드 구성에 더 쉽게 액세스할 수 있습니다:# BackendV1: backend.configuration().n_qubits # BackendV2: backend.num_qubitsBackendV1 와 비교했을 때 눈에 띄는 변화는 backend.name 이 이제 메서드가 아닌 어트리뷰트라는 점입니다.
사용 가능한 속성 목록은 qiskit_ibm_runtime.IBMBackend 클래스 문서 문자열에서 사용 가능한 모든 속성 목록을 참조하세요.
-
Qiskit-ibmq-provider 패키지에서 qiskit.providers.ibmq.AccountProvider.get_backend 메서드(예:
provider.get_backend("ibmq_qasm_simulator"))를 사용했다면, 이 새 패키지에서 동등한 메서드는qiskit_ibm_runtime.IBMRuntimeService.backend()이다:service = IBMRuntimeService() backend = service.backend("ibmq_qasm_simulator") -
이제 레거시 IBM 퀀텀 계정에 연결할 때 허브/그룹/프로젝트를 미리 지정하는 것은 선택 사항입니다. 허브/그룹/프로젝트는 다음 순서로 선택됩니다.
- 초기화할 때
instance매개변수를 통해 전달된 경우 허브/그룹/프로젝트qiskit_ibm_runtime.IBMRuntimeService - 호출할 때 지정한 백엔드에 필요한 특정 허브/그룹/프로젝트입니다
qiskit_ibm_runtime.IBMRuntimeService.run() - 를 통해 이전에 설정한 기본값을
qiskit_ibm_runtime.IBMRuntimeService.save_account() - 계정의 프리미엄 허브/그룹/프로젝트
- 오픈 액세스 허브/그룹/프로젝트
- 초기화할 때
-
이제 클라우드 런타임을 사용할 때
qiskit_ibm_runtime.IBMRuntimeService.run()메서드를 실행할 때 옵션에 백엔드_이름을 지정하는 것이 선택 사항입니다( IBM Cloud 전용). 서버가 자동으로 백엔드를 선택하고 이름을 반환합니다. -
qiskit.providers.ibmq.runtime.IBMRuntimeService 서버에서 권한 캐시를 지우는 데 사용되던 qiskit-ibmq-provider의.logout 메서드가 제거되었습니다.
-
Python 3.6 은 수명이 다해 더 이상 새로운 qiskit-ibm-runtime 패키지에서 지원되지 않습니다.
-
qiskit.providers.ibmq.runtime.IBMRuntimeService.run_circuits 메서드가 제거되었으며
Sampler프리미티브 프로그램으로 대체됩니다. -
qiskit_ibm_runtime.IBMRuntimeService.run()메서드는 이제 이미 지원되는 Dict 외에도qiskit_ibm_runtime.RuntimeOptions클래스로 런타임 실행 옵션을 허용합니다. 백엔드_이름, 이미지 및 로그_레벨은 현재 사용 가능한 옵션입니다. -
qiskit_ibm_runtime.IBMRuntimeService.run()또는 qiskit_ibm_runtime.RuntimeJob.stream_results() 에callback를 지정하면 중간 결과 이후 최종 결과도 스트리밍됩니다.
0.1.0rc2
새 기능
- 편의를 위해 이제 계정
instance매개변수의 값으로IBM Cloud service name을 설정할 수 있습니다.CRN대신 이름을 설정하도록 선택하면 필요한CRN값이 IBM Cloud API를 통해 내부적으로 확인되므로qiskit_ibm_runtime.IBMRuntimeService클래스의 초기화 시간이 약간 더 길어집니다.
버그 수정
- qiskit_ibm_runtime.utils.json.RuntimeEncoder 와 qiskit_ibm_runtime.utils.json.RuntimeDecoder 가 Instruction 클래스의 인스턴스를 처리하도록 업데이트되었습니다.
- 객체 유형이 있는 널 배열을 직렬화할 수 없던 문제를 수정했습니다. qiskit_ibm_runtime.utils.json.RuntimeEncoder 와 qiskit_ibm_runtime.utils.json.RuntimeDecoder 가 이러한 배열을 처리하도록 업데이트되었습니다.
0.1.0rc1
새 기능
- 이제 허브/그룹/프로젝트 형식의
instance파라미터를qiskit_ibm_runtime.IBMRuntimeService.jobs()으로 전달하여 작업을 필터링할 수 있습니다. 현재 레거시 인증에 대해서만 지원됩니다. - 이제 qiskit_ibm_runtime.RuntimeJob.interim_results() 메서드를 사용하여 런타임 프로그램 중간 결과를 검색할 수 있습니다. 중간 결과는 최대 이틀 동안만 제공된다는 점에 유의하세요.
업그레이드 주의사항
- 클래스의 다른 프로퍼티와 일관성을 유지하기 위해 qiskit_ibm_runtime.RuntimeJob 클래스의 다른 프로퍼티와 일관성을 유지하기 위해 job_id 및 백엔드 메서드가 프로퍼티로 변환되었습니다.
qiskit_ibm_runtime.IBMRuntimeService.upload_program()으로 프로그램을 업로드할 때 프로그램 설명은 이제 선택 사항입니다.qiskit_ibm_runtime.IBMRuntimeService.pprint_programs()로 프로그램을 인쇄할 때 이제backend_requirements이 나열됩니다.
버그 수정
- 키스킷 테라 0.19.1 이상과 함께
ParameterExpressions를 사용할 때 JSON 인코딩 및 디코딩 관련 문제를 수정했습니다. 이전에는 JSON 출력에서 재구성된Parameter인스턴스의 고유 식별자가 달라서 입력과 동일하지 않은 것처럼 보였습니다. 이제 올바른 지원 ID를 갖게 됩니다.