0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Facebook開(kāi)源了兩款基于PyTorch的實(shí)驗(yàn)框架Ax和BoTorch

DPVg_AI_era ? 來(lái)源:lq ? 2019-05-16 08:36 ? 次閱讀

近日,F(xiàn)acebook開(kāi)源了兩款基于PyTorch的實(shí)驗(yàn)框架Ax和BoTorch。Ax是一個(gè)面向自適應(yīng)實(shí)驗(yàn)的理解、管理、部署和自動(dòng)化任務(wù)的通用平臺(tái),BoTorch則主要面向貝葉斯優(yōu)化任務(wù)。這兩個(gè)框架旨在簡(jiǎn)化PyTorch應(yīng)用中的自適應(yīng)實(shí)驗(yàn)流程。

在現(xiàn)代機(jī)器學(xué)習(xí)應(yīng)用中,對(duì)實(shí)驗(yàn)到生產(chǎn)的流程進(jìn)行簡(jiǎn)化是最難實(shí)現(xiàn)的任務(wù)之一。在已經(jīng)市場(chǎng)化深度學(xué)習(xí)框架中,F(xiàn)acebook的PyTorch因其高度靈活性成為數(shù)據(jù)科學(xué)界的最愛(ài),PyTorch能夠?qū)崿F(xiàn)快速建模和實(shí)驗(yàn)。但是,深度學(xué)習(xí)應(yīng)用中的許多實(shí)驗(yàn)面臨的挑戰(zhàn)已經(jīng)超出了特定框架的能力范圍。

對(duì)于數(shù)據(jù)科學(xué)家來(lái)說(shuō),在對(duì)不同的模型或超參數(shù)配置進(jìn)行評(píng)估時(shí),通常會(huì)受到實(shí)驗(yàn)所需的昂貴計(jì)算資源和時(shí)間的障礙。近日,F(xiàn)acebook開(kāi)源了兩個(gè)新框架,旨在簡(jiǎn)化PyTorch應(yīng)用程序中的自適應(yīng)實(shí)驗(yàn)流程:

Ax:一個(gè)易訪問(wèn)的通用平臺(tái),面向自適應(yīng)實(shí)驗(yàn)的理解、管理、部署和自動(dòng)化。

BoTorch:基于PyTorch,是一個(gè)靈活的現(xiàn)代庫(kù),用于貝葉斯優(yōu)化——一種高效的全局優(yōu)化的概率方法。

這兩種工具的目標(biāo)是降低PyTorch開(kāi)發(fā)人員進(jìn)行快速實(shí)驗(yàn)的入門(mén)門(mén)檻,以便為特定問(wèn)題找到最佳模型。 Ax和BoTorch都基于概率模型,簡(jiǎn)化了機(jī)器學(xué)習(xí)問(wèn)題中給定環(huán)境下的探索流程。不過(guò)兩個(gè)框架針對(duì)的是實(shí)驗(yàn)問(wèn)題空間的不同維度。

BoTorch

BoTorch是一個(gè)基于PyTorch構(gòu)建的貝葉斯優(yōu)化庫(kù)。貝葉斯優(yōu)化的目標(biāo)是在有限的資源內(nèi)找到問(wèn)題的最優(yōu)解。通常,貝葉斯優(yōu)化用于解決黑盒優(yōu)化問(wèn)題,比如機(jī)器學(xué)習(xí)算法的超參數(shù)優(yōu)化,A / B測(cè)試以及許多其他科學(xué)和工程問(wèn)題。

貝葉斯優(yōu)化問(wèn)題試圖在無(wú)法獲取函數(shù)形式的情況下對(duì)一些昂貴的評(píng)估黑盒函數(shù)f進(jìn)行最大化。具體來(lái)說(shuō),優(yōu)化技術(shù)在一系列測(cè)試點(diǎn)處對(duì)f進(jìn)行評(píng)估,希望在少量評(píng)估之后確定接近最優(yōu)值。

為了實(shí)現(xiàn)這一目標(biāo),需要一種方法來(lái)推斷關(guān)于f尚未評(píng)估的點(diǎn)的概念。在貝葉斯優(yōu)化中,這被稱為替代模型。重要的是,替代模型應(yīng)該能夠以點(diǎn)x的函數(shù)值f(x)的后驗(yàn)分布的形式對(duì)預(yù)測(cè)的不確定性進(jìn)行量化。

BoTorch是Facebook在貝葉斯優(yōu)化基礎(chǔ)上大量工作的成果,并將這些技術(shù)集成到PyTorch編程模型中。從概念上講,與替代優(yōu)化方法相比,BoTorch具備一系列獨(dú)特優(yōu)勢(shì)。

