<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          算法工程師應(yīng)具備的落地能力!

          共 5639字,需瀏覽 12分鐘

           ·

          2021-02-25 20:25

          作者:桔了個(gè)仔,南洋理工大學(xué),編輯:極市平臺(tái)
          來(lái)源丨h(huán)ttps://www.zhihu.com/question/304695682/answer/1720475610

          導(dǎo)讀

          ?

          作者從自身經(jīng)驗(yàn)出發(fā),從三個(gè)方面:軟實(shí)力、技術(shù)和業(yè)務(wù)講述了算法工程師落地的能力具體指向,為想要成為算法工程師或者已經(jīng)工作中的小伙伴們提供一點(diǎn)小小的建議。

          大家好,這里是桔了個(gè)仔,目前是一名Data Scientist(不太想翻譯成數(shù)據(jù)科學(xué)家,畢竟感覺自己就是個(gè)工程師),過(guò)去幾年在做基于機(jī)器學(xué)習(xí)的風(fēng)控與合規(guī)系統(tǒng),參與了一些算是成功的項(xiàng)目,和團(tuán)隊(duì)一起,成功在幾個(gè)跨國(guó)銀行那里落地了我們開發(fā)的系統(tǒng)。
          根據(jù)我的經(jīng)歷以及對(duì)身邊同事的觀察,我個(gè)人會(huì)把落地工程師的「落地能力」分為三個(gè)維度:


          1.技術(shù)層面

          很多人以為算法工程師日常工作就是調(diào)下參,改個(gè)算法再跑跑,直到神經(jīng)網(wǎng)絡(luò)輸出符合預(yù)期。在入行前,他們以為算法工程師的日常是這樣的:
          圖源《如何創(chuàng)造可信的AI》
          事實(shí)上,算法工程師可能涉及的技術(shù)范圍是很廣的。很可能是這樣的[1]
          圖源:《Hidden Technical Debt in Machine Learning Systems》
          中間那個(gè)小小的幾乎都快看不見的黑塊,你放大圖片,會(huì)發(fā)現(xiàn)里面寫著ML Code,這就是「算法」的部分。當(dāng)然,別被這個(gè)圖嚇到,這不一定全是你的工作,這里是一個(gè)團(tuán)隊(duì)的任務(wù),這個(gè)團(tuán)隊(duì)可能是兩人的團(tuán)隊(duì),也可能是幾十人的團(tuán)隊(duì),但可以肯定的是,無(wú)論你在哪個(gè)公司,一個(gè)算法工程師都不太可能只做純「算法」,不要忘了「工程師」三個(gè)字。對(duì)于要做產(chǎn)品落地的工程師,搞算法的時(shí)間很可能不到10%,其他技術(shù)部分可能占據(jù)你40%。要增強(qiáng)自己落地能力中的技術(shù)水平,除了算法要基礎(chǔ)打好,你還需要:

          • 學(xué)會(huì)數(shù)據(jù)獲取。原始數(shù)據(jù)需要經(jīng)過(guò)ETL才能被算法利用。ETL(Extract, Transform, Load)是將業(yè)務(wù)系統(tǒng)的數(shù)據(jù)經(jīng)過(guò)抽取、清洗轉(zhuǎn)換之后加載到數(shù)據(jù)倉(cāng)庫(kù)的過(guò)程,目的是將企業(yè)中的分散、零亂、標(biāo)準(zhǔn)不統(tǒng)一的數(shù)據(jù)整合到一起,為企業(yè)的決策提供分析依據(jù)。也許你們公司有專職的數(shù)據(jù)工程師來(lái)做ETL,但你如果能稍微參與到ETL的過(guò)程中,不僅讓你在大數(shù)據(jù)技術(shù)方面得到提升,而且對(duì)你理解上游業(yè)務(wù)非常有幫助。ETL工具的典型代表有:Informatica、Datastage、OWB、微軟DTS等。

          • 構(gòu)建特征。如果沒有機(jī)會(huì)參加到ETL里,也沒關(guān)系,我也沒,畢竟客戶不想給讓我們接觸原始數(shù)據(jù)。這時(shí)候,你也可以處理ETL之后的數(shù)據(jù),從中構(gòu)建特征。其實(shí)特征構(gòu)建的過(guò)程能幫助你理解業(yè)務(wù),例如給銀行預(yù)測(cè)信用卡逾期風(fēng)險(xiǎn),你了解到,債務(wù)負(fù)擔(dān)率和用戶風(fēng)險(xiǎn)有著一定關(guān)聯(lián),于是你會(huì)考慮把用戶所有信用卡的欠款加起來(lái)除以這個(gè)用戶的收入,得到一個(gè)新的特征。關(guān)于相關(guān)技術(shù),我知道很多人肯定馬上想到pandas,但老實(shí)講句,我做了幾年數(shù)據(jù)工作,能用到pandas的機(jī)會(huì)真的不多。產(chǎn)品都要落地了,幾百萬(wàn)條的數(shù)據(jù)馬上進(jìn)來(lái)了,還在玩pandas?spark, hadoop, flink等分布式計(jì)算平臺(tái)趕緊給我研究起來(lái)。

          • 可視化數(shù)據(jù)。我相信問(wèn)出來(lái)這個(gè)問(wèn)題的人都知道哪些python庫(kù)可以做可視化,例如matplot, seaborn等等。當(dāng)然,除了python庫(kù),excel里的可視化也要做好,這與算法無(wú)關(guān),但在你做匯報(bào)時(shí)能幫助你把一個(gè)結(jié)果解釋清楚。

          • 會(huì)用服務(wù)器。一般數(shù)據(jù)產(chǎn)品部署,得上云或者私有服務(wù)器吧,那么如果你還不熟悉linux,那就趕緊練練吧。你把系統(tǒng)部署到服務(wù)器時(shí),是不太可能用鼠標(biāo)拖拽個(gè)exe就完事的。如果你還能熟練使用aws等云服務(wù),那就更好了。

          • 至于UI層面,例如構(gòu)建網(wǎng)頁(yè)等等,開發(fā)app這種,這就不再推薦算法工程師學(xué)了,畢竟人的精力有限。


          前面技術(shù)部分花了10%+40%的工作時(shí)間,然后其他50%的時(shí)間呢?用來(lái)和客戶或者產(chǎn)品經(jīng)理溝通,然后理解業(yè)務(wù),做ppt,匯報(bào)結(jié)果。雜事很多,很難接受吧?沒錯(cuò),我剛?cè)胄袝r(shí)也是覺得自己一身技術(shù)無(wú)處施展,后來(lái)我上司一句話啟發(fā)了我:
          技術(shù)是邏輯的藝術(shù),業(yè)務(wù)也是,所以只搞技術(shù)不管業(yè)務(wù)的,不能算是邏輯能力出眾的。
          你現(xiàn)在應(yīng)該有疑問(wèn)了,那怎么才算「懂業(yè)務(wù)」?嘿嘿,馬上道來(lái)。


          2.業(yè)務(wù)層面

          其實(shí)關(guān)于「懂業(yè)務(wù)」,可以分為宏觀業(yè)務(wù)和微觀業(yè)務(wù)兩部分。

          宏觀業(yè)務(wù)指的是行業(yè)的「共性」。例如:
          • 你的產(chǎn)品所服務(wù)的對(duì)象所在的行業(yè)都有什么「痛點(diǎn)」。sorry,句子有點(diǎn)長(zhǎng),而且說(shuō)法也有點(diǎn)「老土」,但了解客戶痛點(diǎn)永遠(yuǎn)都是必須的。例如我做金融風(fēng)控,客戶的痛點(diǎn)是「舊的專家系統(tǒng)規(guī)則更新慢」,而我們提供「基于機(jī)器學(xué)習(xí)的方案」,數(shù)據(jù)來(lái)了就自動(dòng)更新規(guī)則,就能解決他們痛點(diǎn)。

          • 他們這項(xiàng)業(yè)務(wù)目前的工作流程如何。例如我做反洗錢,那么我得了解洗錢的三個(gè)步驟,反洗錢的警報(bào)產(chǎn)生,警報(bào)調(diào)查等等。這些流程在不同客戶之間都是一樣的,我了解清楚了這些,我才能知道,我的產(chǎn)品是在哪個(gè)環(huán)節(jié)發(fā)揮價(jià)值。如果你做的項(xiàng)目是對(duì)內(nèi)的,例如為自己公司電商搞推薦算法,那你必須清楚用戶在你們APP上的路徑,例如首頁(yè)到搜索頁(yè)再到詳情頁(yè)。以及在每條路徑上,怎么做推薦商品,例如有的商品是推薦搭配,有的商品是推薦近似替代品。


          微觀業(yè)務(wù)是指不同部門/公司在實(shí)踐上的不同。微觀業(yè)務(wù)是最容易被人忽視的而且也是最辛苦的,因?yàn)榇蠹叶加胁煌摹钢R(shí)沉淀」方式,學(xué)習(xí)起來(lái)并沒有那么立竿見影。但我發(fā)現(xiàn)有趣的一點(diǎn)是,當(dāng)你接觸微觀的業(yè)務(wù)多了,你還是能從中提取「共性」。例如某個(gè)算法工程師,之前在銀行做風(fēng)控,在銀行獲取數(shù)據(jù)流程會(huì)比較長(zhǎng),每個(gè)步驟要做的事情不能跳過(guò);現(xiàn)在去某互聯(lián)網(wǎng)金融公司做風(fēng)控,可能獲取數(shù)據(jù)流程變得很短,但是你會(huì)發(fā)現(xiàn)共性是,大家都有準(zhǔn)入審查、逾期催收等環(huán)節(jié),用到的技術(shù)可能也是相近的。

          現(xiàn)在你已經(jīng)掌握了各種技術(shù),準(zhǔn)備大干一場(chǎng),準(zhǔn)備拿最強(qiáng)的深度學(xué)習(xí)模型,給客戶設(shè)計(jì)一款準(zhǔn)確率非常高的產(chǎn)品。現(xiàn)在你開始學(xué)習(xí)相關(guān)業(yè)務(wù),我建議你帶著問(wèn)題學(xué)習(xí)。不過(guò),你什么都不懂時(shí),你應(yīng)該問(wèn)自己的第一個(gè)問(wèn)題是什么?沒錯(cuò),那就是:

          做這個(gè)系統(tǒng)的真實(shí)需求是什么?
          這個(gè)問(wèn)題很重要。有個(gè)故事是這樣的:
          某大型日化公司引入了一條國(guó)外肥皂生產(chǎn)線,這條生產(chǎn)線將肥皂從原材料加入直到包裝箱自動(dòng)完成。不過(guò)產(chǎn)品線有瑕疵,個(gè)別肥皂盒是空的,這家公司聯(lián)系廠商后被告知這是設(shè)計(jì)上的缺陷,無(wú)法避免。于是老板要求工程師們解決這個(gè)問(wèn)題,以數(shù)名博士為核心形成一個(gè)技術(shù)攻關(guān)團(tuán)隊(duì),耗費(fèi)大筆資金之后,終于宣告解決。解決的辦法是在生產(chǎn)線上安裝一套 X 光機(jī)進(jìn)行掃描識(shí)別。在另一家私人企業(yè),老板讓新來(lái)的小工解決問(wèn)題,小工所用的辦法是,找來(lái)一臺(tái)電風(fēng)扇放在生產(chǎn)線旁邊
          不知道這是真實(shí)故事還是段子,不過(guò)我們可以知道的是,如果你只顧著解決自己拿到的問(wèn)題,而不想問(wèn)題背后的真實(shí)需求是什么,埋頭苦干,用復(fù)雜的方法來(lái)解決個(gè)很簡(jiǎn)單的事,那么會(huì)弄出大炮打蚊子的笑話。

          第二個(gè)該問(wèn)自己的問(wèn)題是:
          有什么制約因素?

          對(duì)于機(jī)器學(xué)習(xí)系統(tǒng),落地時(shí)的制約因素主要包括(但不限于):
          • 開發(fā)時(shí)間。即使項(xiàng)目剛開始,你還不知道要花多久,你也得計(jì)劃開發(fā)時(shí)間出來(lái),你計(jì)劃不出來(lái),領(lǐng)導(dǎo)也會(huì)給你設(shè)定期限。畢竟做產(chǎn)品不同于做研究,做產(chǎn)品大家都喜歡確定的投入和可預(yù)估的匯報(bào)。
          • 計(jì)算資源。因?yàn)闄C(jī)器學(xué)習(xí)系統(tǒng)使用是需要成本的,你得知道用戶能承受怎么樣的成本或者自己服務(wù)器能承受怎樣的成本。
          • 算法性能。算法落地不同于打kaggle比賽,并沒有時(shí)間能把性能壓榨到極致。只要比預(yù)期好些,基本就「先用著再說(shuō)」了
          要在這三個(gè)限制因素里面取得微妙的平衡,才能使得產(chǎn)品落地。我剛做數(shù)據(jù)科學(xué)工作時(shí),總喜歡搞算法調(diào)優(yōu)來(lái)炫技,但其實(shí)壓榨算法的邊際收益很低,你用一個(gè)月把算法準(zhǔn)確率從70%提升到80%,可能還不如提前一個(gè)月把系統(tǒng)上線使用起來(lái)的收益高。

          第三個(gè)該問(wèn)自己的問(wèn)題是:
          算法、性能評(píng)估和業(yè)務(wù)是否吻合?

          還是拿我自己的經(jīng)歷做例子。
          我工作中面對(duì)的數(shù)據(jù),是非常的不平衡的,我們做二元分類,100條數(shù)據(jù)里,標(biāo)簽為1的只有2~3條,其他97~98條數(shù)據(jù)標(biāo)簽都是0。這個(gè)時(shí)候顯然需要選擇一些合理的評(píng)估方法,首先就排除了用準(zhǔn)確率(Accuracy)作為評(píng)判標(biāo)準(zhǔn)了,F(xiàn)1-score, AUC都可以備選。原因?可以看我在另一個(gè)問(wèn)題的舉的例子。

          如何評(píng)價(jià)德國(guó)訓(xùn)練探雷犬和尋尸犬識(shí)別新冠患者,稱準(zhǔn)確率達(dá)94%?嗅探犬接觸患者后會(huì)成為病毒傳播介質(zhì)嗎?
          https://www.zhihu.com/question/442962994/answer/1717172385

          然后是模型選擇。銀行的業(yè)務(wù)需要強(qiáng)解釋性,所以又否決了所有黑箱模型。剩下的就在tree-based model、logistic regression還有線性kernel的svm之間選擇了。

          上線之后要評(píng)價(jià)模型對(duì)正負(fù)樣本區(qū)分度,于是又要引入KS值。隨著時(shí)間遷移,數(shù)據(jù)分布可能會(huì)變化,又要引入PSI值來(lái)監(jiān)控?cái)?shù)據(jù)偏移程度來(lái)決定是否重新訓(xùn)練模型。
          你看,模型和評(píng)價(jià)指標(biāo),都是和業(yè)務(wù)息息相關(guān)的。

          如果你看到這里還是感覺到迷茫,不知道怎么補(bǔ)足相關(guān)業(yè)務(wù)知識(shí),例如產(chǎn)品和運(yùn)營(yíng)的知識(shí),可以看我之前寫的一個(gè)回答,這里就不重復(fù)敘述了。

          算法工程師如何補(bǔ)足產(chǎn)品和運(yùn)營(yíng)知識(shí)?
          https://www.zhihu.com/question/436066262/answer/1695872348

          那怎么檢驗(yàn)自己真的「懂業(yè)務(wù)」了呢?你可以檢查下自己能不能做到下面這些點(diǎn):
          • 檢查下自己是否能快速?gòu)?fù)現(xiàn)方案?
          • 如果能快速?gòu)?fù)現(xiàn)方案,是否能估算每個(gè)階段大致需要多少人多少時(shí)間?
          • 面對(duì)不同的數(shù)據(jù)量,能否估算一個(gè)大概的服務(wù)器性能需求?

          3.軟實(shí)力層面

          懂技術(shù)了,又懂業(yè)務(wù)了,是不是感覺還不夠差點(diǎn)什么能力去推動(dòng)產(chǎn)品落地?這個(gè)是拋開技術(shù)和業(yè)務(wù)之外的東西,要描述成一個(gè)具體的能力,真的很難,我會(huì)把這些能力都?xì)w結(jié)于「軟實(shí)力」。我認(rèn)為主要是表現(xiàn)在溝通,思維這兩方面。情商、親和力、共情能力、有眼光,這些算不算軟實(shí)力?當(dāng)然算,但你有沒有發(fā)現(xiàn),這些軟實(shí)力都是基于溝通和思維的。

          溝通和思維等軟實(shí)力包括(但不限于):
          • 和客戶溝通的能力。聽你講的客戶并不一定是算法工程師或者數(shù)據(jù)科學(xué)家,你是否能把自己的方案原理講清楚?設(shè)計(jì)到技術(shù)的概念,是否能讓非技術(shù)的聽眾也能大致理解?
          • 思考能力。例如結(jié)構(gòu)化思維和批判性思維。其實(shí)有一定套路,只要多加練習(xí)就能掌握。推薦書籍有《金字塔原理》、《批判性思維工具》等。
          • 推動(dòng)團(tuán)隊(duì)的能力。和個(gè)人魅力息息相關(guān)。

          這里說(shuō)個(gè)真實(shí)故事,和算法無(wú)關(guān),和軟實(shí)力有關(guān)。我大舅是開工廠的,產(chǎn)品良品率之前一直上不去。我二舅退休后就去我大舅廠里做質(zhì)量監(jiān)督。我二舅就中學(xué)學(xué)歷,普通話也不標(biāo)準(zhǔn),但我二舅進(jìn)廠后,產(chǎn)品良品率上去了,工廠也扭虧為盈了。我問(wèn)他怎么做到的,他說(shuō),很簡(jiǎn)單啊,對(duì)于那些手工不精湛的小伙子,我就親自做一遍給他看,并告訴他,我一個(gè)退休老頭都能按質(zhì)做好,為啥你不行?就這么耐心的一個(gè)個(gè)溝通,一個(gè)個(gè)教學(xué),盯著他們直到確認(rèn)他們能做好為止。看起來(lái)這很簡(jiǎn)單是吧,但這過(guò)程需要耐心溝通,需要系統(tǒng)性思維找到關(guān)鍵因素。這就是軟實(shí)力的表現(xiàn)之一。

          如果你觀察銷售團(tuán)隊(duì)的日常,你會(huì)發(fā)現(xiàn),他們做的事情看起來(lái)簡(jiǎn)單,大部分時(shí)間就是給客戶發(fā)發(fā)郵件,和客戶開開會(huì),都是動(dòng)嘴皮子的事情,但是如果讓你去做這些,你會(huì)發(fā)現(xiàn)你會(huì)缺少自己貌似很難推進(jìn),你會(huì)問(wèn)自己,自己嘴皮子咋就不那么好呢?軟實(shí)力就像肌肉,運(yùn)用軟實(shí)力的過(guò)程就像搬磚,把磚頭從A點(diǎn)搬到B點(diǎn)看著很容易,但搬起來(lái)才發(fā)現(xiàn)自己肌肉還不夠強(qiáng)大。

          而鍛煉軟實(shí)力的方法?無(wú)它,只有干多了,軟實(shí)力才能上去。具體的說(shuō),對(duì)于算法工程師而言,就是不要逃避那些繁瑣的看似沒收獲的事情。例如在我為某客戶落地風(fēng)控系統(tǒng)的過(guò)程中,我們需要和他們的項(xiàng)目經(jīng)理保持聯(lián)系,有問(wèn)題也要給他們的數(shù)據(jù)團(tuán)隊(duì)反饋。其實(shí)這過(guò)程還挺難搞,因?yàn)樗麄冏鳛橐粋€(gè)跨國(guó)大公司,顯然數(shù)據(jù)中心是需要同時(shí)對(duì)接很多vendor的,所以當(dāng)和他們合作時(shí),需要經(jīng)常主動(dòng)推進(jìn)項(xiàng)目進(jìn)度,不然他們的項(xiàng)目經(jīng)理會(huì)問(wèn)責(zé)我們。例如我們有個(gè)pipeline每天固定時(shí)間要跑,他們作為上游,需要在運(yùn)行時(shí)間前把數(shù)據(jù)給到我們。當(dāng)時(shí)間到了,數(shù)據(jù)還沒給到我們,我們要做的第一個(gè)事,就立馬需要給數(shù)據(jù)團(tuán)隊(duì)發(fā)送郵件,抄送項(xiàng)目經(jīng)理,分清責(zé)任;然后積極跟進(jìn)回復(fù),搞清楚原因,和數(shù)據(jù)團(tuán)隊(duì)商量個(gè)預(yù)計(jì)解決時(shí)間,并且在這個(gè)時(shí)間點(diǎn)來(lái)臨前就問(wèn)問(wèn)進(jìn)度,以預(yù)留足夠時(shí)間來(lái)應(yīng)變。在這些看似繁瑣的溝通過(guò)程中,我掌握了推進(jìn)工作的方法,養(yǎng)成了積極推動(dòng)工作進(jìn)展,并在deadline來(lái)臨前檢查進(jìn)度以預(yù)留時(shí)間應(yīng)變的好習(xí)慣。


          總結(jié)

          算法工程師的「落地能力」包括技術(shù)能力,業(yè)務(wù)理解,還有軟實(shí)力。但對(duì)自己要求不要太苛刻,就好像你玩游戲時(shí)很少能用到每個(gè)維度的能力都滿分的英雄一樣,人的能力是有個(gè)頻譜的,不可能方方面面都能做得滿分,所以不要對(duì)自己感到挫敗。

          就拿我自己說(shuō),大家別看我說(shuō)的頭頭是道,但是說(shuō)實(shí)話,說(shuō)了這么多,其實(shí)我自己也并不能每個(gè)方面都做得好。這個(gè)「落地能力頻譜」就像是一個(gè)打分卡,幫助你從更全面的角度來(lái)分析自己的能力頻譜。有的人技術(shù)不那么精湛,但很懂業(yè)務(wù),很會(huì)帶隊(duì),也能使得產(chǎn)品順利落地;有的人技術(shù)滿分,但業(yè)務(wù)和溝通能力欠缺,但配合其他團(tuán)隊(duì)成員的優(yōu)勢(shì),也能使得產(chǎn)品順利落地。

          所以,接受自己的不足,盡可能動(dòng)態(tài)平衡自己的能力頻譜,總有一日,你能成為具有超強(qiáng)「落地能力」甚至能獨(dú)當(dāng)一面的算法工程師。

          參考:

          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
          “整理不易,點(diǎn)三連
          瀏覽 42
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美性爱视频樱桃视频 | 日韩在线不卡 | 欧美成人电影在线观看 | 日韩w w w x x x | 夜夜操夜夜操夜夜操 |