該存儲庫包含一些最重要的論文來解決問題。實施方式是教程的形式,是上述論文的大致註釋。該存儲庫可能對那些了解深度學習和NLP的基礎知識的人有幫助,希望開始閱讀略帶複雜的論文並查看如何實施它們。該存儲庫也對Pytorch基礎知識有所了解,儘管我盡力將所有內容都簡單地分解。
問題回答是一項重要的任務,基於哪些NLP系統的智能和AI的智能可以判斷。質量保證系統的簡短段落或上下文有關某些主題,並根據段落提出一些問題。這些問題的答案是上下文的跨度,即它們在段落中直接可用。為了訓練這樣的模型,我們使用小隊數據集。
名為QA的名為“ NLP預處理管道”的筆記本包含我編寫的所有預處理代碼。預處理代碼不使用任何高級庫,我從頭開始編寫了所有功能。它僅使用Spacy進行令牌化。此處實現的功能對於許多NLP任務都是常見的,因此對於剛剛起步的人可能很有用。例如:事後,創建詞彙,用於預讀取的嵌入的重量矩陣,數據集/數據集裝載機等,使用一些高級庫(如TorchText),例如TorchText,這是一個更好的主意,我目前正在從事相同的工作。
所有筆記本都是基於這種方法。最終,建立神經網是與張量一起使用的。了解每個張量的形狀和內容是我在學習時發現非常有用的。因此,在每行代碼之後,我評論了由於代碼轉換而發生的張量形狀和更改。這使得理解神經網中發生的事情更加直觀。
我無法無限制地訪問更快的GPU。以下模型已通過在Vast.AI上租用GPU進行培訓。我在大多數實驗中都使用了GTX 1080 Ti。
在第一個筆記本電腦中,我們實現了一個相對簡單的模型,該模型涉及多層LSTM和雙線性注意。在跳入代碼之前,請說明每個層/組件的詳細信息和直覺。該模型與本文討論的模型非常相似,也有相同的第一作者:Danqi Chen。第二個模型也被稱為“專心讀者”。筆記本中實現的模型是其中略有高級版本。獲得的DEV集的結果是:
| 時代 | Em | F1 |
|---|---|---|
| 5 | 56.4 | 68.2 |
我將對此進行更多的培訓以改善結果,並會盡快更新。
接下來,我們移到更複雜的紙上。本文改善了上一篇論文獲得的結果。在這裡實施的模型與以前的模型是多個階段的層次結構,該體系結構代表多個粒度層面的上下文和查詢。本文還涉及復發,因為它廣泛使用了LSTMS和具有雙向性質的無記憶注意機制。本筆記本詳細討論了一些重要的NLP技術,例如字符嵌入,高速公路網絡等。開發設置的結果:
| 時代 | Em | F1 |
|---|---|---|
| 5 | 60.4 | 70.1 |
最後,我們擺脫了復發,只使用自我注意力和卷積。本文從“關注就是您所需要的”中汲取靈感。該模型設計背後的關鍵動機是:卷積捕獲文本的本地結構,而自我發作則了解每對單詞之間的全球相互作用。本教程解釋了諸如自我注意力和深度可分離卷積之類的主題。開發設置的結果:
| 時代 | Em | F1 |
|---|---|---|
| 3 | * | 36.6 |
我目前正在培訓此模型。我目前的時間很短,無法訪問更快的GPU。在GTX 1080 Ti上進行1個時期的訓練大約需要1小時。
我不是專家。這個項目背後的主要動機是了解NLP域。如果您發現任何概念上的錯誤或愚蠢的錯誤,請創建一個問題,我會盡力糾正它們。也歡迎其他貢獻。如果您訓練任何模型並獲得改進的結果,請進行公關。如果您有興趣在此域中實施更多論文並希望將它們添加到此存儲庫中,我很樂意為您提供幫助。儘管我目前的時間很短,但我將積極維護此存儲庫。