「EMNLP2018乾貨」為NLP研究寫出好代碼(254頁教程)

2020-12-05 新智元

新智元報導

來源:專知(Quan_Zhuanzhi)作者:{joelg,mattg,markn}@allenai.org

【新智元導讀】艾倫AI研究所在EMNLP2018發布教程《為NLP研究寫出好代碼》,分享了編寫NLP研究代碼的良好實踐經驗。通過本教程,你將學習如何編寫NLP研究實驗代碼,如何設計和簡單化實驗代碼,從而推進研究,產出好的研究成果。

現代的NLP研究工作都需要編寫代碼。良好的代碼可以實現快速的原型設計,簡單的代碼調試,實驗的可控性和可視化,幫助研究人員快速準確地了解實驗和模型的具體情況。而糟糕的代碼往往導致拖慢研究進度,研究難以擴展,研究結果難以復現,最嚴重的是出現錯誤的研究和結論。實際上,現在研究人員也逐漸認識到好的研究工具,包括高質量的實驗代碼,對研究的重要性,那麼如何為NLP任務寫出良好的代碼呢? EMNLP2018 254 頁的《為NLP研究寫出好代碼》(Writing Code for NLP Research)的教程會給出答案。

該教程,借鑑了最近發布的基於PyTorch的深度學習NLP研究庫AllenNLP的代碼,旨在分享編寫NLP研究代碼的良好實踐經驗。教程中將使用AllenNLP中實現的NLP模型作為示例,解釋具有正確抽象化和組件化的庫如何實現更好的代碼和研究。通過該教程,你將學習如何編寫NLP研究實驗代碼,如何設計和簡單化實驗代碼,從而推進研究,產出好的研究成果。

教程目錄:

1. 在原型設計時如何編寫代碼(How to write code when prototyping)

2. 構建良好的代碼流程(Developing good processes)

3. 如何為NLP研究編寫可復用的代碼(How to write reusable codefor NLP)

4. 案例分析:詞性標註器(Case Study:A Part-of-SpeechTagger)

5. 分享你的研究(Share your research)

文末附下載地址。

254頁PPT下載地址:

https://docs.google.com/presentation/d/17NoJY2SnC2UMbVegaRCWA7Oca7UCZ3vHnMqBV4SUayc/preview?slide=id.g4482b4d82e_0_110