基于PyTorch:BoTorch構(gòu)建于PyTorch框架基礎(chǔ)上,可以利用本機(jī)功能,如自動(dòng)差異化,使用獨(dú)立于設(shè)備的代碼,支持高度并行化的現(xiàn)代化硬件(如GPU),有助于交互式計(jì)算圖的動(dòng)態(tài)開(kāi)發(fā)。

最先進(jìn)的建模:BoTorch支持GPyTorch中的尖端概率建模,包括多任務(wù)高斯過(guò)程(GP),可擴(kuò)展GP,深度內(nèi)核學(xué)習(xí),深度GP和近似推理等。

提高開(kāi)發(fā)人員效率:BoTorch提供了簡(jiǎn)單的編程模型,用于對(duì)貝葉斯優(yōu)化的基本問(wèn)題進(jìn)行組合。具體而言,BoTorch依賴于基于蒙特卡羅模型的采集函數(shù),使得新思路的實(shí)現(xiàn)變得更加簡(jiǎn)單,無(wú)需對(duì)基礎(chǔ)模型做出限制性的假設(shè)。

高并行性帶來(lái)的可擴(kuò)展性:BoTorch編程模型可以優(yōu)化并發(fā)性和并行性任務(wù)進(jìn)行批量計(jì)算,提高了大型基礎(chǔ)架構(gòu)的可擴(kuò)展性。

BoTorch的設(shè)計(jì)可以讓PyTorch開(kāi)發(fā)人員更改、交換或重新排列深度神經(jīng)網(wǎng)絡(luò)架構(gòu)的不同組件,無(wú)需重建整個(gè)圖形來(lái)重新訓(xùn)練整個(gè)模型。顯然,構(gòu)建低級(jí)貝葉斯優(yōu)化組件是一項(xiàng)需要深度專業(yè)知識(shí)的任務(wù)。為了應(yīng)對(duì)這一挑戰(zhàn),F(xiàn)acebook決定將BoTorch與另一個(gè)為深度學(xué)習(xí)實(shí)驗(yàn)提供簡(jiǎn)單編程模型的項(xiàng)目進(jìn)行集成:

這就是Ax。

從概念上講,Ax是一個(gè)優(yōu)化實(shí)驗(yàn)平臺(tái),比如A / B測(cè)試,模擬或機(jī)器學(xué)習(xí)模型實(shí)驗(yàn)等。Ax提供了一個(gè)易用的高級(jí)API,可以和BoTorch進(jìn)行連接,使開(kāi)發(fā)人員能夠快速建模和運(yùn)行實(shí)驗(yàn)。 Ax和BoTorch之間的關(guān)系如下圖所示。使用BoTorch可以實(shí)現(xiàn)新的優(yōu)化算法,而Ax則提供了一個(gè)簡(jiǎn)單的API,用于配置調(diào)度、查詢數(shù)據(jù)和評(píng)估結(jié)果。

從優(yōu)化的角度來(lái)看,Ax可以使用多臂老虎機(jī)優(yōu)化處理離散型配置(比如A / B測(cè)試的變體),還可以使用貝葉斯優(yōu)化的處理連續(xù)配置(比如整數(shù)或浮點(diǎn))。Ax提供了一個(gè)高度可擴(kuò)展的框架,允許開(kāi)發(fā)人員為PyTorch模型定制各種實(shí)驗(yàn)。從編程模型的角度來(lái)看,Ax提供了三個(gè)主要API:

循環(huán)API:用于同步優(yōu)化循環(huán),可以立即評(píng)估試驗(yàn)。使用此API可以在一次調(diào)用中執(zhí)行優(yōu)化,一旦優(yōu)化完成,就可以使用實(shí)驗(yàn)內(nèi)省。

服務(wù)API:可用作參數(shù)調(diào)整應(yīng)用程序的輕量級(jí)服務(wù),可以并行評(píng)估試驗(yàn)以及異步獲得數(shù)據(jù)。

開(kāi)發(fā)者API:主要供數(shù)據(jù)科學(xué)家,機(jī)器學(xué)習(xí)工程師和研究人員臨時(shí)使用。提供大量定制化和內(nèi)省功能,推薦打算使用Ax來(lái)優(yōu)化A / B測(cè)試的開(kāi)發(fā)者使用。

從編程模型的角度來(lái)看,循環(huán) API提供了最大程度的流程簡(jiǎn)化,而開(kāi)發(fā)者API實(shí)現(xiàn)了最高級(jí)別的自定義功能。使用Loop API進(jìn)行無(wú)約束合成Branin函數(shù)代碼如下:

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,)

