Petuum&CMU開源Texar:一個模組化、多功能、可擴充套件的文字生成工具包
為促成不同文字生成任務的快速搭建以及任務之間的技術共享,由 Petuum 公司和卡耐基梅隆大學 (CMU) 為主要貢獻者的通用工具包——Texar 正式開源。該工具包支援廣泛的機器學習應用,重點聚焦於文字生成任務,尤其適合從事快速模型原型設計和實驗的研究人員及從業者。
文字生成簡介
文字生成旨在基於輸入資料或機器表示生成自然語言, 包括廣泛的自然語言處理(NLP)任務,例如機器翻譯、對話系統、文字摘要、文章寫作、文字複述及修改、影象加註等。儘管由於深度學習方法的整合,該領域在學術和產業方面都發展迅速,但為了改進技術、真正實現在現實世界的應用,還需要投入巨大的科研力量。
文字生成任務有很多共同的屬性及兩個中心目標:
-
生成人類水平的、合乎語法的可讀文字。
-
生成包含所有從輸入中推斷出的相關資訊的文字。例如,在機器翻譯中,生成的翻譯句子必須與原句表達相同的含義。
為了達到這些目標,幾種關鍵技術的應用越來越廣泛,如神經編碼-解碼器、注意力機制、記憶網路、對抗方法、強化學習、結構化監督,以及優化、資料預處理、結果後處理和評價等。這些技術經常以多種不同的方式結合在一起,解決不同的問題(見圖 1)。
圖 1:文字生成任務中用到的幾種模型架構示例。E:編碼器(encoder);D:解碼器(decoder);C:分類器(classifier);A:注意力(attention);Prior:先驗分佈(prior distribution);M:記憶(memory)。
因此需要一個開源平臺將這些不同但緊密相關的文字生成應用整合起來,提供核心演算法的清晰、一致的實現。這一整合平臺將實現不同演算法之間共有要素的重複使用;將設計、實現及實驗標準化;促進可復現的研究;特別是促成不同文字生成任務之間的技術共享---基於此,為特定任務改進的演算法將得以迅速評估並泛化到許多其他任務。
Texar 簡介
為此,我們開發了 Texar,一個專注於文字生成任務的開源工具包,使用TensorFlow 語言。基於模組化、多功能及可擴充套件的核心設計理念,Texar 提取了文字生成中不同任務和方法的共同模式,並建立了一個高度可重複利用的模組和功能庫。
圖 2:Texar 的主要模組和功能
多功能性
Texar 包含廣泛的模組和功能,用於組成任意的模型架構並實現各種學習演算法,如最大似然估計、強化學習、對抗性學習、概率建模等(圖 2)。
模組化
Texar 將各種複雜的機器學習模型/演算法分解成高度可重複利用的模型架構、損失函式和學習過程模組等。
使用者可以像組裝積木一樣組裝 Texar 的模組,輕鬆直觀地構建任意自己想要的模型。模組化的設計使得各模組的插入和替換變得簡單,例如,在最大似然學習和強化學習之間切換隻需改變幾行程式碼即可。
可擴充套件性
Texar 可以輕鬆地與任何使用者定製的外部模組整合,並且與TensorFlow 開源社群完全相容,包括TensorFlow 本身的介面、功能和其他資源都能直接與 Texar 一起使用。
可用性
使用 Texar,使用者既可以通過簡單的 Python/YAML 配置檔案來定製已有的模型, 也可以通過 Texar Python API 程式設計實現任意複雜的模型,達到最大的可定製性。
Texar 提供了自動的變數重用機制(無需擔心複雜的TensorFlow 變數範圍)、簡單的函式式呼叫來執行各模組的邏輯功能,而且每個模組都有豐富的配置選項和合理的預設值。
Texar 本身的程式碼有良好的結構、統一的設計模式、一致的程式碼風格,可讀性強。Texar 也提供了清晰的文件和豐富的教程示例。
Texar 目前已用於支援Petuum公司的若干個研究和工程專案。他們希望這一工具包也能幫助社群加速文字生成及其它技術的發展,並歡迎研究人員及從業者的加入社群,進一步豐富這一工具,共同推進文字生成研究及相關應用的進展。
開啟以下連結,瞭解更多關於 Texar 的資訊:
-
網站: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.00794.pdf
原文連結: https://medium.com/@Petuum/introducing-texar-a-modularized-versatile-and-extensible-toolkit-for-text-generation-and-beyond-b4e3289d5205
ofollow,noindex" target="_blank">工程 Petuum CMU NLP 文字生成
相關資料
Attention mechanism
我們可以粗略地把神經注意機制類比成一個可以專注於輸入內容的某一子集(或特徵)的神經網路. 注意力機制最早是由 DeepMind 為影象分類提出的,這讓「神經網路在執行預測任務時可以更多關注輸入中的相關部分,更少關注不相關的部分」。當解碼器生成一個用於構成目標句子的詞時,源句子中僅有少部分是相關的;因此,可以應用一個基於內容的注意力機制來根據源句子動態地生成一個(加權的)語境向量(context vector), 然後網路會根據這個語境向量而不是某個固定長度的向量來預測詞。
來源:機器之心
Logic
人工智慧領域用邏輯來理解智慧推理問題;它可以提供用於分析程式語言的技術,也可用作分析、表徵知識或程式設計的工具。目前人們常用的邏輯分支有命題邏輯(Propositional Logic )以及一階邏輯(FOL)等謂詞邏輯。
來源:機器之心
Machine Learning
機器學習是人工智慧的一個分支,是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、計算複雜性理論等多門學科。機器學習理論主要是設計和分析一些讓計算機可以自動“學習”的演算法。因為學習演算法中涉及了大量的統計學理論,機器學習與推斷統計學聯絡尤為密切,也被稱為統計學習理論。演算法設計方面,機器學習理論關注可以實現的,行之有效的學習演算法。
來源:Mitchell, T. (1997). Machine Learning. McGraw Hill.
Loss function
在數學優化,統計學,計量經濟學,決策理論,機器學習和計算神經科學等領域,損失函式或成本函式是將一或多個變數的一個事件或值對映為可以直觀地表示某種與之相關“成本”的實數的函式。
來源: Wikipedia
Maximum Likelihood Estimation
極大似然估計是統計學中用來估計概率模型引數的一種方法
來源: R. A. Fisher. (1922). On the Mathematical Foundations of Theoretical Statistics
Machine translation
機器翻譯(MT)是利用機器的力量「自動將一種自然語言(源語言)的文字翻譯成另一種語言(目標語言)」。機器翻譯方法通常可分成三大類:基於規則的機器翻譯(RBMT)、統計機器翻譯(SMT)和神經機器翻譯(NMT)。
來源:機器之心
Reinforcement learning
強化學習是一種試錯方法,其目標是讓軟體智慧體在特定環境中能夠採取回報最大化的行為。強化學習在馬爾可夫決策過程環境中主要使用的技術是動態規劃(Dynamic Programming)。流行的強化學習方法包括自適應動態規劃(ADP)、時間差分(TD)學習、狀態-動作-回報-狀態-動作(SARSA)演算法、Q 學習、深度強化學習(DQN);其應用包括下棋類遊戲、機器人控制和工作排程等。
來源:機器之心
Deep learning
深度學習(deep learning)是機器學習的分支,是一種試圖使用包含複雜結構或由多重非線性變換構成的多個處理層對資料進行高層抽象的演算法。 深度學習是機器學習中一種基於對資料進行表徵學習的演算法,至今已有數種深度學習框架,如卷積神經網路和深度置信網路和遞迴神經網路等已被應用在計算機視覺、語音識別、自然語言處理、音訊識別與生物資訊學等領域並獲取了極好的效果。
來源: LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. nature, 521(7553), 436.
Petuum
Petuum is a software infrastructure and ecosystem provider that enables AI for enterprise. Petuum’s operating system gives users a single platform to build any Machine Learning or Deep Learning application using large amounts of data, and deploy it at scale on any hardware – such as workstations, datacenters, the internet of things, and edge computing.The Petuum development platform and gallery of AI building blocks work with any programming language and any type of data, allowing managers and analysts to quickly build AI applications without any coding, while engineers and coders can further re-program applications as needed. With Petuum, many AI applications and hardware can be created and managed from a single laptop or terminal, driving higher productivity, better service, lower costs, and faster delivery. By standardizing AI solutions, Petuum lowers the barrier to AI adoption and allows for the integration of AI into every industry.
Tensor
張量是一個可用來表示在一些向量、標量和其他張量之間的線性關係的多線性函式,這些線性關係的基本例子有內積、外積、線性對映以及笛卡兒積。其座標在 維空間內,有 個分量的一種量,其中每個分量都是座標的函式,而在座標變換時,這些分量也依照某些規則作線性變換。稱為該張量的秩或階(與矩陣的秩和階均無關係)。 在數學裡,張量是一種幾何實體,或者說廣義上的“數量”。張量概念包括標量、向量和線性運算元。張量可以用座標系統來表達,記作標量的陣列,但它是定義為“不依賴於參照系的選擇的”。張量在物理和工程學中很重要。例如在擴散張量成像中,表達器官對於水的在各個方向的微分透性的張量可以用來產生大腦的掃描圖。工程上最重要的例子可能就是應力張量和應變張量了,它們都是二階張量,對於一般線性材料他們之間的關係由一個四階彈性張量來決定。
來源: 維基百科

機器之心是國內領先的前沿科技媒體和產業服務平臺,關注人工智慧、機器人和神經認知科學,堅持為從業者提供高質量內容和多項產業服務。
推薦文章