ArcQML Rust原生 量子 机器学习 框架
代码仓库 适用版本 · ArcQML 0.1.0
以 Rust 原生接口构建量子线路、模拟量子态并训练参数,通过 Python 接口使用常用能力。这里汇集框架说明、接口约定与完整任务教程。
本页目录
框架定位
ArcQML 是一个以 Rust 原生实现、同时提供 Rust 与 Python 接口的量子机器学习框架。用户可以通过统一接口构建固定或含参量子线路,使用状态向量模拟器执行单个或批量量子态的演化,并以 Pauli 算符及其线性组合定义待测量的可观测量。框架将电路输出组织为可微分 Tensor;期望值不仅可以直接读取,还可以继续参与损失函数、经典张量运算和其他可微计算,从而把量子计算与经典计算纳入同一条自动微分链路。
对于含参量子线路,ArcQML Runtime 提供门作用、门导数、电路计划执行和伴随反向的原生数值能力;公开 Rust 层负责电路与参数管理、可观测量编译及期望值计算、batch 外层调度、自动微分图、损失函数和优化器。调用 backward 后,梯度可由经典损失沿计算图回传至电路参数,再由 Adam 或 SGD 等优化器进行更新。该能力组合适用于变分量子本征求解、量子神经网络、量子态分析和小规模酉矩阵综合等任务。
当前支持的能力
| 能力域 | 当前实现 |
|---|---|
| 量子态 | 归一化 C64 稠密纯态状态向量 |
| 电路 | 固定门、参数化门、自定义酉门、参数共享与拼接 |
| 训练 | Tensor 自动微分与量子伴随法 |
| 可观测量 | PauliString 与实系数 SparsePauliOp |
| 分析 | 概率、边缘概率、保真度、Bloch 向量、末端抽样 |
| 损失与优化 | Rust 支持 MSE/L1/交叉熵、算子组合自定义损失与 SGD/Adam |
| 用户接口 | Rust 完整接口;Python 原生扩展提供常用电路、模拟、分析与训练接口 |
当前限制
当前后端仅支持 CPU 上的 C64 稠密纯态状态向量模拟,暂未包含 CUDA、稀疏态、噪声模型、密度矩阵、量子信道、中途测量或经典条件控制等。BatchStateVectorSimulator 表示多条独立初态共享同一电路和参数,当前暂未提供批量抽样接口。权重检查点只保存电路参数,暂未保存电路拓扑、优化器状态、训练数据位置或随机数状态。Python API 暴露的是常用功能子集;需要完整能力时,应使用 Rust 原生接口。后续能力以实际发行说明为准。
发行状态与许可证
ArcQML 采用混合许可,这是源码可用发行,不是 OSI 认可的开源许可:
- 自有公开源码采用 ArcQML 非商业源码许可:只允许非商业用途,修改和集成作品需依条款公开完整源码;商业使用另行授权。
- 官方闭源 Runtime 采用非商业二进制许可。公开源码许可为未经修改的官方 Runtime 设置例外,不要求公开其私有实现;用户集成代码仍需公开。
- wheel 中的公开框架、闭源 Runtime 和第三方组件分别适用各自许可。第三方材料保留原许可,见第三方说明及包内版本化许可正文与 SBOM(软件物料清单)。
- 以前合法取得的 MIT / Apache 许可副本,其已授予权利不因本次发行政策变更而撤回。
维护人:liuxl;商业授权及许可联系:quill@arclightquantum.com。完整说明见 ArcQML 仓库的发行状态与许可证。
本次为 Windows 实验性预览版,使用 Rust 1.98.0 和 CPython 3.11。内存安全问题 S01、Linux 验收和格式整理暂缓,详见发行说明与安全限制。仅使用本次随附的库和 wheel,勿混用历史产物。