NLP算法工程師的日常以及核心競爭力

2021-02-25 AINLP

 經常有人問我算法工程師的日常,發一個之前寫的文章給大家;

先簡單自我介紹一下,我是DASOU,任職在一家社交公司,做NLP算法工程師,主要做文本分類,序列標註,問答匹配方向的工作,也做過搜索/推薦方向的需求。

工作快有一年半的時間了,在這一年半的時間裡,我在工作的同時,一直都在思索,究竟什麼才是算法工程師的核心競爭力,怎樣才能避免剛入行就不停被灌輸的那個35歲中年危機。

我看過很多別人的經驗總結,結合我自己的工作經歷,慢慢有了一點自己的感悟,想要分享出來,希望對大家能有幫助。

我用一句大白話說一下我自己對核心競爭力的總結就是:不同的場景,挑選合適的方法,獲得最大的效果。

這句話很淺顯,但是想要做到絕非沒那麼簡單!!這需要我們長年累月的經驗積累和總結。

接下來,我會模擬一個工作場景,講講究竟核心競爭力體現在哪些方面,以及怎麼才能不斷提升自己!!

0. 背景

假如現在接到了一個新的業務方的需求,你第一步要做什麼?

打開冰箱,把大象...啊,不對

1. 需求定性

首先第一步,我們需要對這個需求定性,定方向,它是屬於文本分類任務?命名體識別?還是機器翻譯?不同的方向我們使用的方法和側重點就會不一樣。當然,很多時候一個需求不僅僅是一個任務,多數情況下是多個任務的結合,這個暫且不論。

2. 調研

好的,現在定好了方向,比如是關於一個文本分類的任務,接下來是要做調研。

調研主要是分為兩個部分:數據和模型。

調研數據:對於一個算法工程師,處理數據絕對是佔據一天絕大部分時間,很多人調侃自己是 SQL BOY 。但是我想要說的,數據決定模型的上限,這句話絕對是真理。只有真正的了解我們的數據,才能在接下裡的任務中作出好的結果。

你需要知道你的數據量級大概是多少;不規範的數據多不多;需不需要做數據增強,針對當前這份數據哪種數據增強技術可能效果會不錯;有哪些特徵可能組合起來會有用等等,這些都需要在調研數據的時候值得我們仔細思考。

這裡插一句,如果數據很不規範,在這個時候你就要思考是從模型下手還是從數據本身下手,各自有什麼合適的方法。比如你可以看看這些不規範的數據究竟有什麼特點可以利用。比如是不是可以不分詞,而只是使用基於字的模型,等等吧。

在數據處理這個過程中,因為現在很多公司數據都存在 Hive 中,所以會用到 MapReduce,Hive,Spark 等等大數據開發工具,掌握這些工具絕對可以讓你輕鬆搞定數據處理。

調研模型:宗旨就是根據不同的要求,使用合適的模型。你需要綜合各方面的條件作出決策。如果業務方需要高準確度,選擇什麼模型能滿足要求。如果業務方需要高響應速度,選擇哪種模型合適。針對當前這種數據,哪種模型可能效果會不錯。

還是以我們這個文本分類這個需求為例,如果看中速度,FastText會不會更好一點,或者TextCNN怎麼樣?如果要求精度,那麼Bert可以嗎?或者寬鬆一點 Albert怎麼樣,FastBert怎麼樣?

在這個過程中,你需要去讀大量的論文和博客,看看別人的經驗和總結,幫助自己作出最終的決定。

3. 訓練/優化模型

模型的訓練和優化,一般來說不會佔據的太多的時間。有句話忘了在哪裡看到的了,說是處理數據花了兩周的時間,訓練模型花了兩個小時。聽起來可能有點誇張,但是是這麼個意思。在這個過程中,你的主要工作就是需要使用代碼實現模型,去思考怎麼樣才能更高效的運行這個模型,需要去思考怎樣才能獲取更好結果?

比如說,使用 GPU 進行訓練模型,你需要熟悉模型/數據並行化的知識。比如說,針對特定任務,修改損失函數,修改優化函數,等等吧。

4. 部署上線

我們需要為開發人員提供接口,從而可以處理數據返回結果。這個時候,你就要思考你的接口響應速度怎麼樣?做多可以多少並發?針對這種情況,自己做一個簡單的壓測就可以。一般來說,你需要掌握 grpc,kafka,flask,nginx 等常用工具。當然,這些你不需要精通,如果需求方對接口要求很高的話,你可以使用一些成熟的開源框架就可以,所以,不用太慌。

