Orbit - Quantum Elements의 Qiskit 함수
API 참조 보기
Qiskit Functions IBM Quantum® Premium Plan, Flex Plan 및 On-Prem ( IBM Quantum Platform API를 통해 이용) Plan 사용자만 이용할 수 있는 실험적 기능입니다. 현재는 미리보기 버전 상태이며, 변경될 수 있습니다.
개요
양자 하드웨어는 지속적으로 발전하고 있지만, 잡음과 탈상관 현상은 여전히 실용적인 양자 회로의 처리 깊이와 신뢰성을 제한하고 있다. 현재 이용 가능한 접근법 중, 동적 분리(DD), 최적화된 트랜스파일레이션, 측정 오차 완화(MEM)라는 세 가지 상호 보완적인 기법을 활용하면 이러한 한계를 상당히 완화할 수 있다. 최적화된 트랜스파일레이션은 회로 깊이를 줄이고 회로를 대상 하드웨어의 연결 구조에 더 잘 맞출 수 있게 하며, DD는 세심하게 설계된 제어 시퀀스를 통해 유휴 시간 노이즈를 억제하고, MEM은 판독 오류의 영향을 줄여주며 후처리 단계에서 적용할 수 있습니다.
효과적인 DD 전략을 선정하는 일은 특히 쉽지 않은데, 이는 이용 가능한 서열 군이 매우 많을 뿐만 아니라, 특정 회로나 잡음 환경에서 우수한 성능을 보이는 서열이 다른 환경에서는 그렇지 않을 수 있기 때문이다. 트랜스필레이션, DD 및 MEM의 이점은 문제, 하드웨어 및 워크로드에 따라 달라집니다. 이를 개별적으로 또는 조합하여 사용하면 성능을 향상시킬 수 있지만, 모든 구성에서 보편적으로 이점이 있는 것은 아닙니다.
Quantum Elements가 개발한 Qiskit 함수인 ‘Orbit’은 이 세 가지 구성 요소를 하나의 통합 워크플로로 매끄럽게 결합하여, IBM Quantum 하드웨어에서 회로 실행 성능을 향상시키는 데 쉽게 활용할 수 있도록 해줍니다. Orbit은 기본 형태에서, 원래의 회로 논리를 유지하면서 유휴 기간 동안 양자 상태를 보호하는 능동적 오류 억제 전략을 자동으로 적용합니다. 특히, 이 과정은 양자 또는 고전적 사전 처리 시간을 추가로 소요하지 않으므로, 워크플로우 내에서 불필요한 추가 비용이나 대기 시간을 피할 수 있습니다.
Orbit은 블랙박스처럼 작동하는 대신, 사용자가 특정 실험에 맞춰 최적화 구성 요소를 평가하고 미세 조정할 수 있도록 합니다. 사용자는 최적화된 트랜스파일레이션, DD 및 MEM을 개별적으로 활성화하거나 비활성화할 수 있으며, 자동 DD 선택 결과와 사용자가 지정한 시퀀스를 비교하고, 동일한 워크플로우 내에서 여러 가지 구성을 실행할 수 있습니다. 각 구성을 원시 회로와 비교함으로써, 사용자는 자신의 회로와 백엔드에 측정 가능한 이점을 제공하는 기술이 무엇인지 파악하고, 서로 다른 최적화 방법 간의 상호작용을 확인하며, 실험 목적에 가장 적합한 구성을 선택할 수 있습니다. 이 프로세스는 사용자가 성능 향상의 원인이 어디에 있는지 파악하고, 주어진 워크로드에 맞춰 양자 회로를 최적화할 때 보다 합리적인 결정을 내릴 수 있도록 안내합니다.
설명
Orbit은 IBM Quantum 백엔드에서 양자 회로의 실행 성능을 향상시키도록 설계되었습니다. 자동 모드에서는 사용자가 수동으로 선택하거나 설정할 필요 없이, 고차원의 견고한 DD 시퀀스를 원활하게 적용할 수 있습니다. 고급 사용자는 대신 사용 가능한 고차 시퀀스를 실험해 보며, 특정 회로에 대해 최상의 성능을 제공하는 접근 방식을 파악하고 최적화할 수 있습니다.
또한 Orbit은 별도의 보정 및 완화 워크플로우에 일반적으로 필요한 추가 작업 없이도 즉각적인 MEM을 제공합니다. 회로 중간 측정(mid-circuit measurement)이 포함된 양자 오류 정정 회로나 동적 회로와 같이, 트랜스파일레이션이 회로 구조를 변경해서는 안 되는 워크로드의 경우, Orbit은 사용자의 기존 트랜스파일레이션 전략을 방해하지 않으면서 DD 및 MEM을 적용할 수 있습니다. 아직 선호하는 접근 방식을 정하지 않은 사용자를 위해, Orbit에는 오류 억제 및 판독 오류 완화 기법을 적용하기 전에 대상 하드웨어에 맞게 회로를 최적화하는 내장형 트랜스파일러도 포함되어 있습니다.
추가적인 회로 샘플링, 외삽법 또는 광범위한 고전적 사후 처리에 의존하는 접근 방식과 달리, Orbit은 실행 중 발생하는 오류를 억제하는 데 중점을 둡니다. 이 함수는 원래 회로 논리를 유지하면서 오버헤드를 최소화하도록 설계되었습니다. 사용자는 생성된 회로를 확인하고, Orbit으로 최적화된 실행 결과를 표준 실행 결과와 직접 비교할 수 있습니다.
실용적인 Orbit 워크플로는 다음과 같습니다:
- 양자 회로를 정의하고, ‘ Qiskit Functions Catalog ’를 통해 ‘Orbit’을 선택하십시오.
- 'Raw' 모드를 사용하여 Orbit이 포함되지 않은 회로를 포함시켜 원시 회로 기준선을 설정하십시오.
- 자동 또는 사용자가 선택한 DD 시퀀스, MEM, 최적화된 트랜스필레이션 등 적용할 최적화 전략을 선택하십시오.
- 개별 메서드를 활성화하거나 비활성화하거나, 여러 구성을 제출하여 각각의 효과와 결합된 효과를 평가할 수 있습니다.
오빗은 큐비트가 게이트에 적극적으로 참여하지 않는 유휴 기간이나 스케줄링 공백이 포함된 회로에서 특히 유용합니다. 이 시스템은 회로 중간 측정 및 내결함성 양자 컴퓨팅 실험을 포함한 정적 및 동적 회로를 지원합니다. 대표적인 응용 분야로는 양자 오류 정정, 정사각 격자 및 헤비-헥스 격자에서의 표면 코드 실험, 번스타인-바지라니(Bernstein-Vazirani)와 같은 오라클 알고리즘, 푸리에 변환 회로, 변분 양자 알고리즘, 해밀토니안 시뮬레이션, 벤치마킹 실험, 그리고 하드웨어 기반 회로 최적화 등이 있습니다.
내결함성 시대를 내다보며, Orbit은 양자 오류 정정 기술과 원활하게 결합될 수 있으므로 내결함성 양자 컴퓨팅 워크플로우와도 호환됩니다. 장기적으로, Orbit은 논리 큐비트를 보호하기 위한 미래 지향적인 방안으로 논리 수준 동적 분리 [1] 를 제시하고 있다. 아래 예시에서는 두 개의 논리 큐비트를 얽힘 상태로 만들어 양자 오류 검출 하에서 논리적 벨 상태를 생성했습니다. 양자 오류 검출만으로는 수십 마이크로초에 걸쳐 벨 상태의 충실도가 약 44%까지 저하된 반면, QED와 Orbit 방식의 보호 기법을 결합한 경우 논리적 벨 상태의 충실도는 최고 수준에 근접하게 유지되어, 동일한 시간 범위에서 약 95.3 %에 달했다.
벤치마크
다음 결과는 ‘ IBM Quantum ’ 하드웨어에서 수행된 대표적인 Orbit 실행 결과를 요약한 것입니다. 다른 하드웨어 벤치마크와 마찬가지로, 결과는 선택한 장치, 보정 상태, 회로 및 실행 설정에 따라 달라집니다.
예 | 메트릭 | 큐비트 | QPU | 추가 세부사항 | 궤도 개선 |
|---|---|---|---|---|---|
| 번스타인–바지라니 | 숨겨진 비트열의 정확도 | 266070 | 헤론 r3 | Raw 대 Full Orbit, 트랜스파일레이션 전용 대 Full Orbit, Full Orbit 전용 | 75×66×미상 |
| QFT (유니터리) | 충실도 | 1,000만 | Heron r2Heron r3 | 오빗 대 원시: ~44% 대 ~35% ~67% 대 ~61% | 1. 26×1.09× |
| QFT (동적 회로) | 충실도 | 1020 | 헤론 r3 | 오빗 대 원본: ~55% 대 ~2% ~10% 대 ~0% | 27. 51x미상 |
| 장거리 벨 상태 (동적 회로) | 충실도 | 3060 | 헤론 r2 | 해당사항 없음 | 1. 78×1.11× |
| 표면 코드 (정사각 격자) | 논리적 오류 확률 | 25 | 나이트호크 r1 | 1 라운드 5 라운드 10 라운드 | 1. 01×1. 15×1.12× |
| 서피스 코드 (헤비-헥스) | 논리적 오류 확률 | 65 | 헤론 r3 | 1 라운드 5 라운드 10 라운드 | 4. 11×2. 04×1.39× |
| VQE | 이상 에너지에 대한 절대 오차 | 8 | 헤론 r3 | Orbit 대 raw: 56mHa 대 1342 mHa | 24x |
| QAOA | 성공 확률 | 5 | 헤론 r2 | 해당사항 없음 | 1.46x |
[[4,2,2]] 코드 (논리 레벨 오류 억제) | 얽힌 벨 상태의 논리적 충실도 | 4 | 헤론 r2 | 55 μs에 걸친 평균 충실도 | 1.63x |
메트릭 정의
-
Bernstein–Vazirani 숨겨진 비트열 충실도: 올바른 숨겨진 비트열을 측정할 확률. 이 지표는 회로 크기가 커짐에 따라 알고리즘이 의도된 해를 얼마나 안정적으로 도출해내는지 나타냅니다. 이 표는 세 가지 서로 다른 구성에서 성공적으로 평가된 가장 큰 세 개의 숨겨진 비트스트링을 보여줍니다: (i) Orbit을 사용하지 않은 원시 회로로, 26 큐비트에 도달했으며; (ii) 트랜스필레이션만 적용된 회로로, 60 큐비트에 도달했으며; 그리고 (iii) Orbit의 전체 워크플로를 사용한 회로로, 70 큐비트에 도달했습니다. 원본 회로(i)의 경우, 개선 계수는 수정되지 않은 회로에 비해 DD 및 MEM을 통해 달성된 성능 향상을 나타냅니다. 트랜스파일레이션 전용 구성(ii)의 경우, 이는 최적으로 트랜스파일링된 회로에 DD와 MEM을 추가함으로써 달성된 성능 향상을 나타냅니다. 전체 Orbit 구성(iii)의 경우, 모든 Orbit 구성 요소(트랜스파일레이션, DD, MEM)가 모두 활성화된 상태에서만 0이 아닌 성공 확률이 도출되었기 때문에, 베이스라인 대비 개선 계수는 보고되지 않았다. 다음은 이를 설명하기 위한 예시입니다.
-
양자 푸리에 변환 충실도: 유니터리 및 동적 회로 기반 양자 푸리에 변환(QFT) 구현 [2] 모두에서, 충실도는 20가지 서로 다른 입력 상태에 대해 실험적으로 구현된 변환과 이상적인 QFT 과정 간의 일치 정도를 측정한다. 동적 회로에서는 회로 중간 측정 및 고전적 피드포워드 방식 때문에 상당한 유휴 시간이 발생하며, 이 기간 동안 동적 디커플링이 디코히런스를 억제할 수 있다. 보고된 개선 사항은 Orbit을 사용하여 얻은 충실도와 원본 충실도를 비교한 것입니다.
-
장거리 벨 상태 생성: 최대 60개의 중간 큐비트로 분리된 두 큐비트 간에 동적 회로와 피드포워드 연산을 활용하여 벨 상태를 생성함으로써, 국소적으로 연결된 양자 하드웨어에서 효율적인 장거리 얽힘을 입증하였다 [3]. Orbit은 최적의 큐비트 라우팅을 파악하고, 피드포워드 측정 과정에서 큐비트를 보존하며, MEM을 적용하여 판독 오류를 완화합니다.
-
표면 코드의 논리 오류 확률: 헤비-헥스 표면 코드 [4] 와 정사각 격자 표면 코드 [5] 에 대해, 반복적인 오류 정정 과정을 거치면서도 인코딩된 논리 상태가 유지되는 양자 메모리 실험이 수행되었다. 논리적 오류 확률은 누적된 오류로 인해 인코딩된 정보가 잘못 복원될 확률을 나타냅니다(오류 확률이 낮을수록 좋습니다). 보고된 개선 사항은 원시 회로의 논리 오류 확률을 Orbit을 사용하여 얻은 확률과 비교한 것입니다.
-
VQE 절대 오차: 최적화된 유니터리 결합 클러스터(unitary coupled-cluster) 가정을 적용한 VQE를 사용하여 LiH 의 기저 상태 에너지를 추정함 [6]. 측정된 에너지는 잡음이 없는 회로에서 얻은 해당 이상 에너지와 비교된다. 이 지표는 측정된 에너지와 이상적인 에너지 간의 절대 차이입니다(수치가 낮을수록 좋습니다). 보고된 개선 사항은 다음과 같습니다:
1보다 큰 값은 Orbit이 동적 디커플링을 적용하지 않은 실행에 비해 에너지 오차를 줄인다는 것을 나타냅니다.
-
QAOA 성공 확률: 나비 그래프에 정의된 최적화 문제의 최적 해에 해당하는 비트열을 측정할 확률. 보고된 개선 사항은 Orbit을 사용하여 얻은 성공 확률을 원시 회로에서 얻은 성공 확률과 비교한 것입니다.
-
논리적 충실도: [ [4,2,2] ] 논리적 동역학적 분리 [실험] 1에서, 두 개의 논리적 큐비트가 네 개의 물리적 큐비트로 인코딩되어 얽힌 논리적 벨 상태로 준비되었다. 논리적 충실도는 복원된 인코딩된 상태와 목표 논리적 벨 상태 간의 일치 정도를 측정한다. 보고된 개선 효과는 Orbit과 오류 탐지(코드의 성능)를 함께 사용했을 때 얻은 평균 논리적 정확도와 코드만을 사용했을 때 얻은 정확도를 비교한 것입니다.
시작하기
IBM Quantum Platform API 키를 사용하여 인증한 후, 다음과 같이 Orbit 함수를 선택하십시오. 이 코드 조각은 사용자가 이미 계정을 로컬 환경에 저장해 두었다고 가정합니다.
from qiskit_ibm_catalog import QiskitFunctionsCatalog
from qiskit import QuantumCircuit
catalog = QiskitFunctionsCatalog(channel="ibm_quantum_platform")
# Verify that you have access to the function.
catalog.list()Output:
[QiskitFunction(quantum-elements/orbit)]
# Load the function.
orbit = catalog.load("quantum-elements/orbit")예
다음 예제는 번스타인-바지라니 회로를 구축하고, 하나의 작업 내에서 ‘원시 실행’과 ‘Orbit 기본 설정’이라는 두 가지 방식으로 Orbit에 제출합니다.
'Raw'와 'Orbit'을 직접 비교하고 싶을 때 이 패턴을 사용하세요.
버나인-바지라니 회로 만들기
숨겨진 비트열을 선택하고 논리 회로를 구성하십시오. 추가 큐비트는 오라클 대상이며, 입력 큐비트들은 측정됩니다.
def create_bv_circuit(hidden_bitstring: str) -> QuantumCircuit:
width = len(hidden_bitstring)
circuit = QuantumCircuit(width + 1, width)
circuit.x(width)
circuit.h(range(width + 1))
for input_qubit, bit in enumerate(reversed(hidden_bitstring)):
if bit == "1":
circuit.cx(input_qubit, width)
circuit.barrier()
circuit.h(range(width + 1))
circuit.measure(range(width), range(width))
return circuit
circuit_width = 50
hidden_bitstring = "1" * circuit_width
shots = 4096
bv_circuit = create_bv_circuit(hidden_bitstring)
bv_circuit.count_ops()Output:
OrderedDict([('h', 102),
('cx', 50),
('measure', 50),
('x', 1),
('barrier', 1)])
Orbit 워크로드 준비하기
PUB 샘플러를 하나 생성한 다음, 두 가지 비교 모드를 위해 이를 복제하십시오. Orbit은 논리 회로를 수신한 후, 실행 중에 이를 선택된 백엔드에 매핑합니다.
base_pub = (bv_circuit, None, shots)
comparison_labels = ["raw", "orbit"]
pubs = [base_pub] * len(comparison_labels)Raw 및 Orbit 기본값으로 실행
pub_options 첫 번째 PUB 를 원시 모드로 설정하여 Orbit 최적화, DD 및 MEM을 건너뛰게 하고, 두 번째 PUB 를 Orbit 기본값으로 설정하여 최적화된 트랜스파일링, 자동 동적 분리(DD) 삽입 및 측정 오차 완화(MEM)를 포함하도록 합니다.
backend_name = "ibm_kingston"
job = orbit.run(
primitive="sampler",
pubs=pubs,
backend_name=backend_name,
options={
"pub_options": [
{"mode": "raw"},
{"mode": "orbit"},
],
"save_backend_info": True,
},
)
# Check the job ID and status
print(job.job_id)
print(job.status())Output:
c0f1b99c-8dfa-4ebb-9560-d9a37c990acc
QUEUED
결과를 가져온 다음, 카운트 수치를 바탕으로 원본 회로와 Orbit으로 개선된 회로를 비교합니다. 샘플러 결과의 경우, get_counts() 반환된 클래식 레지스터에서 출력 히스토그램을 확인할 수 있습니다. measurementErrorMitigation["rawCounts"]Orbit PUB 에 대해 MEM이 성공적으로 수행되면, 이 히스토그램은 이미 MEM 보정이 적용된 상태이며, 보정되지 않은 카운트 값은 Orbit 메타데이터의 [...]. 아래에서 계속 확인할 수 있습니다.
def extract_counts(pub_result) -> dict[str, int]:
data = getattr(pub_result, "data", None)
if data is None:
raise TypeError("pub_result.data is missing")
for name in dir(data):
if name.startswith("_"):
continue
register = getattr(data, name)
get_counts = getattr(register, "get_counts", None)
if callable(get_counts):
counts = get_counts()
if counts:
return counts
raise TypeError(
"No classical register with get_counts() found in pub_result.data"
)
result = job.result()
if len(result) != len(comparison_labels):
raise RuntimeError(
f"Expected {len(comparison_labels)} PUB results, received {len(result)}."
)
comparison_counts = {
label: extract_counts(pub_result)
for label, pub_result in zip(comparison_labels, result, strict=True)
}
correct_counts = {
label: counts.get(hidden_bitstring, 0)
for label, counts in comparison_counts.items()
}
print(
{
"hidden_bitstring": hidden_bitstring,
"correct_counts": correct_counts,
"shots": shots,
}
)Output:
{'hidden_bitstring': '11111111111111111111111111111111111111111111111111', 'correct_counts': {'raw': 0, 'orbit': 184}, 'shots': 4096}
원본 회로도와 Orbit으로 보정된 회로도를 시각적으로 비교해 보십시오.
import matplotlib.pyplot as plt
labels = list(correct_counts)
values = list(correct_counts.values())
fig, ax = plt.subplots(figsize=(7, 4))
bars = ax.bar(labels, values, width=0.55)
ax.bar_label(bars, labels=[f"{value:g}" for value in values], padding=3)
ax.set_xlabel("Circuit execution mode")
ax.set_ylabel("Correct hidden-bitstring count")
ax.set_title(f"{circuit_width}-qubit Bernstein-Vazirani on {backend_name}")
ax.set_ylim(0, max(1, 1.15 * max(values)))
ax.grid(axis="y", alpha=0.25)
fig.tight_layout()
plt.show()Output:
지원 받기
Quantum Elements 고객 지원팀에 문의하세요: [email protected]
다음과 같은 정보가 포함되어야 합니다.
- Qiskit 함수 작업 ID (
qiskit-ibm-catalog),job.job_id - 백엔드 이름
- 'Orbit'은
pub_options'raw' 및 'Orbit' 모드에서 사용됩니다 - 문제에 대한 자세한 설명
- 관련 오류 메시지나 코드
- 이 문제를 재현하는 단계
다음 단계
참조
- 양자 오류 검출과 결합된 논리 레벨 오류 억제, 《Nature Communications 》(2026)
- 동적 회로를 이용한 양자 푸리에 변환, Physical Review Letters (2024)
- 동적 회로를 이용한 효율적인 장거리 얽힘, PRX Quantum (2024)
- IBM 의 헤론(Heron) 모델에 중량 육각형 연결 방식을 적용한 표면 코드 확장성 실험, arXiv:2510.18847
- 정사각형 격자 연결 구조를 가진 ‘ IBM ’ Nighthawk에 대한 Surface Code 실험, arXiv:2606.11496
- VQE 벤치마크 참고 문헌, Nature Physics (2024)