TorchX 与 Ax 大整合:更高效的多目标神经架构搜索

TorchX一体化框架:从序列到结构的蛋白设计与工具对比 计算蛋白设计正从单一工具链走向流程整合,其中结构预测、序列生成与功能评分是三个核心环节。传统工作流常因格式不统一、坐标不一致等问题在工具间搬运数据,耗费大量时间。TorchX作为一体化框架,通过统一数据协议将预测、设计、评分串成闭环,让抗体CDR优化、蛋白质-蛋白质相互作用改造等项目更高效。其设计模块利用结构预测的中间特征引导序列生成,评分模块提供可微反馈,提升候选质量。面对GenCDR、Boltz-2、OpenDDE、PPIFlow等专业工具,TorchX并不取代它们,而是充当工作流骨架,兼容外部工具。从 阅读详情

NAS 的目的是发现神经网络的最佳架构。Torch 与 Ax 的整合为多目标探索神经架构的研究提供辅助。本文将展示用 Multi-objective Bayesian NAS 运行完全自动的神经架构搜索。

Ax 中的多目标优化 (Multi-Objective Optimization) 能够有效地探索神经架构搜索 (Neural Architecture Search) 中的 tradeoff ,比如模型性能和模型大小或延迟之间的 tradeoff。

这种方法已经在 Meta 公司成功应用于各种产品,如 On-Device AI。

本文提供了一个端到端的教程,帮助使用 TorchX。

Ax 简介

神经网络的规模和复杂性都在继续增长。开发最先进的架构通常是一个繁琐和耗时的过程,需要领域的专业知识和大量的工程努力。

为了克服这些挑战,人们提出了几种神经架构搜索 (NAS) 方法,以自动设计性能良好的架构,而不再需要人为监督 (human in the loop,HITL) 。

尽管样本效率很低,但像随机搜索和网格搜索这样的朴素法在超参数优化和 NAS 方面仍然很受欢迎。 NeurIPS 2019 和 ICLR 2020 进行的一项研究发现,80% 的 NeurIPS 论文和 88% 的 ICLR 论文使用 manual tuning 、随机搜索或网格搜索来调整 ML 模型超参数。

由于模型训练常常很耗时,并且可能需要大量的计算资源,所以尽量减少评估的 configurations 数量是非常重要的。

Ax 是一个用于黑箱优化的通用工具,允许用户使用贝叶斯优化等最先进的算法,在探索大型搜索空间时达到 sample efficient。

Meta 将 Ax 用于各种领域,包括超参数调整、NAS、用大规模 A/B 测试确定最佳产品设置、基础设施优化和设计尖端的 AR/VR 硬件领域。

许多 NAS 应用中,在多个 interest 的指标之间存在着自然的 tradeoff。例如,当在设备上部署模型时,会希望最大限度地提高模型性能(如准确率),同时尽量减少 competing metrics,如功耗、推理延迟或模型大小,以满足部署限制。

在许多情况下,模型性能的小幅下降换取大幅降低计算要求或预测的延迟是能够被接受的(在某些情况下能够同时提高准确率和降低延迟!)。

Sustainble AI 的关键推动力就是有效探索这种权衡蕴含的原则性方法。

Meta 利用 Ax 中的多目标贝叶斯 NAS (multi-objective Bayesian NAS) 成功地去探索这种权衡,并且该方法已经是用于优化 AR/VR 设备上的 ML 模型的例行用法。

除了 NAS 应用,Meta 还开发了可被用于 AR 光学系统的高维多目标优化的方法 MORBO。

Ax 中的 multi-objective Bayesian NAS

用 Ax 实现完全自动多目标 Nas

Ax 的 Scheduler 允许以闭环的方式异步运行实验,方法是不断将试验部署到外部系统,轮询结果,利用获取的数据生成更多的试验,并重复这一过程,直到满足停止条件。不需要人工干预或监督。这个 Scheduler 的特征有:

  •  可定制并行性、故障容忍度和许多其他设置。

  •  大量选择最先进的优化算法。

  •  保存正在进行的实验(SQL DB 或 json),并从存储中恢复实验。

  •  易于扩展到新的后端,以便远程运行试验评估。