好了,大概就是這樣,整個流程我們有著極強的耐心,而且要不停的從過程中積累經驗。

5. 總結

總結來說,要想提高自己的核心競爭力,做到兩個方面:算法+工程 。

對於算法,要深入底層,把手弄髒。算法模型重點在質量,而不是數量。既然要搞一個模型,就要徹底把它搞清楚,要把它掰開了揉碎了琢磨,不要似是而非。

對於工程,你需要有大數據開發能力和模型訓練部署能力。

兩個都要抓,兩手都要硬,才能無往不利。其實,在這方面,我做的也很不好,人都是有惰性的,大道理說起來一套套的,做起來就是個行動的矮子...

然後我痛定思痛,想逼自己一把,於是幾天前就建了兩個倉庫。

一個是關於NLP各種面試題的倉庫(更新,現在1.3Kstar了):

https://github.com/DA-southampton/NLP_ability

一個倉庫是關於各種模型是如何在各大公司實戰落地的(更新,現在700star)。地址在這裡:

https://github.com/DA-southampton/Tech_Aarticle

所以感興趣的朋友可以去看看,如果能給大家帶來一點幫助,就很開心了,我會持續更新,爭取每篇文章都帶有新的思考,而不是新瓶裝舊酒。

打完收工!點個再看!這樣我在天堂超市可以開心的多喝幾瓶!鞠躬感謝!



由於微信平臺算法改版,公號內容將不再以時間排序展示,如果大家想第一時間看到我們的推送,強烈建議星標我們和給我們多點點【在看】。星標具體步驟為:

(1)點擊頁面最上方"AINLP",進入公眾號主頁。

(2)點擊右上角的小點點,在彈出頁面點擊「設為星標」,就可以啦。

感謝支持,比心

進群請添加AINLP小助手微信 AINLPer(id: ainlper),備註NLP技術交流

推薦閱讀

這個NLP工具,玩得根本停不下來

徵稿啟示| 200元稿費+5000DBC(價值20個小時GPU算力)

完結撒花!李宏毅老師深度學習與人類語言處理課程視頻及課件(附下載)

從數據到模型,你可能需要1篇詳實的pytorch踩坑指南

如何讓Bert在finetune小數據集時更「穩」一點

模型壓縮實踐系列之——bert-of-theseus,一個非常親民的bert壓縮方法

文本自動摘要任務的「不完全」心得總結番外篇——submodular函數優化

Node2Vec 論文+代碼筆記

模型壓縮實踐收尾篇——模型蒸餾以及其他一些技巧實踐小結

中文命名實體識別工具(NER)哪家強?

學自然語言處理,其實更應該學好英語

史丹福大學NLP組Python深度學習自然語言處理工具Stanza試用

關於AINLP

AINLP 是一個有趣有AI的自然語言處理社區,專注於 AI、NLP、機器學習、深度學習、推薦算法等相關技術的分享,主題包括文本摘要、智能問答、聊天機器人、機器翻譯、自動生成、知識圖譜、預訓練模型、推薦系統、計算廣告、招聘信息、求職經驗分享等,歡迎關注!加技術交流群請添加AINLPer(id:ainlper),備註工作/研究方向+加群目的。

閱讀至此了,分享、點讚、在看三選一吧🙏

