IonQ 提供者
重要
IonQ 已淘汰其 Harmony-2 量子計算機,自 2024 年 9 月 1 日起生效。
提示
當您建立 Azure Quantum 工作區時,會自動為每個量子硬體提供者取得 500 美元的免費 Azure Quantum 點數 。 您可以使用 Azure Quantum 點數,將第一個量子程式提交到真正的量子硬體。
IonQ 的量子計算機會利用鐳射操作 Ytterbium 離子的超細能量狀態來執行計算。 Atom 是自然的量子位, 每個量子位在程式內和之間都相同。 邏輯作業也可以在任何任意組量子位上執行,讓複雜的量子程式不受實體連線的影響。 想要深入了解? 閱讀 IonQ 的 被困離子量子計算機技術概觀。
- 發行者: IonQ
- 提供者識別碼:
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 捕獲離子量子電腦。 僅適用於私人預覽版。 |
IonQ 的 targets 對應至 QIR Base 配置檔。 如需此 target 配置檔及其限制的詳細資訊,請參閱 瞭解 target Azure Quantum 中的配置檔類型。
量子模擬器
支援最多 29 個量子位的 GPU 加速理想化模擬器,在其量子硬體上使用相同的閘道 IonQ 提供,這是在實際量子電腦上執行作業之前預先測試作業的絕佳位置。
- 工作類型:
Simulation
- 資料格式:
ionq.circuit.v1
- Target 識別碼:
ionq.simulator
- Target 執行設定檔: QIR Base
IonQ Aria 量子計算機
IonQ Aria 是 IonQ 的捕獲離子量子計算機的旗艦,具有 25 量子位動態重新設定的系統。 如需詳細資訊,請參閱 IonQ Aria (ionq.com)。
重要
根據預設,Aria 系統上會啟用不偏 執,而提交的作業受限於以偏執為基礎的定價。 如需有關偏執以及如何停用/啟用服務的詳細資訊,請參閱 錯誤緩和措施。
- 工作類型:
Quantum Program
- 資料格式:
ionq.circuit.v1
- Target 標識碼:
ionq.qpu.aria-1
、ionq.qpu.aria-2
- Target 執行設定檔: QIR Base
參數名稱 | 類型 | 必要 | 描述 |
---|---|---|---|
shots |
int | No | 實驗性拍攝次數。 |
系統計時
量值 | 平均時間持續時間 |
---|---|
T1 | 10-100 秒 |
T2 | 1 秒 |
單一量子位網關 | 135 個 135 個 |
雙量子位網關 | 600 個 600 個 |
系統逼真度
作業 | 平均逼真度 |
---|---|
單一量子位網關 | 99.95% (已更正垃圾郵件) |
雙量子位網關 | 99.6% (未更正垃圾郵件) |
垃圾郵件* | 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
- Target 識別碼:
ionq.qpu.forte
- Target 執行設定檔: QIR Base
參數名稱 | 類型 | 必要 | 描述 |
---|---|---|---|
shots |
int | No | 實驗性拍攝次數。 |
輸入格式
在 Q# 中,量子測量的輸出是 類型的 Result
值,它只能接受 值 Zero
和 One
。 當您定義 Q# 作業時,只有在傳回類型是 s 的集合 Result
時,才能將它提交至 IonQ 硬體,也就是說,如果作業的輸出是量子測量的結果。 這是因為 IonQ 會從傳回的值建置直方圖,因此它會限制傳回類型以 Result
簡化建立此直方圖。
IonQ 的 targets 對應至 QIR Base profile。 此配置檔無法執行需要使用量子位測量結果來控制程式流程的量子作業。
輸出格式
當您將量子程式提交至 IonQ 模擬器時,它會傳回測量所建立的直方圖。 IonQ 模擬器不會取樣量子程式所建立的機率分佈,而是傳回縮放至拍攝次數的分佈。 當您提交單次拍攝線路時,這是最明顯的。 您會在直方圖中看到多個度量結果,以取得一次拍攝。 此行為固有於 IonQ 模擬器,而 IonQ QPU 實際上會執行程式並匯總結果。
其他功能
IonQ 硬體支援的其他功能列在這裡。
功能 | 描述 |
---|---|
錯誤風險降低 | 使用偏執將雜訊降到最低,並將 IonQ 硬體上的演算法效能最大化 |
原生閘道支援 | 直接在 IonQ 硬體原生閘道上定義和執行線路 |
雜訊模型模擬 | 模擬線路在不同的 IonQ 硬體上執行雜訊配置檔時會遇到的雜訊配置檔。 |
用戶可以透過 Azure Quantum Q# 和 Qiskit 提供者中的傳遞參數,利用這些額外的功能。
錯誤風險降低
IonQ 提供將作業提交至 IonQ 硬體時啟用 量子誤差緩和 的選項。 錯誤風險降低是編譯程式層級的程式,它會執行線路的多個對稱變化,然後匯總結果,同時降低硬體錯誤和量子位譯碼的影響。 不同於 量子誤差修正 技術,錯誤降低不需要大型閘道和量子位額外負荷。
偏執是建立指定線路的輕微變化的程式,在理想的無雜訊計算機上應該相同,使用不同的量子位指派、閘道分解和脈衝解決方案等技術,然後執行這些變化。
銳化 和 平均 是匯總變化結果的選項。 平均值同樣以所有變化結果為基礎,而 Sharpening 會篩選掉錯誤的結果,而且針對特定類型的演算法更可靠。
如需詳細資訊,請參閱 Debiasing 和 Sharpening。 如需錯誤風險降低定價,請參閱 IonQ 定價。
啟用錯誤風險降低
注意
根據預設,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")
參數名稱 | 類型 | 必要 | 描述 |
---|---|---|---|
gateset |
字串 | No | 指定將用來定義線路的閘道集合。 的值 qis 會對應至抽象網關(預設行為)和 native IonQ 硬體原生閘道。 |
如需 Qiskit 作業的詳細資訊,請參閱 使用 Qiskit 提交線路。
雜訊模型模擬
即使是現今最好的量子硬體也有固有的雜訊,而且知道系統的 target 雜訊特性,可協助您精簡演算法,並在硬體上執行線路時取得更真實的結果預測。 IonQ 提供 雜訊模型模擬 ,使用硬體特有的 target 「雜訊指紋」,將雜訊引入電路。 如需詳細資訊,請參閱 開始使用硬體雜訊模型模擬。
雜訊模型參數
參數名稱 | 值 | 描述 |
---|---|---|
noise |
model , seed |
啟用雜訊模型模擬 |
model |
ideal , aria-1 |
指定硬體的 target 雜訊模型。
|
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$ 是提交的一或兩個量子位網關數目
- $C$ 是所要求的執行快照數目
配額是以方案選取為基礎,且可透過支援票證來增加。 若要查看目前的限制和配額,請移至 [點數和配額] 刀鋒視窗,然後選取工作區 Azure 入口網站 的 [配額] 索引卷標。 如需詳細資訊,請參閱 Azure Quantum 配額。
注意
如果您使用 Azure Quantum 點數 方案,而不是計費方案,配額資訊會對應至您配置的點數。 在此情況下,配額會列出您收到的點數總數。
IonQ 狀態
如需 IonQ QPU 作業處理延遲的相關信息,請參閱 IonQ 狀態頁面。
IonQ 最佳做法和連線圖表
若要查看 IonQ QPU 的建議最佳做法,請參閱 IonQ 最佳做法 (ionq.com)。