다음을 통해 공유


IonQ 공급자

Important

IonQ는 2024년 9월 1일부터 Harmony-2 양자 컴퓨터를 사용 중지했습니다.

Azure Quantum 작업 영역을 만들 때 각 양자 하드웨어 공급자에 대해 USD500 무료 Azure Quantum 크레딧을 자동으로 받습니다. Azure Quantum 크레딧을 사용하여 첫 번째 양자 프로그램을 실제 양자 하드웨어에 제출할 수 있습니다.

IonQ의 양자 컴퓨터는 레이저로 Ytterbium 이온의 하이퍼파인 에너지 상태를 조작하여 계산을 수행합니다. 원자는 자연의 큐비트입니다. 모든 큐비트는 프로그램 내와 프로그램 간에 동일합니다. 임의의 큐비트 쌍에서 논리 연산을 수행할 수도 있으므로 물리적 연결에 방해받지 않고 복잡한 양자 프로그램을 사용할 수 있습니다. 자세한 정보가 필요하십니까? IonQ의 트랩된 이온 양자 컴퓨터 기술 개요를 읽어보세요.

  • 게시자: IonQ
  • 공급자 ID: ionq

이 공급자에서 사용할 수 있는 항목은 다음과 같습니다 targets .

Target 이름 Target 아이디 큐비트 수 설명
양자 시뮬레이터 ionq.simulator 29 큐비트 IonQ의 클라우드 기반 이상화 시뮬레이터. 무료입니다.
IonQ Aria 1 ionq.qpu.aria-1 25큐비트 IonQ의 Aria 트랩 이온 양자 컴퓨터.
IonQ Aria 2 ionq.qpu.aria-2 25큐비트 IonQ의 Aria 트랩 이온 양자 컴퓨터.
IonQ Forte ionq.qpu.forte 32큐비트 IonQ의 Forte trapped-ion 양자 컴퓨터. 프라이빗 미리 보기에서만 사용할 수 있습니다.

IonQ는 targets 프로필에 QIR Base 해당합니다. 이 프로필 및 해당 target 제한 사항에 대한 자세한 내용은 Azure Quantum의 프로필 형식 이해를 target 참조하세요.

양자 시뮬레이터

최대 29개의 큐비트를 지원하는 GPU 가속 이상화된 시뮬레이터는 IonQ와 동일한 게이트 집합을 사용하여 양자 하드웨어를 제공합니다. 실제 양자 컴퓨터에서 실행하기 전에 작업을 실행하기에 좋은 장소입니다.

  • 작업 유형: Simulation
  • 데이터 형식: ionq.circuit.v1
  • Target 아이디: ionq.simulator
  • Target 실행 프로필: QIR Base

IonQ Aria 양자 컴퓨터

IonQ Aria는 25큐비트 동적으로 재구성 가능한 시스템을 갖춘 IonQ의 트랩 이온 양자 컴퓨터의 주력 컴퓨터입니다. 자세한 내용은 IonQ Aria(ionq.com)를 참조하세요.

Important

Debiasing 은 기본적으로 Aria 시스템에서 사용하도록 설정되며 제출된 작업에는 debiasing 기반 가격 책정이 적용됩니다. Debiasing 및 서비스를 사용하지 않도록 설정/활성화하는 방법에 대한 자세한 내용은 오류 완화를 참조 하세요.

  • 작업 유형: Quantum Program
  • 데이터 형식: ionq.circuit.v1
  • Target ID: ionq.qpu.aria-1, ionq.qpu.aria-2
  • Target 실행 프로필: QIR Base
매개 변수 이름 Type 필수 설명
shots int 아니요 실험 샷의 수입니다.

시스템 타이밍

측정값 평균 기간
T1 10-100 s
T2 1초
단일 큐비트 게이트 135 μs
2큐비트 게이트 600 μs

시스템 충실도

연산 평균 충실도
단일 큐비트 게이트 99.95%(스팸 수정)
2큐비트 게이트 99.6%(스팸 수정 안 됨)
SPAM* 99.61%

* SPAM(상태 준비 및 측정): 이 측정에 따라 양자 컴퓨터가 큐비트를 초기 상태로 설정한 다음, 마지막에 결과를 측정할 수 있는 정확도가 결정됩니다.

IonQ Aria는 Azure Quantum 크레딧 플랜 및 별도의 청구 플랜을 통해 사용할 수 있습니다. 자세한 내용은 Azure Quantum 가격 책정을 참조하세요.

IonQ Forte 양자 컴퓨터

IonQ Forte는 IonQ에서 가장 성능이 뛰어나고 상업적으로 사용 가능한 트랩 이온 양자 컴퓨터입니다. 32큐비트 소프트웨어 구성 가능 시스템을 사용하는 IonQ Forte는 Azure Quantum의 프라이빗 미리 보기에서 사용할 수 있습니다. 자세한 내용은 IonQ Forte(ionq.com)를 참조하세요.

