Ax 是一个易于使用、通用性强的平台,用于理解、管理、部署和自动化自适应实验。
自适应实验是一种由机器学习引导的迭代过程,用于在(可能是无限的)参数空间中探索,以便以资源高效的方式识别最优配置。Ax 目前支持贝叶斯优化和赌博机优化作为探索策略。Ax 中的贝叶斯优化由 BoTorch 驱动,这是一个基于 PyTorch 构建的现代贝叶斯优化研究库。
完整文档和教程,请访问 Ax 网站。
富有表现力的 API:Ax 拥有一个富有表现力的 API,能够处理许多现实世界的优化任务。它可以处理复杂的搜索空间、多目标、参数和结果的约束以及带噪声的观测。它支持建议并行评估多个设计方案(同步和异步均可),并具备提前终止评估的能力。
开箱即用的强大性能:Ax 抽象掉了重要但晦涩的优化细节,提供了合理的默认设置,使实践者能够利用那些通常只有优化专家才能接触到的先进技术。
最先进的方法:Ax 利用在 BoTorch 中实现的最先进的贝叶斯优化算法,在各种问题类别上都能提供强大的性能。
灵活:Ax 高度可配置,允许研究人员插入新颖的优化算法、模型和实验流程。
生产就绪:Ax 提供自动化和编排功能,以及针对大规模现实世界部署的稳健错误处理。
要在 Ax 中运行一个简单的优化循环(使用 Booth 响应面 作为人工评估函数):
>>> from ax import Client, RangeParameterConfig
>>> client = Client()
>>> client.configure_experiment(
parameters=[
RangeParameterConfig(
name="x1",
bounds=(-10.0, 10.0),
parameter_type=ParameterType.FLOAT,
),
RangeParameterConfig(
name="x2",
bounds=(-10.0, 10.0),
parameter_type=ParameterType.FLOAT,
),
],
)
>>> client.configure_optimization(objective="-1 * booth")
>>> for _ in range(20):
>>> for trial_index, parameters in client.get_next_trials(max_trials=1).items():
>>> client.complete_trial(
>>> trial_index=trial_index,
>>> raw_data={
>>> "booth": (parameters["x1"] + 2 * parameters["x2"] - 7) ** 2
>>> + (2 * parameters["x1"] + parameters["x2"] - 5) ** 2
>>> },
>>> )
>>> client.get_best_parameterization()
Ax 需要 Python 3.11 或更高版本。Ax 的直接依赖项完整列表可以在 pyproject.toml 中找到。
我们建议通过 pip 安装 Ax,即使使用 Conda 环境:
pip install ax-platform
安装将使用 PyPI 上提供的 Python wheel 包,适用于 OSX、Linux 和 Windows。
注意:请确保用于安装 ax-platform 的 pip 确实来自新创建的 Conda 环境。如果您使用的是基于 Unix 的操作系统,可以使用 which pip 来检查。
Ax 可以安装额外的依赖项,这些依赖项不包含在默认安装中。例如,为了在 Jupyter notebook 中使用 Ax,请安装带有 notebook 额外功能的 Ax:
pip install "ax-platform[notebook]"
还提供了用于将 Ax 与 MySQL 存储一起使用 (mysql)、本地运行 Ax 教程 (tutorials) 以及安装开发 Ax 所需的所有依赖项 (dev) 的额外功能。
您可以使用 pip 从 GitHub 安装最新(前沿)版本。
Ax 的前沿版本依赖于 BoTorch 和 GPyTorch 的前沿版本。因此,我们也建议从 GitHub 安装它们。
pip install git+https://github.com/cornellius-gp/gpytorch.git
pip install git+https://github.com/pytorch/botorch.git
pip install 'git+https://github.com/facebook/Ax.git#egg=ax-platform'
如有任何问题、功能请求或错误报告,请在我们的 问题页面 上提交 issue!如果提交错误报告,请包含一个最小可复现示例(作为代码片段),以便我们能够复现并调试您遇到的问题。
请参阅 CONTRIBUTING 文件了解如何参与贡献。
在向 Ax 贡献时,我们建议克隆 代码库 并安装所有可选依赖项:
pip install git+https://github.com/cornellius-gp/linear_operator.git
pip install git+https://github.com/cornellius-gp/gpytorch.git
pip install git+https://github.com/pytorch/botorch.git
git clone https://github.com/facebook/ax.git --depth 1
cd ax
pip install -e .[tutorial]
对于 macOS 用户安装 PyTorch 的建议,请参见上文。
上面的示例通过 git clone 的 --depth 参数限制了克隆目录的大小。如果您需要完整的提交历史记录,可以移除此参数。
如果您使用了 Ax,请引用以下论文:
@inproceedings{olson2025ax,
title = {{Ax: A Platform for Adaptive Experimentation}},
author = {
Olson, Miles and Santorella, Elizabeth and Tiao, Louis C. and
Cakmak, Sait and Garrard, Mia and Daulton, Samuel and
Lin, Zhiyuan Jerry and Ament, Sebastian and Beckerman, Bernard and
Onofrey, Eric and Igusti, Paschal and Lara, Cristian and
Letham, Benjamin and Cardoso, Cesar and Shen, Shiyun Sunny and
Lin, Andy Chenyuan and Grange, Matthew and Kashtelyan, Elena and
Eriksson, David and Balandat, Maximilian and Bakshy, Eytan.
},
booktitle = {AutoML 2025 ABCD Track},
year = {2025}
}
Ax 基于 MIT 许可证 授权。