從高中輟學到獲最佳學生論文——清華碩士王義達的非典型AI之路

輟學、高考復讀、創業失敗、考研二戰...... 跌倒站起來就好了 ——王義達
2020年2月8日,這一天是王義達28歲的生日,作為清華-伯克利深圳學院電腦碩士在讀生,彼時的他因為疫情的緣故正在家做兩件事情。一是準備投稿到NLPCC的一篇論文,進展比較順利;二是做一個解碼方法的項目,出了一些BUG,王義達這天改了一天的BUG。2020年10月8日,十一假期就要結束,王義達第二天還要接著在騰訊微信實習。正想著明天繼續在微信實習的他收到了黃民烈老師發來的微信。黃老師告訴王義達剛收到郵件通知,他們的論文獲得了NLPCC 2020(第9屆CCF國際自然語言處理和中文計算會議)最佳學生論文獎!聽到消息那一刻還是很開心的,要感謝黃老師和各位學長等很多人,雖然不是A類會議,但也是一種對我成長的認可。——王義達
論文鏈接://arxiv.org/abs/2008.03946基於Transformer的大規模預訓練語言模型極大地促進了開放領域對話的研究進展。然而目前這一技術在中文對話領域並未被廣泛應用,主要原因在於目前缺乏大規模高品質的中文對話開源數據。為了推動中文對話領域的研究,彌補中文對話語料不足這一問題,王義達所在的清華CoAI課題組發布了一個包含1200萬對話的大規模中文對話數據集LCCC,並開源了在LCCC上預訓練的大規模中文對話生成模型CDial-GPT。開源鏈接://github.com/thu-coai/CDial-GPT王義達論文中所提供的數據集LCCC(Large-scale Cleaned Chinese Conversation)主要包含兩部分: LCCC-base 和 LCCC-large。他們設計了一套嚴格的數據過濾流程來確保該數據集中對話數據的品質。這一數據過濾流程中包括一系列手工規則以及若干基於機器學習演算法所構建的分類器。過濾掉的雜訊包括:髒字髒詞、特殊字元、顏表情、語法不通的語句、上下文不相關的對話等。王義達論文中在STC數據集上微調了GPT LCCC-large模型的參數,並使用這一微調後的模型生成了如下對話示例:王義達的論文中還使用上述微調後的模型得到了如下交互結果:關於本論文更多介紹請移步AI科技評論今日第四條推文。AI科技評論通過黃民烈老師聯繫到了王義達同學,想要請他介紹一路以來的學霸經驗。經過一番交流,AI科技評論發現這位28歲AI「少年」的一路成長似乎並不順利。他曾高三輟學,後又參加過兩次高考,畢業後經歷創業失敗,之後經過兩次考研,最終經調劑考上了清華大學-伯克利深圳學院。兩次高考 | 少年不知愁滋味
第一次高考前輟學打工當服務員很辛苦,雖然做科研也很辛苦,但是熱愛可以帶來動力。——王義達
高三那年,因為種種原因,王義達從內蒙古呼倫貝爾市海拉爾第三中學輟學了。
他去了家門口的一個烤串兒店打工,每天的工作是洗碗、點爐子、上菜、打掃衛生,偶爾給顧客烤個串兒,有時會因為上菜慢或者上錯菜而被顧客罵。有一次他去拿冰鎮啤酒,瓶子因為熱脹冷縮炸了,手上破肉見骨,現在還留有疤痕。由於打工的辛苦,王義達還是聽了媽媽話去參加了當年的高考。出分後,他盯著電腦網頁上的300多分,心情並沒有十分大的波動。半年的時間沒有上學,所以他也沒期待什麼,結果是符合自己預期的。彼時尚未真正面臨人生十字路口的王義達頗有種「少年不知愁滋味」的心態。
而在高考後的兩個月里,王義達突然意識到自己已經成年,需要為家庭、為未來著想了,同時他覺得自己還年輕,關於未來還有大把的機會。於是當了半年「閑散人員」的王義達決定回學校復讀。父母是普通工人,媽媽為了多賺點錢去日夜守鍋爐房,我當時也跟著在那裡住,但那裡環境噪音非常大,面對面說話都要喊著說,我在那裡休息不好,睡眠不好,非常影響學習。所以我去了同學家住,同學媽媽做飯非常好吃,叔叔阿姨對我很好,還送我們上下學。
2011年夏,王義達再次參加高考。這一年,分數勉強夠得上普通211大學。然而在當時的環境下,他關於如何填報志願、如何選擇合適的院校和專業的問題並沒有足夠的資訊資源,小地方的資訊閉塞和不對稱使得他對於「985、211」這些概念不是十分了解,對專業的認識也只局限於作為社會顯著共識的熱門專業「金融」。
最後,王義達隨便報了一個離家近的一本大學:黑龍江大學。當時給他補課的老師建議他學數學,以後也可以考研,於是他進入了黑龍江大學中俄學院的數學與應用數學專業,第二專業應用俄語。回想當年報志願時的選擇,王義達倒也不覺得有什麼遺憾:「那個分數只夠上一個末流211學校,我當時還想學金融,顯然是錄不上211大學的。最後選了數學專業,對現在的AI研究還是有些幫助的,回想起來,感覺一切冥冥中自有天意。」 本科 | 四年蹉跎時光
沒什麼天分,認知也不夠,感覺這四年自己就像一隻傻狍子;當時努力奮鬥的意願太弱了,資訊閉塞也使我像個無頭蒼蠅找不到努力的方向。——王義達因為是在中俄學院,王義達的數學和專業課都是來自俄羅斯新西伯利亞國立大學的老師來教授,教授語言自然是俄語。儘管俄語是必修的語言課,但要完全聽懂用俄語教授的常微分課程,對他來說難度是不小的。
對此,王義達自言「沒什麼天分,沒辦法,只好放棄了對專業課的學習。」至於本科所學對以後的科研道路是否有影響,王義達坦言:我覺得AI所需要的數學基礎大部分都來自考研期間的積累,清華科班一路學下來的那批人太厲害了,但是我都不記得我本科學到了什麼,會說兩句俄語、知道數學分析、線性代數、還有泛函數理邏輯什麼的基本概念。
不過,本科的學習經歷仍然有些積極影響,這來自他三門主要專業課的數學老師。「數學老師沒有看輕我,而是鼓勵我學習,讓我沒有對數學產生厭惡感,以至於後來考研的時候我還挺喜歡數學的。」王義達說。外語障礙、遊戲誘惑、掛科N門,王義達認為自己的本科四年還算快樂,但畢竟是有些遺憾的: 「專業課我聽著頭疼,也不咋愛聽,所以四年間也沒咋學習,光玩了,當時認知不夠。」直到後來決定考研之前,「認知不夠」四個字似乎一直貫穿了他從高中到大學的四五年時光。
畢業季照片 左四為王義達創業 | 一地雞毛 
我這壓根兒算不上什麼創業,當時就是小孩子閑著沒事瞎胡鬧,什麼都不懂。——王義達2014年,王義達經校招去了深圳的諾普信公司工作了兩三個月。本來這家公司招他們過去是要去烏克蘭做項目,結果當時烏克蘭正在打仗,加上公司戰略調整,最終沒去成。之後王義達被調到了互聯網部門。當時老闆投資10個億要做農業互聯網(推銷農藥),要求員工閱讀互聯網思維的書、學習中歐商學院的課程。王義達看了這些書,加上深圳這個充滿朝氣的國際化大城市帶給他的莫名的鼓舞,年輕稚嫩的他就此和朋友一起去搞創業了。那年,一篇名叫《我為什麼辭職去賣肉夾饃》的文章在微信朋友圈瘋狂轉發,名校畢業的孟兵放棄高薪的IT工作,身份從程式設計師變為「西少爺肉夾饃」餐飲店的老闆,將互聯網模式引入了傳統餐飲行業,創造出行業爆款。王義達覺得可以成為「風口上的豬」了,於是打算賣煎餅。「那個攤子就沒支起來, 我和朋友研究了下怎麼做菜煎餅,當時還買了個炸排骨的設備,為了買排骨秘方,我還坐車去了一個叫梁山的地方,結果去了人家店早就不開了。」

