《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 誰將開發(fā)軟件 2.0 時代的首款 IDE?

誰將開發(fā)軟件 2.0 時代的首款 IDE?

2021-05-25
來源:CSDN

  我發(fā)現(xiàn),有時候人們會把神經(jīng)網(wǎng)絡(luò)當作“不過是機器學(xué)習(xí)工具箱中的工具之一而已”。它有優(yōu)點也有缺點,在某些領(lǐng)域有用,并且可以幫助你打贏 Kaggle 比賽。很不幸,這種觀點完全是只見樹木,不見森林。神經(jīng)網(wǎng)絡(luò)可不只是又一種分類器而已,它代表著一種根本轉(zhuǎn)變的開始,這種轉(zhuǎn)變與我們?nèi)绾伍_發(fā)軟件有關(guān)。它就是軟件2.0

  我們對軟件1.0已經(jīng)比較熟悉 — 它們由計算機語言(如 Python、C++ 等)所開發(fā)。  由程序員顯式指定計算機指令。隨著編寫一行行代碼,程序員在整個程序空間中可以確定一個符合期待行為的點與之對比的,軟件2.0由更抽象、人類更難理解的語言(比如說,神經(jīng)網(wǎng)絡(luò)中的權(quán)重)開發(fā)。沒人可以直接參與這種代碼的編寫,因為它涉及到大量的權(quán)重(往往上百萬數(shù)量級),并且(我試過)直接編寫權(quán)重某種意義上是很困難的。

  取而代之的是,我們?yōu)槌绦虻男袨橹付繕耍ū热纾胺蠑?shù)據(jù)集中樣本的輸入輸出對”,又或者“贏得圍棋比賽”),并寫好程序的骨架(比如神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)),這樣就在整個程序空間中確定了一個可以用于搜索的子集,然后就可以使用我們所有的計算資源在這個空間中搜索可用的程序。

  對于神經(jīng)網(wǎng)絡(luò)而言,我們將搜索限制在程序空間的一個連續(xù)的子集上,并且,使用反向傳播和 SGD 方法進行搜索,(出人意料地)這種搜索方式挺有效。

