神经架构搜索平台
项目描述
安装
Archai可以通过多种方法安装,但为了获得最佳效果,建议使用虚拟环境,如conda
或pyenv
。
要通过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")
定义搜索目标
接下来,我们定义我们想要优化的目标。在这个例子中,我们使用 NonEmbeddingParamsProxy
、TransformerFlexOnnxLatency
和 TransformerFlexOnnxMemory
来定义目标。
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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 24d42a8d9e558aa9495918de84b408068f11feca8159214226b5585debd59faf |
|
MD5 | 5abbafa891ae4ac86395488ba51eeb41 |
|
BLAKE2b-256 | 4f0abce59a90fe915b8017e509be278417ceffb0f5be264d9302d8004b0a5957 |
archai-1.0.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 86628c12a820eb42284b331c4bfe7bdd6494046d85d03864d82b114470c26c9b |
|
MD5 | cef6cec12cce1e84fb772ee10c32917c |
|
BLAKE2b-256 | 66ec7de6f8ebe74b568d73d3897694d1e465f18fd56dda4dffdaab6f1ce62f66 |