幾個月後網站做出來後,他們聯繫到人人網一個子公司的總裁,但是人家覺得我們很幼稚,一番折騰下來,到最後,他們賠了一些錢,也散了伙。後來朋友去了北京的教育機構當老師,而王義達終於沉澱下來了。失敗很多,但是失敗有的時候不一定是壞事,如果我賣煎餅成功了,賣的可以養活自己,可能就沒有後面讀研究生深造的機會了。 ——王義達
考研初戰 | 失敗與經驗並存
2015年的冬天格外寒冷,王義達帶著20多年的「失敗」回到了家裡的十八線小城市。他待在家裡思考了一個月「人生該往何處去」,最終作出一個後來改變了他人生軌跡的決定:考研 !跨考電腦!
王義達選擇了報考清華大學。不過他並非一開始就定了學校,他先複習後報考,報考前幾天,他才獃獃地發現不同學校竟然考的不一樣,各種電腦學校一大堆,他有選擇困難症,看了幾個官網就頭疼不想看,最後乾脆莽了一下報了清華大學。搏一搏,單車變摩托,最差的結果也是回到現在的境遇,他心想。
至於為何選擇報考電腦,王義達談到:「其實受到之前所謂互聯網思維的影響,覺得學電腦和金融很賺錢,而很多互聯網大佬都是電腦專業出身,另外當時有看鋼鐵俠,覺得非常酷,所以就報了電腦。」他買了有《數據結構》、《組成原理》、《電腦網路》、《電腦系統》四本408(電腦考研專業課程式碼)的書,以及永樂大帝的考研數學複習全書。二是花50塊錢買兩隻貓
王義達在家馬路對面的貓販子那裡看到了可愛的小黑和小白,問了價格,感覺還可以,「就像小孩似的興奮地帶回家了,也沒問媽媽」。
後來他離開海拉爾的時候把兩隻貓給了同學養,在人生低谷時期從它們那裡得來的溫暖陪伴,王義達猶記在心。
呼倫貝爾是中國最冷的地方之一,在王義達所在的那個片區,冬天的很多時候都是像電影里的暴風雪那種天氣。
呼倫貝爾的冬,網圖在家複習期間,王義達每天晚上都出去跑上幾公里,現在的他回想起來,倒十分佩服當年的自己:「很奇怪當時是怎麼才有的勇氣,換做現在,我可能就無法在那種情況下堅持下來。」過了4個月,王義達意識到自己複習效率太低,人也變得有些抑鬱了,CS的那些知識對於當時的他來說很有難度。於是在16年的春天,王義達回到了度過四年青春的黑龍江大學,在學校附近租了房,每天去圖書館複習。家裡條件一般,租房的費用加上生活費就用掉了父母月收入的一半,所以有一段時間他就每天吃饅頭鹹菜和炒白菜。「倒是學會努力了,就比圖書館裡的其他同學努力一點點吧。」王義達對那段時間的自己給出了自我肯定。一部分原因是因為他按照408(電腦考研統考專業課程式碼)來複習的,在考試前兩個月才發現清華大學考的是912(清華電腦考研專業課程式碼),912號稱是中國電腦考研最難。912和408幾乎完全不一樣,他每科都出現了大量知識盲點,最後結果出來,專業課終究還是差了16分。考研再出發 | 終將抵達春天

