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

    文章

    1429

    浏览量

    54719
  • 机器学习
    +关注

    关注

    66

    文章

    8406

    浏览量

    132558
  • pytorch
    +关注

    关注

    2

    文章

    807

    浏览量

    13198

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

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

收藏 人收藏

    评论

    相关推荐

    TP-Link推出两款入门级用户路由器——Archer AX3000和AX1500

    为了普及 802.11ax(即 Wi-Fi 6)无线技术,TP-Link 决定推出两款面向入门级用户的新品 —— Archer AX3000 和 AX1500 。
    发表于 10-12 15:07 2.5w次阅读

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

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

    Facebook致力AI开源PyTorch 1.0 AI框架

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

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

    ,将于近期开源PyTorch 1.0 AI框架,据悉,该框架PyTorch与Caffe 2的结合,可以让开发者无需迁移就从研究转为生产。
    的头像 发表于 06-18 10:30 3177次阅读

    极低功耗的两款全新的神经网络内核AX2185和AX2145

    Imagination公司日前基于其神经网络加速器(NNA)架构PowerVR 2NX推出了两款全新的神经网络内核AX2185和AX2145,其设计目的是在极小芯片面积上以极低功耗实现神经网络高性能计算。
    的头像 发表于 06-20 10:50 3978次阅读
    极低功耗的<b class='flag-5'>两款</b>全新的神经网络内核<b class='flag-5'>AX</b>2185和<b class='flag-5'>AX</b>2145

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

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

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

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

    PyTorch版《动手学深度学习》开源

    目前,该项目在 GitHub 上已获得超过 1.1 万星,并且中文版电子书还发布纸质版书籍。不过虽然书籍非常优秀,但还是有一些读者不太习惯用 Gluon 来写代码,毕竟开源项目大部分都是 TF 或 PyTorch 写的。现在好
    的头像 发表于 09-20 15:25 2815次阅读

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

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

    国产框架超越 PyTorch 和 TensorFlow?

    样资源主导、肉食者谋的竞争环境下 ,一家国产深度学习框架的创业公司 OneFlow 出现。 它以处理大规模模型见长,甚至今年将全部源码和实验对比数据,在 GitHub 进行了开源
    的头像 发表于 04-09 15:11 2413次阅读
    国产<b class='flag-5'>框架</b>超越 <b class='flag-5'>PyTorch</b> 和 TensorFlow?

    PyTorch开源深度学习框架简介

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

    TensorFlow和PyTorch的实际应用比较

    TensorFlow和PyTorch个最受欢迎的开源深度学习框架,这框架都为构建和训练深
    的头像 发表于 01-14 11:53 2925次阅读

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

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

    深度学习框架pytorch介绍

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

    tensorflow和pytorch哪个更简单?

    : TensorFlow和PyTorch都是用于深度学习和机器学习的开源框架。TensorFlow由Google Brain团队开发,而PyTorch
    的头像 发表于 07-05 09:45 845次阅读