相關焦點

  • NLP 新手必看!這是一份覆蓋全面的基於 PyTorch 和 keras 的 NLP...
    相信在人工智慧領域,沒有人不知道這三位,眾所周知,他們被稱為「深度學習三巨頭」。作為人工智慧領域「皇冠上的明珠」,NLP 技術在經歷了過去幾年的發展之後,證明了它落地的可行性,因此目前也是相當火爆。想必同學們也會經常在網上找一些好的學習資源。最近,小編在 github 上發現了一份基於 PyTorch 和 keras 的 NLP 學習教程。
  • 深度學習在NLP中的運用?從分詞、詞性到機器翻譯、對話系統
    圖 2:Word Embedding+Bi-LSTM+CRF 主要框架示意圖語法解析可以獲得句子的語法結構,例如,哪些單詞組合在一起(形成「短語」),哪些單詞是動詞的主題或對象。Syntactic Parsing 明確標出了詞與詞之間的短語結構,隱含了詞與詞之間的關係。
  • 教程| 利用AllenNLP,百行Python代碼訓練情感分類器
    但如果只看單個單詞(「funny」、「witty」)可能會被誤導,認為它的情感是積極的。只關注單個單詞的樸素詞袋分類器很難對上面的例句進行正確的分類。要想正確地對上述例句的極性進行分類,你需要理解否定詞(neither ... nor ...)對語義的影響。
  • 「頂會見聞系列」之 EMNLP 2018 詳細參會見聞(下篇)
    Patrick Lewis 是 UCL 的自然語言處理博士生,早前參加了 EMNLP 2018,並在個人博客寫下了他的參會見聞,雷鋒網(公眾號:雷鋒網) AI 科技評論對此進行了有刪節的編譯。本文為頂會見聞的下篇,上篇可移步《「頂會見聞系列」之 EMNLP 2018 詳細參會見聞(上篇)》進行閱讀。
  • 「乾貨」NLP中的遷移學習教程來啦!(238頁PPT下載)
    來源:google編輯:張佳【新智元導讀】近日,在美國明尼蘇達州明尼阿波利斯的NAACL2019上,Sebastian Ruder, Matthew Peters, Swabha Swayamdipta和Thomas Wolf分享了一個長達238頁PPT
  • 2019 年 NLP 領域都發生了哪些大事件?
    Code2Seq 可以實現諸如自動化代碼摘要和文檔生成。不知各位有沒有想過為生物醫學文本挖掘任務訓練一個生物醫學語言模型?2019 年,研究人員提出了一種從生物醫學文獻中提取出重要信息的語境化方法—— BioBERT。
  • 乾貨 | 請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程
    一般我會找一個有意思的教程或者視頻,再由此找到三四個,甚至更多的教程或者視頻。猛回頭,發現標收藏夾又多了20個資源待我學習(推薦提升效率工具Tab Bundler)。machinelearningmastery.com/implement-perceptron-algorithm-scratch-python/ 小學生用python實現一個神經網絡(wildml.com)http://www.wildml.com/2015/09/implementing-a-neural-network-from-scratch/ 只用11行python代碼實現一個神經網絡算法
  • 從想法到實幹,2018年13項NLP絕美新研究
    其中有的想法在過去一年非常受關注,大家圍繞這些完美的觀點展開了很多研究工作與實踐。而有的想法並不是當前趨勢,不過它們有可能在未來變得流行。因此,機器之心在 Ruder 介紹的基礎上,重點關注今年的前沿趨勢,並推薦一些真正好用的 NLP 新工具。在本文中,我們會重點關注 2018 年裡的神經機器翻譯與預訓練模型,這兩個概念真的非常 Excited!
  • PyTorch最佳實踐,教你寫出一手風格優美的代碼
    本文將介紹PyTorch的最佳實踐和代碼風格都是怎樣的。雖然這是一個非官方的 PyTorch 指南,但本文總結了一年多使用 PyTorch 框架的經驗,尤其是用它開發深度學習相關工作的最優解決方案。請注意,我們分享的經驗大多是從研究和實踐角度出發的。
  • PTMs|2020最新NLP預訓練模型綜述
    「nlp領域的發展比cv領域相對緩慢的原因是什麼呢」?相比於cv領域,「nlp領域的劣勢在於有監督數據集大小非常小」(除了機器翻譯),導致深度學習模型容易過擬合,不能很好地泛化。但是相反,nlp領域的優勢在於,存在大量的無監督數據集,如果能夠充分利用這類數據進行訓練,那麼勢必能夠提升模型的能力以及在下遊任務中的表現。nlp中的預訓練模型就是這樣一類能夠在大規模語料上進行無監督訓練,學習得到通用的語言表徵,有助於解決下遊任務的nlp模型。「那麼什麼是好的語言表徵呢」?
  • 乾貨| 請收下這份2018學習清單:150個最好的機器學習,NLP和Python...
    一般我會找一個有意思的教程或者視頻,再由此找到三四個,甚至更多的教程或者視頻。猛回頭,發現標收藏夾又多了20個資源待我學習(推薦提升效率工具Tab Bundler)。machinelearningmastery.com/implement-perceptron-algorithm-scratch-python/小學生用python實現一個神經網絡(wildml.com)http://www.wildml.com/2015/09/implementing-a-neural-network-from-scratch/只用11行python代碼實現一個神經網絡算法
  • ...請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程
    一般我會找一個有意思的教程或者視頻,再由此找到三四個,甚至更多的教程或者視頻。猛回頭,發現標收藏夾又多了20個資源待我學習(推薦提升效率工具Tab Bundler)。為了幫助也在經歷類似探索過程的童鞋,我把至今發現的最好的教程匯總了一個列表。當然這不是網絡上有關ML的最全集合,而且其中有一部分內容很普通。我的目標是要找到最好的有關機器學習子方向和NLP的教程。我引用了能簡潔介紹概念的基礎內容。
  • 清華大學劉知遠:如何寫一篇合格的NLP論文
    介紹:用 1 頁左右篇幅,比摘要更詳細地介紹研究任務、已有方法、主要挑戰、解決思路、具體方法、實驗結果。相關工作:用 0.5-1 頁左右篇幅介紹研究任務的相關工作,說明本文工作與已有工作的異同。如果要說」首次「提出或發現,一般也要前置」to the best of our knowledge「。此外還有論文最後一段會介紹接下來幾個 Section 結構,個人感覺對一篇 8 頁論文可能並不需要。對於 Abstract,可以看做對 Introduction 的簡介,最簡單的做法是,以上每部分都精簡為 1-2 句話組成 Abstract 皆可。
  • 這套1600贊的NLP課程已開放,面向實戰,視頻代碼都有丨資源
    一套面向實戰、號稱「代碼優先」的NLP課程來了,名字為A Code-First Introduction to Natural Language Processing,fast.ai出品,全程免費學習。不到半天點讚超過1600,轉發近500。
  • 2018 年度人工智慧熱門事件大盤點:「悲喜交加」
    以下 AI 科技評論就帶領讀者們回顧一下 2018 人工智慧領域的發展情況以及熱點事件。如果用「高歌猛進」來作為人工智慧 2017 年發展的形容詞,那它在 2018 年的發展則可稱得上是「悲喜交加」了。
  • Cython 助力 Python NLP 實現百倍加速
    你需要知道的第一件事情是,你的大部分代碼在純 Python 環境下可能都運行良好,但是其中存在一些瓶頸函數(Bottlenecks functions),一旦你能給予它們更多的「關照」,你的程序將獲得幾個數量級的提速。
  • 行上行下|2019年心理學乾貨合集
    同步EEG-fMRI融合及NIT軟體簡介2. 3種高生態效度的雙腦神經反饋3. letswave教程:腦電數據圖形繪製、批處理以及腳本生成4. letswave教程:腦電數據的時頻分析/組平均與統計分析5. Letswave 教程:腦電數據預處理與疊加平均6. EEG/ERP研究中如何獲得穩定可信的結果或效應7.
  • 一文概述 2018 年深度學習 NLP 十大創新思路
    1)無監督的機器翻譯翻譯(Unsupervised MT)ICLR 2018 收錄的兩篇關於無監督機器翻譯翻譯的論文(https://arxiv.org/abs/1710.11041)中,無監督機器翻譯的整個過程的表現好得讓人感到驚訝,但結果卻不如監督系統。
  • 谷歌開放GNMT教程:如何使用TensorFlow構建自己的神經機器翻譯系統
    本教程中,我們將以單向的深度多層 RNN(deep multi-layer RNN)為例,它使用 LSTM 作為循環單元。模型實例如圖 2 所示。我們在該實例中構建了一個模型,將源語言句子「I am a student」翻譯成目標語言「Je suis étudiant」。
  • NLP之文本分類:「Tf-Idf、Word2Vec和BERT」三種模型比較
    我將介紹一些有用的Python代碼,這些代碼可以輕鬆地應用在其他類似的案例中(僅需複製、粘貼、運行),並對代碼逐行添加注釋,以便你能復現這個例子(下面是全部代碼的連結)。例如,我們以前面例子中的3個句子為例:二維向量空間中的詞嵌入在本教程中,我門將使用這類模型的開山怪: Google的Word2Vec