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

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

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

谷歌團隊打造了一個名為JAX的系統(tǒng)

DPVg_AI_era ? 來源:未知 ? 作者:李倩 ? 2018-11-24 10:13 ? 次閱讀

谷歌團隊(非官方發(fā)布)打造了一個名為JAX的系統(tǒng),今日在Reddit引發(fā)了熱議。網(wǎng)友紛紛為它叫好——“說不定能夠取代TensorFlow”。本文便帶領(lǐng)讀者一覽JAX的廬山真面目。

這個工具說不定比TensorFlow還好用!

它就是JAX,一款由谷歌團隊打造(非官方發(fā)布),用于從純Python和Numpy機器學習程序中生成高性能加速器(accelerator)代碼,且特定于域的跟蹤JIT編譯器。

那么JAX到底有哪些威力呢?

JAX使用XLA編譯器基礎(chǔ)結(jié)構(gòu),來為子程序生成最有利于加速的優(yōu)化代碼,這些優(yōu)化子程序可以由任意Python調(diào)用和編排;

由于JAX與Autograd完全兼容,它允許Python函數(shù)的正、反向模式(forward- and reverse-mode)自動區(qū)分為任意順序;

由于JAX支持結(jié)構(gòu)化控制流,所以它可以在保持高性能的同時為復雜的機器學習算法生成代碼;

通過將JAX與Autograd和Numpy相結(jié)合,可得到一個易于編程且高性能的ML系統(tǒng),該系統(tǒng)面向CPU,GPU和TPU,且能擴展到多核Cloud TPU。

此“神器”在Reddit上引發(fā)了熱烈的討論,網(wǎng)友紛紛為它叫好:

我的天,“可微分的numpy”實在是太棒了!我對pytorch有一點不是很滿意,他們基本上重新做了numpy所做的一切,但存在一些愚蠢的差異,比如“dim”,而不是“axis”,等等。

JAX系統(tǒng)設(shè)計一覽

谷歌團隊通過觀察發(fā)現(xiàn),JAX的ML工作負載通常由PSC子程序控制。

JAX的設(shè)計便因此利用了函數(shù)通??梢灾苯釉跈C器學習代碼中識別的特性,使機器學習研究人員可以使用JAX的jit_ps修飾符進行注釋。

雖然手工注釋對非專業(yè)用戶和“零工作量知識”優(yōu)化提出了挑戰(zhàn),但它為專家提供了直接的好處,而且作為一個系統(tǒng)研究項目,它展示了PSC假設(shè)的威力。

JAX跟蹤緩存為跟蹤計算的參數(shù)創(chuàng)建了一個monomorphic signature,以便新遇到的數(shù)組元素類型、數(shù)組維度或元組成員觸發(fā)重新編譯。在跟蹤緩存丟失時,JAX執(zhí)行相應的Python函數(shù),并將其執(zhí)行跟蹤到具有靜態(tài)數(shù)據(jù)依賴關(guān)系的原始函數(shù)圖中。

現(xiàn)有的原語不僅包括數(shù)組級別的數(shù)字內(nèi)核,包括Numpy函數(shù)和其他函數(shù),它們允許用戶通過保留PSC屬性將控制流分段到編譯后的計算中。最后,JAX包含一些用于功能分布式編程的原語,如iterated_map_reduce。

為了生成代碼,JAX將跟蹤轉(zhuǎn)換為XLA HLO,這是一種中間語言,可以對高度可加速的數(shù)組級數(shù)值程序進行建模。從廣義上講,JAX可以被看作是一個系統(tǒng),它將XLA編程模型提升到Python中,并支持使用可加速的子程序,同時仍然允許動態(tài)編排。

defxla_add(xla_builder,xla_args,np_x,np_y):returnxla_builder.Add(xla_args[0],xla_args[1])defxla_sinh(xla_builder,xla_args,np_x):b,xla_x=xla_builder,xla_args[0]returnb.Div(b.Sub(b.Exp(xla_x),b.Exp(b.Neg(xla_x))),b.Const(2))defxla_while(xla_builder,xla_args,cond_fun,body_fun,init_val):xla_cond=trace_computation(cond_fun,args=(init_val,))xla_body=trace_computation(body_fun,args=(init_val,))returnxla_builder.While(xla_cond,xla_body,xla_args[-1])jax.register_translation_rule(numpy.add,xla_add)jax.register_translation_rule(numpy.sinh,xla_sinh)jax.register_translation_rule(while_loop,xla_while)