而開(kāi)發(fā)者API則需要對(duì)Ax框架組件進(jìn)行更深度的操控:

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

與其他實(shí)驗(yàn)性框架相比,Ax具備一些明顯優(yōu)勢(shì)。對(duì)于初學(xué)者來(lái)說(shuō),編程模型可以與BoTorch之外的不同優(yōu)化框架一起使用。此外,Ax會(huì)自動(dòng)選擇優(yōu)化程序,讓數(shù)據(jù)科學(xué)家能夠更輕松對(duì)模型進(jìn)行微調(diào)。最后,該框架由可視化工具和基準(zhǔn)測(cè)試套件實(shí)現(xiàn)功能互補(bǔ),簡(jiǎn)化了對(duì)優(yōu)化技術(shù)的評(píng)估流程。

Facebook內(nèi)部的許多團(tuán)隊(duì)都在廣泛使用Ax和BoTorch框架。這些框架的開(kāi)源是對(duì)PyTorch生態(tài)系統(tǒng)的重要補(bǔ)充,PyTorch生態(tài)系統(tǒng)已被廣泛視作數(shù)據(jù)科學(xué)實(shí)驗(yàn)中最靈活的深度學(xué)習(xí)框架之一。隨著數(shù)據(jù)科學(xué)界開(kāi)始嘗試Axe和BoTorch,可能會(huì)將更多新想法整合到兩個(gè)框架中,優(yōu)化PyTorch應(yīng)用程序中的實(shí)驗(yàn)流程。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Facebook
    +關(guān)注

    關(guān)注

    3

    文章

    1429

    瀏覽量

    54581
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8318

    瀏覽量

    132162
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    795

    瀏覽量

    13076

原文標(biāo)題:用PyTorch做深度學(xué)習(xí)實(shí)驗(yàn)!Facebook新框架Ax和BoTorch雙雙開(kāi)源

