OpenAI 最近經過一個與任務無關的可擴展系統在一系列語言任務中得到了當前最優的性能,目前他們已經發布了該系統。OpenAI 表示他們的方法主要結合了兩個已存的研究,即 Transformer 和無監督預訓練。實驗結果提供了很是使人信服的證據,其代表聯合監督學習方法和無監督預訓練可以獲得很是好的性能。這實際上是不少研究者過去探索過的領域,OpenAI 也但願他們此次的實驗結果能激發更加深刻的研究,並在更大和更多的數據集上測試聯合監督學習與無監督預訓練的性能。git
OpenAI 的系統分爲兩階段,首先研究者以無監督的方式在大型數據集上訓練一個 Transformer,即便用語言建模做爲訓練信號,而後研究者在小得多的有監督數據集上精調模型以解決具體任務。研究者開發的這種方式借鑑了他們關於 Sentiment Neuron(blog.openai.com/unsupervise…)方面的研究成果,他們發現無監督學習技術在足夠多的數據集上訓練能產生使人驚訝的可區分特徵。所以研究者但願更進一步探索這一律念:咱們能開發一個在大量數據進行無監督學習,並精調後就能在不少不一樣任務上實現很好性能的模型嗎?研究結果代表這種方法可能有很是好的性能,相同的核心模型能夠針對不一樣的任務進行少許適應和精調就能實現很是不錯的性能。github
這一項研究任務創建在《Semi-supervised Sequence Learning》論文中所提出的方法,該方法展現瞭如何經過無監督預訓練的 LSTM 與有監督的精調提高文本分類性能。這一項研究還擴展了論文《Universal Language Model Fine-tuning for TextClassification》所提出的 ULMFiT 方法,它展現了單個與數據集無關的 LSTM語言模型如何進行精調以在各類文本分類數據集上得到當前最優的性能。OpenAI 的研究工做展現瞭如何使用基於 Transformer 的模型,並在精調後能適應於除文本分類外其它更多的任務,例如常識推理、語義類似性和閱讀理解。該方法與 ELMo 類似但更加通用,ELMo 一樣也結合了預訓練,但使用爲任務定製的架構以在各類任務中取得當前頂尖的性能。網絡
OpenAI 只須要不多的調整就能實現最後的結果。全部數據集都使用單一的前向語言模型,且不使用任何集成方法,超參配置也與大多數研究成果相同。架構
OpenAI 特別興奮這一方法在三個數據集上獲得的性能,即 COPA、RACE 和 ROCStories,它們都是旨在爲常識推理和閱讀理解設計的測試集。OpenAI 的模型在這些數據集上都得到了新的最佳性能,且有較大的提高。這些數據集一般被認爲須要多句子推理和顯著的世界知識來幫助解決問題,這代表研究者的模型經過無監督學習主要提高了這些技能。這一樣代表咱們能夠經過無監督學習技術開發複雜的語言理解能力。機器學習
爲何使用無監督學習?性能
近期出現了利用無監督學習方法經過大量無標註數據來加強系統的熱潮;使用無監督技術訓練的詞表徵可使用包含 TB 級信息的大型數據集,並且無監督方法與監督學習技術相結合可以在大量 NLP 任務上提升性能。直到最近,這些用於 NLP 任務的無監督技術(如 GLoVe 和word2vec)使用簡單的模型(詞向量)和訓練過的信號(局部詞共現)。Skip-Thought 向量是對複雜方法才能實現的改進的較早呈現。可是如今新技術用於進一步提高性能,包括預訓練句子表徵模型、語境化詞向量(ELMo 和 CoVE)的使用,以及使用自定義架構來結合無監督預訓練和監督式精調的方法,好比本文中 OpenAI 的方法。學習
OpenAI 還使用模型中的現有語言功能來執行情感分析。研究人員使用了 Stanford Sentiment Treebank 數據集,該數據集包含積極和消極的電影評論句子,研究人員可使用語言模型經過在一個評論句子後輸入單詞「very」,並查看該模型預測該單詞是「積極」或「消極」的機率,來猜想這條評論是積極仍是消極的。這種方法無需將模型針對特定任務進行調整,它與經典基線模型的性能持平——大約 80% 的準確率。測試
該研究也是對 Transformer 架構的魯棒性和實用性的驗證,代表無需針對特定任務進行復雜的定製化或調參,也能夠在大量任務上達到當前最優的結果。ui
缺點設計
該項目也有幾個突出的問題值得注意:
計算需求:不少以前的解決 NLP 任務的方法能夠在單塊 GPU 上從零開始訓練相對較小的模型。OpenAI 的方法在預訓練步驟中須要很高的成本——在 8 塊 GPU 上訓練 1 個月。幸運的是,這僅須要作一次,OpenAI 會發布他們的模型,從而其餘人能夠避免這一步。它也是一個很大的模型(相比於以前的工做),於是須要更多的計算和內存。OpenAI 使用了一個 37 層(12 個模塊)的 Tranformer 架構,而且在達到 512 個 token 的序列上訓練。多數實驗都是在 4 和 8 塊 GPU 的系統上構建的。該模型確實能很快速地精調到新的任務上,這緩解了額外的資源需求。
經過文本學習而致使的對世界理解的侷限和誤差:在互聯網上可用的書籍和文本並無囊括關於世界的完整甚至是準確的信息。近期的研究代表特定類型的信息很難僅經過文本學習到,其它研究代表模型會從數據分佈中學習和利用誤差。
泛化能力仍然很脆弱:雖然 OpenAI 的方法在多種任務中提升了性能,目前的
將來方向
擴展該方法:研究者觀察到
改善精調過程:研究者的方法目前還很簡單。有可能使用更復雜的適應和遷移技術例如在 ULMFiT 中所探索的方法,可讓該模型得到顯著的提高。
更好地理解生成式預訓練的有效性:雖然本文中片面地討論了一些思想,更多的目標指向的實驗和研究將幫助分辨不一樣的解釋。例如,實驗中觀察到的性能增益有多少是因爲處理更普遍上下文的能力的提升,有多少是因爲世界知識的提升。
附錄:數據集示例
論文:Improving Language Understanding by Generative Pre-Training
摘要:天然語言理解包括很普遍的任務類型,例如文本蘊涵、問答、語義類似性評估以及