一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

做AI,底層框架or上層應(yīng)用?

DPVg_AI_era ? 來源:未知 ? 作者:李倩 ? 2018-09-05 08:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

做底層AI框架和上層AI應(yīng)用,哪個對自己的學(xué)術(shù)水平(或綜合能力)促進(jìn)更大?這一問題引起了知乎上不少的討論。本文對解浚源、微調(diào)等用戶的精彩回答做了整理,與讀者共享。

左手“底層AI框架”,右手“上層AI應(yīng)用”,如何選擇?

對于做AI相關(guān)工作的人來說,具體選擇做哪個方向,可能是需要深深糾結(jié)的一個問題。

知乎上就用戶提出了此問題,引起了不小的關(guān)注和討論:

新智元獲得了解浚源和微調(diào)兩位用戶的授權(quán),將他們對此問題的深度解析做了整理,與讀者共享。

要有側(cè)重,但兩方面都需了解

作為一個深度學(xué)習(xí)轉(zhuǎn)系統(tǒng)的人,我最近也在反思一個問題:深度學(xué)習(xí)系統(tǒng)(Deep Learning System)的核心到底是深度學(xué)習(xí)還是系統(tǒng)?

先放結(jié)論:無論你想做深度學(xué)習(xí)還是深度學(xué)習(xí)系統(tǒng),都需要同時(shí)了解兩方面的知識,根據(jù)自己的方向可以有所側(cè)重,但一定不能對一方面完全不懂,否則是很難做出在實(shí)踐中有用的成果的。

首先我們來看一下目前流行框架的開發(fā)團(tuán)隊(duì)和他們開發(fā)框架的驅(qū)動力:

Caffe:賈揚(yáng)清和伯克利視覺實(shí)驗(yàn)室的小伙伴們開發(fā)。開始主要是自己用,屬于需求驅(qū)動。

Torch:Yann LeCun的學(xué)生。需求驅(qū)動。

Theano:Yoshua Benjio的學(xué)生。用于自己科研,但是也發(fā)了系統(tǒng)的paper,屬于需求+科研驅(qū)動。

Tensorflow:Jeff Dean帶領(lǐng)的Google員工,主要是系統(tǒng)出身。源于Google在AI領(lǐng)域的布局需求,資本驅(qū)動。

Neon:nervana員工,作為創(chuàng)業(yè)公司的產(chǎn)品。資本驅(qū)動。

MXNet:DMLC(主要是華人機(jī)器學(xué)習(xí)和分布式系統(tǒng)學(xué)生)的小伙伴。主要是Minerva,Purine,和cxxnet的開發(fā)團(tuán)隊(duì)合在一起,一半搞機(jī)器學(xué)習(xí)的,一半搞系統(tǒng)的。需求+興趣驅(qū)動。

剩下還有很多搞系統(tǒng)的人出于興趣或者科研目的開發(fā)的框架,但大多沒有流行起來,就不再贅述了。

可以看出,除了Google強(qiáng)推的Tensorflow,大多都是從自用和興趣開始的。而Tensorflow的開發(fā)經(jīng)費(fèi)比其他所有框架的經(jīng)費(fèi)加起來還要多出幾十倍,但是一年下來并沒能一統(tǒng)江湖??梢娦枨篁?qū)動的力量,所謂“需要是發(fā)明之母”。

為什么主流深度學(xué)習(xí)框架多數(shù)出自“懂一點(diǎn)系統(tǒng)的搞深度學(xué)習(xí)的人”之手,而不是“懂一點(diǎn)深度學(xué)習(xí)的搞系統(tǒng)的人”呢?

我認(rèn)為主要是因?yàn)樯疃葘W(xué)習(xí)系統(tǒng)和傳統(tǒng)系統(tǒng)(比如操作系統(tǒng),數(shù)據(jù)庫)有一個本質(zhì)區(qū)別:深度學(xué)習(xí)算法各部分的耦合非常緊密,牽一發(fā)而動全身。