JAX從原語到XLA HLO的翻譯規(guī)則

另外,JAX和Autograd完全兼容。

importautograd.numpyasnpfromautogradimportgradfromjaximportjit_psdefpredict(params,inputs):forW,binparamsoutputs=np.dot(inputs,W)+binputs=np.tanh(outputs)returnoutputsdefloss(params,inputs,targets):preds=predict(params,inputs)returnnp.sum((preds-targets)**2)grad_fun=jit_ps(grad(loss))#Compiledgradient-of-lossfunction

一個與JAX完全連接的基本神經(jīng)網(wǎng)絡(luò)

實驗、性能結(jié)果比較

為了演示JAX和XLA提供的數(shù)組級代碼優(yōu)化和操作融合,谷歌團隊編譯了一個具有SeLU非線性的完全連接神經(jīng)網(wǎng)絡(luò)層,并在圖1中顯示JAX trace和XLA HLO圖形。

圖1:XLA HLO對具有SeLU非線性的層進行融合?;疑虮硎舅械牟僮鞫既诤系紾EMM中。

使用一個線程和幾個小的示例優(yōu)化問題(包括凸二次型、隱馬爾科夫模型(HMM)邊緣似然性和邏輯回歸)將Python執(zhí)行時間與CPU上的JAX編譯運行時進行了比較。

對于某些CPU示例來說,XLA的編譯時間比較慢,但將來可能會有顯著的改進,對于經(jīng)過warmed-up代碼(表1),XLA的編譯速度非??臁?/p>

表1:在CPU上Truncated Newton-CG的計時(秒)

在GPU上訓練卷積網(wǎng)絡(luò)。谷歌團隊實現(xiàn)了一個all-conv CIFAR-10網(wǎng)絡(luò),只涉及卷積和ReLU激活。谷歌編寫了一個單獨的隨機梯度下降(SGD)更新步驟,并從一個純Python循環(huán)中調(diào)用它,結(jié)果如表2所示。

作為參考,谷歌在TensorFlow中實現(xiàn)了相同的算法,并在類似的Python循環(huán)中調(diào)用它。

表2:GPU上JAX convnet步驟的計時(msec)

云TPU可擴展性。云TPU核心上的全局批處理的JAX并行化呈現(xiàn)線性加速(圖2,左)。在固定的minibatch / replica中,texec受復制計數(shù)的影響最小(在2ms內(nèi),右邊)

圖2:為ConvNet訓練步驟在云TPU上進行擴展。

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

    關(guān)注

    27

    文章

    6128

    瀏覽量

    104979
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1617

    瀏覽量

    49019
  • 機器學習
    +關(guān)注

    關(guān)注

    66

    文章

    8357

    瀏覽量

    132324

原文標題:試試谷歌這個新工具:說不定比TensorFlow還好用!

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

