算法工程师掌握了这个炼丹技巧的我开始突飞猛进
文 | 夕小瑤
從不拖稿的小夕今天在知乎上刷到一個問題:
哈?一向求真務實、高逼格討論的知乎畫風怎么突然就不一樣了。
我以為回答區會有這張圖:
▲如來神掌結果竟然沒有!知乎果然沒有讓我失望,還是一如既往的認真、嚴謹、有逼格。咳咳,作為一枚知乎算法圈的老司機小可愛,感覺自己有必要來添磚加瓦一下。
相信我,深刻理解數據的重要性與數據構造&迭代&使用技術,你會從算法小白突飛猛進到即將入門!(認真臉
首先貼出我的算法工程師升級打怪路線:
最菜的算法工程師靠調學習率
次菜的算法工程師靠試新模型
合格的算法工程師會懂得做數據
不錯的算法工程師還會用新paper優化實際問題
優秀的算法工程師能數據、模型、策略joint design&iterate
頂級的算法工程師能顛覆行業方法論
僅供參考,請勿對號入座! 尤其是正在看本文的技術leader們,不要將自己的小弟對號入座,畢竟從1到6的形狀是個倒金字塔╮(╯▽╰)╭
其實從這里可以看出,1和2其實大部分實習生和應屆校招生都能做到,而3就是完成學校->工業界的重要轉折點,也就是做數據。
關于數據
學生思維中的算法工程師日常可能是這樣的:
天上掉下來/老板拍過來/網上download下來一個訓練集、測試集,然后我開始調模型&調參,調好了就上線了。
尤其是那些整天吹噓算法崗門檻低,以為跑個BERT刷個榜單就入門了nlp的人,不是學生就是半路轉行的調參俠。
當你開始意識到數據的重要性了,不敢說技術突飛猛進吧,至少可以承認你馬上要入門這一行了。比如你開始有以下意識:
嗯,我不能只關注離線測試集指標漲不漲,我還要判斷測試集靠不靠譜,包括采樣/數據分布的線上一致性、時效性、標注正確率、評測方差/置信度等。
嗯,我不能對著同一個測試集做大量沒道理的煉丹,比如暴力調參、瘋狂改隨機種子、暴力亂加策略、暴力魔改、暴力增刪改查等。我知道大量的無意義超參調整,只會變相的讓模型用超參過擬合這個測試集。最終結果往往是,向上匯報猛如虎,線上用戶用腳投票。
wok,準確率從90%一下子漲到99%了!肯定不是我nb,絕對是出bug或者標簽泄漏了!
嗯,新老方法都有其存在的意義和發揮作用的階段,都是不可缺的。
嗯,從1到2與從0到1的解法有很大區別。
就至少跟200元/天的實習生劃清界限了。。。
那么,具體來說,做數據具體要怎么做呢?或者說需要積累哪方面的能力/經驗呢?
簡單來講:
標注標準
采樣策略
關于標注標準,這其實是個比較吃業務經驗的事情。
真實的業務場景數據是非常dirty的,即使是情感分類這種看起來非黑即白的NLP任務,在流量大的真實業務場景中,都會面臨大量的邊界樣本和人都要分辨半天,甚至需要足夠學歷、閱歷才能分辨出情感極性的樣本(想象一下知乎評論區那些“陰陽怪氣”的評論,可能你都不知道對方是在罵你還是夸你)。
此外,哪怕是同一條樣本,同樣的分類任務,業務場景稍有變化,那么你期待的標簽可能會完全相反。比如,句子“oppo最新款手機多少錢”與句子“vivo最新款手機多少錢”的文本相關性,在搜索場景,就是妥妥的負例,因為用戶的出發點是獲取真實知識,你如果給用戶返回vivo的價格,那用戶會有一種被欺騙感。
但是,在搜索廣告場景,卻完全可以作為正例,因為本身vivo和oppo的大眾認知相對比較近,用戶在搜索廣告場景的出發點可能是買一部不錯的安卓機,并且用戶覺得oppo可能是不錯的選擇,那這時候你給出vivo的信息,用戶往往不會反感,甚至可能因為發現vivo更合適而下單。
當然了,這種品牌實體的替換導致的文本相關性結論并不是永久成立的,比如同樣搜索廣告,用戶問“勞斯萊斯最新款多少錢”,結果你出了一條“五菱最新款價格”,那用戶就會感覺受到了侮辱。。所以深刻理解具體業務場景的優化目標,對于制定正確的標注標準是十分必要的。當然,標注標準很大程度上取決于產品標準,而你就是要將這個產品標準深刻理解且轉變成眾包平臺人員也能輕松看懂的標注標準。
一旦標注標準導向錯了,坐擁百萬標注數據和100層的預訓練模型也可能原地踏步。相反地說,如果標準做得好,那將大大提升標注數據的有效性,每周新返回的標注數據帶來的增益可能比你花式煉丹一個月都來的有效。
關于采樣策略,這個則同時跟業務目標、技術選型與模型水平相關,在不同的場景有不同的策略。
比如你到了要端到端解決問題的階段,又能做到大規模標注,那可以考慮直接對齊線上真實分布做同分布采樣+端到端標注。但是大部分復雜業務,往往是pipeline的方式,則要考慮對齊上一級分布。涉及到具體場景和階段時,又會根據這個大原則去微調采樣策略,比如精排問題中如何mining負例,多路召回時如何采樣來優化下游粗排等,在真實分布的基礎上做些微調同樣可能帶來肉眼可見的提升。
除了標準和采樣問題外,數據問題上還可以組合大量預處理策略和訓練策略,耦合上模型的特點和輸入分布偏好,又是一波空間。總之,在當前的大框架下,數據空間往往比模型空間大得多,這也是當下算法工程師煉丹水平高低的一個重要分水嶺。
更進一步
說完了倒金字塔最重要的一層,我們繼續往下深入。
3到4的過程相對來說不是很難。如果你有刷paper的習慣,配合著高手速,腦子別太笨,那剩下的20%的疑難問題你也能解的七七八八了。即使不怎么刷paper,在靠譜的算法團隊里茍著,通過耳濡目染也能get到不少求解疑難算法問題的高端姿勢(誤)。能做到這一步的,在大廠核心團隊里也稱得上不錯了。如果再有一些軟實力加成,至少不會擔心沒人要。
而4到5的過程,則需要一些頂層設計能力和工作年限積累。首先要做有挑戰性的大業務,那些挖個字典、跑跑textcnn、finetune下BERT就完成目標的業務,說難聽點都是demo,至少算法肯定不是這個業務的核心競爭力。當然了,這種挑戰大的場景主要集中在搜索、推薦、廣告等核心賽道上,頂層設計能力純靠聰明、看paper和小打小鬧的業務是學不來的。怎樣的策略方案會預期達到怎樣的業務效果,消耗多少成本,有哪些風險,甚至這個事情當下能不能做,應不應該做,前置環節是什么,下個階段要做什么等,這些問題都要有足夠的判斷力。畢竟,哪個老板愿意拿著幾百上千萬的年薪讓你去他的命根子業務上成長試錯呢?
而5到6的過程,多拍腦袋吧,也需要環境、機遇。如果你做到了,記得回來留個言,給小夕留個好友位。。。
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯 本站qq群851320808,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的算法工程师掌握了这个炼丹技巧的我开始突飞猛进的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qq浏览器如何进入私密 qq浏览器怎样进
- 下一篇: 怎么在QQ浏览器上使用微信聊天?