你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
IonQ 提供程序
重要
IonQ 已经停用了 2024 年 9 月 1 日生效的 Harmony-2 量子计算机。
提示
创建 Azure Quantum 工作区时,会自动为每个量子硬件提供商获取 500 美元的免费 Azure Quantum 信用额度 。 可以使用 Azure Quantum 信用将第一个量子程序提交到真正的量子硬件。
IonQ 的量子计算机通过使用激光操纵镱离子的超精细能量状态来执行计算。 原子是自然界的量子比特,每个量子比特在程序内部和程序之间都是相同的。 逻辑运算也可以在任意一对量子比特上执行,使复杂的量子程序不受物理连接的阻碍。 想了解详细信息吗? 阅读 IonQ 的离子阱量子计算机概述。
- 发布者:IonQ
- 提供程序 ID:
ionq
可从此提供程序获取以下内容 targets :
Target 名称 | Target ID | 量子比特数 | 说明 |
---|---|---|---|
量子模拟器 | 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 中的配置文件类型。
量子模拟器
GPU 加速的理想化模拟器支持多达 29 个量子比特,使用 IonQ 为其量子硬件提供的同一组门,这些门是在实际量子计算机上运行作业之前用于作业预检的绝佳工具。
- 作业类型:
Simulation
- 数据格式:
ionq.circuit.v1
- Target ID:
ionq.simulator
- Target 执行配置文件: QIR Base
IonQ Aria 量子计算机
IonQ Aria 是 IonQ 的捕获离子量子计算机的旗舰,具有 25 量子位动态重新配置系统。 有关详细信息,请参阅 IonQ Aria (ionq.com)。
重要
默认情况下,在 Aria 系统上启用去偏 执,提交的作业会受到基于偏执的定价。 有关偏执以及如何禁用/启用服务的详细信息,请参阅 错误缓解措施。
- 作业类型:
Quantum Program
- 数据格式:
ionq.circuit.v1
- Target ID:
ionq.qpu.aria-1
,ionq.qpu.aria-2
- Target 执行配置文件: QIR Base
参数名称 | 类型 | 必需 | 说明 |
---|---|---|---|
shots |
int | 否 | 实验性截图数。 |
系统计时
测量 | 平均持续时间 |
---|---|
T1 | 10-100 秒 |
T2 | 1 s |
单量子比特门 | 135μs |
双量子比特门 | 600μs |
系统保真
操作 | 平均保真 |
---|---|
单量子比特门 | 99.95% (已更正垃圾邮件) |
双量子比特门 | 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 系统上启用了 Debiasing ,提交的作业会受到基于偏差的定价。 有关偏执以及如何禁用/启用服务的详细信息,请参阅 错误缓解措施。
- 作业类型:
Quantum Program
- 数据格式:
ionq.circuit.v1
- Target ID:
ionq.qpu.forte
- Target 执行配置文件: QIR Base
参数名称 | 类型 | 必需 | 说明 |
---|---|---|---|
shots |
int | 否 | 实验性截图数。 |
输入格式
在 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 硬件时启用 量子错误缓解 的选项。 错误缓解是一个编译器级进程,它运行和执行线路的多个对称变体,然后聚合结果,同时缓解硬件错误和量子比特解码的影响。 与量子误差更正技术不同 ,错误缓解 不需要大门和量子比特开销。
偏执 是创建给定线路 的轻微变体的过程,该变体应在 理想的无噪音计算机上相同,使用不同的量子比特赋值、门分解和脉冲解决方案等技术,然后执行这些变体。
锐化 和 平均值 是聚合变体结果的选项。 平均值同样基于所有变体结果,而锐化会筛选出错误的结果,并且对于某些类型的算法更可靠。
有关详细信息,请参阅 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 上的 Getting Started With Native Gates(原生门入门)。
若要在向 Azure Quantum 提交 Qiskit 作业时使用原生门集,请在初始化后端时指定 gateset
参数,如以下示例所示:
# Here 'provider' is an instance of AzureQuantumProvider
backend = provider.get_backend("ionq.qpu.aria-1", gateset="native")
参数名称 | 类型 | 必需 | 说明 |
---|---|---|---|
gateset |
string | 否 | 指定用于定义线路的门集。 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.com 上的 IonQ Best Practices(IonQ 最佳做法)。