<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>

          算法工程師的落地能力具體指的是什么?

          共 6037字,需瀏覽 13分鐘

           ·

          2021-02-13 22:05

          ↑ 點擊藍字?關(guān)注極市平臺

          作者丨桔了個仔@知乎(已授權(quán))
          來源丨h(huán)ttps://www.zhihu.com/question/304695682/answer/1720475610
          編輯丨極市平臺

          極市導(dǎo)讀

          ?

          作者從自身經(jīng)驗出發(fā),從三個方面:軟實力、技術(shù)和業(yè)務(wù)講述了算法工程師落地的能力具體指向,為想要成為算法工程師或者已經(jīng)工作中的小伙伴們提供一點小小的建議。?>>CV開發(fā)者2021新春專屬紅包封面已追加!點擊閱讀原文即可免費領(lǐng)取!

          本文約5000字,閱讀需要30分鐘。

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


          1.技術(shù)層面

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

          • 學會數(shù)據(jù)獲取。原始數(shù)據(jù)需要經(jīng)過ETL才能被算法利用。ETL(Extract, Transform, Load)是將業(yè)務(wù)系統(tǒng)的數(shù)據(jù)經(jīng)過抽取、清洗轉(zhuǎn)換之后加載到數(shù)據(jù)倉庫的過程,目的是將企業(yè)中的分散、零亂、標準不統(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ù)測信用卡逾期風險,你了解到,債務(wù)負擔率和用戶風險有著一定關(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等等。當然,除了python庫,excel里的可視化也要做好,這與算法無關(guān),但在你做匯報時能幫助你把一個結(jié)果解釋清楚。

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

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


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


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

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

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

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



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

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

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

          第二個該問自己的問題是:
          有什么制約因素?

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

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

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

          如何評價德國訓練探雷犬和尋尸犬識別新冠患者,稱準確率達94%?嗅探犬接觸患者后會成為病毒傳播介質(zhì)嗎?
          https://www.zhihu.com/question/442962994/answer/1717172385

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

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

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

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

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


          3.軟實力層面

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

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


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

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

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


          總結(jié)

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

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

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

          參考:

          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



          推薦閱讀



          添加極市小助手微信(ID : cvmart2),備注:姓名-學校/公司-研究方向-城市(如:小極-北大-目標檢測-深圳),即可申請加入極市目標檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強/OCR/視頻理解等技術(shù)交流群:每月大咖直播分享、真實項目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與?10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~
          △長按添加極市小助手

          △長按關(guān)注極市平臺,獲取最新CV干貨

          覺得有用麻煩給個在看啦~??
          瀏覽 36
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  伊人网视频在线观看 | 天天草天天日 | 久久免费看视频 | 东方AV在线一 | 国产精品久久免费 |