Important

Debiasing 은 기본적으로 Forte 시스템에서 사용하도록 설정되며 제출된 작업에는 debiasing 기반 가격 책정이 적용됩니다. Debiasing 및 서비스를 사용하지 않도록 설정/활성화하는 방법에 대한 자세한 내용은 오류 완화를 참조 하세요.

  • 작업 유형: Quantum Program
  • 데이터 형식: ionq.circuit.v1
  • Target 아이디: ionq.qpu.forte
  • Target 실행 프로필: QIR Base
매개 변수 이름 Type 필수 설명
shots int 아니요 실험 샷의 수입니다.

입력 형식

Q#에서 양자 측정의 출력은 값만 사용할 수 있는 형식 Result의 값 Zero 입니다 One. Q# 연산을 정의할 때 반환 형식이 s 컬렉션 Result인 경우에만 IonQ 하드웨어로 전송할 수 있습니다. 즉, 작업의 출력이 양자 측정의 결과인 경우입니다. 그 이유는 IonQ가 반환된 값에서 히스토그램을 작성하므로 반환 형식을 제한하여 이 히스토그램 만들기를 간소화하기 Result 때문입니다.

IonQ는 targets .에 QIR Base profile해당합니다. 이 프로필은 큐비트 측정 결과를 사용하여 프로그램 흐름을 제어해야 하는 양자 연산을 실행할 수 없습니다.

출력 형식

IonQ 시뮬레이터에 양자 프로그램을 제출하면 측정값에서 만든 히스토그램을 반환합니다. IonQ 시뮬레이터는 양자 프로그램에서 만든 확률 분포를 샘플링하지 않고 대신 샷 수로 배율 조정된 분포를 반환합니다. 이것은 단일 샷 회로를 제출할 때 가장 명백합니다. 히스토그램에 한 번의 샷에 대한 여러 측정 결과가 표시됩니다. 이 동작은 IonQ 시뮬레이터에 내재된 반면 IonQ QPU는 실제로 프로그램을 실행하고 결과를 집계합니다.

추가 기능

IonQ 하드웨어에서 지원하는 추가 기능이 여기에 나열되어 있습니다.

기능 설명
오류 완화 debiasing을 사용하여 노이즈를 최소화하고 IonQ 하드웨어에서 알고리즘 성능 최대화
네이티브 게이트 지원 IonQ 하드웨어 네이티브 게이트에서 직접 회로 정의 및 실행
노이즈 모델 시뮬레이션 다른 IonQ 하드웨어에서 회로를 실행할 때 발생하는 노이즈 프로필을 시뮬레이션합니다.

사용자는 Azure Quantum Q# 및 Qiskit 공급자의 통과 매개 변수를 통해 이러한 추가 기능을 활용할 수 있습니다.

오류 완화

IonQ는 IonQ 하드웨어에 작업을 제출할 때 양자 오류 완화를 사용하도록 설정하는 옵션을 제공합니다. 오류 완화는 회로의 여러 대칭 변형을 실행하고 실행한 다음 하드웨어 오류 및 큐비트 디코딩의 영향을 완화하면서 결과를 집계하는 컴파일러 수준 프로세스입니다. 양자 오류 수정 기술과 달리 오류 완화에는 큰 게이트 및 큐비트 오버헤드가 필요하지 않습니다.

Debiasing은 이상적인 노이즈리스 머신에서 동일해야 하는 지정된 회로의 약간의 변형을 만들고, 다른 큐비트 할당, 게이트 분해 및 펄스 솔루션과 같은 기술을 사용한 다음, 이러한 변형을 실행하는 프로세스입니다.

선명도 및 평균은 변형 결과를 집계하기 위한 옵션입니다. 평균은 모든 변형 결과를 동일하게 기반으로 하는 반면, 선명도는 잘못된 결과를 필터링하며 특정 유형의 알고리즘에 대해 더 안정적일 수 있습니다.

자세한 내용은 Debiasing 및 Sharpening을 참조 하세요. 오류 완화 가격 책정은 IonQ 가격 책정을 참조 하세요.

오류 완화 사용

참고 항목

Debiasing 은 Aria 및 Forte 시스템에서 기본적으로 사용하도록 설정됩니다.

Azure Quantum에서 Q# 또는 Qiskit을 사용하여 제출된 작업에 대해 오류 완화를 사용하거나 사용하지 않도록 설정할 수 있습니다.

오류 완화를 사용하도록 설정하려면 컴퓨터에 대한 선택적 매개 변수를 target 추가합니다.


option_params = {
    "error-mitigation": {
        "debias": True
    }
}

오류 완화를 사용하지 않도록 설정하려면 매개 변수를 다음으로 False설정합니다.


