緣起
為什么這么多人想入行 AI 呢?真的是對(duì)計(jì)算機(jī)科學(xué)研究或者擴(kuò)展人類智能抱著無(wú)限的熱忱嗎?說(shuō)白了,大多數(shù)人是為了高薪。
人們?yōu)榱双@得更高的回報(bào)而做出選擇、努力工作,原本這是個(gè)非常正當(dāng)?shù)氖虑椋顷P(guān)鍵在于:如何找對(duì)路徑。
想要入行,總得知道這個(gè)行業(yè)里面都有什么樣的崗位,分別是干什么的吧。
本文中,我們將從直觀的角度,管窺一下 AI 領(lǐng)域中,幾種不同技術(shù)崗位的:
日常工作的狀態(tài)。
所需要具備的素質(zhì)。
職業(yè)發(fā)展路徑。
我們不去看那些招聘啟事上令人眼花繚亂的 title,而是從抽象層面,以工作內(nèi)容、職責(zé)為準(zhǔn),來(lái)分類工業(yè)界直接的 AI 技術(shù)人員。
他們大致可以分為三個(gè)不同角色:
- 做算法。
- 做工程。
- 做數(shù)據(jù)。
做算法
應(yīng)用科研成果,解決實(shí)際問(wèn)題
說(shuō)到做算法,大家首先想到的可能是發(fā)明新的算法或者對(duì)算法進(jìn)行改進(jìn)。這是在學(xué)術(shù)機(jī)構(gòu)或者幾家定價(jià)大企業(yè)研究院中擔(dān)任科研任務(wù)的科學(xué)家們的任務(wù)。
在工業(yè)界做算法的算法工程師(也有公司叫科學(xué)家),最基本的日常工作其實(shí)是:銜接學(xué)術(shù)成果與實(shí)際業(yè)務(wù),在工程實(shí)踐中利用最新科研成果來(lái)達(dá)到產(chǎn)品或服務(wù)在業(yè)務(wù)層面的提升。
或者,說(shuō)得更通俗點(diǎn),他們實(shí)際每天在做的事情是:讀論文&實(shí)現(xiàn)之——確認(rèn)最新論文中的闡述是否真實(shí)可重現(xiàn),進(jìn)一步確認(rèn)是否可應(yīng)用于本企業(yè)的產(chǎn)品,進(jìn)而將其應(yīng)用到實(shí)踐中提升產(chǎn)品質(zhì)量。
強(qiáng)學(xué)術(shù)背景要求
既然日常工作首先是讀別人論文。那么作為算法工程師必不可少應(yīng)該具備快速、大量閱讀英語(yǔ)論文的能力。
如果要做算法,平均而言,大致要保持每周讀一篇最新論文的頻率。
光能讀不行,還必須讀懂論文,要讀懂論文,就需要:
科研能力:或云學(xué)術(shù)研究方法,能夠通過(guò)參考資料、搜索及以往的知識(shí)積累學(xué)習(xí)掌握論文內(nèi)容的能力。
系統(tǒng)數(shù)學(xué)知識(shí):足夠深入的微積分、線性代數(shù)、概率統(tǒng)計(jì)的知識(shí)。最新的論文,沒(méi)有被時(shí)光檢驗(yàn)過(guò)。
閱讀時(shí),需要關(guān)注公式的推導(dǎo)過(guò)程。否則,萬(wàn)一出現(xiàn)數(shù)學(xué)推導(dǎo)有錯(cuò),導(dǎo)致了過(guò)于喜人的結(jié)果,卻無(wú)法在實(shí)踐中重現(xiàn),豈不空耗時(shí)力?
也許這就是為什么,到目前為止,筆者所聽(tīng)聞和見(jiàn)過(guò)的算法工程師都是名校相關(guān)專業(yè)博士的原因。
經(jīng)過(guò)幾年強(qiáng)化學(xué)術(shù)研究訓(xùn)練,這些博士們,就算英語(yǔ)綜合水平不過(guò)是 CET-4,也能讀得進(jìn)去一篇篇硬骨頭似的英語(yǔ)論文!
對(duì)業(yè)務(wù)負(fù)責(zé)的創(chuàng)新型人才
很多時(shí)候,單論具體的手頭工作,做算法的算法工程師和下面要說(shuō)到的做工程的機(jī)器學(xué)習(xí)工程師相差并不大,他們兩者都會(huì)花費(fèi)很多時(shí)間去訓(xùn)練模型。
但是,做工程的可以把關(guān)注點(diǎn)放在模型本身,只要交付符合評(píng)價(jià)指標(biāo)要求的模型就可以了,而做算法的人必須對(duì)業(yè)務(wù)提升負(fù)責(zé)!
如果交付的模型雖然整體質(zhì)量提升了,卻不能提高用戶體驗(yàn),或者在某幾個(gè)用戶非常關(guān)心的 corner case 上總是出錯(cuò)。
機(jī)器學(xué)習(xí)工程師可以通過(guò)加人工干預(yù),做幾個(gè) workaround 把這幾個(gè) dsat 繞過(guò)去,但算法工程師則有責(zé)任從算法角度解決問(wèn)題,而不是隨便打人工補(bǔ)丁。
在實(shí)踐過(guò)程中,算法工程師,即使自己不發(fā)明新的算法,不提出新的算法優(yōu)化方法,也得去嘗試最新算法的使用或者把已有算法用出新花樣來(lái)。
毋庸置疑,這是一個(gè)有著必然創(chuàng)新性的角色。因此,這個(gè)角色必然不適合絕大多數(shù)人!
做工程
“調(diào)參工程師”
這一角色比較有代表性的崗位是:機(jī)器學(xué)習(xí)工程師,常常被戲稱為調(diào)參工程師。
他們使用別人開(kāi)發(fā)的框架和工具,運(yùn)行已有算法,訓(xùn)練業(yè)務(wù)數(shù)據(jù),獲得工作模型。
工作期間他們可能需要一些處理數(shù)據(jù)、選取特征或者調(diào)節(jié)參數(shù)的手段,不過(guò)一般都有據(jù)可循,并不需要自己去發(fā)明一個(gè) XXXX。
TIP:很多 title 寫(xiě)的是“人工智能/機(jī)器學(xué)習(xí)/深度學(xué)習(xí)算法工程師”的招聘崗位,其實(shí)招的是做工程的人。不要執(zhí)著于辭藻,看清楚具體職責(zé)和工作內(nèi)容。
程序員的分支
說(shuō)到底,機(jī)器學(xué)習(xí)工程師是廣義的軟件工程師(程序員)的一個(gè)分支。
說(shuō)起來(lái),每一個(gè)程序員都有一個(gè)領(lǐng)域。不過(guò),不同領(lǐng)域在不同時(shí)期熱度不同,發(fā)展趨勢(shì)不同。AI 產(chǎn)品開(kāi)發(fā),是廣義軟件開(kāi)發(fā)的一個(gè)領(lǐng)域,如今正好在熱點(diǎn)上。
開(kāi)發(fā)人工智能產(chǎn)品的程序員,也還是程序員。不過(guò)是需要懂一定程度的領(lǐng)域內(nèi)理論知識(shí)而已,就和以前開(kāi)發(fā) PCI 協(xié)議棧要懂 PCI 協(xié)議,寫(xiě)網(wǎng)卡 driver 要懂 TCP / IP 的道理是一樣的。
編碼能力是基礎(chǔ)
既然是程序員,首先就不能丟掉程序員的基本素質(zhì):編碼能力和基礎(chǔ)算法能力(不是前面說(shuō)的那種算法,而是鏈、樹(shù)、圖的構(gòu)建、刪除、遍歷、查找、排序等數(shù)據(jù)結(jié)構(gòu)里講的那種算法),這是最起碼的兩個(gè)要求。
當(dāng)然,既然在 AI 領(lǐng)域進(jìn)行開(kāi)發(fā),一定程度的機(jī)器學(xué)習(xí)/深度學(xué)習(xí)知識(shí)還是有必要掌握的。
此外,做工程也得讀論文,不過(guò)和做算法不同,做工程讀論文的一般目的不是嘗試最新方法,而是用已知有效的方法來(lái)解決實(shí)際問(wèn)題。
因此,做工程的,讀的經(jīng)常是“舊”論文,或者相對(duì)學(xué)術(shù)含量低一些(不那么硬)的論文。
在閱讀時(shí),主要是為了直接找到某個(gè)問(wèn)題的處理方法,故而可以跳讀。對(duì)于其中的數(shù)學(xué)公式,能夠讀懂頭尾也就可以了。論文閱讀頻率和學(xué)術(shù)深度的要求,都比做算法低得多。
做數(shù)據(jù)
此處說(shuō)得做數(shù)據(jù)并非數(shù)據(jù)的清洗和處理——大家可以看到做工程的崗位,有一部分工作內(nèi)容就是 ETL 和處理數(shù)據(jù),此處說(shuō)的做數(shù)據(jù)是指數(shù)據(jù)標(biāo)注。
數(shù)據(jù)人工標(biāo)注的必要性
簡(jiǎn)單說(shuō),數(shù)據(jù)標(biāo)注就是:給各種各樣的數(shù)據(jù)(文本、圖像、視頻、音頻等)打上標(biāo)簽,使原數(shù)據(jù)(raw data)變成標(biāo)注數(shù)據(jù)(labeled data)——標(biāo)注數(shù)據(jù)是各種有監(jiān)督學(xué)習(xí)的必要條件。
雖然機(jī)器學(xué)習(xí)中有無(wú)監(jiān)督學(xué)習(xí),但在實(shí)踐領(lǐng)域被證明有直接作用的,基本上還都是有監(jiān)督模型。
近年來(lái),深度學(xué)習(xí)在很多應(yīng)用上取得了巨大的成功,而深度學(xué)習(xí)的成功,無(wú)論是圖像、語(yǔ)音、NLP、自動(dòng)翻譯還是 AlphaGo,恰恰依賴于海量的標(biāo)注數(shù)據(jù)。
無(wú)論是做 ML 還是 DL 的工程師(算法&工程),后者尤甚,都共同確認(rèn)一個(gè)事實(shí):現(xiàn)階段而言,數(shù)據(jù)遠(yuǎn)比算法重要。
固然,目前有多種技術(shù)用以在標(biāo)注的過(guò)程中輔助人工,以減小工作量及降低人工標(biāo)注比例,但至今沒(méi)有能在應(yīng)用領(lǐng)域完全自動(dòng)化標(biāo)注的技術(shù)出現(xiàn)。
換言之,在看得見(jiàn)的未來(lái)之內(nèi),人工標(biāo)注數(shù)據(jù)仍然是 AI 落地的必要和主流。
人工智能的“勤行”
好消息:數(shù)據(jù)標(biāo)注工作幾乎沒(méi)有門檻。一般任何專業(yè)的大學(xué)畢業(yè)生,甚至更低學(xué)歷都能夠勝任,上手不需要機(jī)器學(xué)習(xí)之類的專業(yè)知識(shí)。
壞消息:這樣一份工作是純粹的“臟活累活”,一點(diǎn)都不 cool,起薪也很低。所以,雖然這是一件誰(shuí)都能干的工作,但是恐怕,沒(méi)幾個(gè)人想干。
就單個(gè)任務(wù)而言,數(shù)據(jù)標(biāo)注是一項(xiàng)很簡(jiǎn)單的工作,它的難點(diǎn)在于:
數(shù)據(jù)一致性
指所有數(shù)據(jù)的標(biāo)注原則都是一樣的。如果一份 raw data 由多個(gè)人同時(shí)標(biāo)注,就算是反復(fù)宣講標(biāo)注原則,每個(gè)人也都有自己的理解和側(cè)重,很難保證一致。甚至即使是將所有數(shù)據(jù)交給一個(gè)人,也可能在不同時(shí)間段理解不同。
很多公司出于對(duì)數(shù)據(jù)標(biāo)注工作的不重視(正好與對(duì)算法的過(guò)分重視相映成趣),采取一種暴力解決方案試圖消除不一致:讓多個(gè)人(比如 3 個(gè))同時(shí)標(biāo)注同一份數(shù)據(jù),一旦出現(xiàn)不一致,就采用簡(jiǎn)單多數(shù)法,取最多人一致認(rèn)定的那種結(jié)果。
這種方案對(duì)于粗標(biāo)數(shù)據(jù)還可以起到一定作用,但如果是精標(biāo),則往往連多數(shù)人一致的情況都難以出現(xiàn)。如果三個(gè)人所標(biāo)結(jié)果完全不一樣,那么這條數(shù)據(jù)也就失去了標(biāo)注價(jià)值。
在現(xiàn)實(shí)中,經(jīng)常會(huì)出現(xiàn)同一份數(shù)據(jù)因?yàn)橘|(zhì)量過(guò)低,被要求重復(fù)標(biāo)注的情況出現(xiàn),費(fèi)時(shí)費(fèi)力。
與業(yè)務(wù)的集合
業(yè)務(wù)需求時(shí)常變動(dòng),技術(shù)解決方案變更更多,而每一次變更都可能引起數(shù)據(jù)標(biāo)注策略的變化,進(jìn)而要求對(duì)數(shù)據(jù)重新標(biāo)注。
目前,由于人工智能的落地點(diǎn)還比較有限,主要集中在大公司里,它們都有各自的標(biāo)注團(tuán)隊(duì),業(yè)務(wù)要求也相對(duì)穩(wěn)定等原因,此種挑戰(zhàn)尚不明顯。
一旦未來(lái)人工智能在各個(gè)領(lǐng)域全面鋪開(kāi),很可能需要的是針對(duì)具體企業(yè)、具體業(yè)務(wù),不斷變更的標(biāo)注需求。
如何應(yīng)對(duì)快速變更的業(yè)務(wù)需求,同步更新標(biāo)注結(jié)果,將是一個(gè)在 AI 真正服務(wù)于大眾時(shí)全面爆發(fā)的問(wèn)題,偏偏現(xiàn)階段還未引起足夠重視。
選一條適合自己的入行之路
認(rèn)清形勢(shì),腳踏實(shí)地
尋求入行的人雖多,能真的認(rèn)清市場(chǎng)當(dāng)前的需求,了解不同層次的人才定位,并結(jié)合自己實(shí)際尋找一條可行之路的人太少。
上面我們介紹了 AI 領(lǐng)域內(nèi)的幾個(gè)工種,打個(gè)不太恰當(dāng)?shù)谋扔鳎?br />做算法是屠龍,仗劍江湖,天外飛仙。
做工程是狩獵,躍馬奔騰,縱酒狂歌。
做數(shù)據(jù)是養(yǎng)豬,每天拌豬食清豬糞,一臉土一身泥。
人人都想“做算法”,做個(gè)獨(dú)行天涯的劍客多酷啊,更何況還有那么高的薪水!
卻不想想:大公司里研究院里有那么多讀了十幾二十年論文始終站在 AI 潮頭的資深研究人員。
想要與他們?yōu)槲樽鏊惴?,要么有足夠分量的學(xué)術(shù)成果,要么解決過(guò)大用戶量產(chǎn)品的實(shí)際業(yè)務(wù)問(wèn)題——你占哪一條呢?
僅僅是學(xué)過(guò)課程,做過(guò)練習(xí)或?qū)嵙?xí)性質(zhì)的小項(xiàng)目,是不足以去做算法的。
現(xiàn)實(shí)當(dāng)中能屠龍的人又有幾個(gè)?留給人去屠的龍又有幾條?養(yǎng)豬雖然沒(méi)那么高大上,有豬肉吃是實(shí)實(shí)在在的。
好高騖遠(yuǎn)只會(huì)虛擲光陰,腳踏實(shí)地才能實(shí)現(xiàn)理想。
“算法力”的自我測(cè)試
對(duì)于一心想做算法的同學(xué),我建議大家先自我測(cè)試一下自己的算法力。
在此先推薦一個(gè)網(wǎng)站,所有有志于算法的同學(xué)必須要知道:https://arxiv.org ——這里有多個(gè)學(xué)科(包括 computer science)的大量論文,里面大部分都是尚未正式出版的最新成果。
目前真正在做算法的人,都在大量閱讀這個(gè)網(wǎng)站上的文章。
測(cè)試“算法力”有個(gè)很簡(jiǎn)單的驗(yàn)證方法:從上述網(wǎng)站里找一篇論文(比如這篇:Dynamic Routing Between Capsules),從頭到尾讀一遍。
現(xiàn)在不懂沒(méi)關(guān)系,至少先試試在不懂的情況下能不能把它從頭到尾一字不漏的讀完,有不認(rèn)識(shí)的字查字典。
如果這都做不到,還是當(dāng)機(jī)立斷和“算法”分手吧。既然注定無(wú)緣,何必一味糾纏?
先當(dāng)程序員再選領(lǐng)域
在 AI 成為潮流的今天,只要能找到一個(gè)在 AI 方面相對(duì)比較前沿的企業(yè),進(jìn)去從做一名普通程序員開(kāi)始吧。
即使本來(lái)開(kāi)發(fā)的產(chǎn)品不屬于 AI 范疇,未來(lái)通過(guò)在舊產(chǎn)品上應(yīng)用新的 AI 技術(shù)或者在公司內(nèi)部 transfer 到做 AI 產(chǎn)品的 team,都可能獲得入行的機(jī)會(huì)。甚至具體知識(shí)的掌握,你都可以在入職后慢慢積累。
對(duì)于大多數(shù) AI 工程人員,這可能才是一條自然的入行之路。
但這一切的前提是:此人首先得是一個(gè)合格的程序員!而不是本末倒置,雖然花功夫?qū)W了幾個(gè)模型、算法,卻連最基本的編程面試題都做不對(duì)。
市場(chǎng)對(duì)數(shù)據(jù)標(biāo)注的潛在需求
高質(zhì)量的標(biāo)注數(shù)據(jù)對(duì)高質(zhì)量模型的影響非常直接。
一群年薪百萬(wàn)起步的算法工程師耗費(fèi)經(jīng)年的成果,對(duì)于模型質(zhì)量直接的影響甚至比不上一個(gè)靠譜標(biāo)注團(tuán)隊(duì)一兩個(gè)月的精心標(biāo)注。對(duì)模型的影響尚且如此,更何況是商業(yè)價(jià)值。
此時(shí)此刻,AI 在風(fēng)口浪尖,大公司、拿了巨額風(fēng)投的獨(dú)角獸 startup,一個(gè)個(gè)拿出千金市馬骨的氣概,將不可思議的高薪狠狠砸向 AI 領(lǐng)域的頂尖學(xué)者,順便捧起了一批年輕的博士,也引來(lái)了世人的垂涎。
這種情形能維持多久?商業(yè)企業(yè)能承受多少年不掙錢只燒錢?待潮涌過(guò)后,行業(yè)回歸理性,模型還是要用來(lái)掙錢的。
到了那個(gè)階段,大小企業(yè)不會(huì)去算成本收益嗎?他們會(huì)意識(shí)不到將資源投入數(shù)據(jù)和算法的不同產(chǎn)出比嗎?
企業(yè)為了創(chuàng)造利潤(rùn)應(yīng)用 AI 技術(shù),算法工程師不是剛需,而數(shù)據(jù)標(biāo)注這個(gè)人工智能領(lǐng)域的“勤行”,人工智能藍(lán)領(lǐng),一定是剛需!
一切標(biāo)注工作的難點(diǎn)和潛藏的風(fēng)險(xiǎn),也就是這項(xiàng)工作的潛力和從事這項(xiàng)工作未來(lái)職業(yè)發(fā)展的可能性所在。
各工種的職業(yè)發(fā)展
籠統(tǒng)而言,一個(gè)技術(shù)崗位的 Career Path 總有兩條路徑:
領(lǐng)域?qū)<摇?br />管理者。
做算法的崗位,雖然也確實(shí)有不少人轉(zhuǎn)向管理,但因其客觀的技術(shù)深度和學(xué)術(shù)積累的習(xí)慣,比起其他兩種角色,更容易成為領(lǐng)域?qū)<摇?/p>
做工程的崗位,作為程序員的一部分,整體的職業(yè)發(fā)展和普通程序員并無(wú)太大區(qū)別。
當(dāng)然也有可能成為領(lǐng)域?qū)<?,不過(guò)在我們現(xiàn)在的環(huán)境里,恐怕轉(zhuǎn)向管理對(duì)于大多數(shù)人是更優(yōu)的選擇。
當(dāng)然,做工程的,如果真的對(duì)技術(shù)和算法感興趣,深入下去做算法,最終成為領(lǐng)域?qū)<乙餐耆赡堋?/p>
而做數(shù)據(jù)的崗位和所有門檻低的工種一樣,要面臨如何從極大量基數(shù)資質(zhì)類似的人員中脫穎而出的問(wèn)題。
由于 AI 領(lǐng)域的特殊性,還需要面對(duì)如何與越來(lái)越多的自動(dòng)化標(biāo)注技術(shù)共處的問(wèn)題。
因此,筆者個(gè)人建議的數(shù)據(jù)標(biāo)注職業(yè)提升路徑:經(jīng)驗(yàn)+業(yè)務(wù)+管理。大致步驟為:
通過(guò)實(shí)踐積累數(shù)據(jù)標(biāo)注的工作經(jīng)驗(yàn)。
深入理解業(yè)務(wù)需求并將其體現(xiàn)到數(shù)據(jù)的標(biāo)注結(jié)果中。
管理標(biāo)注團(tuán)隊(duì)達(dá)到高效的標(biāo)注結(jié)果與業(yè)務(wù)變更 align。
未來(lái)也許會(huì)出現(xiàn)一個(gè)“數(shù)據(jù)經(jīng)理”之類稱謂的職位:其職責(zé)以負(fù)責(zé)提供高質(zhì)量標(biāo)注數(shù)據(jù)為基礎(chǔ),技術(shù)上銜接工程領(lǐng)域的 ETL 和數(shù)據(jù)處理,產(chǎn)品上對(duì)接業(yè)務(wù),帶領(lǐng)團(tuán)隊(duì)為公司產(chǎn)品或服務(wù)的 revenue 提供直接貢獻(xiàn)。
作者:李燁
本文經(jīng)授權(quán)發(fā)布,不代表增長(zhǎng)黑客立場(chǎng),如若轉(zhuǎn)載,請(qǐng)注明出處:http://allfloridahomeinspectors.com/cgo/2069.html