老刘说NLP:焦虑被大肆贩卖下的自然语言处理学习思考
一、話題的由來
近期,有不少朋友來信,來詢問如何看待自然語言處理這個方向,表示對當前的狀態很不滿,希望能夠盡快地找到一個合適的方向、快速的學習方式,提升自己的自然語言處理能力,從而找到一個算法崗位的面試算法機會,進而進入到這個行業。從交談的言語中,可以很清晰地看出,這些朋友的焦慮感、因急功近利而產生的盲從和矛盾,從身份中不乏又在讀的學生、剛畢業的研究生、已畢業工作的社會打工人(半路出家)。因此,我在想,是否可以就該話題,從自身的角度,對該話題展開自己的觀點闡述,拋磚引玉,歡迎大家拍磚批評。
二、“內卷”下的時代大背景
“內卷”這個詞,目前已經成了互聯網行業甚至全行業的一個現狀,“卷到之處,寸草不生”,“內卷”這一詞深刻的揭示了當下競爭壓力加大的殘酷現實。“內卷”是個過程性的狀態,包括參與“內卷”的對象、“內卷”的能力、“內卷”的動作三個最基本的構成要素,內卷的人主動或被動地憑借自己“內卷”的能力段位,在整個“內卷”動作中分別分得一杯羹,達到符合自己段位的“蛋糕”或者“薪水”。因此,內卷能力,是最重要的要素,為了讓自己在整個動作中處于不敗之地,如何讓自己更具備“內卷”之力,甚至成為“卷王”、“無敵卷王”,成為了大家最關心的事情。
不過,我們需要承認的是,“內卷”之力從可實施的角度上講,可以分成“勤奮”和“天分”(專業性)兩種,對于一個工作,前者可以通過花費更多的時間去做,使得自己從而達成最終效果,后者則通過自己天生的“天分”以及專業性,來保證自己在達成最終效果的過程中保持先進性。“勤奮”的人,指的更多是非科班出身的人,因為沒有先發優勢,因此常常需要花費大量的時間去從頭學習,而這種時間往往又被大部分的現有工作所擠占,因此常常表現出呈現出一種“下班后充電”的狀態。“天分”的人,則根據自身的專業性,持續發揮自身的優勢,并持續追蹤當前的技術前沿(因為當下技術更新實在太快,常常會發出這個模型才開始熟悉,新的模型又出來了的感嘆)。
不過,我們可以發現,在整個內卷的閉環當中,“天分”的人畢竟是少數,因為每年專業對口、科班出身的人數是有限的,每年畢業生就那么多,而“勤奮”的人占多數,而且所占比例越來越大(因為越來越多的人打算、正在或者已經擠進去),這種比例的增加,使得前者面臨著與后者趨于“同質化”的風險,而為了避免這種“同質化”,“天分”的人又開始主動或者被迫地尋找新的增量(如參加重大算法比賽、發頂會文章、參與大的項目、寫更多的專利、有大廠經歷),從而使得前者越來越焦慮,而這種增量反過來又促使后者更變本加厲地投入到刷比賽、跟前沿模型的浩瀚大軍之中,使得自己原本就像海綿里的水一樣的學習時間變得愈發珍貴。
因此,為了讓自己的“勤奮”更高效,更具有針對性,“彎道超車”、“速成”這些名詞開始成為了這些人的一個突破口,為了讓自己的增量更具備先進性、不被被動“落伍”,我們直接來到了當下的一個的常態之中。當我們打開知乎、脈脈、公眾號、軟文、自然語言處理速成機構等發布的文章和消息時,總能看到自然語言處理算法崗灰飛煙滅、算法崗高薪速成寶典,從中我們可以看到關于技術實現、技術前沿的大量心得、報道,拋開其質量參差不齊、知識點碎片化的特點不說,這些文章確實在一定程度上“普及”了一些人的知識盲區,并指出了一些方向。但,從歷時的公眾號軟文發布的文章中來看,我們會發現這樣一個規律, 當一個公眾號人數達到一定規模后,許多公眾號就會陸續推出一些推出花式的自然語言處理高薪算法工程師速成手冊、速成課程廣告等,逐步轉換為一個營利性的行為(這也直接揭示了當下大部分公眾號文章的最終目的)。
不過,這種目的,顯得無可厚非,因為其本質上是在收取“智商稅”或者“懶人稅”,因為作為看這些文章的人,在享受公眾號文章的同時,就必須要接受自己“懶”以及“知識盲區”的事實。但,如果從整個大環境來看,這些以收“智商稅”的培訓機構或軟文營銷號正以不斷販賣焦慮、宣揚急功近利為目的從而獲利的舉動,確實實實在在地往原本競爭就激烈的就業氛圍,添油加醋,并讓上述提到的兩類人,惶恐不安。沒有方向感、感覺要學的東西很多,每天都有新的要學的東西出來,自己學不過來。“脈脈”、“知乎”上動輒年薪百萬、應屆畢業生年薪40-50萬起等“頭部非正常式炫富”行為給予人的一種落后感和失敗感,使得越來越多人(科班的、半路出家的)加入到高薪算法崗的朝圣之路當中,使得整個行業越來越卷,并且逐步形成了市場中人員素質參差不齊、魚龍混雜,最終劣幣驅逐良幣的畸形形態。而這種畸形形態,直接使得行業企業面試官在面試過程中對面試人員要求的不斷加碼,唯有這樣,才能更好的區分出誰優誰劣,這種加碼又進一步地使得整個“內卷閉環”越來越餓不堪重負。
三、自然語言處理的“冷”與“熱”
前面說到,“帶有絕對目標性和功利性的急于求成”,成為了越來越多的人的一種心理負擔。自然語言處理算法工程師這個崗位,自然而然地成為了當前大家一直追捧的行業明星,并逐步成為了大家的首選,這是實現高薪、小康水平的最直接的道路,也是不讓自己落后于他人,保持持平甚至優越的重要保證。
的確,目前的AI熱,使得以自然語言處理算法工程師的薪資比一些傳統行業要高出許多,尤其是頭部的大廠和創業公司為代表,開出的薪資一年比一年高,這也就必然導致越來越多的人想往這個領域去靠。而自然語言處理之所以熱,是因為其在目前的大數據時代,有大量的應用場景(已經落地、正在落地以及想象的無法落地),存在著大量的探索價值,而且現在自然語言處理技術研究和業界落地探索力度不斷加大,傳統的、機器學習的、深度學習的處理方法不斷推陳出新,并且階段性的有“救世主”的出現(如SVM、CNN、RNN、Attention、BERT、GPT),很實際地提升一些業務的性能指標。直接引起了現在自然語言處理的“學術熱”和“投資熱”。
不過,“冷熱交替”是一個技術和行業發展的一個必經階段,“自然語言處理”大概率不會很長時間都保持這樣一個“熱”的狀態,作為先行者“CV熱”,尤其是在今年以來,已經開始逐步降溫,CV界的四小龍,目前長期燒錢的獨角獸公司除了云從科技上市之外,其他還并沒有能夠馬上上市的消息,因此,也可以從各種渠道聽到裁員等消息,也傳出現在AI紅利消失、AI泡沫的一些感嘆。做算法的人都知道,自然語言處理有不少的算法是從圖像處理中引入的,如CNN,并且相比圖像處理,天生歧義性很強、解空間巨大的文本處理難度要大得多,從理論上來說,其落地難度不會比圖像輕松。因此,我們也可以遇見的是,自然語言處理這個行業本身,在未來幾年也會逐步降溫,即巨大的紅利將會消失,消失的結果是會造成一系列的連鎖放反應,即:自然語言處理從業者蛋糕的減少->競爭壓力的加大->更加內卷->優勝劣汰不斷加碼->行業會整頓->人員會分流。人員的分流可能是后期的一個形態,因為當一個行業的勞動力過剩,且行業的價值規模逐步回落至真實估值水平,經過業務檢驗以及落地試錯之后,一些概念的技術將會以泡沫形態退出歷史舞臺(當然會有一些新的概念出來,形成一種增量,但這種增量不一定會那么快到來)。因此,可以預見的是,大方向上,自然語言處理目前正在處于或者不久即將退出風口,高薪可能已經達到了一個峰值,小方向上,自然語言處理從業人員目前會逐步飽和(優質人員),紅利期等待大家的時間已經不多了(因此需要有清晰的定位,做正確的事情比正確的做事更重要)。
四、自然語言處理算法工程師需要的能力
在工作這幾年,也陸續充當了面試官的角色,因此,可以從自己從頁的角度來說說一個合適的自然語言處理算法工程師,雖然說目前面試是“面試造火箭,工作擰螺絲”,但對于一個企業來招人而言,其面試“造火箭”的方法,是從中選拔合適的人,盡可能規避入職后溝通風險、工作風險的最好方式。下面,就從個人的實際經驗出發,談談目前一個合適的自然語言處理算法工程師都應該具備哪些特質。
**1、基礎理論扎實。**一個企業來招一個人,實際上是要招一個能夠干活的人,而這個人能夠干活的前提,就是他對干的這個活所依賴的一些基礎知識有個大概的了解,以減少一個入職后的培養成本,這是一個風險控制點,基礎不牢、地動山搖。比如自然語言處理算法崗,對基礎的自然語言處理知識是需要了解的,比如傳統的語言模型、中文的詞法、句法,目前主流的深度學習方法,如bert系列的工作原理、網絡構造以及一些網絡的優化方法。當然,需要注意的是,不同的公司、在不同的時期,對一些不同的基礎理論知識的要求是不斷變化的,因為隨著時間的推移、技術的更新,在實際落地過程中所使用的技術是不斷變動的,因此,對應的基礎理論需要與用人單位實際項目中所需要的技術來對齊。例如,幾年前,對BP、CNN、LSTM的要求較高,但現在以BERT、Transformer為主。如果拿著掌握前者,而對后者沒有涉及,那大概率也是不行的,因此需要與時俱進。另外,這個基礎理論扎實,絕不是簡單的調包,或者熟悉一些基本的概念,更多的是對一些模型的算法思想、結構等有清晰的認識。
**2、擁有相關項目實踐。**擁有實際的項目是一個用人單位最看重的一點,基礎理論扎實奠定了面試者可快速培養、上手來解決實際項目問題的重要基礎,而基礎理論也也還是停留在理論層面,一方面在實際的項目研發過程中會存在大量的問題,如編碼問題、性能問題、數據問題、模型問題等多種意外情況。另一方面,基礎理論可以通過書本學習、背誦、速記等方法快速養成,只有通過相應的項目實踐才能進一步規避“紙上談兵”以及“弄虛做假”的嫌疑(只是看過一些ppt、軟文或者本地運行過一些github上的項目代碼)等。實際上,自然語言處理的項目有很多,當我們打開一些垂直的招聘網站中,我們會發現,自然語言處理的崗位占大頭主要包括文本搜索、推薦算法、文本分類、信息抽取、輿情分析、知識圖譜、文本生成等幾個大塊,每一類項目都有對應的一些模型和解決方案,因此在面試過程中所需要的項目經歷也不外乎這幾類。不過,說到項目這一點,對于半路出家的人或者校招生來說,無疑是處于劣勢的,對于前者而言,因為其目前所從事的工作并不是自然語言處理相關的,也就必然不會有相關的項目經驗,后者則是因為在學校中課題研究,更多的是理論型的研究。因此,在簡歷當中,我們可以看到一些簡歷上通過一些公開的比賽項目或者業余自創業項目來作為補充。這種補充雖然在某種程度上是不合時宜的,加上去也無可厚非。但需要明確的是,這些項目在進行面試應答時,需要做好項目細節刨根問底的準備。例如,關于這個項目的概述、業務場景、解決思路、出現的問題、優化的方向、性能部署等多個方面。因為一個項目通常從提出到上線,會持續幾個月至一兩年不等,其中可能涉及到的問題是很多的。
**3、業務理解與溝通順暢。**員工是來執行任務的,是需要在給定一個確定的目標下,要求員工能夠發揮各種力量來達成。因此,業務理解能力與溝通能力,是衡量一個員工后續工作開展協作的重要指標。溝通成本往往是一個項目開展十分耗時的部分,小到一些基本的概念細節、達到整體的業務目標,如何對于一個業務無法充分理解,整個工作大概率就會跑偏。因此,自然語言處理工程師在面試的過程當中,是需要保持業務描述清晰,具備業務的分解、問題的分析、問題的定位以及風險評估的能力,并且需要聽得進去、不自以為是,能夠協作。而對于業務理解而言,最好能夠分層級、有條理、有邏輯地描述清楚,并做到邏輯自洽。
四、自然語言處理算法工程師的養成
在當下“內卷”的大背景下,在當前用人單位對自然語言處理算法工程師的“基礎理論”、“項目實踐”、“業務溝通”上的要求,如何全方位的提升自己的能力,使得自己合格化、標準化,下面就個人的經驗,給出幾條建議。
1、實踐是檢驗真理的唯一標準。“Talk is cheap, show me your code”,這句話,實際上是業界的一個默認的共識,如果只是看了很多的書、讀了很多的論文、參加了很多的學術會議,有很多的idea,但如果不動手實踐,那大概率是無法真正轉化成自己的一個生產力的。前面說到,目前的知乎、微信軟文、csdn等論壇中每天都會出現大量的文章,這些文章絕大多數都是用來“掃盲”的,如果只是看,但不動手實踐,那么大概率會長期處于一種懂“ppt”的概念型人才(這種人才在學術界、在科研院所、國企事業單位)中做寫本子、寫項目申報書的崗位中是有特別需求的,但在業界,其更強調實際的動手能力,因為只有動手了,才能發現其中很多細節并沒有那么美好,數據很亂、指標提不上去、在線與離線環節不一樣的問題會很多。因此,在實際的工作和學習過程中,一方面,可以試著少看一些軟文,多做一些復現或者實踐,另一方面,就是有的可看,有的可不看,“看書不買,買書不看”,在當下以通識教育為主的概念型書籍大環境下,有可能還是去看一些比較權威的官方文檔,挑一本比較經典的來研讀,這樣才能不讓自己在多個概念之間來回游蕩。實際上,算法工程師,實際上是“算法”+“工程師”,從語言學的構詞上來講,“算法”是“工程師”的修飾詞,“工程”是算法工程賴以生存的基礎,因此,“算法”可以不高大上,但“工程”一定要過硬。
**2、聚焦一個或幾個小點深入去做。**前面說到,自然語言處理是一個十分寬泛的概念,涉及到文本搜索、推薦算法、信息抽取、輿情分析、知識圖譜、文本生成等幾個大塊,每個大塊還可以進一步細分,例如輿情分析中包括文本聚類、情感分析、文本主觀性計算、文本分類、話題發現、話題演化分析等子方向;知識圖譜包括本體構建、實體識別、實體關系抽取、實體鏈接、實體對齊、實體搜索、實體表示等多個細分風向,每個方向都有大量的工作可以去做,而且水特別深,遇到的問題和情況十分復雜多變。一方面,這個細分方向,實際上與一個公司的工種配備是對應的,因為一個項目通常會多個人協作完成,每個人只需要完成其中的一個細分模塊即可,另一方面,一個人的經驗實際上是有限的,大量的coding工作已經占據了大部分時間,因此往往需要算法工程“有所為,有所不為”,選擇一個細分的方向,去展開學習,從基礎理論到一些項目動手實踐,不斷提升自己的能力。另外就是,還需要需要關注語言學本身東西,自然語言處理處理的“自然語言”,如果連處理的對象的不認識,那么實際上就會完全變成“深度學習工程師”了。
3、利用好開源項目多加剖析思考。 當前,是一個知識共享的時代,與圖書、博客、公眾號、論文這種文字性的學習資料不同,踴躍于github、gitee等平臺的開源項目,從coding代碼的角度給了我們十分好的學習路徑。實際上,github上的開源項目不僅給一些自然語言處理項目的初學者提供了一個好的平臺,一些優質的項目、組件也成為了眾多公司在實際項目研發過程中的貢獻來源(即輪子,很多時候輪子拿來即用,后者做輪子的集成即可,用現有的工具、技術來解決實際的業務問題,提高生產力,因此,需要用好這些開源項目。不過,需要注意的是,作為一個長期致力于開源項目共享的人,在這方面還是有一些感觸的,總會收到一些人郵件來問關于一些項目的一些“低級”問題,如項目為什么跑不起來之類(雖然很多項目都是經過本地編譯通過才提交的)。這些問題,暴露出了當前開源項目學習者的一個錯誤學習方法,即clone+run,而不是先做代碼review,再去運行。雖然說大多數的開源項目都沒有reademe文件,沒有關于該項目的任何說明,但如果要學習該項目,則更需要切入到該項目的整體結構當中,分析代碼結構的構成,項目代碼的思想,項目部署運行的環境。當我們開始一個開源項目的學習時候,應該可以嘗試著問自己這7個問題:1、這個項目是在解決什么問題,為什么會有這個項目。2、這個項目的運行環境是什么,需要什么環境依賴;3、這個項目的代碼邏輯是怎樣的,輸入和輸出分別是什么,輸入和輸出的格式分別是什么。4、這個代碼每一個文件都是什么含義,解決了什么問題;5、該項目是否能夠正確運行,運行部署中是否會存在問題;6、這個項目如果要適配我的數據,完成我的任務,如何進行遷移和嵌入;7、這個項目存在哪些不足,有哪些可以借鑒的點,后期如果我要優化的話,可以提哪些點。這7個問題執行下來,差不多就能夠將一個開源的項目內化為自己的一個項目,這也是該項目的最大的價值所在。
4、保持積極樂觀心態減少焦慮。 不慌不忙、不驕不躁、坦然以對的心態,是一個健康、舒暢的心情的必要保證。前面也說到反復說到了當前比較卷的一個大環境,并且當前自然語言處理大紅利已經趨于高峰這樣的情況,使得我們也不得不需要抓緊上車,雖說“天下人皆為利來,皆為利往”,“急功急利”是當下太多人身上所有的標簽,這并無可厚非。但,在這個浪潮的背后,我們更需要清晰地問自己,自己是否真的適合做這個事情,自己是否真的有時間來做這個事情,自己是否真的耐得住寂寞,抵得住競爭壓力,來經歷后續幾年可能發生的“浪淘沙”。在整個過程中,切勿要做一些超出自己能力范圍以及“明知不可為”的事情,因為這些事情大概率是不會有結果,而且會讓自己越來越被否定,越來越缺乏自信。當然,在這個時代,最大的可貴,就是己所不欲、勿施于人,如果自己做不到不焦慮,那么就不要販賣焦慮,將自己自身的焦慮傳遞給其他人(包括家人、朋友、同事),這樣其實已經喪失了一個社會人生活和工作的意義。另外就是,不要強行給自己貼標簽,發現自己的優勢(如文科計算語言學專業的人,來做自然語言處理,首先要正式自己專業存在的合理性,發揮好自己的語言學優勢,將詞法、語法等知識融合到深度學習模型中去,或者將規則pattern那套利用好,做一些可以深度結合事情),也不要將前人的經驗與自己的發展做強關聯和強綁定,過度的設計和規劃自己在自然語言處理上的發展路線,從而喪失自己的主觀能動性和特點。
五、總結
本文從圍繞焦慮被大肆販賣下的自然語言處理學習思考這一話題,進行了自己的闡述和思考。包括話題的由來(近期一些朋友的來信)、“內卷”下的時代大背景(當下的一個行業大形勢)、自然語言處理算法工程師的能力(從面試官的角度來看一個算法工程師應該具備哪些能力)、自然語言處理算法工程師的養成(一個自然語言處理工程師養成的建議)這幾個方面,希望能夠給大家一些幫助。不過,正如開篇所說的,這是自己的經驗所得,所述不一定正確,歡迎批評,一起討論。
關于作者
劉煥勇,liuhuanyong,現任360人工智能研究院算法專家,前中科院軟件所工程師,主要研究方向為知識圖譜、事件圖譜在實際業務中的落地應用。
得語言者得天下,得語言資源者,分得天下,得語言邏輯者,爭得天下。
1、個人主頁:https://liuhuanyong.github.io。
2、個人博客:https://blog.csdn.net/lhy2014/。
3、個人公眾號:老劉說NLP
歡迎對自然語言處理、知識圖譜、事件圖譜理論技術、技術實踐等落地應用的朋友一同交流。
總結
以上是生活随笔為你收集整理的老刘说NLP:焦虑被大肆贩卖下的自然语言处理学习思考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中的 List
- 下一篇: 【Tensorflow】打印输出tens