搞系統(tǒng)的人的思路是,我做一個系統(tǒng),定義好接口,保證接口正確,用戶用就可以了,不需要了解實(shí)現(xiàn)細(xì)節(jié)。畢竟你用操作系統(tǒng)并不需要了解文件系統(tǒng)格式,用數(shù)據(jù)庫并不需要了解一致性是怎么實(shí)現(xiàn)的。

但是這套思維用在深度學(xué)習(xí)系統(tǒng)上卻不合適。

其一,一個數(shù)據(jù)矩陣流過整個系統(tǒng),每一步的細(xì)節(jié)都可能對一百步以后的結(jié)果造成影響。而對于中間結(jié)果,你無法嚴(yán)格定義什么是正確的,一個好的算法不是N個好的部分的簡單疊加。Hinton就說過,Dropout看起來像個Bug,但是它提高了精度,所以是個“好bug”。

其二,因?yàn)樯疃葘W(xué)習(xí)算法復(fù)雜,需要控制的因素多,一個固定接口很難滿足所有用戶的需要。還不如把系統(tǒng)寫的簡單靈活一點(diǎn),讓用戶根據(jù)需要可以很方便的自己修改。

反過來對搞深度學(xué)習(xí)的人來說,如果你不了解系統(tǒng)內(nèi)部細(xì)節(jié),當(dāng)你的算法效果好的時(shí)候,你并不知道到底是哪些因素導(dǎo)致了效果好??赡軗Q了一個框架,效果就不好了,而原因是你根本不知道的某個實(shí)現(xiàn)細(xì)節(jié)。當(dāng)效果不好時(shí),你也不知道如何改進(jìn)。

另一方面來說,當(dāng)你需要實(shí)現(xiàn)一個新的算法的時(shí)候,經(jīng)常會發(fā)現(xiàn)框架現(xiàn)有的接口不能解決你的問題,這時(shí)候就需要對系統(tǒng)內(nèi)部的了解才能修改系統(tǒng)已實(shí)現(xiàn)自己的目的。

底層開發(fā)較難,上層更接地氣

上周開會時(shí)遇到了TAMU的胡俠老師,他介紹了他們組最近開發(fā)的一個自動機(jī)器學(xué)習(xí)開源框架Auto Keras。胡老師原話是這么說的:“做開源框架是非常有意義的事情,尤其是你的工作在短時(shí)間內(nèi)被很多人關(guān)注并使用是非常有成就感的?!?/p>

確實(shí)如此,很多業(yè)內(nèi)人士在逐漸把目光投向到更底層更接近“基礎(chǔ)設(shè)施”的方向上,比如自動調(diào)參、大規(guī)模機(jī)器學(xué)習(xí)、并行式機(jī)器學(xué)習(xí)。畢竟好的算法想要被更多人使用,就需要降低使用門檻,提供通用的框架。假設(shè)如果沒有Sklearn,估計(jì)做機(jī)器學(xué)習(xí)的人最起碼要少一半。如果沒有TF或者Torch,做深度學(xué)習(xí)的人估計(jì)也要少一半。

其實(shí)嚴(yán)格意義上來說,從提出算法,封裝算法,到應(yīng)用在現(xiàn)實(shí)數(shù)據(jù)集上是一個流水線作業(yè),是從上游到下游的工作。我的一個觀察是,做算法研究的很多人代碼寫的很糙,運(yùn)行效率可能非常低。

舉個簡單例子,當(dāng)你展示一個簡單的K近鄰算法時(shí),你可以寫成每次都進(jìn)行重新搜索,也可以先構(gòu)造一課K-D樹來降低時(shí)間復(fù)雜度。僅聰邏輯角度來看,前者和后者都是正確的,但效率可能相差不少。