相關焦點

  • 算法工程師當前選哪個方向好?1,CV;2,NLP;3,推薦系統?
    整理:zenRRan    編輯:深度學習自然語言處理公眾號算法工程師當前選哪個方向好
  • 一個算法工程師的日常
    本文整理自知乎同名討論帖:《一個算法工程師的日常是怎樣的?》,版權歸原作者所有。原討論地址 zhihu.com/question/29692814很多人,也包括我,會好奇:一個算法工程師的日常是怎樣的?
  • 算法工程師也會遇到35歲這道坎麼?
    對於一個負責業務落地的一線算法工程師來說,這些數據工作可能佔了日常工作的很大一部分時間。可就是這些一開始被你看不起的各種所謂 dirty job,這些你在實驗室和學校接觸不到的工業數據實踐,這些在 paper、書本和網絡永遠不會教你的工作,正是你所累積的技術經驗和寶貴的財富,它是驅動你往下一層級改造的主動力。
  • AI人才平均年薪32萬元 軟體和算法工程師最緊俏
    中關村在線消息:近日,《AI人才競爭力報告》發布,報告中指出,目前軟體工程師和算法工程師是AI領域裡最為緊俏的崗位,AI從業人員的薪資持續且明顯地超過網際網路行業。AI人才平均年薪32萬 算法工程師最緊俏在2017年的第三、四季度,排名前十的AI核心崗位中,軟體工程師和算法工程師佔比最高,位列第一、第二,產品經理位列第三。AI領域從業人員的平均年薪整體高於網際網路行業的平均年薪。
  • 人工智慧會是最強核心競爭力嗎
    打開APP 人工智慧會是最強核心競爭力嗎 餘豐慧 發表於 2020-03-11 11:19:08 人工智慧三要素:大數據、算法和算力,與雲計算息息相關、一脈相承。算力正是數字時代的基礎,有了雲計算的支撐,大數據支撐的科學決策、各種算法支撐的人工智慧,智聯網支撐的萬物互聯,以及全面在線才有擁有可能。由此,全面支撐了疫情期間的社會治理、資源調配,科學決策,組織協同。 「雲」將為未來城市提供數字基礎設施。到2045年,估計全世界將有60億人生活在城市中。
  • 推薦算法工程師的成長之道
    所以本文除了講解推薦算法工程師的成長路徑之外,還會詳細闡述推薦算法工程師需要了解的方法論和智慧。相信讀者讀完本文會更加堅信推薦算法工程師是一個好的職業選擇, 並且結合自己的興趣和特長也知道未來該怎樣去規劃、發展和成長。
  • 算法工程師的術與道:從特徵工程談數據敏感性
    問題導入什麼是數據敏感性如何衡量數據敏感性數據敏感性如何培養導入問題的答案面向人群:算法工程師我們從一道題目說起
  • 算法與算法工程師,技術與技術人員
    (註:標題裡的算法,指機器學習算法,或者說「算法工程師」這個職位名稱裡的「算法」,不是「算法與數據結構」裡的那個算法。誰能告訴我有沒有什麼更好的名字來區別這它們,或許是「機器學習算法」與「傳統算法」?)算法與算法工程師先來一段我在知乎裡回答「做算法工程師是一種怎樣的體驗?」
  • 算法工程師研發技能表
    Learning Lab    由於算法工程師這個崗位根據不同的業務場景和應用方向,各自的工作差異相對較大。所以很難有一個一概而論的算法工程師技術棧。比如說做圖像方向的有機器視覺算法崗、做文本方向的有自然語言處理算法崗、做語音的又有語音識別算法崗。本文僅對算法工程師常用的、基礎的、必備的研發技能進行梳理。也就是說,不論你是做哪個業務場景下的算法工作,這些基礎研發技能都是必知必會的。這組技能清單主要包括兩大類型,一類是理論技術,另一類是程式語言和工具類。
  • 對於算法工程師職業生涯規劃的思考
    本文閱讀時間約7min,共分為兩個部分:什麼叫做優秀的算法工程師?在面臨換工作/就業的時候,自己應該依據什麼做選擇?什麼叫做優秀的算法工程師先扔一個觀點。優秀的算法工程師是解決問題的人。一定的工程能力我在第一份正式工作的時候,領導和我們強調了,你首先是一個工程師,然後才是算法工程師。你每天在那裡加個特徵,調個參數,臨了連個服務也上不去,有了bug也不知道怎麼改,一個小型工程都做不出來,怎麼能叫自己是算法工程師呢?
  • 一個算法工程師的2020年終總結
    但還是希望自己可以多總結多沉澱,也打造一些自己的影響力,所以會在公眾號(推薦廣告算法小木屋)和知乎(iwtbs)發表文章和答題。很高興的是,雖然推廣幾乎等於0,但是公眾號也有了150多粉絲,知乎也有學弟學妹加我好友開始了學習或者實習。想法與反思1.
  • 算法工程師的落地能力具體指的是什麼?
    根據我的經歷以及對身邊同事的觀察,我個人會把落地工程師的「落地能力」分為三個維度:很多人以為算法工程師日常工作就是調下參,改個算法再跑跑,直到神經網絡輸出符合預期。在入行前,他們以為算法工程師的日常是這樣的:圖源《如何創造可信的AI》事實上,算法工程師可能涉及的技術範圍是很廣的。
  • NLP技術路線詳解:這是從數學到算法的藝術
    選自Github項目作者:Tae-Hwan Jung機器之心編譯自然語言處理路線圖詳解,從數學基礎、語言基礎到模型和算法,這是你該了解的知識領域。自然語言處理很多時候都是一門綜合性的學問,它遠遠不止機器學習算法。相比圖像或語音,文本的變化更加複雜,例如從預處理來看,NLP 就要求我們根據對數據的理解定製一種流程。而且相比圖像等更偏向感知的智能,自然語言包含更高一級的智能能力,不論是承載思想、情感還是推理。那麼我們該怎樣學習自然語言處理,有什麼比較好的路線嗎?
  • GitHub 最受歡迎的 NLP 相關項目 | 資源推薦
    想要涵蓋傳統和核心的 NLP 任務,例如依存分析、詞性標註以及最近的閱讀理解和自然語言推理。主要目的是讓讀者快速了解,他們感興趣任務的基準數據集和 SOTA 模型,為進一步研究奠定基礎。NLP-tutorialhttps://github.com/graykode/nlp-tutorial針對 TensorFlow 和 PyTorch 學習 NLP 的教程。多數 NLP 模型都用少於 100 行的代碼實現(注釋和空白行除外)。
  • 人工智慧算法工程師是吃青春飯嗎?
    人工智慧將在政府、金融、醫療、交通、零售以及製造行業多點開花,有效解決這些行業的痛點。誠然,人工智慧的發展是與時俱進的,人工智慧的未來也是不可限量的。人工智慧確實很好,也有很多人想借著這股勢頭加入進來,但是說到這裡,小編不禁想問,從事人工智慧行業真的有那麼好嗎?作為人工智慧行業的核心崗位「人工智慧算法工程師」是吃青春飯嗎?
  • 推薦算法工程師成長1——召回模塊
    開一個系列,主題是推薦算法工程師成長路徑。目標是希望填補書本上的機器學習理論與業界推薦算法工程師知識體系上的gap,了解一些業界模塊的通用玩法。目標群體是針對以下用戶: 上一篇,我們講了做推薦算法需要的工程基礎。這一篇我們正式進入推薦系統,來講講召回是怎麼做的。如果你是第一次了解推薦系統,我先來簡單解釋下。
  • 這幾個專業的畢業生正被瘋搶:算法工程師年薪30萬起步
    其中包括谷歌中國、微軟、google、騰訊、大疆、海康、華為、網易遊戲、阿里巴巴、滴滴、百度、今日頭條的知名網際網路企業,他們給校招生開出的年薪水平均在30萬以上,不過提供以上薪資水平的崗位也多為算法工程師、研發工程師、軟體工程師等技術性較強的崗位。
  • NLP、CV、語音相關AI算法工程師面試問題、代碼、簡歷模板、知識點等資源整理分享
    本資源整理了機器學習、深度學習、算法工程師等AI相關崗位面試需要知識點,常見代碼實戰(分為C/C++和python版本)、常見問題,簡歷模板、比賽/競賽相關的資源,分享給需要的朋友。Github        •算法/深度學習/NLP面試筆記 Github        •算法工程師面試 Github        •2019屆秋招面經集合 Github        •技術面試必備基礎知識 Github        •AI算法崗求職攻略 Github (amusi)
  • 你知道算法工程師的分類嗎?
    ,獵聘網上看看)算法工程師是一個非常高端也是相對緊缺的職位。/R加分項:具有較為豐富的項目實踐經驗(不是水論文的哪種)二、算法工程師大致分類與技術要求(一)圖像算法/計算機視覺工程師類包括圖像算法工程師,圖像處理工程師,音/視頻處理算法工程師,計算機視覺工程師。
  • 長文分享:AI算法工程師煉成之路
    新智元推薦 來源:DataWhale作者:張怡編輯整理:元子【新智元導讀】這是一篇關於如何成為一名AI算法工程師的長文作者回顧了自己成長為一名算法工程師,並分享了入門機器學習的經驗,以及學習資源。這是一篇關於如何成為一名AI算法工程師的長文。作者回顧了自己成長為一名算法工程師,進行了經驗總結。