自适应实验
项目描述
Ax是一个可访问的、通用的平台,用于理解、管理、部署和自动化自适应实验。
自适应实验是机器学习指导下的迭代探索(可能无限)参数空间的过程,以资源高效的方式识别最佳配置。Ax目前支持贝叶斯优化和bandit优化作为探索策略。Ax中的贝叶斯优化由BoTorch提供支持,BoTorch是一个基于PyTorch的现代贝叶斯优化研究库。
有关完整文档和教程,请参阅Ax网站
为什么选择Ax?
- 多功能性: Ax支持不同类型的实验,从动态ML辅助A/B测试,到机器学习中的超参数优化。
- 可定制性: Ax易于添加新的建模和决策算法,使研发工作以最低的额外开销进行。
- 生产完整性:Ax 带有存储集成功能,能够完全保存和重新加载实验。
- 支持多模态和约束实验:Ax 允许运行和组合多个实验(例如,将模拟与实际“在线”A/B 测试相结合),并支持约束优化(例如,在不显著增加资源利用率的情况下提高分类精度)。
- 高噪声环境中的效率:Ax 提供专门针对噪声实验的最先进算法,例如与强化学习代理的模拟。
- 易用性:Ax 包含 3 个不同的 API,在不同程度的轻量级结构和灵活性之间取得平衡。服务 API(适用于绝大多数用例)提供了一个广泛、健壮且易于使用的 Ax 接口;循环 API 能够实现特别简洁的使用;开发 API 则能够实现高级实验和方法控制。
入门指南
要在 Ax 中运行简单的优化循环(使用Booth 响应面作为人工评估函数)
>>> from ax import optimize
>>> best_parameters, best_values, experiment, model = optimize(
parameters=[
{
"name": "x1",
"type": "range",
"bounds": [-10.0, 10.0],
},
{
"name": "x2",
"type": "range",
"bounds": [-10.0, 10.0],
},
],
# Booth function
evaluation_function=lambda p: (p["x1"] + 2*p["x2"] - 7)**2 + (2*p["x1"] + p["x2"] - 5)**2,
minimize=True,
)
# best_parameters contains {'x1': 1.02, 'x2': 2.97}; the global min is (1, 3)
安装
要求
运行 Ax 需要 Python 3.10 或更高版本。
所需的 Python 依赖项包括
- botorch
- jinja2
- pandas
- scipy
- sklearn
- plotly >=2.2.1
稳定版本
通过 pip 安装
我们建议通过 pip 安装 Ax(即使使用 Conda 环境)
conda install pytorch torchvision -c pytorch # OSX only (details below)
pip install ax-platform
安装将使用 PyPI 中的 Python 轮子,适用于 OSX、Linux 和 Windows。
注意:确保用于安装 ax-platform
的 pip
确实是新创建的 Conda 环境中的。如果您使用的是基于 Unix 的操作系统,您可以使用 which pip
来检查。
针对 MacOS 用户的建议:PyTorch 是 BoTorch 的必需依赖项,可以通过 pip 自动安装。但是,我们建议您在安装 Ax 之前,使用 Anaconda 软件包管理器 手动安装 PyTorch。使用 Anaconda 安装将从 MKL(一个优化 Intel 处理器数学计算的库)链接。这将导致贝叶斯优化速度提高一个数量级,因为目前通过 pip 安装 PyTorch 并不链接到 MKL。
如果您需要在 MacOS 上使用 CUDA,则需要从源代码构建 PyTorch。请参阅上面提到的 PyTorch 安装说明。
可选依赖项
要使用 Jupyter 环境与 Ax 结合,您需要安装 Jupyter。首先安装它
pip install jupyter
如果您想将实验存储在 MySQL 中,则需要 SQLAlchemy
pip install SQLAlchemy
最新版本
从 Git 安装
您可以从 Git 中安装最新的(前沿)版本。
首先,请参阅上面针对 MacOS 用户安装 PyTorch 的建议。
有时,Ax 的前沿版本可能依赖于 BoTorch(或 GPyTorch)的前沿版本。因此,我们建议您也从 Git 中安装这些。
pip install git+https://github.com/cornellius-gp/linear_operator.git
pip install git+https://github.com/cornellius-gp/gpytorch.git
export ALLOW_LATEST_GPYTORCH_LINOP=true
pip install git+https://github.com/pytorch/botorch.git
export ALLOW_BOTORCH_LATEST=true
pip install git+https://github.com/facebook/Ax.git#egg=ax-platform
可选依赖项
如果在使用 Jupyter 笔记本中使用 Ax
pip install git+https://github.com/facebook/Ax.git#egg=ax-platform[notebook]
为了支持较新版本的 Jupyter 笔记本中的基于 plotly 的绘图
pip install "notebook>=5.3" "ipywidgets==7.5"
有关详细信息以及 JupyterLab 指令,请参阅Plotly 存储库的 README。
如果您通过 SQLAlchemy 在 MySQL 或 SQLite 中存储 Ax 实验
pip install git+https://github.com/facebook/Ax.git#egg=ax-platform[mysql]
加入 Ax 社区
获取帮助
请在我们的问题页面上创建一个问题,提出任何疑问、功能请求或错误报告!如果您发布错误报告,请包括一个最小的可重复示例(作为代码片段),我们可以使用它来重现和调试您遇到的问题。
贡献
有关如何帮助的详细信息,请参阅CONTRIBUTING 文件。
在向 Ax 贡献时,我们建议克隆存储库并安装所有可选依赖项
pip install git+https://github.com/cornellius-gp/linear_operator.git
pip install git+https://github.com/cornellius-gp/gpytorch.git
export ALLOW_LATEST_GPYTORCH_LINOP=true
pip install git+https://github.com/pytorch/botorch.git
export ALLOW_BOTORCH_LATEST=true
git clone https://github.com/facebook/ax.git --depth 1
cd ax
pip install -e .[tutorial]
请参阅针对 MacOS 用户安装 PyTorch 的建议。
上述示例通过git clone
命令的--depth
参数限制克隆目录的大小。如果您需要完整的提交历史,可以移除此参数。
许可证
Ax遵循MIT许可证。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。