下面是 Ax scheduler Tutorial 中的插图,总结了 Sceduler 如何与任何用于运行试验评估的外部系统互动。

Ax sceduler Tutorial

使用 Scheduler 运行自动 NAS,需要以下准备:

  •  定义一个 Runner,负责发送一个具有特定架构的模型,在我们选择的平台上进行训练。(比如 Kubernetes,也可能只是本地上的 Docker 镜像)。下面的教程将用 TorchX 来处理训练作业的部署。

  •  定义一个 Metric,负责从训练任务中获取客观指标(如准确度、模型大小、延迟)。下面的教程将用 Tensorboard 来记录数据,因此可以使用与 Ax 捆绑的 Tensorboard metric。

教程

教程展示如何使用 Ax 在流行的 MNIST 数据集上为一个简单的神经网络模型运行多目标 NAS。

虽然基本的方法论可用于更复杂的模型和更大的数据集,但这里选择了一个可在笔记本电脑上轻松运行的教程,可在一个小时内完成端到端的操作。

该例中,将会调整两个隐藏层的宽度、学习率、dropout probability、批尺寸和训练迭代的数量。目标是利用多目标贝叶斯优化来 trade off 性能(验证集的准确率)和模型大小(模型参数的数量)。

本教程使用了以下 PyTorch 库:

         https://github.com/Lightning-AI/lightning

  •  TorchX(用于远程/异步运行训练工作)

          https://github.com/pytorch/torchx

  •  BoTorch(为 Ax 的算法提供动力的贝叶斯优化库)

        https://github.com/pytorch/botorch



完整可运行实例

结果

教程中进行的 NAS 优化的最终结果可以在下面的 tradeoff plot 中看到。这里,每个点都对应一个试验的结果,颜色代表其迭代数,星星表示对目标施加的阈值定义的参考点。

可以看到这种方法能够成功地探索验证精度和参数数量之间的 tradeoff,既能找到验证精度高的大模型,也能找到验证精度低的小模型。

根据性能要求和模型大小的限制,决策者现在可以选择使用或进一步分析哪个模型。

可视化

Ax 提供了一些可视化的东西帮助分析和理解实验结果。请重点关注对未知目标建模的高斯过程模型的性能,这些模型可以用来辅助更快地发现 promising configurations。

Ax 辅助更好地了解这些模型的准确率,以及它们在未见过的数据上的表现通过 leave-one-out cross-validation。

在下面的数字中,可以看出模型拟合的相当好--预测结果接近实际结果,预测的 95% 置信区间很好地覆盖了实际结果。

此外,能够看出模型大小 (num_params) 指标比验证精度 (val_acc) 指标更容易建模。

对 Ax 总结

  •  教程展示了如何使用 Ax 运行一个完全自动的多目标神经架构搜索。

  •  使用 Ax 调度器,以完全异步的方式自动运行优化(这可以在本地完成),也可以通过远程部署试验到集群中(只需改变 TorchX 的 Scheduler 配置)。

  •  Ax 中提供的最先进的多目标贝叶斯优化算法帮助有效地探索验证准确率和模型大小之间的 tradeoff。

高级功能

Ax 还有一些其他高级功能,上述教程中没有讨论。包括以下内容:

Early Stopping 

在评估一个新的 candidate configutation 时,部分学习曲线通常在 NN 训练工作运行时就可以得到。

通过部分曲线中包含的信息来识别表现不佳的试验,以便及早停止,从而为更有希望的 promising candidate 释放计算资源。虽然在上述教程中没有演示,但 Ax 支持开箱即用的 Early Stopping。

https://ax.dev/versions/latest/tutorials/early_stopping/early_stopping.html 

高维搜索空间

