0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Facebook开源了两款基于PyTorch的实验框架Ax和BoTorch

DPVg_AI_era 来源:lq 2019-05-16 08:36 次阅读

近日,Facebook开源了两款基于PyTorch的实验框架Ax和BoTorch。Ax是一个面向自适应实验的理解、管理、部署和自动化任务的通用平台,BoTorch则主要面向贝叶斯优化任务。这两个框架旨在简化PyTorch应用中的自适应实验流程。

在现代机器学习应用中,对实验到生产的流程进行简化是最难实现的任务之一。在已经市场化深度学习框架中,Facebook的PyTorch因其高度灵活性成为数据科学界的最爱,PyTorch能够实现快速建模和实验。但是,深度学习应用中的许多实验面临的挑战已经超出了特定框架的能力范围。

对于数据科学家来说,在对不同的模型或超参数配置进行评估时,通常会受到实验所需的昂贵计算资源和时间的障碍。近日,Facebook开源了两个新框架,旨在简化PyTorch应用程序中的自适应实验流程:

Ax:一个易访问的通用平台,面向自适应实验的理解、管理、部署和自动化。

BoTorch:基于PyTorch,是一个灵活的现代库,用于贝叶斯优化——一种高效的全局优化的概率方法。

这两种工具的目标是降低PyTorch开发人员进行快速实验的入门门槛,以便为特定问题找到最佳模型。 Ax和BoTorch都基于概率模型,简化了机器学习问题中给定环境下的探索流程。不过两个框架针对的是实验问题空间的不同维度。

BoTorch

BoTorch是一个基于PyTorch构建的贝叶斯优化库。贝叶斯优化的目标是在有限的资源内找到问题的最优解。通常,贝叶斯优化用于解决黑盒优化问题,比如机器学习算法的超参数优化,A / B测试以及许多其他科学和工程问题。

贝叶斯优化问题试图在无法获取函数形式的情况下对一些昂贵的评估黑盒函数f进行最大化。具体来说,优化技术在一系列测试点处对f进行评估,希望在少量评估之后确定接近最优值。

为了实现这一目标,需要一种方法来推断关于f尚未评估的点的概念。在贝叶斯优化中,这被称为替代模型。重要的是,替代模型应该能够以点x的函数值f(x)的后验分布的形式对预测的不确定性进行量化。

BoTorch是Facebook在贝叶斯优化基础上大量工作的成果,并将这些技术集成到PyTorch编程模型中。从概念上讲,与替代优化方法相比,BoTorch具备一系列独特优势。

基于PyTorch:BoTorch构建于PyTorch框架基础上,可以利用本机功能,如自动差异化,使用独立于设备的代码,支持高度并行化的现代化硬件(如GPU),有助于交互式计算图的动态开发。

最先进的建模:BoTorch支持GPyTorch中的尖端概率建模,包括多任务高斯过程(GP),可扩展GP,深度内核学习,深度GP和近似推理等。

提高开发人员效率:BoTorch提供了简单的编程模型,用于对贝叶斯优化的基本问题进行组合。具体而言,BoTorch依赖于基于蒙特卡罗模型的采集函数,使得新思路的实现变得更加简单,无需对基础模型做出限制性的假设。

高并行性带来的可扩展性:BoTorch编程模型可以优化并发性和并行性任务进行批量计算,提高了大型基础架构的可扩展性。

BoTorch的设计可以让PyTorch开发人员更改、交换或重新排列深度神经网络架构的不同组件,无需重建整个图形来重新训练整个模型。显然,构建低级贝叶斯优化组件是一项需要深度专业知识的任务。为了应对这一挑战,Facebook决定将BoTorch与另一个为深度学习实验提供简单编程模型的项目进行集成:

这就是Ax。

从概念上讲,Ax是一个优化实验平台,比如A / B测试,模拟或机器学习模型实验等。Ax提供了一个易用的高级API,可以和BoTorch进行连接,使开发人员能够快速建模和运行实验。 Ax和BoTorch之间的关系如下图所示。使用BoTorch可以实现新的优化算法,而Ax则提供了一个简单的API,用于配置调度、查询数据和评估结果。

从优化的角度来看,Ax可以使用多臂老虎机优化处理离散型配置(比如A / B测试的变体),还可以使用贝叶斯优化的处理连续配置(比如整数或浮点)。Ax提供了一个高度可扩展的框架,允许开发人员为PyTorch模型定制各种实验。从编程模型的角度来看,Ax提供了三个主要API:

循环API:用于同步优化循环,可以立即评估试验。使用此API可以在一次调用中执行优化,一旦优化完成,就可以使用实验内省。

服务API:可用作参数调整应用程序的轻量级服务,可以并行评估试验以及异步获得数据。

开发者API:主要供数据科学家,机器学习工程师和研究人员临时使用。提供大量定制化和内省功能,推荐打算使用Ax来优化A / B测试的开发者使用。

从编程模型的角度来看,循环 API提供了最大程度的流程简化,而开发者API实现了最高级别的自定义功能。使用Loop API进行无约束合成Branin函数代码如下:

from ax import optimizefrom ax.utils.measurement.synthetic_functions import braninbest_parameters, values, experiment, model = optimize( parameters=[ { "name": "x1", "type": "range", "bounds": [-5.0, 10.0], }, { "name": "x2", "type": "range", "bounds": [0.0, 10.0], }, ], evaluation_function=lambda p: branin(p["x1"], p["x2"]), minimize=True,)

而开发者API则需要对Ax框架组件进行更深度的操控:

from ax import *branin_search_space = SearchSpace( parameters=[ RangeParameter( name="x1", parameter_type=ParameterType.FLOAT, lower=-5, upper=10 ), RangeParameter( name="x2", parameter_type=ParameterType.FLOAT, lower=0, upper=15 ), ])exp = SimpleExperiment( name="test_branin", search_space=branin_search_space, evaluation_function=lambda p: branin(p["x1"], p["x2"]), objective_name="branin", minimize=True,)sobol = Models.SOBOL(exp.search_space)for i in range(5): exp.new_trial(generator_run=sobol.gen(1))best_arm = Nonefor i in range(15): gpei = Models.GPEI(experiment=exp, data=exp.eval()) generator_run = gpei.gen(1) best_arm, _ = generator_run.best_arm_predictions exp.new_trial(generator_run=generator_run)best_parameters = best_arm.parameters

与其他实验性框架相比,Ax具备一些明显优势。对于初学者来说,编程模型可以与BoTorch之外的不同优化框架一起使用。此外,Ax会自动选择优化程序,让数据科学家能够更轻松对模型进行微调。最后,该框架由可视化工具和基准测试套件实现功能互补,简化了对优化技术的评估流程。

Facebook内部的许多团队都在广泛使用Ax和BoTorch框架。这些框架的开源是对PyTorch生态系统的重要补充,PyTorch生态系统已被广泛视作数据科学实验中最灵活的深度学习框架之一。随着数据科学界开始尝试Axe和BoTorch,可能会将更多新想法整合到两个框架中,优化PyTorch应用程序中的实验流程。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Facebook
    +关注

    关注

    3

    文章

    1428

    浏览量

    54029
  • 机器学习
    +关注

    关注

    66

    文章

    8122

    浏览量

    130551
  • pytorch
    +关注

    关注

    2

    文章

    761

    浏览量

    12828

原文标题:用PyTorch做深度学习实验!Facebook新框架Ax和BoTorch双双开源

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    两款消回音,消噪音的芯片

    两款是消回音,消噪音的芯片资料。大家可以看下。一起探讨下。
    发表于 09-16 10:22

    两款u***功放制作

    两款u***功放制作
    发表于 08-20 14:50

    刚拆的帮我看看这两款电机的型号!!!!!!

    帮我看看这两款电机能做什么
    发表于 01-08 01:42

    苹果音箱月产大跌 Facebook智能音箱延至10月

    智能音箱的发布活动和时间安排。   据消息人士称,Facebook准备推出两款智能音箱,目前的代号分别是Fiona和Aloha,和市面上的智能音箱不同的是,Facebook的产品将配置一块15英寸
    发表于 04-25 09:30

    Facebook智能音箱可能先在国际市场推出 隐私问题受到关注

      导读:据外媒报道,据知情人士称,Facebook正考虑在国际市场上率先推出其智能音箱产品,以避免因数据隐私问题在美国遭到公开审查。此外,这两款智能音箱将内置一语音助手,它使用的基础技术与公司在
    发表于 05-09 09:29

    通过Cortex来非常方便的部署PyTorch模型

    的机器学习框架是建立在 PyTorch 上的。在 ML 的几乎任何领域,从计算机视觉到 NLP 再到计算生物学,你都会发现 PyTorch 在前沿为实验提供能量。然而,最自然的问题是如
    发表于 11-01 15:25

    PyTorch 1.0:一个框架实现AI从研究到生产的全过程

    Facebook去年与微软合作推出开放神经网络交换(ONNX)格式,这是一个用于表示深度学习模型的标准,旨在使不同框架之间的移动更加简单。现在,Facebook已经将ONNX整合到PyTorc
    的头像 发表于 05-04 10:13 7572次阅读

    Facebook致力AI开源PyTorch 1.0 AI框架

    Facebook近日宣布,将于近期开源PyTorch 1.0 AI框架,据悉,该框架PyTorch
    的头像 发表于 05-08 14:58 3208次阅读

    Facebook致力AI 开源PyTorch1.0 AI框架

    导读: Facebook近日宣布,将于近期开源PyTorch 1.0 AI框架,据悉,该框架PyTor
    的头像 发表于 06-18 10:30 2936次阅读

    Facebook宣布发布深度学习框架 PyTorch 1.0开发者预览版

    为了满足这些需求,Google Cloud 也将为其众多服务引入 PyTorch 支持。Facebook 在宣布这一消息的博客文章中称,Google 与 Facebook 合作在为 PyTor
    的头像 发表于 10-08 14:36 2968次阅读

    Facebook与CMU联手打造开源框架PyRobot

    Facebook AI近期对机器人技术非常热衷,刚刚又开源了机器人框架PyRobot,该框架是与卡内基梅隆大学合作创建,可运行由Facebook
    发表于 06-24 15:14 3693次阅读

    天才黑客George Hotz开源了一个小型深度学习框架tinygrad

    最近,天才黑客 George Hotz 开源了一个小型深度学习框架 tinygrad,兼具 PyTorch 和 micrograd 的功能。tinygrad 的代码数量不到 1000 行,目前该项
    的头像 发表于 12-16 09:36 3922次阅读

    PyTorch开源深度学习框架简介

    PyTorch 是一种开源深度学习框架,以出色的灵活性和易用性著称。这在一定程度上是因为与机器学习开发者和数据科学家所青睐的热门 Python 高级编程语言兼容。
    的头像 发表于 07-29 10:26 3714次阅读

    深度学习框架pytorch入门与实践

    的。PyTorch是一个开源的深度学习框架,在深度学习领域得到了广泛应用。本文将介绍PyTorch框架的基本知识、核心概念以及如何在实践中使
    的头像 发表于 08-17 16:03 1195次阅读

    深度学习框架pytorch介绍

    深度学习框架pytorch介绍 PyTorch是由Facebook创建的开源机器学习框架,其中T
    的头像 发表于 08-17 16:10 1132次阅读