option_params = {
    "error-mitigation": {
        "debias": False
    }
}

참고 항목

또한 IonQ의 노이즈 모델 시뮬레이션을 사용하는 경우 다음과 같은 매개 변수를 여기에 포함할 수 있습니다.

option_params = {
    "error-mitigation": {
        "debias": False
    },
    "noise": {
    "model": "aria-1",
    "seed": 100
    }
}

자세한 내용은 노이즈 모델 시뮬레이션을 참조하세요.

오류 완화를 사용하여 Azure Quantum에서 작업 실행

이 예제에서는 간단한 난수 생성기를 사용합니다.

먼저 필요한 패키지를 가져오고 기본 프로필을 시작합니다.

import qsharp
import azure.quantum
qsharp.init(target_profile=qsharp.TargetProfile.Base)

다음으로 함수를 정의합니다.

%%qsharp
import Std.Measurement.*;
import Std.Arrays.*;
import Std.Convert.*;

operation GenerateRandomBit() : Result {
    use target = Qubit();

    // Apply an H-gate and measure.
    H(target);
    return M(target);
}

and compile the operation:

```python
MyProgram = qsharp.compile("GenerateRandomBit()")

Azure Quantum에 연결하고, 머신을 target 선택하고, 에뮬레이터에 대한 노이즈 매개 변수를 구성합니다.

MyWorkspace = azure.quantum.Workspace(
    resource_id = "",
    location = ""
)

MyTarget = MyWorkspace.get_targets("ionq.qpu.aria-1")

error-mitigation 구성 지정


option_params = {
    "error-mitigation": {
        "debias": True
    }
}

작업을 제출할 때 오류 완화 구성을 전달합니다.

job = MyTarget.submit(MyProgram, "Experiment with error mitigation", shots = 10, input_params = option_params)
job.get_results()

Qiskit에서는 작업을 제출하기 전에 선택적 매개 변수를 target 컴퓨터 구성에 전달합니다.

circuit.name = "Single qubit random - Debias: True"
backend.options.update_options(**option_params)
job = backend.run(circuit, shots=500)

참고 항목

매개 변수를 error-mitigation 전달하지 않으면 컴퓨터는 target Aria 및 Forte 시스템에 대해 사용하도록 설정된 기본 설정을 사용합니다.

네이티브 게이트 지원 및 사용량

기본적으로 IonQ를 사용하면 qis라는 추상 양자 게이트 집합을 사용하여 양자 회로를 지정할 수 있습니다. 이를 통해 하드웨어 최적화에 대한 걱정 없이 알고리즘을 작성할 때 유연성과 이식성을 허용합니다.

그러나 일부 고급 사용 사례에서는 하드웨어에 더 가깝고 최적화를 우회하기 위해 네이티브 게이트에서 직접 회로를 정의할 수 있습니다. 네이티브 게이트 집합은 양자 프로세서에서 실제로 실행되는 양자 게이트 집합이며 실행의 일부로 회로를 매핑합니다.

자세한 내용은 네이티브 게이트 시작하기((ionq.com))를 참조하세요.

Qiskit 작업을 Azure Quantum에 제출할 때 네이티브 게이트 집합을 사용하려면 아래 예와 같이 백 엔드를 초기화할 때 gateset 매개 변수를 지정합니다.

# Here 'provider' is an instance of AzureQuantumProvider
backend = provider.get_backend("ionq.qpu.aria-1", gateset="native")
매개 변수 이름 Type 필수 설명
gateset string 아니요 회로를 정의하는 데 사용할 게이트 집합을 지정합니다. qis 값은 추상 게이트(기본 동작)에 해당하고 nativeIonQ 하드웨어 네이티브 게이트에 해당합니다.

Qiskit 작업에 대한 자세한 내용은 Qiskit을 사용하여 회로 제출을 참조하세요.

노이즈 모델 시뮬레이션

오늘날 최고의 양자 하드웨어에서도 내재된 노이즈가 있으며 시스템의 노이즈 target 특성을 알면 알고리즘을 구체화하고 하드웨어에서 회로를 실행할 때 보다 현실적인 결과 예측을 얻을 수 있습니다. IonQ는 하드웨어와 관련된 "노이즈 지문"을 사용하여 회로에 노이즈를 도입하는 노이즈 모델 시뮬레이션 을 target 제공합니다. 자세한 내용은 하드웨어 노이즈 모델 시뮬레이션 시작을 참조하세요.

노이즈 모델 매개 변수

매개 변수 이름 설명
noise model, seed 노이즈 모델 시뮬레이션 사용
model ideal, aria-1 하드웨어의 노이즈 모델을 target 지정합니다.
  • ideal - 회로에 노이즈가 발생하지 않습니다. 이는 노이즈 시뮬레이션을 사용하지 않는 것과 동일합니다.
  • aria-1 - IonQ Aria 양자 컴퓨터에 노이즈 모델을 사용합니다.
seed 1에서 $2^{31}$ 사이의 정수(2,147,483,648) 의사 임의 노이즈 및 샷 샘플링에 대한 시드 값을 지정하여 재현 가능한 시끄러운 결과를 만들 수 있습니다. 매개 변수를 지정하지 않으면 임 seed 의 값이 생성됩니다.

샷 인식

노이즈 모델 시뮬레이션은 샷 인식입니다. 즉, 제공된 샷 수에 따라 출력 상태의 측정값을 샘플링합니다. Azure Quantum shots 에서 매개 변수는 작업과 함께 제출되며 노이즈 모델에 필요합니다 aria-1 . 값을 지정하지 shot 않으면 기본값 1000 이 사용됩니다. 노이 ideal 즈 모델을 사용하는 shots 경우 매개 변수는 무시됩니다.

큐비트 용량

노이 ideal 즈 모델을 사용하면 IonQ 양자 시뮬레이터를 사용하여 최대 29개의 큐비트를 시뮬레이션할 수 있지만 하드웨어 특정 노이즈 모델은 하드웨어의 target 실제 큐비트 용량(노이즈 모델의 경우 25큐비트)으로 제한됩니다 aria-1 .

노이즈 모델 시뮬레이션 사용

Azure Quantum에서 Q# 또는 Qiskit을 사용하여 제출된 작업에 대해 노이즈 모델 시뮬레이션을 사용하거나 사용하지 않도록 설정할 수 있습니다.

노이즈 모델 시뮬레이션을 사용하도록 설정하려면 머신에 대한 선택적 매개 변수를 target 추가합니다. 예를 들면 다음과 같습니다.


option_params = {
    "noise": {
        "model": "aria-1",   # targets the Aria quantum computer
        "seed" : 1000         # If seed isn't specified, a random value is used  
    }
}

참고 항목

또한 IonQ의 오류 완화를 사용하는 경우 다음과 같은 매개 변수를 여기에 포함할 수 있습니다.

option_params = {
    "error-mitigation": {
        "debias": False
    },
    "noise": {
    "model": "aria-1",
    "seed": 1000
    }
}

자세한 내용은 오류 완화를 참조 하세요.

노이즈 모델 시뮬레이션을 사용하여 작업 실행

오류 완화에 이전에 표시된 것과 동일한 예제 프로그램을 사용하고 ; 에서 노이즈 모델 구성을 추가하거나 바꿀 수 있습니다option_params.

option_params = {
    "error-mitigation": {
        "debias": True
    },
    "noise": {
    "model": "aria",
    "seed": 1000
    }
}

그런 다음, 작업을 제출할 때 선택적 매개 변수를 전달합니다.

job = MyTarget.submit(MyProgram, "Experiment with noise model simulation", shots = 10, input_params = option_params)
job.get_results()

Qiskit에서는 작업을 제출하기 전에 선택적 매개 변수를 target 컴퓨터 구성에 전달합니다.

circuit.name = "Single qubit random - Debias: True"
backend.options.update_options(**option_params)
job = backend.run(circuit, shots=500)

가격 책정

IonQ 청구 플랜을 보려면 Azure Quantum 가격 책정을 방문하세요.

한도 및 할당량

IonQ 할당량은 QPU 사용량 단위인 QGS(큐비트 게이트 샷)를 기반으로 추적됩니다. 리소스 사용량은 계정에 크레딧으로 적립됩니다.

모든 양자 프로그램은 하나 이상의 큐비트의 $N$ 양자 논리 게이트로 구성되며 특정 수의 샷에 대해 실행됩니다. 게이트 샷 수는 다음 수식으로 계산됩니다.

$$ QGS = N · C $$

여기서

  • $N$는 제출된 1큐비트 또는 2큐비트 게이트의 수입니다.
  • $C$는 요청된 실행 샷의 수입니다.

할당량은 플랜 선택을 기반으로 하며 지원 티켓으로 늘릴 수 있습니다. 현재 한도 및 할당량을 보려면 크레딧 및 할당량 블레이드로 이동하여 Azure Portal에서 작업 영역의 할당량 탭을 선택합니다. 자세한 내용은 Azure Quantum 할당량을 참조하세요.

참고 항목

청구 플랜이 아닌 Azure Quantum 크레딧 플랜을 사용하는 경우 할당량 정보는 할당된 크레딧에 매핑됩니다. 이 경우 할당량에는 받은 총 크레딧 수가 나열됩니다.

IonQ 상태

IonQ QPU 작업 처리 지연에 대한 자세한 내용은 IonQ 상태 페이지를 참조 하세요.

IonQ 모범 사례 및 연결 그래프

IonQ QPU에 대한 권장 모범 사례를 보려면 IonQ 모범 사례(ionq.com)를 참조하세요.