跳转到主要内容

神经架构搜索平台

项目描述

Archai logo

Archai 通过快速、可重复和模块化的研究加速您的神经架构搜索(NAS),从而生成适用于各种应用的效率高的深度网络。

Release version Open issues Contributors PyPI downloads License

安装

Archai可以通过多种方法安装,但为了获得最佳效果,建议使用虚拟环境,如condapyenv

要通过PyPI安装Archai,可以执行以下命令

pip install archai

Archai需要Python 3.8+和PyTorch 1.7.0+才能正常运行。

有关更多信息,请参阅安装指南

快速入门

在此快速入门示例中,我们将应用Archai于自然语言处理,根据一组目标找到最优的Pareto前沿Transformers配置。

创建搜索空间

我们首先导入表示Transformer架构搜索空间的TransformerFlexSearchSpace

from archai.discrete_search.search_spaces.nlp.transformer_flex.search_space import TransformerFlexSearchSpace

space = TransformerFlexSearchSpace("gpt2")

定义搜索目标

接下来,我们定义我们想要优化的目标。在这个例子中,我们使用 NonEmbeddingParamsProxyTransformerFlexOnnxLatencyTransformerFlexOnnxMemory 来定义目标。

from archai.discrete_search.api.search_objectives import SearchObjectives
from archai.discrete_search.evaluators.nlp.parameters import NonEmbeddingParamsProxy
from archai.discrete_search.evaluators.nlp.transformer_flex_latency import TransformerFlexOnnxLatency
from archai.discrete_search.evaluators.nlp.transformer_flex_memory import TransformerFlexOnnxMemory

search_objectives = SearchObjectives()
search_objectives.add_objective(
   "non_embedding_params",
   NonEmbeddingParamsProxy(),
   higher_is_better=True,
   compute_intensive=False,
   constraint=(1e6, 1e9),
)
search_objectives.add_objective(
   "onnx_latency",
   TransformerFlexOnnxLatency(space),
   higher_is_better=False,
   compute_intensive=False,
)
search_objectives.add_objective(
   "onnx_memory",
   TransformerFlexOnnxMemory(space),
   higher_is_better=False,
   compute_intensive=False,
)

初始化算法

我们使用 EvolutionParetoSearch 算法进行搜索

from archai.discrete_search.algos.evolution_pareto import EvolutionParetoSearch

algo = EvolutionParetoSearch(
   space,
   search_objectives,
   None,
   "tmp",
   num_iters=5,
   init_num_models=10,
   seed=1234,
)

进行搜索

最后,我们调用 search() 方法启动 NAS 流程

algo.search()

算法将遍历不同的网络架构,根据定义的目标评估它们的性能,并最终产生一组帕累托最优结果的前沿。

任务

为了展示 Archai 的能力和功能,提供了一系列端到端任务

文档

官方文档https://microsoft.github.io/archai 也提供了一系列笔记本

支持

如果您对 Archai 项目或神经架构搜索中的开放问题有任何问题或反馈,请随时通过以下信息联系我们

我们欢迎您提出的任何问题、反馈或建议,并期待您的回复。

团队

Archai 由 Microsoft Research 的 Shital Shah、Debadeepta Dey、Gustavo de Rosa、Caio Mendes、Piero Kauffmann、Chris Lovett、Allie Del Giorno、Mojan Javaheripi 和 Ofer Dekel 创建和维护。

贡献

本项目欢迎贡献和建议。大多数贡献都需要您同意贡献者许可协议(CLA),声明您有权,并且确实授予我们使用您的贡献的权利。有关详细信息,请访问 https://cla.microsoft.com

当您提交拉取请求时,CLA-bot 将自动确定您是否需要提供 CLA,并适当装饰 PR(例如,标签、注释)。只需遵循 bot 提供的说明即可。您只需在整个使用我们 CLA 的所有存储库中执行此操作一次。

本项目采用了 Microsoft 开源行为准则。有关更多信息,请参阅行为准则常见问题解答或通过 opencode@microsoft.com 联系我们,提出任何额外的问题或评论。

商标

本项目可能包含项目、产品或服务的商标或徽标。Microsoft 商标或徽标的授权使用必须遵守并遵循 Microsoft 的商标和品牌指南。在此项目的修改版本中使用 Microsoft 商标或徽标不得引起混淆或暗示 Microsoft 的赞助。任何使用第三方商标或徽标的行为均受第三方政策的约束。

许可协议

本项目以 MIT 许可证发布。请查阅文件获取更多详细信息。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

archai-1.0.0.tar.gz (425.2 kB 查看哈希值)

上传于 源代码

构建的发行版

archai-1.0.0-py3-none-any.whl (587.2 kB 查看哈希值)

上传于 Python 3

由以下支持