收藏 人收藏

    評論

    相關(guān)推薦

    谷歌研究人員推出革命性首個AI驅(qū)動游戲引擎

    在科技日新月異的今天,人工智能(AI)正以前所未有的速度滲透到我們生活的每一個角落,從自動駕駛汽車到智能家居,無不彰顯著其巨大的潛力和無限可能。而最近,谷歌研究團隊
    的頭像 發(fā)表于 08-29 17:21 ?497次閱讀

    蘋果公司組建AI團隊,從谷歌挖角專家

    蘋果公司近日在人工智能領(lǐng)域取得重大進展,成功從谷歌挖來數(shù)十名頂尖人工智能專家,并在瑞士蘇黎世設(shè)立了處神秘的歐洲實驗室。此舉標志著蘋果正組建支實力雄厚的團隊,旨在開發(fā)全新的人工智能模
    的頭像 發(fā)表于 05-13 11:39 ?554次閱讀

    谷歌員工爆料Python基礎(chǔ)團隊原地解散

    谷歌最近的項人事變動引發(fā)了技術(shù)圈的廣泛關(guān)注。據(jù)谷歌員工Thomas Wouters透露,與其共同致力于Python基礎(chǔ)開發(fā)的團隊,包括他本人和主管在內(nèi),都遭到了裁員。Thomas W
    的頭像 發(fā)表于 05-08 11:24 ?466次閱讀

    谷歌核心團隊裁員200人

    谷歌近日在其“核心”團隊中進行了裁員,涉及至少200名員工。此次裁員發(fā)生在公司上月月底公布財報之前,谷歌計劃將些崗位轉(zhuǎn)移至印度和墨西哥。
    的頭像 發(fā)表于 05-07 09:42 ?340次閱讀

    谷歌解散整個Python團隊

    近日,谷歌Python工程師Thomas Wouters在社交媒體上透露,谷歌對其Python團隊進行了架構(gòu)調(diào)整,整個團隊被解散。這變動可
    的頭像 發(fā)表于 05-06 10:50 ?578次閱讀

    谷歌核心團隊首次面臨裁員,面臨監(jiān)管壓力

     谷歌開發(fā)者生態(tài)系統(tǒng)副總裁Asim Husain通過電子郵件向團隊傳達裁員消息。他在市政廳的演講中告知員工,這是本年度團隊計劃中的最大規(guī)模
    的頭像 發(fā)表于 05-06 10:04 ?276次閱讀

    谷歌整合安卓系統(tǒng)與Pixel硬件團隊,奧斯特羅引領(lǐng)新"Platfo"

    Osterloh曾主管谷歌硬件部門,涵蓋Pixel、Fitbit以及Nest等各種產(chǎn)品的研發(fā)和戰(zhàn)略規(guī)劃。他對The Verge表示:“唯有結(jié)合硬件、軟件和AI團隊,方能為用戶提供突破性AI體驗。
    的頭像 發(fā)表于 04-19 10:16 ?456次閱讀

    千億美元打造系統(tǒng),成本越來越高的AI超算

    和OpenAI合作,打造千億美元級別的超算系統(tǒng)。 ? 千億美元打造 AI 超算 ? 根據(jù)外媒報道,此次
    的頭像 發(fā)表于 04-09 00:19 ?3001次閱讀

    谷歌電話應用新增“查找號碼”功能,提升陌生來電識別效率

    細心的用戶AssembleDebug首先發(fā)現(xiàn)這個功能。在谷歌電話應用的測試版本中,若用戶點擊電話記錄內(nèi)的陌生號碼,便可找到名為“查找號
    的頭像 發(fā)表于 04-07 11:42 ?508次閱讀

    谷歌模型框架是什么軟件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌開發(fā)的用于機器學習和人工智能的軟件框架,其中最著名的是TensorFlow。TensorFlow是開源的機器學習框架,由
    的頭像 發(fā)表于 03-01 16:25 ?776次閱讀

    谷歌AI聊天機器人改名為Gemini

    谷歌(Google)近日宣布,旗下備受矚目的AI聊天機器人Bard正式更名為Gemini,并推出了款功能更加強大的付費版本——Gemini Advanced。這戰(zhàn)略調(diào)整旨在與微軟、
    的頭像 發(fā)表于 02-18 11:28 ?1028次閱讀

    谷歌DeepMind資深AI研究員創(chuàng)辦AI Agent創(chuàng)企

    近日,剛從谷歌DeepMind離職的資深AI研究員Ioannis Antonoglou宣布創(chuàng)辦了名為“AI Agent”的創(chuàng)企。Ioannis Antonoglou常駐倫敦,此前曾擔任谷歌
    的頭像 發(fā)表于 02-04 10:02 ?720次閱讀

    OpenAI組建AI價值觀新團隊

    近日,人工智能領(lǐng)域的領(lǐng)軍企業(yè)OpenAI宣布,他們正在組建全新的團隊名為“集體對齊”(Collective Alignment)。這個團隊
    的頭像 發(fā)表于 01-17 15:00 ?620次閱讀

    谷歌廣告團隊裁員數(shù)百人,員工轉(zhuǎn)向中等級別客戶服務

    目前有多位相關(guān)員工透露,谷歌正逐步將更多員工從大型客戶銷售團隊(LCS)調(diào)配至服務中等規(guī)模客戶的 Google 客戶解決方案團隊(GCS)。同時,谷歌也嘗試借助人工智能技術(shù)讓性能優(yōu)化
    的頭像 發(fā)表于 01-17 10:42 ?677次閱讀

    谷歌調(diào)整硬件業(yè)務,F(xiàn)itbit高管離任,AR團隊裁員

    在此次調(diào)整中,谷歌選擇采用更為集中的職能型結(jié)構(gòu),新設(shè)立的專業(yè)團隊將統(tǒng)負責處理Pixel、Nest 和 Fitbit的硬件工程工作,有望提升整體工作效率。
    的頭像 發(fā)表于 01-16 13:57 ?1471次閱讀