文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    TP-Link推出兩款入門(mén)級(jí)用戶路由器——Archer AX3000和AX1500

    為了普及 802.11ax(即 Wi-Fi 6)無(wú)線技術(shù),TP-Link 決定推出兩款面向入門(mén)級(jí)用戶的新品 —— Archer AX3000 和 AX1500 。
    發(fā)表于 10-12 15:07 ?2.4w次閱讀

    Facebook智能音箱可能先在國(guó)際市場(chǎng)推出 隱私問(wèn)題受到關(guān)注

      導(dǎo)讀:據(jù)外媒報(bào)道,據(jù)知情人士稱,Facebook正考慮在國(guó)際市場(chǎng)上率先推出其智能音箱產(chǎn)品,以避免因數(shù)據(jù)隱私問(wèn)題在美國(guó)遭到公開(kāi)審查。此外,這兩款智能音箱將內(nèi)置一語(yǔ)音助手,它使用的基礎(chǔ)技術(shù)與公司在
    發(fā)表于 05-09 09:29

    Facebook致力AI開(kāi)源PyTorch 1.0 AI框架

    Facebook近日宣布,將于近期開(kāi)源PyTorch 1.0 AI框架,據(jù)悉,該框架PyTorch
    的頭像 發(fā)表于 05-08 14:58 ?3357次閱讀

    Facebook致力AI 開(kāi)源PyTorch1.0 AI框架

    ,將于近期開(kāi)源PyTorch 1.0 AI框架,據(jù)悉,該框架PyTorch與Caffe 2的結(jié)合,可以讓開(kāi)發(fā)者無(wú)需遷移就從研究轉(zhuǎn)為生產(chǎn)。
    的頭像 發(fā)表于 06-18 10:30 ?3127次閱讀

    極低功耗的兩款全新的神經(jīng)網(wǎng)絡(luò)內(nèi)核AX2185和AX2145

    Imagination公司日前基于其神經(jīng)網(wǎng)絡(luò)加速器(NNA)架構(gòu)PowerVR 2NX推出了兩款全新的神經(jīng)網(wǎng)絡(luò)內(nèi)核AX2185和AX2145,其設(shè)計(jì)目的是在極小芯片面積上以極低功耗實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)高性能計(jì)算。
    的頭像 發(fā)表于 06-20 10:50 ?3905次閱讀
    極低功耗的<b class='flag-5'>兩款</b>全新的神經(jīng)網(wǎng)絡(luò)內(nèi)核<b class='flag-5'>AX</b>2185和<b class='flag-5'>AX</b>2145

    Facebook宣布發(fā)布深度學(xué)習(xí)框架 PyTorch 1.0開(kāi)發(fā)者預(yù)覽版

    為了滿足這些需求,Google Cloud 也將為其眾多服務(wù)引入 PyTorch 支持。Facebook 在宣布這一消息的博客文章中稱,Google 與 Facebook 合作在為 PyTor
    的頭像 發(fā)表于 10-08 14:36 ?3145次閱讀

    Facebook與CMU聯(lián)手打造開(kāi)源框架PyRobot

    Facebook AI近期對(duì)機(jī)器人技術(shù)非常熱衷,剛剛又開(kāi)源機(jī)器人框架PyRobot,該框架是與卡內(nèi)基梅隆大學(xué)合作創(chuàng)建,可運(yùn)行由
    發(fā)表于 06-24 15:14 ?3772次閱讀

    PyTorch版《動(dòng)手學(xué)深度學(xué)習(xí)》開(kāi)源

    目前,該項(xiàng)目在 GitHub 上已獲得超過(guò) 1.1 萬(wàn)星,并且中文版電子書(shū)還發(fā)布紙質(zhì)版書(shū)籍。不過(guò)雖然書(shū)籍非常優(yōu)秀,但還是有一些讀者不太習(xí)慣用 Gluon 來(lái)寫(xiě)代碼,畢竟開(kāi)源項(xiàng)目大部分都是 TF 或 PyTorch 寫(xiě)的?,F(xiàn)在好
    的頭像 發(fā)表于 09-20 15:25 ?2767次閱讀

    天才黑客George Hotz開(kāi)源一個(gè)小型深度學(xué)習(xí)框架tinygrad

    最近,天才黑客 George Hotz 開(kāi)源一個(gè)小型深度學(xué)習(xí)框架 tinygrad,兼具 PyTorch 和 micrograd 的功能。tinygrad 的代碼數(shù)量不到 1000
    的頭像 發(fā)表于 12-16 09:36 ?4158次閱讀

    國(guó)產(chǎn)框架超越 PyTorch 和 TensorFlow?

    樣資源主導(dǎo)、肉食者謀的競(jìng)爭(zhēng)環(huán)境下?,一家國(guó)產(chǎn)深度學(xué)習(xí)框架的創(chuàng)業(yè)公司 OneFlow 出現(xiàn)。 它以處理大規(guī)模模型見(jiàn)長(zhǎng),甚至今年將全部源碼和實(shí)驗(yàn)對(duì)比數(shù)據(jù),在 GitHub 進(jìn)行了開(kāi)源。
    的頭像 發(fā)表于 04-09 15:11 ?2355次閱讀
    國(guó)產(chǎn)<b class='flag-5'>框架</b>超越 <b class='flag-5'>PyTorch</b> 和 TensorFlow?

    PyTorch開(kāi)源深度學(xué)習(xí)框架簡(jiǎn)介

    PyTorch 是一種開(kāi)源深度學(xué)習(xí)框架,以出色的靈活性和易用性著稱。這在一定程度上是因?yàn)榕c機(jī)器學(xué)習(xí)開(kāi)發(fā)者和數(shù)據(jù)科學(xué)家所青睞的熱門(mén) Python 高級(jí)編程語(yǔ)言兼容。
    的頭像 發(fā)表于 07-29 10:26 ?4305次閱讀

    TensorFlow和PyTorch的實(shí)際應(yīng)用比較

    TensorFlow和PyTorch個(gè)最受歡迎的開(kāi)源深度學(xué)習(xí)框架,這個(gè)框架都為構(gòu)建和訓(xùn)練深
    的頭像 發(fā)表于 01-14 11:53 ?2839次閱讀

    深度學(xué)習(xí)框架pytorch入門(mén)與實(shí)踐

    的。PyTorch是一個(gè)開(kāi)源的深度學(xué)習(xí)框架,在深度學(xué)習(xí)領(lǐng)域得到了廣泛應(yīng)用。本文將介紹PyTorch框架的基本知識(shí)、核心概念以及如何在實(shí)踐中使
    的頭像 發(fā)表于 08-17 16:03 ?1506次閱讀

    深度學(xué)習(xí)框架pytorch介紹

    深度學(xué)習(xí)框架pytorch介紹 PyTorch是由Facebook創(chuàng)建的開(kāi)源機(jī)器學(xué)習(xí)框架,其中T
    的頭像 發(fā)表于 08-17 16:10 ?1633次閱讀

    tensorflow和pytorch哪個(gè)更簡(jiǎn)單?

    : TensorFlow和PyTorch都是用于深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的開(kāi)源框架。TensorFlow由Google Brain團(tuán)隊(duì)開(kāi)發(fā),而PyTorch
    的頭像 發(fā)表于 07-05 09:45 ?607次閱讀