微信圖片_20210525173606.png

  更具體地對比,軟件1.0是將人工設(shè)計的源碼(比如 .cpp 文件)編譯為可以有效工作的二進制文件。而軟件2.0的源碼通常由兩部分組成:1)定義了目標行為的數(shù)據(jù)集 2)給定代碼大致結(jié)構(gòu),但是需要填充細節(jié)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過程,就是將數(shù)據(jù)集編譯成二進制文件的過程 — 得到最終的神經(jīng)網(wǎng)絡(luò)。時至今日,大多數(shù)實際應(yīng)用中,神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)及訓(xùn)練系統(tǒng)已經(jīng)日益標準化為一種商品,所以,大部分活躍的“軟件開發(fā)”工作某種形式上變成了組織、增加、調(diào)整和清理帶標簽的數(shù)據(jù)集。這從根本上改變了我們迭代軟件的編程范式,將開發(fā)團隊分成了兩撥:軟件2.0的程序員(數(shù)據(jù)標記員)負責(zé)編輯和擴大數(shù)據(jù)集,而另一小撮人,維護著與訓(xùn)練有關(guān)的基礎(chǔ)設(shè)施以及分析、可視化和標注等接口。

  事實證明,對于真實世界中的很多問題,采集數(shù)據(jù)(更泛化地說,確定期待的行為)比顯式地寫程序要容易得多。

  由于以上以及以下我將要介紹的軟件2.0的諸多好處,我們正在見證工業(yè)界大量代碼從軟件1.0遷移至軟件2.0的重大轉(zhuǎn)變。軟件1.0吞噬著整個世界,軟件2.0(AI)在吞噬軟件1.0。

  1.轉(zhuǎn)變進行時

  讓我們來看看這場轉(zhuǎn)變中的具體領(lǐng)域的例子。我們會發(fā)現(xiàn),在過去幾年,對于這些領(lǐng)域,我們放棄了嘗試通過顯式寫代碼的方式去解決復(fù)雜問題,取而代之的,是轉(zhuǎn)向了軟件2.0。

  圖像識別:圖像識別之前常常是由特征工程組成的,只是在最后加入一點點機器學(xué)習(xí)(比如:SVM)。

  之后,通過使用更大的數(shù)據(jù)集(比如 ImageNet)和在卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)空間中進行搜索,我們發(fā)現(xiàn)了更強大的視覺特征。最近,我們甚至不再相信自己手寫的網(wǎng)絡(luò)結(jié)構(gòu),而開始用類似的方法搜索(最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu))。

  語音識別:以前的語音識別工作,涉及到大量的預(yù)處理工作、高斯混合模型和隱式馬爾科夫模型,但是現(xiàn)在,幾乎只需要神經(jīng)網(wǎng)絡(luò)。還有一句與之非常相關(guān)的搞笑名言,是 1985 年 Fred Jelinek 所說:“每當我開除一個語言學(xué)家,我的語音識別系統(tǒng)的性能就會提高一點”。

  語音合成:歷史上,語音合成一直采用各種拼接技術(shù),但是現(xiàn)在,SOTA(State Of The Art) 類型的大型卷積網(wǎng)絡(luò)(比如 WaveNet)可以直接產(chǎn)生原始音頻信號輸出。

  機器翻譯:機器翻譯的實現(xiàn)之前常常采用基于短語的統(tǒng)計方法,但是神經(jīng)網(wǎng)絡(luò)正迅速占領(lǐng)了統(tǒng)治地位。我最喜歡的網(wǎng)絡(luò)結(jié)構(gòu)就與多語言訓(xùn)練有關(guān):一個模型就可以把任意源語言翻譯成任意目標語言,并且是無監(jiān)督學(xué)習(xí)的(或者只需要很弱的監(jiān)督)。

  游戲:很長一段時間里,人們通過手寫圍棋程序來進行游戲?qū)?zhàn),但如今,AlphaGo Zero(一種觀察棋盤原始狀態(tài)并對戰(zhàn)的卷積網(wǎng)絡(luò))成為了圍棋領(lǐng)域最強玩家。我預(yù)測在其它領(lǐng)域,如 DOTA 2、星際爭霸,也會有類似的結(jié)果。

  數(shù)據(jù)庫:更多的本處于 AI 領(lǐng)域之外的傳統(tǒng)系統(tǒng),也顯露出向軟件2.0轉(zhuǎn)變的早期跡象。比如,“索引結(jié)構(gòu)學(xué)習(xí)案例”里,使用神經(jīng)網(wǎng)絡(luò)替代了原有的數(shù)據(jù)管理核心組件,其速度最高比做了緩存優(yōu)化的 B樹快70%,同時還省了一個數(shù)量級的內(nèi)存。

  你可能注意到了上面很多鏈接的工作是 Google 做的。這是因為目前 Google 就是將大量自己的代碼轉(zhuǎn)變?yōu)檐浖?.0的排頭兵。“一個萬能的模型”所描繪的草圖是:將原本散落在各個領(lǐng)域的基于統(tǒng)計的效果,融合成一個整體來理解世界。

  2.軟件2.0的好處

  為什么我們更傾向于把復(fù)雜程序移植到軟件2.0?顯然,一個簡單的答案是實踐證明它的效果更好。然而,還有很多其它的理由值得我們選擇軟件2.0。讓我們看看軟件2.0(卷積神經(jīng)網(wǎng)絡(luò)為代表)與軟件1.0(生產(chǎn)級別的C++代碼庫為代表)相比的好處,對于軟件2.0:

  同質(zhì)化計算:一個典型的神經(jīng)網(wǎng)絡(luò)僅有兩種操作組合而成:矩陣乘法和激活函數(shù)(ReLu)。傳統(tǒng)軟件里的指令與之相比,明顯會更加復(fù)雜和異構(gòu)。由于只要用軟件1.0的方法實現(xiàn)非常少部分的核心代碼(比如矩陣乘法),正確性/性能驗證都會容易很多。

  對芯片更友好:因為神經(jīng)網(wǎng)絡(luò)所需要的指令集相對更小,作為推論,在芯片上實現(xiàn)它們將會更容易,比如,使用自定義 ASIC 芯片、neuromorphic chips 等等。當?shù)湍芎牡闹悄茉O(shè)備充斥在我們周圍時,這個世界也將為此改變。比如,把預(yù)訓(xùn)練卷積網(wǎng)絡(luò)、語音識別、WaveNet 語音合成網(wǎng)絡(luò)裝載到便宜又小巧的設(shè)備中,這樣你可以用它連接其它東西。

  常量級的運行時間:一個典型的神經(jīng)網(wǎng)絡(luò)的每次前向迭代,需要的計算量(FLOPs)是高度一致的。在你手寫的復(fù)雜 C++ 代碼中會出現(xiàn)的各種執(zhí)行分支,在軟件 2.0 中是不存在的。當然,你也許會有動態(tài)圖的需求,但是執(zhí)行流通常也是被嚴格限制了。即使在這種情況下,我們幾乎也能保證,不會陷入未預(yù)料的無限循環(huán)之中。

  常量級的內(nèi)存消耗:和上面一點相關(guān),因為沒有動態(tài)分配內(nèi)存的需要,所以幾乎沒有可能需要與硬盤進行 swap,代碼中也沒內(nèi)存泄漏的可能。

  高度可移植:同傳統(tǒng)的二進制文件或腳本相比,一連串的矩陣乘法操作要更容易運行在各種計算機環(huán)境下。

  敏捷開發(fā):如果你在寫 C++,并且有人希望你開發(fā)速度提高2倍(可以犧牲性能的前提下),那么為適配新要求而調(diào)整系統(tǒng)可不是一件小事。然而,在軟件2.0中,我們只需要移除掉(計算圖中)一半的路徑,然后重新訓(xùn)練,就能得到精確度差一點點,但訓(xùn)練快兩倍的結(jié)果。這很神奇。反過來說,只要你得到了更多的數(shù)據(jù)和算力,你可以馬上通過擴大計算圖和重訓(xùn)練的方法,得到更好的實際效果。

  融合模塊以求最優(yōu):普通軟件通常被分解成多個模塊,各個模塊中間通過共有函數(shù)、API 或者端到端的方式通信。然而,對于軟件2.0,如果一開始2個相交互的模塊是獨立訓(xùn)練的,我們之后也很容易在整個系統(tǒng)中進行反向傳播。想想看,如果你的瀏覽器可以自動設(shè)計底層指令,從而提高加載頁面的速度;或者說你導(dǎo)入的計算機視覺庫(比如 OpenCV)可以根據(jù)你的特定數(shù)據(jù),自動調(diào)整行為;這將多么美妙。在軟件2.0中,這些都是基本操作。

  比你更優(yōu)秀:最后,也是最重要的一點,在很多垂直領(lǐng)域中,神經(jīng)網(wǎng)絡(luò)產(chǎn)生的代碼要比你或者我寫的代碼好。就目前而言,起碼在圖像、視頻、語音這些領(lǐng)域中是這樣的。

  3.軟件2.0的缺點

  軟件2.0也有一些缺點。當優(yōu)化完成后,我們可以得到實踐中很有效的巨大網(wǎng)絡(luò),但是很難解釋它為什么有效。在許多領(lǐng)域,我們可以選擇比較好理解但是只有90%精度的模型;或者選擇不理解,但是有99%精度的模型。

  軟件2.0會出現(xiàn)不直觀的、尷尬的錯誤,甚至更糟糕的,還可能“默默出錯”。比如,如果在訓(xùn)練時默默地采納了具有偏差的數(shù)據(jù),當數(shù)據(jù)數(shù)量大到百萬級別時,再想分析和檢查原因,就變得非常困難了。

  最后,軟件2.0的奇怪特性也在不斷出現(xiàn)。比如,對抗樣本和攻擊樣本的存在,使得軟件2.0的不可解釋性問題變得更加突出。

  4.軟件2.0編程

  軟件1.0的代碼,是我們手寫的代碼。軟件2.0的代碼,是基于評估準則(比如“把訓(xùn)練數(shù)據(jù)正確分類”)優(yōu)化得來的。對于那些原理不明顯,但是可以反復(fù)評估表現(xiàn)的程序,都適用于這種轉(zhuǎn)變,因為與人寫的代碼相比,優(yōu)化方法找到的代碼要好得多。

  眼光很重要。當你意識到神經(jīng)網(wǎng)絡(luò)不僅僅是機器學(xué)習(xí)工具集中一種好用的分類器,而把軟件2.0當作嶄露頭角的全新編程范式時,可以外推的事情就變得顯而易見了,還有大量的工作可以去做。

  具體而言,我們已經(jīng)發(fā)明了大量輔助程序員做軟件1.0開發(fā)的工具,比如強大的 IDE,它可以具備很多功能,像語法高亮、調(diào)試器、profiler、符號跳轉(zhuǎn)、集成 git 等等。軟件2.0中,編程工作變成了積累、調(diào)整、清理數(shù)據(jù)集。比如,當某些極端情況下,神經(jīng)網(wǎng)絡(luò)失效了,我們并不會去通過寫代碼來修復(fù)問題,而是導(dǎo)入更多這種情況下的數(shù)據(jù)就可以了。

  誰將開發(fā)第一款軟件2.0的 IDE?它應(yīng)該可以在數(shù)據(jù)集相關(guān)的所有工作流中都發(fā)揮作用,包括積累數(shù)據(jù)、可視化、清洗數(shù)據(jù)、標記數(shù)據(jù)、生產(chǎn)數(shù)據(jù)。也許這種 IDE,會根據(jù)每個樣本的 loss,把網(wǎng)絡(luò)懷疑被錯誤標注的圖像給拎出來,或者通過預(yù)測提示應(yīng)該選用的標簽的方式輔助標注數(shù)據(jù),再或者依據(jù)網(wǎng)絡(luò)預(yù)測的不確定性,推薦適合標注的樣本。

  類似的,Github 是軟件1.0時代非常成功的網(wǎng)站。是否有可能出現(xiàn)軟件2.0時代的 Github?軟件2.0時代,倉庫將是數(shù)據(jù)集,而 commit 是由增加和編輯數(shù)據(jù)標簽組成的。

  傳統(tǒng)的包管理工具和部署手段,比如 pip、conda、docker 等幫助我們更輕松地部署和安裝軟件。在軟件2.0時代,如何更有效地部署、分享、導(dǎo)入和運行軟件呢?在神經(jīng)網(wǎng)絡(luò)中,與 conda 對等的東西又會是什么呢?

  簡而言之,在可以低成本反復(fù)評估、并且算法難以顯式設(shè)計的領(lǐng)域,軟件2.0都將日益流行起來。當我們考慮整個開發(fā)生態(tài)以及如何適配這種新的編程范式時,會發(fā)現(xiàn)很多令人興奮的機會。長遠來看,這種編程范式擁有光明的未來,因為越來越確認的是:當我們某天要開發(fā)通用人工智能時,一定是使用軟件2.0。




