91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

如何使用Julia重新思考ML工具,并對現(xiàn)代ML工具需要做的工作提供一些見解

DPVg_AI_era ? 來源:lq ? 2018-12-06 09:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

隨著機(jī)器學(xué)習(xí)等領(lǐng)域的飛速發(fā)展,亟需一門適用于該領(lǐng)域的編程語言。Julia官方博客發(fā)文探討了如何使用Julia重新思考ML工具,并對現(xiàn)代需要做的工作提供了一些見解。

自從Julia團(tuán)隊(duì)提出“需要一流的語言、編譯器和機(jī)器學(xué)習(xí)(ML)生態(tài)系統(tǒng)”以來,該領(lǐng)域呈現(xiàn)出一些有趣的發(fā)展趨勢。

在現(xiàn)有的系統(tǒng)如TensorFlow或PyTorch中,不僅權(quán)衡問題(tradeoff)沒有得到解決,而且它們的“邊界”比以往任何時(shí)候都更加明顯,因?yàn)檫@兩個(gè)框架都包含不同的“靜態(tài)圖(static graph)”和“動(dòng)態(tài)圖機(jī)制(eager execution)”接口。

在目前的框架還不夠完善的情況下,一些激動(dòng)人心的新項(xiàng)目如雨后春筍般出現(xiàn),完全省去了圖(graph),并將可微分編程(differentiable programming)引入主流:

Theano團(tuán)隊(duì)的Myia將Python的一個(gè)子集區(qū)分并編譯為高性能GPU代碼;

Swift for TensorFlow擴(kuò)展了Swift,可以將兼容的函數(shù)編譯為TensorFlow圖;

Flux生態(tài)系統(tǒng)正在使用許多聚焦于ML的工具擴(kuò)展Julia的編譯器,包括gradients、CUDA內(nèi)核編譯、自動(dòng)批處理以及對TPU等新硬件的支持。

所有這些項(xiàng)目都擁有巨大的潛力,但團(tuán)隊(duì)認(rèn)為Julia更有優(yōu)勢。

本文探討了團(tuán)隊(duì)如何使用Julia重新思考ML工具,并對現(xiàn)代ML工具需要做的工作提供一些見解。

Flux加持,Julia更適于機(jī)器學(xué)習(xí)

我們需要一種語言來編寫可微算法,而Flux使得Julia成為了這樣的一門語言。Julia專為數(shù)學(xué)和數(shù)值計(jì)算而設(shè)計(jì),非常適合表達(dá)ML算法。同時(shí),它在編譯器中融合了現(xiàn)代設(shè)計(jì)和新思想,更容易滿足最前沿ML的高性能需求。

在典型的框架中,所有的內(nèi)容需要用幾十萬行的C++代碼來堆砌,而Flux僅僅是幾千行簡單的Julia代碼。只需要一個(gè)用于gradient的包(Zygote.jl),一個(gè)用于支持GPU的包(CuArrays.jl),“撒”上一些輕便的功能,“烘烤”十五分鐘,便可彈出一個(gè)功能齊全的ML堆棧。

與其他下一代ML系統(tǒng)一樣,F(xiàn)lux致力于提供較為直觀的界面,并對任何類型的圖形構(gòu)建或性能注釋采取強(qiáng)硬措施。

Julia支持Flux所有特性,包括控制流、數(shù)據(jù)結(jié)構(gòu)和宏等。用戶可以在Jupyter notebook上交互式編程,并將高性能數(shù)字與便捷的繪圖、可視化做結(jié)合。

但Julia也想獲取傳統(tǒng)“靜態(tài)圖”框架的優(yōu)勢——零開銷的“源到源”AD、操作符融合、多GPU/分布式訓(xùn)練和單二進(jìn)制(single-binary)部署。

