演算法工程師掌握了這個煉丹技巧的我開始突飛猛進

2021-10-22 05:13:37 字數 2825 閱讀 8257

文 | 夕小瑤

從不拖稿的小夕今天在知乎上刷到乙個問題:

我以為回答區會有這張圖:

結果竟然沒有!知乎果然沒有讓我失望,還是一如既往的認真、嚴謹、有逼格。咳咳,作為一枚知乎演算法圈的老司機小可愛,感覺自己有必要來添磚加瓦一下。

相信我,深刻理解資料的重要性與資料構造&迭代&使用技術,你會從演算法小白突飛猛進到即將入門!(認真臉

首先貼出我的演算法工程師公升級打怪路線:

最菜的演算法工程師靠調學習率

次菜的演算法工程師靠試新模型

合格的演算法工程師會懂得做資料

不錯的演算法工程師還會用新*****優化實際問題

優秀的演算法工程師能資料、模型、策略joint design&iterate

頂級的演算法工程師能顛覆行業方**

僅供參考,請勿對號入座!尤其是正在看本文的技術leader們,不要將自己的小弟對號入座,畢竟從1到6的形狀是個倒金字塔╮(╯▽╰)╭

其實從這裡可以看出,1和2其實大部分實習生和應屆校招生都能做到,而3就是完成學校->工業界的重要轉折點,也就是做資料

學生思維中的演算法工程師日常可能是這樣的:

天上掉下來/老闆拍過來/網上download下來乙個訓練集、測試集,然後我開始調模型&調參,調好了就上線了。

尤其是那些整天吹噓演算法崗門檻低,以為跑個bert刷個榜單就入門了nlp的人,不是學生就是半路轉行的調參俠。

當你開始意識到資料的重要性了,不敢說技術突飛猛進吧,至少可以承認你馬上要入門這一行了。比如你開始有以下意識:

嗯,我不能只關注離線測試集指標漲不漲,我還要判斷測試集靠不靠譜,包括取樣/資料分布的線上一致性、時效性、標註正確率、評測方差/置信度等。

嗯,我不能對著同乙個測試集做大量沒道理的煉丹,比如暴力調參、瘋狂改隨機種子、暴力亂加策略、暴力魔改、暴力增刪改查等。我知道大量的無意義超參調整,只會變相的讓模型用超參過擬合這個測試集。最終結果往往是,向上匯報猛如虎,線上使用者用腳投票。

wok,準確率從90%一下子漲到99%了!肯定不是我nb,絕對是出bug或者標籤洩漏了!

嗯,新老方法都有其存在的意義和發揮作用的階段,都是不可缺的。

嗯,從1到2與從0到1的解法有很大區別。

就至少跟200元/天的實習生劃清界限了。。。

那麼,具體來說,做資料具體要怎麼做呢?或者說需要積累哪方面的能力/經驗呢?

簡單來講:

標註標準

取樣策略

關於標註標準,這其實是個比較吃業務經驗的事情。

此外,哪怕是同一條樣本,同樣的分類任務,業務場景稍有變化,那麼你期待的標籤可能會完全相反。比如,句子「oppo最**手機多少錢」與句子「vivo最**手機多少錢」的文字相關性,在搜尋場景,就是妥妥的負例,因為使用者的出發點是獲取真實知識,你如果給使用者返回vivo的**,那使用者會有一種被欺騙感。

但是,在搜尋廣告場景,卻完全可以作為正例,因為本身vivo和oppo的大眾認知相對比較近,使用者在搜尋廣告場景的出發點可能是買一部不錯的安卓機,並且使用者覺得oppo可能是不錯的選擇,那這時候你給出vivo的資訊,使用者往往不會反感,甚至可能因為發現vivo更合適而下單。

當然了,這種品牌實體的替換導致的文字相關性結論並不是永久成立的,比如同樣搜尋廣告,使用者問「勞斯萊斯最**多少錢」,結果你出了一條「五菱最****」,那使用者就會感覺受到了侮辱。。所以深刻理解具體業務場景的優化目標,對於制定正確的標註標準是十分必要的。當然,標註標準很大程度上取決於產品標準,而你就是要將這個產品標準深刻理解且轉變成眾包平台人員也能輕鬆看懂的標註標準。

一旦標註標準導向錯了,坐擁百萬標註資料和100層的預訓練模型也可能原地踏步。相反地說,如果標準做得好,那將大大提公升標註資料的有效性,每週新返回的標註資料帶來的增益可能比你花式煉丹乙個月都來的有效。

關於取樣策略,這個則同時跟業務目標、技術選型與模型水平相關,在不同的場景有不同的策略。

比如你到了要端到端解決問題的階段,又能做到大規模標註,那可以考慮直接對齊線上真實分布做同分布取樣+端到端標註。但是大部分複雜業務,往往是pipeline的方式,則要考慮對齊上一級分布。涉及到具體場景和階段時,又會根據這個大原則去微調取樣策略,比如精排問題中如何mining負例,多路召回時如何取樣來優化下游粗排等,在真實分布的基礎上做些微調同樣可能帶來肉眼可見的提公升。

除了標準和取樣問題外,資料問題上還可以組合大量預處理策略和訓練策略,耦合上模型的特點和輸入分布偏好,又是一波空間。總之,在當前的大框架下,資料空間往往比模型空間大得多,這也是當下演算法工程師煉丹水平高低的乙個重要分水嶺。

說完了倒金字塔最重要的一層,我們繼續往下深入。

而4到5的過程,則需要一些頂層設計能力和工作年限積累。首先要做有挑戰性的大業務,那些挖個字典、跑跑textcnn、finetune下bert就完成目標的業務,說難聽點都是demo,至少演算法肯定不是這個業務的核心競爭力。當然了,這種挑戰大的場景主要集中在搜尋、推薦、廣告等核心賽道上,頂層設計能力純靠聰明、看*****和小打小鬧的業務是學不來的。怎樣的策略方案會預期達到怎樣的業務效果,消耗多少成本,有哪些風險,甚至這個事情當下能不能做,應不應該做,前置環節是什麼,下個階段要做什麼等,這些問題都要有足夠的判斷力。畢竟,哪個老闆願意拿著幾百上千萬的年薪讓你去他的命根子業務上成長試錯呢?

而5到6的過程,多拍腦袋吧,也需要環境、機遇。如果你做到了,記得回來留個言,給小夕留個好友位。。。

往期精彩回顧

驚了,掌握了這個煉丹技巧的我開始突飛猛進

文 夕小瑤 從不拖稿的小夕今天在知乎上刷到乙個問題 我以為回答區會有這張圖 結果竟然沒有!知乎果然沒有讓我失望,還是一如既往的認真 嚴謹 有逼格。咳咳,作為一枚知乎演算法圈的老司機小可愛,感覺自己有必要來添磚加瓦一下。相信我,深刻理解資料的重要性與資料構造 迭代 使用技術,你會從演算法小白突飛猛進到...

演算法工程師的危機

9月20號訊飛ai同傳語音造假的新聞刷爆科技圈,科大訊飛股價應聲 3.89 不是65.3 標題黨文章害死人 吃瓜群眾紛紛感慨,有多少人工,就有多少智慧型。nips會議,人滿為患,改改網路結構,弄個啟用函式就想水一篇 到處都是ai演算法的培訓廣告,三個月,讓你年薪45萬!在西二旗或望京的地鐵車廂裡打個...

資料探勘工程師 需要掌握的技術

了解lr gbdt xgboost dnn和nlp等常用模型的開源工具 熟悉語言,sas統計分析軟體,python,scala程式語言等 熟練掌握資料探勘 機器學習 優化演算法的基礎理論和方法,了解embbeding等方法理念 熟悉hadoop hive spark yarn kafka flink...