作者 | 紫杉
來源 | Charlotte數(shù)據(jù)挖掘
我個人認為,在AI這塊領(lǐng)域,未來最缺的一是工程能力強的算法人才,過去兩年因為剛興起,所以很多人可能只會調(diào)參就能找到工作,但是這兩年資本寒冬,市場不好,只會調(diào)參的「調(diào)參俠」已經(jīng)遠遠不能滿足工業(yè)界的需求了,對于模型的部署、壓縮、上線等等都需要有非常強的工程能力才行;二是具有落地思維的算法/產(chǎn)品。能夠把空想的、很難落地的項目做到落地,才是真正有價值的有意義的事,沒有任何落地,紙上談兵,撐不了幾年的。
這個問題不是很好回答。前一半問題是“哪個方向”,似乎講的是領(lǐng)域和研究方向,后一半問題“最緊缺人才”,又和就業(yè)有關(guān)。所以我的回答盡量把這兩方面兼顧,先談就業(yè)和工業(yè)界緊缺的人才,再說說學術(shù)界缺少的人才。
我最近被兩個前輩抓到他們的創(chuàng)業(yè)公司做暑期實習,公司是什么最好就不說了,但除我之外還騙來了一個清華的本科生(從北京騙到了硅谷)。兩位前輩一個是Sebastian Thrun(賽巴斯提安·特龍)的學生,一位是Stefano Ermon的學生,去年在AAAI拿了個最佳論文的獎。
我雖然對工業(yè)界一直都不太熟悉,但借這個機會算是好好看到了一番目前人工智能創(chuàng)業(yè)公司的有趣情景。雖然不一定能當做借鑒,但一些經(jīng)驗對目前在?;蛘邉傠x校的學生來講也許會有幫助。
我用了一周的時間讀丹尼爾的代碼(夠慢了吧,完全趕不上很多國內(nèi)的優(yōu)秀學生),然后打開Jupyter Notebook開始一點點的做分析,最后發(fā)現(xiàn)丹尼爾把文本距離的算法做錯了,任何從事自然語言處理的人都明白edit distance(編輯距離)的首選就是萊文斯坦距離,就算不是做自然語言處理的,這個距離在計算機界也用的很多。但這個距離壓根不存在于丹尼爾的任何代碼中。然后我把這一行加入進去,代碼跑了5小時,最后給札德說:我做完了,檢查質(zhì)量吧。
一周后,丹尼爾就被炒魷魚了……然后公司的另一個創(chuàng)始人羅素開始到處宣傳我用了一周解決了別人六個月都解決不了的問題。(當然,丹尼爾最后找到了一份谷歌的工作,開開心心的做機器人去了)
舉這個例子想說明一件事:要建立起在某個領(lǐng)域的直覺和精通。這個精通并不單單是掌握一兩個(甚至是好幾個)算法就可以了的。不可能用一個算法解決所有的問題。
基礎(chǔ)是必須扎實的,這個基礎(chǔ)最好是某一個領(lǐng)域?qū)⒔?0-30年的知識的積累。只會跑個LSTM是肯定不行的。
這里要講另外一個同學的例子了,他的名字叫伊森,從伊利諾伊香檳畢業(yè),在我校讀了兩年計算機研究生,跟在航天航空工程學院的Mykel Kochendefer(麥克·寇克德福爾)教授麾下做了一段時間的研究,是一位非常優(yōu)秀,有自學能力的學生。
暑假剛開始的時候,我在帕羅奧圖的街上偶然遇見他,因為有過一面之緣,打了招呼后順帶聊了聊現(xiàn)狀,當我告訴他我加入了札德的公司的時候,他說他幾天后要跟札德面試。
我在回答開頭劇透了,伊森沒能應聘成功。在這里分享的意義是,伊森的背景和很多進入人工智能領(lǐng)域的人很相似。下面這一段是我和他的對話:
我:“你最擅長的人工智能領(lǐng)域是什么呢?”
伊森:“我什么都會(jack-of-all-trades)?!?br>(評論:這很容易誤導招聘者讓他們覺得你樣樣都不專精)
我:“你在寇克德福爾教授那里做了什么樣的研究呢?”
伊森:“我給無人機搭建了一個服務(wù)器,用了Kafka做流處理?!?br>(評論:這句話暴露缺乏研究經(jīng)歷)——雖然Kafka也還算是有趣
我:“怎樣的工作在你看來最有趣呢?”
伊森:“我想有機會把最前沿的算法應用在公司的業(yè)務(wù)中。”
(評論:算法沒有前沿與不前沿之分,只有合適與不合適之分)
我:“你理想的工作崗位是什么呢?”
伊森:“我其實最想當人工智能的產(chǎn)品經(jīng)理。”
(評論:其實產(chǎn)品經(jīng)理的收入不如程序員哦)
最后伊森問了我一個問題,如何在一周內(nèi)精通自然語言處理,然后我只能告訴他我不知道。
舉這個例子的意思是,伊森是一個聰明人,有很強的工程背景(伊利諾伊香檳的計算機系很不錯),但是卻不一定是機器學習/人工智能創(chuàng)業(yè)公司的最理想人才,為什么呢?因為在學校階段沒有在實驗室做研究型工作,也沒有足夠的實踐經(jīng)驗。他找錯了教授(抱錯了大腿)??芸说赂柦淌跊]有給他任何研究性質(zhì)的工作,于是他用了兩年寶貴的時光學習了如何搭建服務(wù)器,如何使用Kafka。
當然,如果想要做普通的工程師崗位,任何(不論大?。┕径既眱?yōu)秀的后端工程師,但如果想應聘機器學習方面的崗位,或者和算法、研發(fā)比較接近,那么搭建平臺或者服務(wù)器的“研究”經(jīng)歷就是不夠的。
如果本科有個很好的學校,或者特別擅長學習,這一類的優(yōu)秀人才很容易陷入每一個領(lǐng)域都想學學的陷阱。再加上“大公司要專才,小公司要全才”一類的宣傳,很容易覺得如果每方面都學一點,那么一定會被創(chuàng)業(yè)公司喜愛。
事實上機器學習的底層模型原理都是類似的,與其在應用層(比如機器控制、視覺、語言、語音)等瞎晃,還不如去把底層原理弄清楚。人工智能的創(chuàng)業(yè)公司,和普通的網(wǎng)頁或者手機應用公司還是有區(qū)別的。這些公司更看重學生在學術(shù)領(lǐng)域的成績,因為目前大部分人工智能的模型是沒法直接搬到工業(yè)場景的。
這里要講一個成功案例,Nihil (尼希爾)是另一個我認識的研究生,也是從伊利諾伊香檳大學畢業(yè)。尼希爾其實比我年紀大好幾歲,但長著一張娃娃臉,他之前在LinkedIn(領(lǐng)英)做大規(guī)模搜索(Scaled Search),專門負責把理論算法擴大到工業(yè)場景中,擅長搭建后臺,有很強的工程背景。兩年的斯坦福計算機碩士后,現(xiàn)在被Snapchat找去做大規(guī)模視頻搜索算法。
無論是我還是札德,在和他交流后都很想讓他跳槽來我們這里工作。
也許你想問,他和伊森的區(qū)別是什么?兩個人看起來不都差不多,都是以做服務(wù)器或后端為主,為什么尼希爾是大家想要的人才,伊森并不完全算是?因為經(jīng)歷和背景,在領(lǐng)英這樣的大公司做高吞吐高負荷的算法所積累的技能,是一個實驗室的無人機平臺無法企及的。
任何人都可以跑一個LSTM,但是當訓練數(shù)據(jù)有超過1000萬條的時候,LSTM需要跑3天才能見完所有的數(shù)據(jù),在這個情況下,你該怎么做?除了在多個GPU上并行以外,還可以進行算法上的改進,LSTM是所謂的線性時間度 O(n)的算法,可以換成像ByteNet這樣的sub-linear時間度
算法。谷歌最近發(fā)了一篇通報,說他們的工程師團隊經(jīng)過一年的努力,終于把WaveNet(某個能夠生成高仿真人聲的模型)速度提升到了一秒鐘生成二十秒鐘的人的說話聲音,比學術(shù)模型快1000倍。我當時看了這篇文章后,在網(wǎng)上隨手搜了搜,發(fā)現(xiàn)谷歌沒有公開任何加速的細節(jié),究竟是如何做到的,他們并沒有說。Awni Hannan(奧尼·哈南),我的一個前輩,之前和吳恩達教授在百度硅谷工作,說他大概能猜測到谷歌為了優(yōu)化所做的一些事情。但不難想象,這很有可能是一系列的優(yōu)化,從硬件,從計算,從部署等等進行的細致優(yōu)化。這樣的細節(jié)雖然有“學術(shù)”價值,但從這里開始,大部分公司都不再會公開細節(jié),讓中小型公司(創(chuàng)業(yè)公司)難以望其項背。
這樣的場景就需要有研究背景的人才,能夠閱讀業(yè)內(nèi)最新的論文,還能夠結(jié)合學術(shù)前沿切實的解決工業(yè)上的難題。深度學習50%是學術(shù),50%是工程。這個領(lǐng)域的學術(shù)大牛,像是Justin Johnson(賈斯汀·強森),Andrej Karpathy(安德烈·卡帕西)(兩人都是斯坦福CS231N的講師)都是很強的工程能手。
去年暑假我上凸優(yōu)化的時候,當時我的老師Stephen Boyd(史蒂芬·波伊德)就說,當年(80年代)凸優(yōu)化剛火的時候,學術(shù)界和工業(yè)界齊頭并進,但大部分優(yōu)秀論文都集中在學術(shù)界,用凸優(yōu)化的框架建立算法,然后應用在各種數(shù)據(jù)集上,取得一個又一個輝煌的成果。但隨著時間推移,沒過十年,學術(shù)界在數(shù)據(jù)和應用就已經(jīng)趕不上工業(yè)界了。當然,學術(shù)界既沒有足夠多的機器,也沒有財力去搜集大量的數(shù)據(jù),當工業(yè)界開始用資本大規(guī)模投入的時候,學術(shù)界自然就戰(zhàn)勝不了工業(yè)界了。
我們現(xiàn)在已經(jīng)可以看到苗頭了,DeepMind,谷歌,OpenAI,微軟,F(xiàn)AIR等各大公司搶占人工智能高地,大量的發(fā)出論文,傳統(tǒng)的強校諸如CMU或斯坦福都比不上這些大公司的勢頭和影響力。這個情況在3-5年后很有可能會惡化。
也許很多人覺得深度學習的理論就是數(shù)學,理論根本不能有任何實踐產(chǎn)出,何必研究理論呢?還不如寫網(wǎng)頁前端或者做個手機App呢。
我今年聽了Philip Thomas(菲利普·托馬斯)的一個講座,講的是安全增強學習(Safe RL),這個講座講了一個案例,他們想要通過增強學習來自動調(diào)解糖尿病病人的給藥泵,這個泵給藥給多了,病人就要截肢,給少了病人就要直接休克死。高不成低不就的典型代表。目前這種泵的算法是一個簡單的微分方程,能保證不會少給藥,但是經(jīng)常會多給藥,導致很多重度糖尿病都要被截肢。
菲利普的這個項目就是要嘗試著用增強學習來得到一個優(yōu)良的自動調(diào)整模型。這個項目立意很好,救人一條腿勝造七級浮屠嘛,但是菲利普問了在座的我們一個問題:“你們知道現(xiàn)在這些增強學習的算法,需要多少次試驗才能調(diào)出一個成功的模型嗎?”
需要上百萬次參數(shù)調(diào)整后,才能得到一個很好的模型。你總不能對幾百萬糖尿病患者說:“為了所有現(xiàn)在以及未來的糖尿病患者,你們?nèi)ニ腊伞!?而且更重要的是,增強學習算法經(jīng)常不能保證每一次參數(shù)改變后都能讓模型變得更好:
這就像是說,我不知道這一顆藥讓你更健康還是讓你死掉(或截肢),但是為了實驗效果,你最好給我吃下去。
為了真正的把增強學習應用在醫(yī)療領(lǐng)域,需要通過概率理論,通過各種Bound(邊界)去證明一個算法能切實的每次都達到更好的效果。這就是理論對工業(yè)界的指導,也是理論在應用領(lǐng)域的勝利。
每個機器學習的領(lǐng)域,不論是自然語言處理、機器視覺、機器人其實都是這樣的人才緊缺規(guī)律,找到自己最適合的缺口才是最重要的。這可以是能夠?qū)⒁粋€算法高度并行化,在上百塊GPU上運行的工程人才,也可以是在高危領(lǐng)域(比如無人駕駛、醫(yī)療)保證安全第一的理論人才。這兩塊區(qū)域在未來的3-5年內(nèi)都會急缺人才。
聯(lián)系客服