這該如何實(shí)現(xiàn)呢?需要直接從Julia編寫的語法中提取和分析“靜態(tài)圖”,這實(shí)際上是編譯器完全正常的工作。從某些角度來看,大多數(shù)ML系統(tǒng)問題都是經(jīng)過深入研究的標(biāo)準(zhǔn)編譯器問題。使用編譯語言就足以解決許多問題,擴(kuò)展編譯器是解決更多問題的最佳方法。

在此只介紹這個(gè)領(lǐng)域當(dāng)前工作中的一個(gè)示例—即獲取梯度、編譯GPU和TPU以及自動(dòng)批處理。

采用“梯度”

我們突破了反向模式微分(reverse-mode differentiation)的極限,將其視為一個(gè)語言級(jí)別的問題?,F(xiàn)有框架通過跟蹤(tracing)來實(shí)現(xiàn)這一點(diǎn)。引入了一種新的張量類型,它記錄了所執(zhí)行的所有基本數(shù)學(xué)操作,產(chǎn)生了一個(gè)圖形(或符號(hào)表達(dá)式),其中刪除了主機(jī)語言的控制流和數(shù)據(jù)結(jié)構(gòu)。

然而,這帶來了一個(gè)困難的權(quán)衡:我們要么接受解釋器的開銷(eager execution),要么凍結(jié)用戶控制流,并限制可以構(gòu)建的模型的種類(static graphs)。

相反,如果圖(graph)是Julia自身的語法呢?

將這個(gè)想法發(fā)揮到極致,我們構(gòu)建了Zygote,它直接在SSA形式的IR上工作,并支持控制流,遞歸,數(shù)據(jù)結(jié)構(gòu)和宏等語言功能。

然后,我們可以通過LLVM之類的編譯器生成的SSA形式的伴隨代碼,并將傳統(tǒng)編譯器優(yōu)化的所有好處應(yīng)用于我們的前向和反向傳遞。

此外,這種方法為擴(kuò)展該編譯器基礎(chǔ)結(jié)構(gòu)提供了機(jī)會(huì),可以使用更高級(jí)和特定于域的優(yōu)化,例如內(nèi)核融合和編譯到TPU等加速器。 Swift for TensorFlow和Myia開發(fā)人員在源到源AD技術(shù)的復(fù)興中正在探索類似的方法。

Julia用于此任務(wù)的一個(gè)關(guān)鍵優(yōu)勢是它可用于實(shí)現(xiàn)基本數(shù)值庫,如微分方程求解器或優(yōu)化庫; 這巧妙地解決了ML社區(qū)日益增長的需求,研究人員通過高性能代碼(如光線跟蹤器和物理引擎)反向傳播,但gradient仍必須在C ++中手動(dòng)實(shí)現(xiàn)。

相比之下,由于Julia的實(shí)施是用Julia編寫的,所以從ODE到金融定價(jià)模型(financial pricing model)的所有內(nèi)容都可以輕松地進(jìn)行區(qū)分。 將這些強(qiáng)大的工具帶入模型是深度學(xué)習(xí)真正成為可微分編程的地方。

為GPU編寫Julia

GPU編程是現(xiàn)代ML的重要組成部分??蚣茉趦?nèi)部提供內(nèi)核,但是用戶只能看到有限的一組數(shù)學(xué)運(yùn)算,不能直接對GPU進(jìn)行編程。相比之下,Julia中的GPU編程一直是一流的CUDA內(nèi)核(可以很好地編寫并從腳本或筆記本中運(yùn)行)。

一個(gè)簡單的向量加法核看起來與CUDA C等價(jià)。

functionkernel_vadd(a,b,c)i=(blockIdx().x-1)*blockDim().x+threadIdx().xc[i]=a[i]+b[i]returnend

但是,Julia的類型特化(type specialization)可以在GPU上實(shí)現(xiàn)一組強(qiáng)大的附加抽象。例如,上面的代碼并不局限于密集的浮點(diǎn)數(shù)組,而是可以給出稀疏的復(fù)數(shù)數(shù)組。

