IonQ プロバイダー
ヒント
初回ユーザーは、参加している各量子ハードウェア プロバイダーで使用するために、無料の $500 (USD)Azure Quantum クレジットを自動的に取得します。 クレジットをすべて消費し、不足した場合は、Azure Quantum クレジット プログラムにお申し込みいただけます。
IonQ の量子コンピューターは、イッテルビウム イオンの超微細エネルギー状態をレーザーで操作することによって計算を実行します。 原子は、自然の量子ビットです。すべての量子ビットは、プログラム内でもプログラム間でも同一です。 論理操作は、任意の量子ビットのペアに対して実行することもでき、これにより、物理的な接続に妨げられない複雑な量子プログラムが可能になります。 もっと詳しい説明が必要でしょうか。 IonQ のトラップ型イオン量子コンピューター テクノロジの概要を参照してください。
- 発行元: IonQ
- プロバイダー ID:
ionq
targetsこのプロバイダーから次の情報を入手できます。
ターゲット名 | ターゲット ID | 量子ビット数 | 説明 |
---|---|---|---|
量子シミュレーター | ionq.simulator | 29 量子ビット | IonQ のクラウドベースの理想的なシミュレーター。 無料。 |
IonQ Harmony | ionq.qpu | 11 量子ビット | 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 トラップイオン量子コンピューター。 プライベート プレビューでのみ使用できます。 |
IonQ は targets プロファイルに No Control Flow 対応します。 このtargetプロファイルとその制限事項の詳細については、「Azure Quantum のプロファイルの種類について」を参照してくださいtarget。
量子シミュレーター
最大 29 量子ビットをサポートする GPU で高速化された理想的なシミュレーター。IonQ がその量子ハードウェアで提供する同じゲート セットを使用します。このシミュレーターは、実際の量子コンピューターでジョブを実行する前に、それらのジョブを試す優れた場所です。
- ジョブの種類:
Simulation
- データ形式:
ionq.circuit.v1
- ターゲット ID:
ionq.simulator
- ターゲット実行プロファイル: No Control Flow
IonQ Harmony 量子コンピューター
IonQ Harmony はトラップ型イオン量子コンピューターであり、ソフトウェアで動的に再構成して最大 11 量子ビットを使用できます。 すべての量子ビットが完全に接続され、したがって、任意のペア間で 2 量子ビット ゲートを実行できます。
- ジョブの種類:
Quantum Program
- データ形式:
ionq.circuit.v1
- ターゲット ID:
ionq.qpu
- ターゲット実行プロファイル: No Control Flow
パラメーター名 | Type | 必須 | 説明 |
---|---|---|---|
shots |
INT | いいえ | 実験用ショットの数。 既定値は 500 です。 |
システム タイミング
Measure | 平均期間 (µs) |
---|---|
T1 | >10^7 |
T2 | 200,000 |
1 量子ビット ゲート | 10 |
2 量子ビット ゲート | 210 |
読み出し | 100 |
レジスタ リセット | 25 |
コヒーレンス時間/ゲート期間 | 1667 |
システムの忠実度
Operation | 平均忠実度 |
---|---|
1 量子ビット ゲート | 99.35% (SPAM 修正済み) |
2 量子ビット ゲート | 96.02% (SPAM 未修正) |
SPAM* | 99.3 - 99.8% |
幾何平均操作 | 98.34% |
* 状態の準備と測定 (SPAM): この測定により、量子コンピューターがどのくらい正確に量子ビットを初期状態に設定し、最終的に結果を測定できるかが決まります。
IonQ Aria 量子コンピューター
IonQ Aria は、IonQ のトラップされたイオン量子コンピューターの旗艦であり、25 量子ビットの動的に再構成可能なシステムを備えている。 詳細については、「 IonQ Aria (ionq.com)」を参照してください。
重要
既定では、Aria システムでデバイアスが有効になっており、送信されたジョブにはデバイアス ベースの価格が適用されます。 デバイアスの詳細と、サービスを無効または有効にする方法については、「 エラーの軽減策」を参照してください。
- ジョブの種類:
Quantum Program
- データ形式:
ionq.circuit.v1
- ターゲット ID:
ionq.qpu.aria-1
、ionq.qpu.aria-2
- ターゲット実行プロファイル: No Control Flow
パラメーター名 | Type | 必須 | 説明 |
---|---|---|---|
shots |
INT | いいえ | 実験用ショットの数。 |
システム タイミング
Measure | 平均時間 |
---|---|
T1 | 10 から 100 秒 |
T2 | 1 秒 |
1 量子ビット ゲート | 135 μs |
2 量子ビット ゲート | 600 μs |
システムの忠実度
Operation | 平均忠実度 |
---|---|
1 量子ビット ゲート | 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)」を参照してください。
重要
既定では、Forte システムでデバイアスが有効になっており、送信されたジョブにはデバイアス ベースの価格が適用されます。 デバイアスの詳細と、サービスを無効または有効にする方法については、「 エラーの軽減策」を参照してください。
- ジョブの種類:
Quantum Program
- データ形式:
ionq.circuit.v1
- ターゲット ID:
ionq.qpu.forte
- ターゲット実行プロファイル: No Control Flow
パラメーター名 | Type | 必須 | 説明 |
---|---|---|---|
shots |
INT | いいえ | 実験用ショットの数。 |
入力形式
Q# では、量子測定の出力は 型 Result
の値であり、値 Zero
と One
のみを受け取ることができます。 Q# 操作を定義する場合、戻り値の型が のコレクションである場合、つまり操作の出力が量子測定の Result
結果である場合にのみ、IonQ ハードウェアに送信できます。 これは、IonQ が戻り値からヒストグラムを作成するため、戻り値の型を に Result
制限して、このヒストグラムの作成を簡略化するためです。
IonQ は targets に対応します No Control Flow profile。 このプロファイルでは、量子ビット測定の結果を使用してプログラム フローを制御する必要がある量子操作を実行することはできません。
注意
現在、結果を使用してプログラム フローを制御しない場合でも、 で測定された量子ビットに No Control Flowtargets対する操作を適用する量子プログラムを送信することはできません。 つまり、 No Control Flowtargets 中間回路の測定を許可しないでください。
たとえば、 で次のコードをNo Control Flowtarget実行することはできません。
operation MeasureQubit(q : Qubit) : Result {
return M(q);
}
operation SampleMeasuredQubit(q : Qubit) : Result {
H(MeasureQubit(q));
return M(MeasureQubit(q));
}
出力形式
IonQ シミュレーターに量子プログラムを送信すると、測定値によって作成されたヒストグラムが返されます。 IonQ シミュレーターは、量子プログラムによって作成された確率分布をサンプリングするのではなく、ショット数にスケーリングされた分布を返します。 これは、単一のショット回路を送信する場合に最も明らかです。 1 つのショットのヒストグラムに複数の測定結果が表示されます。 この動作は IonQ シミュレーターに固有ですが、IonQ QPU は実際にプログラムを実行して結果を集計します。
その他の機能
IonQ ハードウェアでサポートされるその他の機能については、こちらを参照してください。
機能 | 説明 |
---|---|
エラー軽減策 | デバイアスを使用してノイズを最小限に抑え、IonQ ハードウェアのアルゴリズム パフォーマンスを最大化する |
ネイティブ ゲートのサポート | IonQ ハードウェア ネイティブ ゲートで回線を直接定義して実行する |
ノイズ モデルのシミュレーション | 異なる IonQ ハードウェアで回線を実行するときに発生するノイズ プロファイルをシミュレートします。 |
ユーザーは、Azure Quantum Q# および Qiskit プロバイダーのパススルー パラメーターを使用して、これらの追加機能を利用できます。
エラー軽減策
IonQ には、IonQ ハードウェアにジョブを送信するときに 量子エラー軽減 を有効にするオプションが用意されています。 エラー軽減は、回線の複数の対称バリエーションを実行して実行し、ハードウェア エラーと量子ビットのデコヒーレンスの影響を軽減しながら結果を集計するコンパイラ レベルのプロセスです。 量子エラー修正手法とは異なり、エラー軽減には大きなゲートと量子ビットのオーバーヘッドは必要ありません。
デバイアス とは、理想的なノイズレスマシン上で同じである 必要 がある特定の回路のわずかなバリエーションを作成し、異なる量子ビットの割り当て、ゲート分解、パルス解などの手法を使用して、それらのバリエーションを実行するプロセスです。
シャープニング と 平均化 は、バリエーションの結果を集計するためのオプションです。 平均化はすべてのバリエーションの結果に等しく基づきますが、シャープニングでは誤った結果が除外され、特定の種類のアルゴリズムでは信頼性が高くなります。
詳細については、「 Debiasing and Sharpening」を参照してください。 エラー軽減の価格については、「 IonQ の価格」を参照してください。
エラー軽減の有効化
注意
デバイアス は、Aria および Forte システムでは既定で有効になり、Harmony システムでは既定で無効になっています。
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": "harmony",
"seed": 100
}
}
詳細については、「 ノイズ モデルシミュレーション」を参照してください。
エラー軽減策を使用して Azure Quantum でジョブを実行する
この例では、単純な乱数ジェネレーターを使用します。
まず、必要なパッケージをインポートし、基本プロファイルを開始します。
import qsharp
import azure.quantum
qsharp.init(target_profile=qsharp.TargetProfile.Base)
次に、 関数を定義します。
%%qsharp
open Microsoft.Quantum.Measurement;
open Microsoft.Quantum.Arrays;
open Microsoft.Quantum.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")
構成を指定する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 システムでは 有効 、Harmony システムでは 無効 ) を使用します。
ネイティブ ゲートのサポートと使用
既定では、IonQ では qis
と呼ばれる量子ゲートの抽象セットを使用して量子回路を指定できます。これにより、ハードウェアの最適化を気にせずにアルゴリズムを記述することができ、柔軟性と移植性がもたらされます。
ただし、一部の高度な使用例では、ハードウェアに近い設定を行って最適化を回避するために、ネイティブ ゲートで回路を直接定義することが必要になることがあります。 ネイティブ ゲート セットは、量子プロセッサで物理的に実行される量子ゲートのセットであり、実行の一部として回路をそれらのゲートに対応付けます。
詳細については、ネイティブ ゲートの概要 (ionq.com) についてページを参照してください。
Qiskit ジョブを Azure Quantum に送信するときにネイティブ ゲート セットを使用するには、次の例のようにバックエンドを初期化するときに gateset
パラメーターを指定します。
# Here 'provider' is an instance of AzureQuantumProvider
backend = provider.get_backend("ionq.qpu", gateset="native")
パラメーター名 | Type | 必須 | 説明 |
---|---|---|---|
gateset |
string | いいえ | 回路の定義に使用するゲートのセットを指定します。 qis の値は、抽象ゲートに対応し (既定の動作)、native は IonQ ハードウェア ネイティブ ゲートに対応します。 |
Qiskit ジョブの詳細については、「 Qiskit を使用して回線を送信する」を参照してください。
ノイズ モデルのシミュレーション
今日の量子ハードウェアの中でも、固有のノイズがあり、システムのノイズ特性を target 知ることは、アルゴリズムを調整し、ハードウェア上で回路を実行するときに結果をより現実的に予測するのに役立ちます。 IonQ は、ハードウェア固有の "ノイズ フィンガープリント" を使用して回路にノイズを導入するノイズ モデル シミュレーション を target 提供します。 詳細については、「 ハードウェア ノイズ モデル シミュレーションの概要」を参照してください。
ノイズ モデルのパラメーター
パラメーター名 | 値 | 説明 |
---|---|---|
noise |
model , seed |
ノイズ モデルシミュレーションを有効にする |
model |
ideal , harmony , aria-1 |
ハードウェアのノイズ モデルを target 指定します。
|
seed |
1 ~ $2^{31}$ の整数 (2,147,483,648) | 擬似ランダム ノイズとショット サンプリングのシード値を指定して、再現可能なノイズの多い結果を作成できます。 パラメーターが指定されていない場合は、ランダム seed な値が作成されます。 |
ショットの認識
ノイズ モデル シミュレーションは ショット対応です。つまり、提供されたショットの数に基づいて、出力状態から測定値をサンプリングします。 Azure Quantum では、 shots
パラメーターがジョブと共に送信され、 と aria-1
ノイズ モデルにharmony
必要です。 値が指定されていない shot
場合は、 の 1000
既定値が使用されます。 ノイズ モデルを ideal
使用する shots
場合、パラメーターは無視されます。
量子ビット容量
ideal
ノイズ モデルでは IonQ 量子シミュレーターを使用して最大 29 量子ビットをシミュレートできますが、ハードウェア固有のノイズ モデルは、ハードウェアの実際のtarget量子ビット容量 (ノイズ モデルの場合は 11 量子ビットharmony
、ノイズ モデルの場合は 25 量子ビットaria-1
) に制限されます。
ノイズ モデル シミュレーションの有効化
Azure Quantum では、Q# または Qiskit を使用して送信されたジョブに対して、ノイズ モデル シミュレーションを有効または無効にすることができます。
ノイズ モデル シミュレーションを有効にするには、次のように、マシンの省略可能なパラメーターを target 追加します。
option_params = {
"noise": {
"model": "harmony", # targets the Harmony quantum computer
"seed" : 1000 # If seed isn't specified, a random value is used
}
}
注意
IonQ のエラー軽減策も使用している場合は、これらのパラメーターをここに含めることができます。次に例を示します。
option_params = {
"error-mitigation": {
"debias": False
},
"noise": {
"model": "harmony",
"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 使用量ユニット (qubit-gate-shot (QGS)) に基づいて追跡されます。 リソース使用量は、アカウントに対してクレジットが適用されます。
すべての量子プログラムは、1 つ以上の量子ビットの $N$ 個の量子論理ゲートで構成され、特定の数のショットに対して実行されます。 ゲート ショットの数は、次の式で計算されます。
$$ QGS = N · C $$
各値の説明:
- $N$ は、送信された 1 つまたは 2 つの量子ビット ゲートの数です
- $C$ は、要求された実行ショットの数です
クォータはプランの選択に基づいており、ポート チケットを使用して増やすことができます。 現在の制限とクォータを確認するには、Azure portal のワークスペースで [クレジットとクォータ] ブレードに移動し、[クォータ] タブを選択します。 詳細については、「Azure Quantum quotas」(Azure Quantum クォータ) を参照してください。
Note
課金プランではなく Azure Quantum クレジット プランを使用している場合、クォータ情報は割り当てられたクレジットに対応付けられています。 その場合、クォータでは受け取ったクレジットの合計数が一覧表示されます。
IonQ の状態
IonQ QPU ジョブ処理の遅延については、「 IonQ の状態」ページを参照してください。
IonQ のベスト プラクティスと接続グラフ
IonQ QPU の推奨されるベスト プラクティスについては、IonQ のベスト プラクティス (ionq.com) に関するページを参照してください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示