這次真的是又莽了一次,反正就是想著要考上清華。——王義達為了能夠在北京生存下去,他準備找一份程式設計師的工作,為此他自學了3個月C++:先是在「學堂在線」上看了鄭麗老師和鄧俊輝老師的課程,然後自學了某馬培訓機構的影片課。之後,王義達就帶著2000多塊錢就去了北京。很幸運的是,到北京的當天下午,王義達就找到了工作,之後他就開啟了邊工作邊複習的模式。在北京租房是一筆大開銷,好在有本科同學的接濟,王義達先在同學公司的庫房借住了幾周。之後,王義達在在人大西門附近找了一個1000塊月租的隔斷房,因為平時伙食上的開支不多,確實撐到了發工資,否則他身上的那些錢在北京連兩周都難撐過去。發工資後他就搬到了同事租的次卧。平時工作不太忙,也不加班,王義達基本上半天就能做完工作任務,剩下半天就用來複習。他說道:「有一次我寫數學題時,猛然發現老闆就站在我身後,不過他竟然也沒罵我,現在回想起來,很感謝當時老闆的寬容。」秋季開課以後,就是一段和學校門衛鬥智斗勇的日子了。清華的正門管的很嚴,王義達就走清華的一個小門「偷偷」地溜進清華的校園去蹭課,當時除了《電腦作業系統》(秋季不開課),每門課他都去旁聽了。
蹭課結束後,他就在清華四教或六教自習,但是在四教會多一些。四教經常會有很多清華附中的學生來自習,看著他們朝氣蓬勃、意氣風發的樣子,他有時會很羨慕。另外,他也會羨慕來自習的清華情侶。為了全身心投入複習,王義達從10月份開始就不工作了。他說起這段挺有意思的經歷:「我沒有辭職,而是請假了。是的,考完試我就又回去上班了,老闆都忘了我這個人了,但是也沒拒絕我回去上班,所以我就感慨自己在有些事情上真的蠻幸運的。」在考研複習的最後兩個多月,王義達心理上開始有些緊張。「壓力很大,很多時候心都靜不下來,當時腦子裡經常想今年要是再考不上可咋辦,來年還要不要三戰。」王義達說。而他當時的一個辦法就是練字,來磨練性子緩解內心無聲的壓力。
這一年,王義達的專業課考了近100分,可惜數學不太如人意,因為當時太緊張,監考老師收卷的那一刻他才意識到選擇題的答題卡塗串了好多。
最後出分總算高出了校線10分,但是沒能夠上清華本部的複試線,很傷心,心想今年又浪費了一年。當時TBSI組織調劑面試,他沒自信就不想報了,但是咬著牙報了去面試,心想就當漲漲經驗了,萬一明年進複試也有個經驗。面試之後沒幾天,他正在床上玩手機,突然收到郵件被錄取了,他猛地坐了起來,然後嘭的一聲撞房樑上了,眼前一黑就沒意識了......
王義達當時住的閣樓室友說他嘭一聲之後好幾秒才醒來,然後王義達就賊高興,當晚就拉著與他拼房的室友吃起了燒烤。研究生入學之前,王義達換了份薪水翻倍的工作。 這份工作也不是特別忙,於是他利用空餘時間參加了當年的騰訊廣告演算法大賽,大概持續兩個月,當時沒有伺服器,他只能用攢下的工資買了一台帶1050Ti顯示卡的電競筆電。因為是第二屆比賽,網上只有少量的上屆選手經驗和kaggle的比賽經驗帖。「當時我哪懂這些啊,我就一個帖子一個貼子地去查專業名詞、演算法和程式碼庫,先是用了LightGBM模型,然後用了FFM做融合,各種特徵工程的帖子也一頓看,進度慢得跟烏龜一樣。後來到了複賽,數據量徒然增大,遊記本完全不夠用了。好在有好人相助,當時我幫同參加比賽的一個清華研究生處理了一些模型上的問題(當時他還沒論文,現在已經很多篇高峰會了),他是一門課的助教,有很多經費,買了一家大廠的伺服器資源,就借我用了一下。我跑了一些神經網路模型,融合後出了不錯的結果排名就都高了不少,比賽前我又找到了一個很強的特徵,最後排名到了二十幾名。最終官方判結果的時候,中間有些結果不作數了,說是前幾名的小號,最終我排到了十幾名, 如果有隊友的話成績應該能再好點吧,畢竟我太小白了。」這次比賽結束後,王義達就開始看吳恩達等大佬的課程影片瘋狂補了些基礎。讀研 | 守得雲開見月明