Julia on TPUs

谷歌最近開放了他們的云TPU使用的XLA IR,使得ML以外的其他框架和用戶都可以利用這個(gè)重量級(jí)硬件。 XLA功能強(qiáng)大但有限:它無法運(yùn)行Python解釋器,當(dāng)然也沒有良好的性能。 然后框架最終處于與gradient相似的位置,只能使用程序跟蹤來撬開Python,最終得到一個(gè)快速但更有限的ML語言。

而我們只需要從已經(jīng)編寫的Julia程序中提取“靜態(tài)圖”并將其直接編譯到XLA,從而允許Julia本身在TPU上運(yùn)行。(實(shí)際上,這只是Julia通常編譯過程的一個(gè)簡單擴(kuò)展,該編譯過程從程序中提取盡可能大的“靜態(tài)子圖”,然后將它們發(fā)送到LLVM。)

這使我們可以充分利用Julia語言的表現(xiàn)力,包括 控制流,遞歸,多調(diào)度,高階函數(shù),強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)和抽象,自定義數(shù)字類型,以及現(xiàn)有的包,如微分方程求解器和線性代數(shù)例程。所有這些工作都是在TPU中使用高性能收縮陣列引擎的同時(shí)進(jìn)行的。

自動(dòng)Batching

為了從這些加速器中獲得最大收益,批處理程序通常會(huì)同時(shí)將前向和反向傳遞應(yīng)用于多個(gè)訓(xùn)練示例。在一些簡單的情況下,比如卷積網(wǎng)絡(luò),通過將10張圖像按照額外的批處理維度連接起來來處理這個(gè)問題是很簡單的。但是在處理各種結(jié)構(gòu)的輸入(如樹或圖)時(shí),這項(xiàng)任務(wù)變得更加困難。

大多數(shù)研究人員通過手工批處理代碼來解決這一問題。針對不同的框架(DyNet、TensorFlow Fold)提出了不同的解決方案,它們在可能的情況下嘗試將一些高級(jí)操作批處理在一起,但是這些操作通常要么有自己的可用性問題,要么無法實(shí)現(xiàn)手工編寫的代碼的性能。

我們認(rèn)為這個(gè)問題與單程序多數(shù)據(jù)(SPMD)編程的問題是相同的,后者已經(jīng)被語言和編譯器社區(qū)研究了幾十年,并且在最近的批處理方法(如matchbox)中變得很明顯。實(shí)際上,它與GPU內(nèi)部使用的并行模型非常相似,并且已經(jīng)實(shí)現(xiàn)為CPUSIMD單元的編譯器變換。

從這項(xiàng)工作中獲得靈感,我們正在Julia中實(shí)現(xiàn)相同的轉(zhuǎn)換,為標(biāo)量SIMD單元和模型級(jí)批處理提供SPMD編程。這使我們能夠?qū)崿F(xiàn)在單個(gè)示例上編寫簡單代碼的理想,同時(shí)仍然在現(xiàn)代硬件上獲得最佳性能。

總結(jié)

我們認(rèn)為,機(jī)器學(xué)習(xí)的未來取決于語言和編譯技術(shù),特別是擴(kuò)展新的或現(xiàn)有的語言,以滿足ML研究的高要求。這不僅對ML社區(qū)有好處,對一般的數(shù)值編程也有好處;能夠很好地支持差異化、向量化和外來硬件的語言將足以推動(dòng)科學(xué)的許多進(jìn)步。

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

    關(guān)注

    1

    文章

    1672

    瀏覽量

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

    關(guān)注

    66

    文章

    8556

    瀏覽量

    137045