這種現(xiàn)象造成了大部分前沿研究的結(jié)果不容易落地,因?yàn)榇a未經(jīng)優(yōu)化或者在實(shí)現(xiàn)時(shí)存在各種各樣的bug。我覺得一個非常好的突破角度就是研究如何高效實(shí)現(xiàn)各種傳統(tǒng)及前沿算法,從最簡單的向量化、并行運(yùn)算,到更復(fù)雜的結(jié)構(gòu)設(shè)計(jì)甚至到大規(guī)模的并行計(jì)算。如果把底層框架做好,那么對于工業(yè)界和科研界都有很大的意義:

工業(yè)界可以快速嘗試前沿算法,在真實(shí)數(shù)據(jù)上驗(yàn)證算法的可靠性及實(shí)用性。

科研界可以公平的對比前沿算法,防止科研造假。很多論文聲稱他們的算法是遠(yuǎn)超當(dāng)前的最佳算法(SOTA),但事實(shí)上可能僅僅是因?yàn)樗麄儧]有正確實(shí)現(xiàn)SOTA而已。

我從去年起開始嘗試造一些小輪子,也做了一些小框架。這個過程中由不少全新的感受:

設(shè)計(jì)、實(shí)現(xiàn)框架很容易,發(fā)現(xiàn)原有算法中的不足,有助于激發(fā)新的點(diǎn)子。以基于K近鄰的算法為例,假設(shè)在實(shí)現(xiàn)時(shí)你發(fā)現(xiàn)整個程序效率受制于K近鄰部分,你就可以嘗試用K-D樹來加速,甚至替換掉K近鄰的步驟,用聚類來模擬這個過程。所以當(dāng)你了解算法的瓶頸時(shí),你就可以提出新的有意義改進(jìn),反哺學(xué)術(shù)研究。

增強(qiáng)自己的實(shí)現(xiàn)能力,避免沉溺研究后的紙上談兵。近兩年最受關(guān)注的傳統(tǒng)分類方法要數(shù)陳天奇的XGBOOST,的確非常的好用。我認(rèn)為XGBOOST的成功要?dú)w功于算法很早就被封裝成了成熟的工具庫,這是基于陳天奇老師深厚的系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)功力。我想過去十年肯定有一些很優(yōu)秀的算法蒙塵,只是因?yàn)樗鼈兊淖髡邿o法把它們封裝成成熟的輪子供大家使用,非??上?。

更符合工業(yè)界的定位,為求職路加分。其實(shí)大部分情況下,工業(yè)界并不在意你發(fā)過多少厲害的文章,而更在意你是否可以把公司的需求落地。我自己的經(jīng)驗(yàn)是即使是學(xué)術(shù)參會,也沒有多少人對我的水文感興趣,而更多的是聊我開發(fā)框架的經(jīng)歷,因?yàn)樗麄儾粌H聽說過可能還是使用者。

成就感。框架的使用者遠(yuǎn)比論文的閱讀者要多得多,當(dāng)你發(fā)現(xiàn)你設(shè)計(jì)的框架被全世界的人廣泛使用時(shí),會有很強(qiáng)的成就感,會覺得自己為這個領(lǐng)域發(fā)展做出了一點(diǎn)點(diǎn)貢獻(xiàn),而不是僅僅寫出了一些這輩子不會再有人看的水文。

以上觀點(diǎn)主要在討論要不要嘗試學(xué)習(xí)開發(fā)框架,嘗試造出一些新的輪子?;氐秸},「底層框架」哪個「上層應(yīng)用」更好?我的觀點(diǎn)是這取決于你所擁有的技能:

底層框架:難點(diǎn)在于封裝和性能。比如如何設(shè)計(jì)API(接口),如何提高運(yùn)行速度進(jìn)行優(yōu)化,如何寫好測試保證方法正確。

上層應(yīng)用:難點(diǎn)在于如何把已有的輪子用在現(xiàn)實(shí)數(shù)據(jù)上去,這涉及里很多現(xiàn)實(shí)的問題比如數(shù)據(jù)清理,比如理解如何正確的調(diào)用底層的功能。