清華這個新平台讓我的視野開闊了很多,讓我的機會也多了很多,而最重要的是黃老師等人對我的幫助。——王義達王義達是有機會去伯克利學習一年的,但是學費要30-40萬左右,看到這個數字後他就壓根沒再幻想了。TBSI 是雙選形式,老師和學生互選,但是王義達研一整整一年的時間都沒有導師。沒設備沒資源研究工作不好開展,他就只能去應聘大廠的實習,靠著之前的比賽經驗和從吳恩達等課程學到的基礎知識,他通過了百度NLP的面試。百度NLP在業內屬於Top級別的,王義達來到這邊做開放域對話,百度的mentor人很好,給他介紹了各種AI高峰會以及近期要完成的目標。王義達之後就著手入門:先是看了一個survey, 然後著手用open-nmt這個庫改寫一個auto-encoder的seq2seq模型,這個小工作讓他花了不少時間,對他來說挺有難度,後來他掌握了之後後面很多工程都用到了這個庫。在百度NLP短暫實習一段時間後王義達又去了騰訊AI Lab,碰巧騰訊AI Lab這邊正趕上一位重磅級大佬離職,AI Lab開始向業務轉型,他進去先是做了3個月的CS伺服器端開發。後來他又做了3個月的圖卷積分散式系統,屬於優化分散式存儲,一開始用的是tensorflow,後來發現pytorch支援的更好就轉到了pytorch......「這兩段中國頂級大廠的實習經歷對我的幫助很大,我也算是某種程度上見到了世面。」王義達表示。另一邊,學校這邊也不能沒有導師,王義達有一天加了個微信群,正好看到黃老師在做talk,看到黃老師的分享,通過黃老師的講解對對話系統有了直觀的了解,覺得對話系統很神奇,是未來機器人智慧很重要一個環節。於是他就在對話這個方向上又看了些文獻,看了黃老師團隊的文章, 好好補了一下這方面的知識,雖然還是欠缺太多基礎。但他還是鼓足勇氣冒昧的去給黃老師發郵件問能不能跟著做科研。在一番面試之後終於來到了實驗室從數據做起,王義達回憶說:在面試過程中,黃老師並沒有問我太過往的經歷,也沒有在意我的本科學歷等因素,他好像只關心我當下掌握NLP的水平和coding能力,覺得我有些潛力,就收留我了。我內心真的非常感謝,說實話確實對過往不佳的學歷和匱乏的學術經歷感到心虛,沒想到真的那麼幸運。
在來到北京之前,黃老師讓銀河學長帶著他協助一個人機對話的比賽,處理了一些數據,跑了一些對話生成的baseline模型評價指標,入門了Transformer、GPT等模型,以及看更多的開放域對話生成的論文。之後到了北京(清華本部)之後就從LCCC這個數據開始做起,一開始他還是沒有太理解數據集的重要性,一心想研究演算法。他就想著快速把這個認真做完做好,有了基礎之後開始著手做其他的。然後王義達就開始不分晝夜的去清洗這個數據集。他記得當時有段時間自己是實驗室來的最早、走的最晚的(當時柯沛學長還在外實習),但他說其實最肝的還是黃老師,黃老師是不分節假日,沒有其他急事要忙的時候,幾乎每天都是早上7點多就在實驗室了,晚上很晚才走,黃老師保持這樣的科研狀態已經好多年了。王義達寫文章和PPT基礎很差,雖然一開始讀了很多論文,但是讀的方法不夠科學,沒能學會別人寫文章的方法和做科研的經驗。黃老師就抽空單獨教他怎麼做PPT,幫他改文章。但是我好像確實笨,總是慢半拍,直到現在我的寫作和PPT才進步了一些。但總歸是能力提升上來了,而不是去水文章。最近也是剛剛完成了一篇從調研到設計到完成實驗到修改論文,自己撐起來的一篇論文,剛剛投稿到AAAI,感覺還算可以。」至於這篇NLPCC最佳學生論文,雖然是我努力去完成的工作,但還是多虧了黃老師的眼光和指導。
科研體悟 | 「學渣」的科研心聲