教程中使用了带有标准高斯过程的贝叶斯优化,以保持低运行时间。

然而,这些模型通常只能扩展到大约 10-20 个可调整的参数。新的 SAASBO 方法非常 sample-efficient 并且可以调整数百个参数。通过向 select_generation_strategy 传递 use_saasbo=True ,可以很容易地启用 SAASBO。

以上就是 TorchX 的介绍,之后 PyTorch 开发者社区将继续关注利用 Graph Transformations 优化生产型 PyTorch 模型的性能。

搜索 Hyperai01,备注「PyTorch」加入 PyTorch 技术交流群,了解 PyTorch 最新进展、最佳实践吧!

PoseNFS:PyTorch 实现 Pose Neural Fabrics Search (PNFS)——用于人体姿态估计的 Part-specific 神经架构搜索 介绍 在人体结构的先验知识的指导下搜索特定部位的基于细胞的神经结构 (CNF)。 这个存储库是我们 PyTorch 实现的论文 ( )。 宏观和微观层面的神经架构搜索空间: 用法 依赖关系 通过pip install -r requirements.txt安装PyTorch (>=1.0.0) 和提到的包。 数据准备 我们按照的步骤准备MPII和COCO数据集,请参阅 。 下载 ImageNet 预训练模型 Resnet-50 (23.5M):, MobileNet-V2(1.3M):。 HRNet-W32-stem~stage3 (8.1M):来自这个 repo 的Google Drive 。 更多的 ... 创建o目录以保存每个实验的输出 mkdir o 训练模型 python train.py \ --cfg configs/example.yaml \ -- 立即下载

相关推荐

Auto-PyTorch:PyTorch 的自动架构搜索和超参数优化

自动 PyTorch 版权所有 (C) 2021 虽然早期的 AutoML 框架专注于优化传统 ML 管道及其超参数,但 AutoML 的另一个趋势是专注于神经架构搜索。 为了将这两个领域的精华结合在一起,我们开发了Auto-PyTorch ,它联合稳健地优化网络架构和训练超参数,以实现全自动深度学习 (AutoDL)。 Auto-PyTorch 主要用于支持表格数据(分类、回归),但也可以应用于图像数据(分类)。 Auto-PyTorch 中表格数据的最新功能在论文(请参阅下面的参考资料)。 下一个版本的 Alpha 状态 即将发布的 Auto-PyTorch 将通过使用 SMAC 作为底层优化包、更改代码结构和其他改进,进一步提高可用性、健壮性和效率。 如果您想尝试一下,请查看development分支或其。 安装 克隆仓库 $ cd install/path $ git cl

PyTorchX 安装与使用指南

PyTorchX 安装与使用指南 项目介绍 PyTorchX 是一个基于 PyTorch 的扩展库,由开发者 Wang XinYu 维护,旨在提供高级功能和便捷工具,以增强深度学习开发者的生产力。虽然具体的功能细节和目的在给出的参考资料中没有详细说明,通常这类项目可能会包括模型加速、预训练模型、数据处理工具、自定义层或优化器等,帮助研究人员和工程师更高效地进行模型构建和实验。 项目快速启动 要快速...

gitblog_00475的博客 486

ENAS PyTorch(高效神经网络结构搜索) 项目

该项目是对论文《参数共享的高效神经网络结构搜索(Efficient Neural Architecture Search (ENAS) via Parameters Sharing)》的实现。ENAS 做什么?高效神经网络结构搜索,即 ENAS 减少了计算需求,将 NAS 的 GPU 计算时间减少了 1000 倍。他们通过共享大型计算图中的子图模型之间的参数共享来完成此操作。 如何使用它的过程已经在 GitHub 页面上得到了很好的展示。实现这个库的先决条件是: Python 3.6+ 需要 PyTorch tqdm,imageio,graphviz,tqdm,tensorboardX

Pytorch知识集锦(一) torch x=x.view(x.size()[0],-1)