一般來說,大部分人不適合寫底層。畢竟優(yōu)秀的框架已經(jīng)很多,而且對于系統(tǒng)架構(gòu)以及代碼優(yōu)化的要求很高,大部分人并不具備所需的知識。

而上層應(yīng)用就顯得更接地氣,可以加深我們對于數(shù)據(jù)的敏感度,擅長做上層應(yīng)用的同學(xué)也會是職場offer收割機(jī)。其實(shí)能夠做好上層應(yīng)用并不容易,這需要對于問題的深入理解。

換句話說,底層框架和上層應(yīng)用分的是不同的蛋糕,側(cè)重點(diǎn)各不相同。

從做研究的角度來看,發(fā)明一個算法其實(shí)不該是終點(diǎn)。作為算法的提出者更應(yīng)該自己動手實(shí)現(xià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)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    88

    文章

    35164

    瀏覽量

    280023
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5561

    瀏覽量

    122799

原文標(biāo)題:做底層 AI 框架和做上層 AI 應(yīng)用,哪個對自己的學(xué)術(shù)水平(或綜合能力)促進(jìn)更大?

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    AI框架歷史演進(jìn)和趨勢探索

    電子發(fā)燒友網(wǎng)報(bào)道(文/李彎彎)AI框架是一種底層開發(fā)工具,是集深度學(xué)習(xí)核心訓(xùn)練和推理框架、基礎(chǔ)模型庫、端到端開發(fā)套件、豐富的工具組件于一體的平臺。 有了
    的頭像 發(fā)表于 10-20 01:52 ?2730次閱讀

    開發(fā)者手機(jī) AI - 目標(biāo)識別 demo

    Network Runtime 神經(jīng)網(wǎng)絡(luò)運(yùn)行時(shí),作為中間橋梁連通上層AI推理框架底層加速芯片,實(shí)現(xiàn)AI模型的跨芯片推理計(jì)算。提供統(tǒng)一
    發(fā)表于 04-11 16:14

    AD10用什么快捷鍵可以在3D視圖中上層底層快速切換啊 ...

    AD10用什么快捷鍵可以在3D視圖中上層底層快速切換啊
    發(fā)表于 11-30 16:09

    Firefly支持AI引擎Tengine,性能提升,輕松搭建AI計(jì)算框架

    `Tengine 是OPEN AI LAB 為嵌入式設(shè)備開發(fā)的一個輕量級、高性能并且模塊化的引擎?;贏RM平臺高效的計(jì)算庫實(shí)現(xiàn),針對特定硬件平臺的性能優(yōu)化,吸取已有AI計(jì)算框架的優(yōu)點(diǎn),設(shè)計(jì)全新
    發(fā)表于 08-13 15:58

    嵌入式Linux框架的相關(guān)資料分享

    從事嵌入式linux工作也幾年了,如果算上大學(xué)期間的自學(xué),那么也算是個工程師了。期間寫過底層bootloader、內(nèi)核的驅(qū)動和上層應(yīng)用程序。對于芯片內(nèi)部的模塊也在大學(xué)時(shí)候用fpga的verilog
    發(fā)表于 11-05 06:22

    應(yīng)用程序調(diào)用底層驅(qū)動

    本片主要講述了嵌入式linux操作系統(tǒng)的上層應(yīng)用程序是如何調(diào)用底層驅(qū)動程序的。
    發(fā)表于 03-14 15:00 ?0次下載

    Sensor 驅(qū)動框架的整體架構(gòu)詳細(xì)介紹

    Sensor 驅(qū)動框架的作用是:為上層提供統(tǒng)一的操作接口,提高上層代碼的可重用性;簡化底層驅(qū)動開發(fā)的難度,只要實(shí)現(xiàn)簡單的 ops(operations: 操作命令) 就可以將傳感器注冊
    的頭像 發(fā)表于 02-22 16:38 ?1.6w次閱讀
    Sensor 驅(qū)動<b class='flag-5'>框架</b>的整體架構(gòu)詳細(xì)介紹

    驅(qū)動之路-設(shè)備模型之上層模型

    底層模型決定上層模型,在總線,設(shè)備,驅(qū)動的結(jié)構(gòu)體中你總是可以看到它們間接或者直接的包含了kobject結(jié)構(gòu)或kset結(jié)構(gòu)。
    發(fā)表于 05-15 17:04 ?752次閱讀
    驅(qū)動之路-設(shè)備模型之<b class='flag-5'>上層</b>模型

    深入剖析esp32c3的系統(tǒng)底層啟動

    1.本文概述對于esp32的玩法,基本上定位都是做上層應(yīng)用,樂鑫官方提供的ESP-IDF物聯(lián)網(wǎng)開發(fā)框架已經(jīng)十分的完善,做上層應(yīng)用按照這套框架進(jìn)行開發(fā),完全不必了解
    的頭像 發(fā)表于 07-06 10:38 ?1.3w次閱讀
    深入剖析esp32c3的系統(tǒng)<b class='flag-5'>底層</b>啟動

    華為基于昇騰AI基礎(chǔ)軟硬件平臺 助力企業(yè)的數(shù)字化和智能化轉(zhuǎn)型

    華為基于昇騰AI基礎(chǔ)軟硬件平臺,逐步打造完善了從底層硬件、到中間AI框架到上層應(yīng)用使能平臺的整個AI全棧解決方案。
    的頭像 發(fā)表于 05-26 14:28 ?2753次閱讀

    alsa底層框架系統(tǒng)配置與插件

    網(wǎng)上大多數(shù)是 alsa 底層框架、音頻驅(qū)動的文章,應(yīng)用開發(fā)的入門少得可憐。從業(yè)務(wù)需求出發(fā),摸索積累了一些 alsa 應(yīng)用開發(fā)心得。出此文以便后來者快速入門。
    的頭像 發(fā)表于 07-04 09:04 ?8839次閱讀

    AI框架歷史演進(jìn)和趨勢探索

    電子發(fā)燒友網(wǎng)報(bào)道(文/李彎彎)AI框架是一種底層開發(fā)工具,是集深度學(xué)習(xí)核心訓(xùn)練和推理框架、基礎(chǔ)模型庫、端到端開發(fā)套件、豐富的工具組件于一體的平臺。 有了
    的頭像 發(fā)表于 10-20 11:28 ?1396次閱讀

    ChatGPT:AI模型框架研究

      一、AI框架重要性日益突顯,框架技術(shù)發(fā)展進(jìn)入繁榮期,國內(nèi)AI框架技術(shù)加速發(fā)展:  1、AI
    發(fā)表于 03-29 17:06 ?9次下載

    AI開發(fā)框架集成介紹

    隨著AI應(yīng)用的廣泛深入,單一框架往往難以滿足多樣化的需求,因此,AI開發(fā)框架的集成成為了提升開發(fā)效率、促進(jìn)技術(shù)創(chuàng)新的關(guān)鍵路徑。以下,是對AI
    的頭像 發(fā)表于 01-07 15:58 ?560次閱讀

    京東中臺化底層支撐框架技術(shù)分析及隨想

    架構(gòu)涉及的變化和影響,只是從中臺化演進(jìn)的思路,及使用的底層支撐技術(shù)框架進(jìn)行分析探討,重點(diǎn)對中臺及前臺協(xié)作涉及到的擴(kuò)展點(diǎn)及熱部署包的底層技術(shù)細(xì)節(jié),結(jié)合京東實(shí)際落地情況,對涉及的核心技術(shù)框架
    的頭像 發(fā)表于 04-08 11:29 ?268次閱讀
    京東中臺化<b class='flag-5'>底層</b>支撐<b class='flag-5'>框架</b>技術(shù)分析及隨想