關於科研,其實網上大佬的經驗和各種教授的經驗更可靠,我這裡只從學渣的角度簡單說下吧。——王義達1、要想開始科研,基礎肯定要紮實,包括coding、理論等方面。2、做科研最好有人帶,也要做好充分的功課如讀survey,前人踩過的坑要盡量避免。
3、做科研不能太急功近利,也不能太久不出成果:熟能生巧,要踏踏實實把一個項目負責完負責好,跑一遍流程,慢慢會成長的。有的方向雜亂多難,有的落地場景又有限,這樣的方向不適合科研小白,失敗的可能性大,代價也不見得負擔得起。而如果有一個比較合適的大方向,細分領域的問題也是很值得注意的,有的方向比較火,競爭比較激烈;而有的方向雖然火,但需要設備和資源(如預訓練);還有的方向比較新,已有的研究還不多而又很值得,代價也不大(不像弄數據又苦又累要做好久), 出成果的概率就比較高。問題、motivation以及出發點夠不夠make sense, 這些最好要獲得老師和學長的認可才行,作為小白,自己想的很多東西大都比較扯了,不要以為自己很有idea。得到認可之後,就要看看別人的實驗是怎麼做的solid ,怎麼分析insight,如何證明contribution的可靠性和價值。這個完全是黃老師耐心教出來的,感謝老師,雖然我很抵觸、很不喜歡PPT和presentation,但是這點很重要!!!科研需要實力、意志力也需要運氣,同時科研不完全是競賽,科研是為了解決、貢獻、推動一些東西,力量很小也是一塊磚,就像大家一起建長城為的是把長城建好,惠及人民,不能完全是比賽找出誰最會建長城,能者多勞一點,小磚小瓦也是貢獻。除了這些運氣、努力和意志力之外,我覺得對我而言可能還有一個更重要的因素,那就是我的老娘。她給我從小培養了一種「不自知之明」,沒有為我的人生設上限。母親小學沒畢業,她很少說「你不能幹什麼」、「你一定要幹什麼」。我印象中她對我說的最多的是「你能行」、「你最棒」,「那有啥不行的,我永遠支援你」。隨著年齡的增長,我看到了社會上存在的很多壁壘、圍城和很多不可能。但是母親給我的成長環境一直讓我心中存有希望,讓我看到有無限可能,正如科技的進步讓這個世界有無限可能。AI科技評論得知王義達最近在微信實習的同時,也正在積極迎戰秋招,目前他已經收穫了一些大廠的Offer。AI科技評論祝願王義達以及所有AI人在這個內卷的大環境下腳踏實地、堅守本心,闖出屬於自己的一片天地~
AI科技評論聯合【機械工業出版社華章公司】為大家帶來15本「新版蜥蜴書」正版新書。
在10月24號頭條文章《1024快樂!最受歡迎的AI好書《蜥蜴書第2版》送給大家!》留言區留言,談一談你對本書內容相關的看法和期待,或你對機器學習/深度學習的理解。
AI 科技評論將會在留言區選出 15名讀者,每人送出《機器學習實戰:基於Scikit-Learn、Keras和TensorFlow(原書第2版)》一本(在其他公號已獲贈本書者重複參加無效)。
活動規則:
1. 在留言區留言,留言點贊最高的前 15 位讀者將獲得贈書。獲得贈書的讀者請聯繫 AI 科技評論客服(aitechreview)。
2. 留言內容會有篩選,例如「選我上去」等內容將不會被篩選,亦不會中獎。
3. 本活動時間為2020年10月24日 - 2020年10月31日(23:00),活動推送內僅允許中獎一次。

點擊閱讀原文,直達NeurIPS小組~