在写特征提取网络的时候,在卷积网络和分类网络的相结合的地方,需要用到将特征转换成一个列数为一的一维向量: #coding=utf-8 #torch x=x.view(x.size()[0],-1) import torch a=torch.arange(1,17) #[1,16] print(a) print(a.size(0)) #[16] 一行,十六列 #x=x.view(x.size(0),-1) b=a.view(a.size()[0],-1) #b=a.view(a.size(0),-1

weixin_45837625的博客 439

Python-Mnasnet的PyTorch实现MnasNet平台感知神经架构搜索移动

A PyTorch implementation of Mnasnet: MnasNet: Platform-Aware Neural Architecture Search for Mobile.

神经架构搜索实战:PyTorch可微分搜索算法在边缘设备模型自动设计.pdf

该文档【神经架构搜索实战:PyTorch可微分搜索算法在边缘设备模型自动设计】共计 24 页,文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。还在为深度学习框架的选择而烦恼吗?不妨来了解下 PyTorch。它凭借简洁直观的设计,在深度学习领域迅速崛起。PyTorch 有着动态计算图的独特优势,让你能更灵活地构建和调试模型。无论是新手入门深度学习,还是经验丰富的开发者进行复杂研究,它都能轻松应对。使用 PyTorch让你的科研和项目更上一层楼。

【知识普及】神经网络架构搜索(Neural Architecture Search,NAS)