電子技術(shù)圖片.png


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲综合首页| 欧美成人亚洲成人| 亚洲精选在线观看| 久久成人18免费网站| 亚洲视频专区在线| 亚洲精选一区| 亚洲三级免费观看| 亚洲精品免费观看| 亚洲精品视频免费| 亚洲九九九在线观看| 亚洲青色在线| 亚洲人体偷拍| 99re热这里只有精品免费视频| 亚洲黄色免费网站| 亚洲激情在线激情| 亚洲精品欧美在线| 亚洲精品在线观看视频| 亚洲开发第一视频在线播放| 91久久久久久久久| 91久久精品日日躁夜夜躁欧美| 亚洲国产成人一区| 亚洲国产综合在线| 日韩一级裸体免费视频| 一区二区精品在线| 亚洲欧美日韩国产成人| 午夜在线a亚洲v天堂网2018| 欧美在线|欧美| 亚洲国产日韩欧美综合久久 | 亚洲在线不卡| 亚洲欧美日韩成人高清在线一区| 性伦欧美刺激片在线观看| 欧美一区二区高清| 久久裸体艺术| 欧美激情综合在线| 欧美三级视频在线播放| 国产伦精品一区二区三区在线观看 | 国产精品日本一区二区| 国产日韩欧美亚洲一区| 激情文学一区| 夜夜爽www精品| 午夜激情久久久| 亚洲国产毛片完整版 | 中文日韩欧美| 欧美一区二区在线看| 亚洲人成亚洲人成在线观看| 中国成人在线视频| 欧美影院成人| 欧美国产日韩一二三区| 欧美视频在线免费| 国产一区二区av| 亚洲精品乱码| 午夜精品一区二区三区在线| 久久国内精品视频| 99综合视频| 久久精品导航| 欧美精品在线免费播放| 国产精品视频第一区| 一区二区在线视频播放| 9i看片成人免费高清| 欧美一级播放| 一区二区三区**美女毛片| 久久精品人人做人人爽电影蜜月| 男人的天堂亚洲在线| 国产精品久在线观看| 在线观看日韩专区| 亚洲天天影视| 亚洲精品国产视频| 欧美一区二区视频网站| 欧美激情亚洲激情| 国产午夜精品视频| 亚洲最新在线视频| 亚洲黄色免费电影| 欧美制服丝袜| 欧美三日本三级三级在线播放| 国产一区二区主播在线| 一区二区三区视频在线看| 亚洲国产日韩在线一区模特| 欧美一级大片在线观看| 欧美日韩国产三级| 1024国产精品| 新片速递亚洲合集欧美合集| 中文在线不卡| 欧美国产1区2区| 狠狠做深爱婷婷久久综合一区| 亚洲视频你懂的| 99精品99| 免费欧美电影| 国内精品模特av私拍在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲三级国产| 久久久久久婷| 国产欧美日韩不卡免费| 一本色道久久综合亚洲精品不| 最新成人av在线| 久久久美女艺术照精彩视频福利播放| 欧美偷拍另类| 日韩视频免费在线观看| 亚洲激情第一区| 久久精品一区二区三区中文字幕 | 国产精品一区视频| 日韩亚洲视频在线| 亚洲精品在线看| 欧美成黄导航| 极品尤物av久久免费看| 午夜精品一区二区三区在线视| 亚洲欧美激情一区| 国产精品扒开腿爽爽爽视频| 亚洲裸体视频| 一区二区三区四区五区精品视频 | 亚洲一区二区不卡免费| 欧美日韩第一页| 亚洲欧洲日本国产| 亚洲精品在线二区| 欧美精品二区| 最近看过的日韩成人| 亚洲精品乱码视频| 欧美激情视频一区二区三区在线播放 | 国产女主播一区二区| 亚洲性av在线| 亚洲欧美电影院| 国产精品社区| 先锋影音久久久| 久久精品国内一区二区三区| 国产日韩视频| 欧美伊人久久大香线蕉综合69| 久久久91精品国产一区二区三区 | 亚洲在线免费观看| 国产精品久久久久久久久果冻传媒| 一本色道久久综合亚洲精品高清 | 亚洲精品一区二| 一本色道久久综合精品竹菊| 欧美日韩另类综合| 亚洲网站在线播放| 欧美一区二区在线观看| 国产欧美在线播放| 久久国产精品99精品国产| 久久婷婷av| 亚洲国产精选| 亚洲午夜一区二区| 国产精品亚洲综合久久| 校园春色综合网| 免费成人黄色av| 亚洲人成人99网站| 亚洲一区二区三区涩| 国产日韩精品一区二区| 久久精品视频在线| 欧美精品日本| 亚洲一级黄色| 久久人人看视频| 亚洲人成网站777色婷婷| 亚洲视频在线观看| 国产欧美一区二区精品忘忧草| 亚洲第一精品影视| 欧美大片在线看免费观看| 日韩午夜在线视频| 久久精品国产亚洲5555| 亚洲国产成人porn| 亚洲男女自偷自拍| 国产亚洲精品成人av久久ww| 亚洲精品美女在线观看播放| 欧美性做爰猛烈叫床潮| 午夜在线播放视频欧美| 欧美激情精品久久久久久黑人| 亚洲特黄一级片| 久久在线91| 一区二区三区导航| 另类av导航| 在线视频精品一区| 久久久噜噜噜久久久| 日韩视频免费在线观看| 久久久久99精品国产片| 日韩视频免费在线| 久久中文欧美| 正在播放亚洲| 免费日韩成人| 亚洲一线二线三线久久久| 欧美a级大片| 亚洲欧美激情一区二区| 欧美二区乱c少妇| 亚洲欧美国产不卡| 欧美激情视频一区二区三区免费 | 欧美午夜激情小视频| 久久成人人人人精品欧| 欧美三级在线视频| 亚洲国产日韩综合一区| 国产精品成人观看视频国产奇米| 久久国产精品久久久久久电车| 欧美日韩精品不卡| 欧美在线视频一区二区三区| 欧美三级乱码| 最新国产の精品合集bt伙计| 国产日韩一区二区三区| 一本一本久久a久久精品综合麻豆| 国产亚洲精品bv在线观看| 亚洲色图制服丝袜| 亚洲国产精品电影| 久久久九九九九| 亚洲专区在线| 欧美日韩蜜桃| 日韩视频专区|