天天看點

Facebook 基于十億單詞量建構高效神經網絡模型

使用神經網絡進行序列預測是衆所周知的計算機科學問題,在語音識别、機器翻譯、語言模組化和其他領域中都有着廣泛的應用。這種預測使用的模型對計算能力要求很高,這限制了它們的實際應用。

facebook ai research的科學家設計了自适應的softmax算法,這是一種為gpu定制的近似算法,可在龐大的單詞量基礎上高效地訓練神經網絡。如公開發表的論文中所描述的,自适應softmax利用單詞在大語料庫中的不均衡分布,形成可以最小化計算複雜度的群集。完全softmax與詞彙庫大小線性相關,而自适應softmax是次線性相關的,并且針對gpu進行了優化。

在開發softmax的同時,facebook研究人員釋出了開源庫torch-rnnlib,幫助研究人員設計和測試gpu中的遞歸模型。有了torch.cudnn,可以使用nvidia cuda deep neural network庫輕松通路基線。rnn、lstm、gru和其他遞歸神經網絡都有具體的實作,研究人員可以很容易地把它們用于遞歸神經網絡的設計。

facebook研究人員在單個gpu上對該算法進行測試,速度達到了每秒12500個單詞,同時保持精确度接近完全softmax。從基準困惑度來看,谷歌公司的jozefowicz等人在2016年使用32個gpu訓練了3個星期得到30的困惑度(越低越好),同時使用18個gpu訓練了幾天得到44的困惑度。google使用tensorflow實作的lstm模型釋出在github上,它的主要作者在reddit的相關話題中提出了一個有趣的方法來解釋困惑度。相反地,自适應softmax可以在大約14小時内達到50的困惑度,在一兩天内達到43.9的困惑度以及在六天内達到39.8的困惑度。如果沒有cudnn庫,性能下降約30%。所有工具和技術都針對europarl和十億字語料庫進行過測試,這些語料庫是目前可獲得的最大的幾個語料庫。

繼續閱讀