文章目录1. 背景引入2. 网络架构搜索(NAS)2.1 NAS 搜索策略2.1.1 基于强化学习2.1.2 基于进化算法2.1.3 基于梯度的方法2.2 NAS 加速2.2.1 层次化表示2.2.2 权值共享2.2.3 表现预测2.3 NAS 变体及扩展2.3.1 语义分割2.3.2 多目标2.3.3 优化器2.3.4 模型压缩2.3.5 数据增强 1. 背景引入 超参数的自动搜索优化(Hyperparameter optimization,HO): 随机搜索(Random search) 网格搜索(

weixin_43882112的博客 3902

UE5 Paper2D性能优化:GroupedSpriteSceneProxy合批渲染原理与实践

在游戏开发中,渲染性能优化是核心技术挑战之一,其核心原理在于减少CPU与GPU之间的通信开销,特别是降低Draw Call数量。Draw Call是CPU向GPU提交绘制命令的指令,每次调用都涉及状态切换和数据传输,当场景中存在大量同质化对象时,频繁的Draw Call会成为主要性能瓶颈。为此,现代图形引擎普遍采用合批渲染技术,其技术价值在于将多个共享相同渲染状态(如材质、几何体)的物体数据合并提交,从而将多次Draw Call压缩为一次或少数几次,显著提升渲染效率。这一技术在2D游戏开发中尤为重要,例如在

weixin_34198453的博客 395

【亲测免费】 NSGANetV2:进化多目标代理辅助神经架构搜索

NSGANetV2:进化多目标代理辅助神经架构搜索 项目介绍 NSGANetV2 是一个高效的神经架构搜索(NAS)算法,旨在生成针对特定任务的模型,这些模型在多个竞争目标下表现出色。该算法结合了两种代理:一种在架构级别提高样本效率,另一种通过超网在权重级别提高梯度下降训练效率。NSGANetV2 由 Zhichao Lu 等人开发,并在欧洲计算机视觉会议(ECCV)上发表。 项目技术分析 NSG...

gitblog_00769的博客 525

ABAP FB05 清账实战:POSTING_INTERFACE_CLEARING 核心参数与业务场景解析

本文深入解析ABAP FB05清账操作中的核心函数POSTING_INTERFACE_CLEARING,详细讲解其关键参数与业务场景应用。通过实战案例展示收款清账(EINGZAHL)流程,提供常见错误排查方法,并分享批量清账优化与财务凭证集成的高级技巧,帮助开发者高效处理SAP财务模块清账需求。

weixin_33423874的博客 475

pytorch中dataloader的num_workers参数

结论速递 在Windows系统中,num_workers参数建议设为0,在Linux系统则不需担心。 1 问题描述 在之前的任务超大图上的节点表征学习中,使用PyG库用于数据加载的DataLoader,ClusterLoader等类时,会涉及到参数num_workers。在不同系统环境试验该参数的设定值时,会出现不同的结果 colab(Linux),设为12 有warning message,提示num_workers参数设置不合理,不影响继续运行 /usr/local/lib/python3.7/di

qq_40990057的博客 1万+

神经网络架构搜索

神经网络架构搜索是为给定数据集自动找到一个或多个架构的任务,这些架构将为给定的数据集生成具有良好结果的模型,其本质是在高维空间的最优参数搜索问题。

m0_74079109的博客 2174

SAP期初库存导入 (1)

LSMW

IT养家 7191

2024年 30篇神经架构搜索(Neural Architecture Search) ICLR(Under review) 阅读笔记

据作者所知,该研究首次进行了RSNNs的系统架构优化。通过引入SC-ML和HRMAS,研究成功地证明了可扩展RSNN架构和自动化架构优化的可行性和有效性,实现了显著的性能提升。这种方法为设计和实现更先进的神经网络开辟了新的途径。

miss_the_boat的博客 5808

Windows下飞桨PaddlePaddle 2.6.1 GPU版环境搭建全攻略(含CUDA 11.7配置避坑指南)

本文详细介绍了在Windows系统下搭建飞桨PaddlePaddle 2.6.1 GPU版环境的完整流程,特别针对CUDA 11.7和cuDNN的安装提供了避坑指南。从Anaconda环境配置、CUDA Toolkit安装到飞桨GPU版的验证,手把手帮助开发者高效完成深度学习环境搭建,解决常见问题并优化性能。

x8y9z0的博客 1095

新手必看:LiteRadio 2c SE遥控器从开箱到飞行的完整指南(附常见问题解答)

本文为新手提供LiteRadio 2c SE遥控器的完整使用指南,涵盖从开箱到首飞的20个关键步骤。详细介绍了遥控器的功能设置、与无人机的对频技巧以及首飞注意事项,帮助用户快速掌握飞行控制,避免常见错误。特别适合无人机初学者阅读。

weixin_29209801的博客 380

一文详解神经网络结构搜索(NAS)

本文作者为东北大学自然语言处理实验室 2018 级研究生胡驰,他的研究方向包括神经网络结构搜索、自然语言处理。雷锋网 AI 科技评论经作者授权发表本文章。 近年来,深度学习的繁荣,尤其是神经网络的发展,颠覆了传统机器学习特征工程的时代,将人工智能的浪潮推到了历史最高点。然而,尽管各种神经网络模型层出不穷,但往往模型性能越高,对超参数的要求也越来越严格,稍有不同就无法复现论文的结果。而网络结构作为...

AI 研习社的博客 1万+

【人工智能】 WebDev Arena:实时AI Web开发竞赛的技术探索与价值

《AI编程竞赛推动Web开发技术创新》摘要:WebDev Arena作为聚焦Web开发领域的实时AI编程竞赛,通过标准化竞技环境检验AI模型在代码生成、问题解决等方面的能力。竞赛覆盖前端、后端等全流程开发环节,采用实时评分机制,推动AI对复杂Web需求的理解和多元技术栈适配。该赛事不仅促进AI编程技术创新,更为Web开发行业与AI技术融合搭建桥梁,有望提升开发效率、降低技术门槛。未来将拓展Web3.0等前沿技术主题,持续推动行业智能化发展。(150字)

奶爸的编程之路,也就一周冷个三天 255

MnasNet

谷歌2019年在CVPR上发布的一篇针对移动平台的模型。有两个创新点 1、多目标神经结构搜索方法 目的:在移动设备上优化准确率和真实世界延迟。 实现: (2) α和β是待定常数,那么如何确定它们的值呢?这里用到了经济学中的帕累托最优方法,以确保在不同精度-延迟权衡下,帕累托最优解具有相似的回报。例如:根据经验,延迟增加一倍通常会带来5%相对精度的提升。 给出两个模型:(1)M1,延迟为,精度为。 ...

zhouying_12345的博客 590

【全局路径规划模块运动学算法】无人机Kinodynamic A*算法、Kinodynamic RRT*算法(附C++代码)

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对Kinodynamic A*算法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容啃这个Kinodynamic A_star算法,建议先啃一啃高飞fast_planner那篇论文,把理论打好,如果还是比较迷,就先看Dijksta、再看A_star、再看hybrid A_star 三个的流程,因为往上资料比较多,再看这个Kinodynamic A_star算法,流程已经很相像了。如果。

qq_35635374的博客 2600

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

PyTorch 深度学习实战(34):神经架构搜索(NAS)实战

​# 设备配置print(f"使用设备: {device}")​# 操作类型集合OPS = {​​# 基础操作模块​​​​​​else:​​​​return x​​​​​​完整实现了可微分架构搜索:包括混合操作、细胞结构和双层优化可视化搜索过程:支持架构基因型的图形化展示实用训练技巧:采用余弦退火学习率等优化策略在下一篇文章中,我们将探讨图生成模型与分子设计,介绍如何利用深度生成模型设计新型分子结构。

m0_60414444的博客 972

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

神经架构搜索的综合调查:挑战和解决方案(二)

NAS 是一项很有前途的研究。在本节中,我们根据主流搜索方法 [27, 28] 对现有 NAS 的性能进行分类和比较,同时还根据第 3 节报告了它们使用的优化策略。这些搜索方法主要包括以下内容:强化学习(RL) ,进化算法(EA),梯度优化(GO),随机搜索(RS)和基于序列模型的优化(SMBO)[162]。我们在图 15 中总结了 NAS 背景下 RL、SMBO 和 EA 的一般框架比较。图 15a 显示了 NAS 上下文中 RL 的一般框架。

顾道长生的科研笔记 671

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

torch x = x.view(x.size(0),-1)的理解

目录 一、概述 二、代码展示 一、概述 1.在torch的网络定义部分的forward(self,x)中有可能会出现下面这句话: x = x.view(x.size(0),-1) 2.这句话的意思是将多维度的Tensor展平成一维,但是到底转换的样子是什么样的其实我们这样看并不明白 二、代码展示 1.我们先定义一个Tensor: import torch a = torc...

黄笳倞的博客 1万+

[学习笔记]torch x = x.view(x.size(0),-1)的理解

1.先定义一个Tensor,输出该内容和大小 import torch a = torch.arange(1,17) print(a) print(a.size(0)) 2.Tensor转为一维 import torch a = torch.arange(1,17) print(a) print(a.size(0)) b = a.view(a.size(0),-1) print(b) 其中这个-1指的是不知道多少列的情况下,根据原来Tensor内容和Tensor的..

小羊羔子的BLOG 783

torch x = x.view(-1, ...)理解

在torch里面,view函数相当于numpy的reshape,来看几个例子: a = torch.arange(1, 17) # a's shape is (16,) a.view(4, 4) # output below tensor([[ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12], ...

scut_salmon的博客 8万+

torch函数详解

import torch x = torch.randn(2,1,7,3) conv = torch.nn.conv2d(1,8,(2,3)) res = conv(x) print(res.shape) # shape = (2, 8, 6, 1) 输入 x [ batch_size, channels, height_1, width_1 ] batch_size 一个batch中...

qq_44761480的博客 1081
上一篇: 【TVM 学习资料】使用 TVMC 编译和优化模型
下一篇: 绝!OpenAI 年底上新,单卡 1 分钟生成 3D 点云,text-to 3D 告别高算力消耗时代
HyperAI超神经
博客等级 码龄7年 8873粉丝 1753原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值