Apache Mahout 介绍与选型指南
Apache Mahout 官方资料介绍与选型指南:量子机器学习栈 Qumat 0.6.0 与 QDP 0.2.0 的架构特性、快速上手、经典线 14.1 维护状态,及与 Qiskit、PennyLane、Spark MLlib 的量化对比。
Apache Mahout 介绍与选型指南
一、信息基准
- 查询日期:2026-10-18。
- 版本依据:Apache Mahout 当前为无统一版号的多组件项目。官方发行目录
downloads.apache.org/mahout/同时存在经典 Java 发行(14.1)与量子机器学习 Python 组件(0.4、0.5.0、0.6);官网首页标注 Currently v0.6 并声明当前工作重心为量子机器学习。本文按「组件-版本基准表」逐列给出版本基准。
| 项目 | 内容 |
|---|---|
| 官网 | https://mahout.apache.org/ |
| 官方发行目录 | https://downloads.apache.org/mahout/ |
| Qumat 0.6.0 发布公告 | https://mahout.apache.org/blog/2026/06/01/Qumat-0.6.0-Release |
| PyPI 包 | https://pypi.org/project/qumat/ |
| 开源许可 | Apache License 2.0(ASF 顶级项目) |
组件-版本基准表:
| 组件 | 最新版本 | 版本依据 | 说明 |
|---|---|---|---|
| Qumat(Python 量子电路库) | 0.6.0 | PyPI 发行时间 2026-05-31;官网博客 2026 年 6 月发布公告;发行目录 /mahout/0.6/ | 项目当前主线 |
| qumat-qdp(QDP 原生扩展) | 0.2.0 | 发行目录 qumat_qdp-0.2.0 各 Python 版本 wheel(cp310/cp311/cp312);博客原文说明 QuMat 与 qumat-qdp 版本号独立 | 经 qumat[qdp] extra 安装 |
| Mahout Classic(Samsara / MapReduce 线) | 14.1 | 发行目录 /mahout/14.1/ 文件时间戳 2020-10-07 | 官网声明处于维护模式 |
环境要求:Qumat 要求 Python >= 3.10 且 < 3.13(PyPI 元数据);官网首页标注 Python 3.10+,QDP 原生扩展提供 cp310/cp311/cp312 wheel。
二、软件概述
本文介绍的 Apache Mahout 以 2026 年 10 月 18 日可查证的最新组件版本为基准(Qumat 0.6.0、qumat-qdp 0.2.0,经典线 14.1 维护模式)。
官网对项目目标的表述为:构建一个用于快速创建可扩展、高性能机器学习应用的环境。官网同时明确当前工作重心:量子机器学习(Python 技术栈),包含两个组件——Qumat,一次编写量子电路、在任一受支持后端运行的库;QDP,GPU 加速的数据平面,将经典数据直接构造为量子态,无需模拟态制备电路。
项目历史的另一条线是 Mahout Classic(Samsara 与 MapReduce 代码库),官网首页原文确认其处于维护模式(maintenance mode),社区当前工作在 Qumat 与 QDP 上。
三、核心架构
- Qumat:高层 Python 量子计算库。以统一 API 屏蔽后端差异,支持在 Qiskit、Cirq、Amazon Braket 三类后端上执行,模拟器或真实量子硬件均可(官网首页原文要点);提供标准门与参数化门(Hadamard、Pauli、CNOT、Toffoli、SWAP、旋转门等),支持变分电路的参数绑定。
- QDP(Quantum Data Plane):面向量子机器学习的数据装载瓶颈设计,绕开态制备电路模拟,直接在 GPU 显存中构造状态向量并交给训练或核方法管线。支持六种编码:Amplitude、Angle、Basis、Phase、IQP、IQP-Z,且在 CUDA 与 ROCm 两类 GPU 后端上保持同等覆盖(0.6.0 发布公告原文)。
- 后端硬件路径:CUDA 路径面向 Linux x86_64 与 NVIDIA CUDA;AMD 路径通过手写 Triton 内核的 TritonAmdEngine 原生运行于 ROCm,可用
--qdp-backend amd选择(发布公告原文)。 - 互操作:经 DLPack 与 PyTorch、NumPy、TensorFlow 零拷贝交接,并提供跳过主机往返的 GPU 指针路径(官网首页与发布公告)。
四、功能特性
- 一套 API、三类后端:切换 Qiskit、Cirq、Amazon Braket 只需改配置值,不改电路代码(官网首页原文要点)。
- GPU 数据面性能:官方博客给出数据到态延迟基准(16 比特、65536 维向量)——QDP 0.160 ms/vector,为 PennyLane(0.716)的 4.5 倍速、Qiskit Statevector(9.030)的 56 倍速、Qiskit Initialize(76.243)的 477 倍速;DataLoader 基准中 QDP 达 6101 vectors/s,对 PennyLane(1604)为 3.8 倍(数据引自官方博客,非本文实测)。
- 真实负载基准:SVHN IQP 变分分类器、SVHN 量子核 SVM、data-to-state 延迟与 DataLoader 吞吐基准随项目发布(0.6.0 公告)。
- 云端数据加载:QDP 支持从 S3、GCS 远程 URL 读取数据(0.6.0 公告 Other Improvements 一节)。
- 纯 PyTorch 参考实现:用于正确性比对与 CPU 回退(0.6.0 公告)。
- 工程配套:文档站(Docusaurus)、故障排查指南、类型注解、Ruff 与类型检查 CI 等(0.6.0 公告)。
五、快速上手
以下命令与代码引自官方 PyPI 包页(https://pypi.org/project/qumat/ )与官方博客发布说明,本文不做本地实测。
安装基础包:
pip install qumat
安装含 QDP 的版本(官方博客原文命令):
pip install "qumat[qdp]==0.6.0"
官方 PyPI 页 Quick Start 给出的量子电路示例(原文语句):
from qumat import QuMat
qumat = QuMat({"backend_name": "qiskit", "backend_options": {"simulator_type": "aer_simulator"}})
qumat.create_empty_circuit(num_qubits=2)
qumat.apply_hadamard_gate(0)
qumat.apply_cnot_gate(0, 1)
qumat.execute_circuit()
官方 PyPI 页给出的 QDP 数据编码示例(原文语句):
import qumat.qdp as qdp
engine = qdp.QdpEngine(device_id=0)
qtensor = engine.encode([1.0, 2.0, 3.0, 4.0], num_qubits=2, encoding_method="amplitude")
官方文档入口:Qumat 文档 https://mahout.apache.org/docs/qumat/ ,QDP 文档 https://mahout.apache.org/docs/qdp/ ,基础门介绍 https://mahout.apache.org/docs/qumat/basic-gates/ 。
六、适用场景与限制
适用场景:
- 量子机器学习研究与教学:统一 API 下比较不同量子后端,或以参数化门构建变分电路。
- 数据到态制备的工程加速:已验证需要高吞吐量子态数据装载的 QML 管线(官方基准覆盖 SVHN 训练与量子核 SVM)。
- GPU 环境下的编码流水线:CUDA 与 ROCm 双路径支持异构硬件选型。
限制与注意点:
- 经典机器学习线(Samsara/MapReduce、发行版 14.1)处于维护模式,不再建议作为新项目的基础。
- QDP 加速路径需要兼容的 GPU 运行时:CUDA 路径限 Linux x86_64,AMD 路径限 ROCm 环境(发布公告原文);无 GPU 时仅有纯 PyTorch 参考实现可回退。
- Python 版本窗口较窄(>=3.10 且 <3.13),QDP 原生 wheel 目前仅覆盖 cp310-cp312。
- 项目整体处于从经典机器学习向量子机器学习转型的阶段,选型时应以量子场景为前提。
七、同类选型对比
对比对象:Qiskit 与 PennyLane(同为量子计算/量子机器学习框架),另列 Spark MLlib 作为经典分布式机器学习场景的对照项。GitHub stars 维度:GitHub 仓库页面经本文取证通道未能取回可靠计数值,统一标注官方未公布。版本与时间来自 PyPI 与 Maven Central(2026-10-18 查询)。
| 维度 | Apache Mahout(Qumat 0.6.0) | Qiskit 2.6.0 | PennyLane 0.45.1 | Spark MLlib 3.5.9 |
|---|---|---|---|---|
| 开源许可 | Apache-2.0 | Apache-2.0 | Apache-2.0 | Apache-2.0 |
| GitHub stars + 最近发版 | 官方未公布;2026-05-31(PyPI) | 官方未公布;2026-10-16(PyPI) | 官方未公布;2026-06-26(PyPI) | 官方未公布;3.5.9(Scala 2.12 构件,Maven Central 2026-07-16 元数据) |
| 版本节奏 | 2026 年集中于 Qumat 线(0.5.0 至 0.6.0 汇集 111 个 PR,官方博客);Classic 线维护 | 高频迭代 | 高频迭代 | 3.5.x 维护线持续发版;Scala 2.13 构件线 Maven Central 已出现 4.2.0-preview 预览版本 |
| 兼容矩阵 | Python >=3.10 且 <3.13;QDP 需 CUDA(Linux x86_64)或 ROCm | Python >=3.10(PyPI 元数据) | Python >=3.11(PyPI 元数据) | JVM 环境(Scala 2.12/2.13 构件) |
选型建议:以量子机器学习为主、且关注数据装载与 GPU 编码吞吐的团队可试点 Mahout Qumat+QDP;需要最完整量子算法生态时选 Qiskit,需要与 PyTorch 紧耦合的自动微分量子线路时选 PennyLane;经典分布式机器学习场景则直接选择 Spark MLlib。
八、参考链接
- 官网首页:https://mahout.apache.org/
- Qumat 0.6.0 发布公告:https://mahout.apache.org/blog/2026/06/01/Qumat-0.6.0-Release
- 官方发行目录:https://downloads.apache.org/mahout/
- PyPI 包页:https://pypi.org/project/qumat/
- Qumat 文档:https://mahout.apache.org/docs/qumat/
- QDP 文档:https://mahout.apache.org/docs/qdp/