步才捷
過(guò)去的5年里,機(jī)器學(xué)習(xí)變得越來(lái)越容易,機(jī)器學(xué)習(xí)工具也正在變得愈加平民化。而與此同時(shí),軟件工程卻比以往更復(fù)雜了。然而,這對(duì)于軟件工程師來(lái)說(shuō)是件好事,但對(duì)于機(jī)器學(xué)習(xí)(ML)專家來(lái)說(shuō)則不然。
原因何在?事實(shí)上,這是機(jī)器學(xué)習(xí)到軟件工程,數(shù)據(jù)科學(xué)到數(shù)據(jù)分析發(fā)展的進(jìn)程。
機(jī)器學(xué)習(xí)工具正愈加平民化
谷歌希望每個(gè)人都能接觸到機(jī)器學(xué)習(xí)模型的訓(xùn)練,不論他們的技術(shù)知識(shí)如何,隨著機(jī)器學(xué)習(xí)大眾化,云服務(wù)的市場(chǎng)逐漸增長(zhǎng),理解算法的價(jià)值則逐漸下降。
很久以前,我們手動(dòng)編碼算法,后來(lái),Sklearn可以在幾行代碼中完成同樣的操作。原始的TensorFlow很難使用,Keras使其變得容易。如今,谷歌、微軟和亞馬遜都提供用以選擇、訓(xùn)練和調(diào)整云中模型,然后立即在API后提供模型的服務(wù)。
可能在不久的將來(lái),人人都可以訓(xùn)練人工智能。但是隨著復(fù)雜性的降低,對(duì)于經(jīng)驗(yàn)豐富的軟件工程師來(lái)說(shuō),它只是信手拈來(lái)的另一個(gè)工具而已。
機(jī)器學(xué)習(xí)發(fā)展集在語(yǔ)言上
語(yǔ)言的重要性不必多說(shuō)。你知道COBOL嗎?如果知道,便能獲得一份終身工作。世界金融體系依賴于此。然而如今沒(méi)有人再學(xué)習(xí)COBOL了,大多數(shù)機(jī)器學(xué)習(xí)是通過(guò)Python來(lái)實(shí)現(xiàn),而軟件開(kāi)發(fā)則是通過(guò)多種語(yǔ)言實(shí)現(xiàn)的。
如果每位機(jī)器學(xué)習(xí)工程師都具備使用Python的經(jīng)驗(yàn),那么你的競(jìng)爭(zhēng)對(duì)手就是每一位機(jī)器學(xué)習(xí)工程師。但從軟件的角度來(lái)說(shuō),你只會(huì)和使用相同技術(shù)的部分工程師競(jìng)爭(zhēng)。
我們總是能看到許多高薪的軟件工程師職位,這令人很驚訝,這個(gè)職位早在幾年前就過(guò)時(shí)了,但由于歷史遺留問(wèn)題,許多大公司,如Shopify,Instacart,Kickstarter等仍在使用它。
軟件工程師需要更多技能
你確實(shí)可以并且應(yīng)該學(xué)習(xí)多種語(yǔ)言,這對(duì)于能否成為一名優(yōu)秀的軟件工程師來(lái)說(shuō)至關(guān)重要。我們總是期待軟件工程師對(duì)每個(gè)方面都至少有一些了解。
后端工程師知道瀏覽器的工作原理,前端工程師也具備一些數(shù)據(jù)庫(kù)的概念。二者都能防止如SQL注入這樣的安全漏洞。對(duì)軟件有一個(gè)整體理解能使改換專業(yè)變得更容易,還能幫助構(gòu)建端到端解決方案。
廣泛的技能組合使軟件工程師能更好地適應(yīng)模棱兩可的環(huán)境。隨著需求的增長(zhǎng),軟件工程師經(jīng)常轉(zhuǎn)行到數(shù)據(jù)科學(xué)領(lǐng)域。但反過(guò)來(lái),數(shù)據(jù)科學(xué)家則不太可能去開(kāi)發(fā)軟件。隨著人們開(kāi)始將機(jī)器學(xué)習(xí)看作硬編碼條件邏輯的替代品,更多軟件工程師去涉足機(jī)器學(xué)習(xí)領(lǐng)域。
成為有競(jìng)爭(zhēng)力的全棧開(kāi)發(fā)者需要數(shù)年時(shí)間
實(shí)際上,優(yōu)化數(shù)據(jù)庫(kù)、構(gòu)建API微服務(wù)以及構(gòu)建響應(yīng)式前端,這三者之間并沒(méi)有什么共同點(diǎn)。他們可能是由3種不同的語(yǔ)言實(shí)現(xiàn)的,這些領(lǐng)域里幾乎沒(méi)有自動(dòng)化。
與此相比,全棧機(jī)器學(xué)習(xí)工程師正在實(shí)現(xiàn)愈加強(qiáng)大的自動(dòng)機(jī)器學(xué)習(xí)技術(shù)(AutoML),可以為此編寫(xiě)一個(gè)標(biāo)準(zhǔn)操作程序,并將訓(xùn)練分類器的任務(wù)交給實(shí)習(xí)生。軟件工程技能組各個(gè)部分的自動(dòng)化淘汰還需時(shí)日。
通常機(jī)器學(xué)習(xí)是產(chǎn)品的補(bǔ)充而非產(chǎn)品本身
少數(shù)公司將人工智能作為其核心產(chǎn)品,而大多數(shù)公司將人工智能作為既有產(chǎn)品的補(bǔ)充。媒體可能會(huì)使用機(jī)器學(xué)習(xí)進(jìn)行文章推薦,但其核心產(chǎn)品是寫(xiě)作或是出版平臺(tái)。
有趣的是,大多數(shù)公司將機(jī)器學(xué)習(xí)用于簡(jiǎn)單和相似的用例。這使得單個(gè)公司很容易將上述用例作為軟件即服務(wù)產(chǎn)品。再然后,突然之間初創(chuàng)企業(yè)不需要在內(nèi)部構(gòu)建了。
這與極度復(fù)雜且定制化的基礎(chǔ)設(shè)施問(wèn)題形成對(duì)比,亞馬遜網(wǎng)絡(luò)服務(wù)上沒(méi)有能在短時(shí)間內(nèi)處理Medium基礎(chǔ)設(shè)施的現(xiàn)成方案。
基礎(chǔ)設(shè)施正變得異常復(fù)雜
亞馬遜云服務(wù)已經(jīng)拓展出200多種不同的云服務(wù)。Heroku在云中運(yùn)行應(yīng)用程序的平臺(tái)即服務(wù)(PaaS)方法很不錯(cuò),但很昂貴?,F(xiàn)在有一個(gè)全新的云服務(wù)平臺(tái)來(lái)進(jìn)行管理網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)和服務(wù)器,在這里,一個(gè)小失誤就可能會(huì)引發(fā)很大的安全隱患。
有一個(gè)名為“云工程”的完整開(kāi)發(fā)子集,其任務(wù)是使軟件在AWS、GCP、Azure上運(yùn)行。在小公司中,建設(shè)基礎(chǔ)設(shè)施的任務(wù)通常落在高級(jí)開(kāi)發(fā)人員的肩上。這個(gè)任務(wù)很復(fù)雜,但同時(shí)也意味著寶貴的工作機(jī)會(huì)和難以復(fù)制的技能。
前端開(kāi)發(fā)正在持續(xù)發(fā)展
一些公司致力于基于模型自動(dòng)生成前端。但筆者的同事們一致認(rèn)為,我們距離高質(zhì)量產(chǎn)品還有很長(zhǎng)一段路要走。
軟件開(kāi)發(fā)十分復(fù)雜,但這種復(fù)雜性意味著不可替代的技能,這非常有利于就業(yè)。廣泛的技能組合賦予了人們端到端解決實(shí)際問(wèn)題的能力。為了構(gòu)建一個(gè)能使普通人自行解決問(wèn)題的社區(qū),軟件工程是一個(gè)不錯(cuò)的開(kāi)端。
機(jī)器學(xué)習(xí)該何去何從呢?它仍然擁有一席之地,但顯然,解決問(wèn)題比訓(xùn)練模型更為重要。