算法工程師的落地能力具體指的是什么?
作者丨桔了個仔@知乎?編輯丨極市平臺
https://www.zhihu.com/question/304695682/answer/1720475610

1.技術(shù)層面
圖源《如何創(chuàng)造可信的AI》
學(xué)會數(shù)據(jù)獲取。原始數(shù)據(jù)需要經(jīng)過ETL才能被算法利用。ETL(Extract, Transform, Load)是將業(yè)務(wù)系統(tǒng)的數(shù)據(jù)經(jīng)過抽取、清洗轉(zhuǎn)換之后加載到數(shù)據(jù)倉庫的過程,目的是將企業(yè)中的分散、零亂、標(biāo)準(zhǔn)不統(tǒng)一的數(shù)據(jù)整合到一起,為企業(yè)的決策提供分析依據(jù)。也許你們公司有專職的數(shù)據(jù)工程師來做ETL,但你如果能稍微參與到ETL的過程中,不僅讓你在大數(shù)據(jù)技術(shù)方面得到提升,而且對你理解上游業(yè)務(wù)非常有幫助。ETL工具的典型代表有:Informatica、Datastage、OWB、微軟DTS等。
構(gòu)建特征。如果沒有機會參加到ETL里,也沒關(guān)系,我也沒,畢竟客戶不想給讓我們接觸原始數(shù)據(jù)。這時候,你也可以處理ETL之后的數(shù)據(jù),從中構(gòu)建特征。其實特征構(gòu)建的過程能幫助你理解業(yè)務(wù),例如給銀行預(yù)測信用卡逾期風(fēng)險,你了解到,債務(wù)負擔(dān)率和用戶風(fēng)險有著一定關(guān)聯(lián),于是你會考慮把用戶所有信用卡的欠款加起來除以這個用戶的收入,得到一個新的特征。關(guān)于相關(guān)技術(shù),我知道很多人肯定馬上想到pandas,但老實講句,我做了幾年數(shù)據(jù)工作,能用到pandas的機會真的不多。產(chǎn)品都要落地了,幾百萬條的數(shù)據(jù)馬上進來了,還在玩pandas?spark, hadoop, flink等分布式計算平臺趕緊給我研究起來。
可視化數(shù)據(jù)。我相信問出來這個問題的人都知道哪些python庫可以做可視化,例如matplot, seaborn等等。當(dāng)然,除了python庫,excel里的可視化也要做好,這與算法無關(guān),但在你做匯報時能幫助你把一個結(jié)果解釋清楚。
會用服務(wù)器。一般數(shù)據(jù)產(chǎn)品部署,得上云或者私有服務(wù)器吧,那么如果你還不熟悉linux,那就趕緊練練吧。你把系統(tǒng)部署到服務(wù)器時,是不太可能用鼠標(biāo)拖拽個exe就完事的。如果你還能熟練使用aws等云服務(wù),那就更好了。
至于UI層面,例如構(gòu)建網(wǎng)頁等等,開發(fā)app這種,這就不再推薦算法工程師學(xué)了,畢竟人的精力有限。
2.業(yè)務(wù)層面
你的產(chǎn)品所服務(wù)的對象所在的行業(yè)都有什么「痛點」。sorry,句子有點長,而且說法也有點「老土」,但了解客戶痛點永遠都是必須的。例如我做金融風(fēng)控,客戶的痛點是「舊的專家系統(tǒng)規(guī)則更新慢」,而我們提供「基于機器學(xué)習(xí)的方案」,數(shù)據(jù)來了就自動更新規(guī)則,就能解決他們痛點。
他們這項業(yè)務(wù)目前的工作流程如何。例如我做反洗錢,那么我得了解洗錢的三個步驟,反洗錢的警報產(chǎn)生,警報調(diào)查等等。這些流程在不同客戶之間都是一樣的,我了解清楚了這些,我才能知道,我的產(chǎn)品是在哪個環(huán)節(jié)發(fā)揮價值。如果你做的項目是對內(nèi)的,例如為自己公司電商搞推薦算法,那你必須清楚用戶在你們APP上的路徑,例如首頁到搜索頁再到詳情頁。以及在每條路徑上,怎么做推薦商品,例如有的商品是推薦搭配,有的商品是推薦近似替代品。
開發(fā)時間。即使項目剛開始,你還不知道要花多久,你也得計劃開發(fā)時間出來,你計劃不出來,領(lǐng)導(dǎo)也會給你設(shè)定期限。畢竟做產(chǎn)品不同于做研究,做產(chǎn)品大家都喜歡確定的投入和可預(yù)估的匯報。 計算資源。因為機器學(xué)習(xí)系統(tǒng)使用是需要成本的,你得知道用戶能承受怎么樣的成本或者自己服務(wù)器能承受怎樣的成本。 算法性能。算法落地不同于打kaggle比賽,并沒有時間能把性能壓榨到極致。只要比預(yù)期好些,基本就「先用著再說」了

檢查下自己是否能快速復(fù)現(xiàn)方案? 如果能快速復(fù)現(xiàn)方案,是否能估算每個階段大致需要多少人多少時間? 面對不同的數(shù)據(jù)量,能否估算一個大概的服務(wù)器性能需求?
3.軟實力層面
和客戶溝通的能力。聽你講的客戶并不一定是算法工程師或者數(shù)據(jù)科學(xué)家,你是否能把自己的方案原理講清楚?設(shè)計到技術(shù)的概念,是否能讓非技術(shù)的聽眾也能大致理解? 思考能力。例如結(jié)構(gòu)化思維和批判性思維。其實有一定套路,只要多加練習(xí)就能掌握。推薦書籍有《金字塔原理》、《批判性思維工具》等。 推動團隊的能力。和個人魅力息息相關(guān)。
總結(jié)
參考:
Hidden Technical Debt in Machine Learning Systems?
https://wiki.esipfed.org/w/images/5/5f/NIPS-5656-hidden-technical-debt-in-machine-learning-systems.pdf
往期精彩:
【原創(chuàng)首發(fā)】機器學(xué)習(xí)公式推導(dǎo)與代碼實現(xiàn)30講.pdf
【原創(chuàng)首發(fā)】深度學(xué)習(xí)語義分割理論與實戰(zhàn)指南.pdf
