Petuum&CMU開源通用文字生成工具包:Texar
選自Petuum,機器之心編譯,參與:張倩、王淑婷。
為促成不同文字生成任務的快速搭建以及任務之間的技術共享,由 Petuum 公司和卡耐基梅隆大學 (CMU) 為主要貢獻者的通用工具包——Texar 正式開源。該工具包支援廣泛的機器學習應用,重點聚焦於文字生成任務,尤其適合從事快速模型原型設計和實驗的研究人員及從業者。
文字生成簡介
文字生成旨在基於輸入資料或機器表示生成自然語言, 包括廣泛的自然語言處理(NLP)任務,例如機器翻譯、對話系統、文字摘要、文章寫作、文字複述及修改、影象加註等。儘管由於深度學習方法的整合,該領域在學術和產業方面都發展迅速,但為了改進技術、真正實現在現實世界的應用,還需要投入巨大的科研力量。
文字生成任務有很多共同的屬性及兩個中心目標:
- 生成人類水平的、合乎語法的可讀文字。
- 生成包含所有從輸入中推斷出的相關資訊的文字。例如,在機器翻譯中,生成的翻譯句子必須與原句表達相同的含義。
為了達到這些目標,幾種關鍵技術的應用越來越廣泛,如神經編碼-解碼器、注意力機制、記憶網路、對抗方法、強化學習、結構化監督,以及優化、資料預處理、結果後處理和評價等。這些技術經常以多種不同的方式結合在一起,解決不同的問題(見圖 1)。

圖 1:文字生成任務中用到的幾種模型架構示例。E:編碼器(encoder);D:解碼器(decoder);C:分類器(classifier);A:注意力(attention);Prior:先驗分佈(prior distribution);M:記憶(memory)。
因此需要一個開源平臺將這些不同但緊密相關的文字生成應用整合起來,提供核心演算法的清晰、一致的實現。這一整合平臺將實現不同演算法之間共有要素的重複使用;將設計、實現及實驗標準化;促進可復現的研究;特別是促成不同文字生成任務之間的技術共享---基於此,為特定任務改進的演算法將得以迅速評估並泛化到許多其他任務。
Texar 簡介
為此,我們開發了 Texar,一個專注於文字生成任務的開源工具包,使用 TensorFlow 語言。基於模組化、多功能及可擴充套件的核心設計理念,Texar 提取了文字生成中不同任務和方法的共同模式,並建立了一個高度可重複利用的模組和功能庫。

多功能性
Texar 包含廣泛的模組和功能,用於組成任意的模型架構並實現各種學習演算法,如最大似然估計、強化學習、對抗性學習、概率建模等(圖 2)。
模組化
Texar 將各種複雜的機器學習模型/演算法分解成高度可重複利用的模型架構、損失函式和學習過程模組等。
使用者可以像組裝積木一樣組裝 Texar 的模組,輕鬆直觀地構建任意自己想要的模型。模組化的設計使得各模組的插入和替換變得簡單,例如,在最大似然學習和強化學習之間切換隻需改變幾行程式碼即可。
可擴充套件性
Texar 可以輕鬆地與任何使用者定製的外部模組整合,並且與 TensorFlow 開源社群完全相容,包括 TensorFlow 本身的介面、功能和其他資源都能直接與 Texar 一起使用。
可用性
使用 Texar,使用者既可以通過簡單的 Python/YAML 配置檔案來定製已有的模型, 也可以通過 Texar Python API 程式設計實現任意複雜的模型,達到最大的可定製性。
Texar 提供了自動的變數重用機制(無需擔心複雜的 TensorFlow 變數範圍)、簡單的函式式呼叫來執行各模組的邏輯功能,而且每個模組都有豐富的配置選項和合理的預設值。
Texar 本身的程式碼有良好的結構、統一的設計模式、一致的程式碼風格,可讀性強。Texar 也提供了清晰的文件和豐富的教程示例。
Texar 目前已用於支援 Petuum 公司的若干個研究和工程專案。他們希望這一工具包也能幫助社群加速文字生成及其它技術的發展,並歡迎研究人員及從業者的加入社群,進一步豐富這一工具,共同推進文字生成研究及相關應用的進展。
開啟以下連結,瞭解更多關於 Texar 的資訊:
- 網站: ofollow,noindex"> https:// texar.io
- GitHub: https:// github.com/asyml/texar
- 示例: https:// github.com/asyml/texar/ blob/master/examples
- 文件: https:// texar.readthedocs.io/
- 部落格: https:// medium.com/@texar
- 技術報告: https:// arxiv.org/pdf/1809.0079 4.pdf