原文標(biāo)題:Julia官宣:為機(jī)器學(xué)習(xí)構(gòu)建一種語言和編譯器

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何使用keil C51生成個(gè)可以ISP的用戶程序

    使用芯片ML51EB9AE,LDROM 4K,使用新唐提供的ISP_UART0,生成的用戶bin文件加載后無法運(yùn)行。請問用戶bin在編譯的時(shí)候需要做一些地址偏移么?如何進(jìn)行地址偏移
    發(fā)表于 01-25 21:49

    AI智能體工具及其配置介紹

    。這篇短文,簡單介紹一些代表性的智能體工具,解釋如何配置工具應(yīng)用你想要的大模型服務(wù),給出作者喜歡的應(yīng)用場景。
    的頭像 發(fā)表于 12-30 10:49 ?794次閱讀
    AI智能體<b class='flag-5'>工具</b>及其配置介紹

    BGSA403ML10:低電阻天線調(diào)諧開關(guān)的卓越之選

    BGSA403ML10:低電阻天線調(diào)諧開關(guān)的卓越之選 在電子工程師的日常工作中,天線調(diào)諧開關(guān)的選擇至關(guān)重要,它直接影響著整個(gè)射頻系統(tǒng)的性能。今天,我們就來深入了解款優(yōu)秀的低電阻天線調(diào)諧開關(guān)
    的頭像 發(fā)表于 12-21 11:25 ?744次閱讀

    Amphenol FCI Basics MicroSpaceXS? 提取工具解析

    Amphenol FCI Basics MicroSpaceXS? 提取工具解析 在電子工程師的日常工作中,線束返工是個(gè)常見的任務(wù)。而要高效、安全地完成線束返工,款合適的提取
    的頭像 發(fā)表于 12-11 16:00 ?449次閱讀

    嵌入式開發(fā)工具版本的選擇策略

    ,很多時(shí)候,還會(huì)親自下載安裝嘗鮮。 新版本有時(shí)候會(huì)引入一些bug,所以用新版本做項(xiàng)目定要【慎重】,并不定完全適合你的項(xiàng)目。 軟件工具是否需要
    發(fā)表于 11-25 06:11

    Anritsu安立ML2487A射頻功率計(jì):精準(zhǔn)功率測量的可靠之選

    與實(shí)驗(yàn)室技術(shù)人員進(jìn)行射頻功率測量的理想工具。 為確保此類精密儀器長期保持卓越的測量性能,專業(yè)的校準(zhǔn)與維護(hù)支持至關(guān)重要。 深圳市寶安區(qū)沙井方豐瑞儀器設(shè)備經(jīng)營部 在射頻測試設(shè)備服務(wù)領(lǐng)域具備專業(yè)能力,可為ML2487A用戶提供全面的技
    的頭像 發(fā)表于 11-20 10:33 ?582次閱讀
    Anritsu安立<b class='flag-5'>ML</b>2487A射頻功率計(jì):精準(zhǔn)功率測量的可靠之選

    AT_DEVICE支持ML307嗎?

    這個(gè)到底支不支持ML305 ML307,圖形界面有 ,但是保存配置后并沒有這個(gè)文件,如果沒有就在介紹上刪掉吧,浪費(fèi)天時(shí)間加這個(gè)東西
    發(fā)表于 09-11 07:42

    4G網(wǎng)絡(luò)AT模塊:ml307A 總是連接失敗,為什么?

    使用 AT client 連接 ml307A 4G網(wǎng)絡(luò),在多個(gè)地方使用網(wǎng)絡(luò),然后就經(jīng)常出現(xiàn)連接失敗或關(guān)閉失?。? [E/at.skt.ml307] ml307 device(ml
    發(fā)表于 09-11 07:05

    利用超微型 Neuton ML 模型解鎖 SoC 邊緣人工智能

    應(yīng)用。 為什么選擇 Neuton 作為開發(fā)人員,在產(chǎn)品中使用邊緣人工智能的兩個(gè)最大障礙是: ML 模型對于您所選微控制器的內(nèi)存來說太大。 創(chuàng)建自定義 ML 模型本質(zhì)上是個(gè)手動(dòng)過程,需要
    發(fā)表于 08-31 20:54

    大模型工具的 “京東答案”

    成為現(xiàn)代職場人提升價(jià)值產(chǎn)出的關(guān)鍵競爭力。大模型工具的發(fā)展現(xiàn)狀如何?有哪些落地的業(yè)務(wù)實(shí)踐?大模型工具建設(shè)的未來藍(lán)圖是什么?圍繞這些問題,京東內(nèi)部開展了場大模型
    的頭像 發(fā)表于 08-25 16:09 ?602次閱讀

    普迪飛 | AI預(yù)測建模工具,釋放AI/ML的強(qiáng)大潛力!

    半導(dǎo)體行業(yè)始終引領(lǐng)著變革性技術(shù)革新的浪潮,驅(qū)動(dòng)制造流程的復(fù)雜性不斷升級(jí),從而延長了產(chǎn)品上市時(shí)間,增加了研發(fā)成本,并且導(dǎo)致問題出現(xiàn)時(shí)出現(xiàn)代價(jià)昂貴的延誤。半導(dǎo)體制造商們在應(yīng)對重重挑戰(zhàn)時(shí),全面預(yù)測生產(chǎn)
    的頭像 發(fā)表于 08-19 13:53 ?450次閱讀
    普迪飛 | AI預(yù)測建模<b class='flag-5'>工具</b>,釋放AI/<b class='flag-5'>ML</b>的強(qiáng)大潛力!

    這家電動(dòng)工具很出圈!行業(yè)黑馬“巨大工具”如何提供用戶價(jià)值?

    近年來,電動(dòng)工具行業(yè)呈現(xiàn)強(qiáng)勁增長態(tài)勢。電動(dòng)工具作為現(xiàn)代工業(yè)與民生領(lǐng)域的“剛需利器”,正深度融入國民經(jīng)濟(jì)各個(gè)環(huán)節(jié)。在龐大的市場中,浙江津燦工貿(mào)有限公司旗下的巨大工具專注于為客戶量身定制專
    的頭像 發(fā)表于 04-30 10:13 ?1091次閱讀
    這家電動(dòng)<b class='flag-5'>工具</b>很出圈!行業(yè)黑馬“巨大<b class='flag-5'>工具</b>”如何<b class='flag-5'>提供</b>用戶價(jià)值?

    FLIR工具如何助力電氣工作高效安全

    在電氣承包領(lǐng)域,擁有高效、精準(zhǔn)的工具是保障工作效率與客戶安全的關(guān)鍵。隨著技術(shù)的不斷進(jìn)步,系列創(chuàng)新的電氣檢測工具應(yīng)運(yùn)而生,它們不僅能夠幫助電氣承包商迅速定位
    的頭像 發(fā)表于 04-25 09:54 ?844次閱讀

    關(guān)于ML4842輸出PWM波形失真問題?

    如示波器波形所示,ML4842芯片11腳PWM輸出波形失真是什么原因造成,原理圖上的PWM輸出管已經(jīng)拆除,實(shí)際原理圖與圖上原理圖有區(qū)別,ML4842電壓VCC獨(dú)立供電
    發(fā)表于 04-09 14:52

    Raspberry Pi Pico 2 上實(shí)現(xiàn):實(shí)時(shí)機(jī)器學(xué)習(xí)(ML)音頻噪音抑制功能

    Arm公司的首席軟件工程師SandeepMistry為我們展示了種全新的巧妙方法:在RaspberryPiPico2上如何將音頻噪音抑制應(yīng)用于麥克風(fēng)輸入。機(jī)器學(xué)習(xí)(ML)技術(shù)徹底改變了許多軟件應(yīng)用
    的頭像 發(fā)表于 03-25 09:46 ?1253次閱讀
    Raspberry Pi Pico 2 上實(shí)現(xiàn):實(shí)時(shí)機(jī)器學(xué)習(xí)(<b class='flag-5'>ML</b>)音頻噪音抑制功能