"妙筆"生花:一個易用、高效的文本生成開源庫

2021-01-14 騰訊網

文本生成作為近年來自然語言處理中的熱門領域,受到了學界和工業界的廣泛關注。隨著研究的不斷深入,文本生成領域下的子任務和相應的模型越來越豐富,一些優秀的開源框架也紛紛湧現。

現有的開源文本生成庫大致可分為兩類,一類傾向於模塊化驅動,提供各個組件供研究者搭建不同的模型,但缺點在於許多特殊的baseline無法通過模塊完成;另一類傾向於baseline驅動,方便用戶快速調用baseline,但缺點在於整體結構不夠統一,可擴展性有限。

因此,為了兼顧兩者的優勢,我們(中國人民大學AI BOX團隊)推出了新的開源文本生成庫TextBox妙筆),在保證組件模塊化的同時,提供了許多較新baseline的接口,使得研究者一方面可以基於模塊搭建自己的模型,另一方面也可以快速調用已有的baseline完成實驗。目前相關代碼和相應論文都已上線。

下面讓我們來看看到底有什麼厲害的功能吧!

16種模型:覆蓋無條件生成和有條件生成兩個主流任務,後者主要包括機器翻譯和自動摘要任務。

6個數據集:提供已處理好的數據集,也可以使用我們的庫來處理原始數據。

多種評測方式:支持主流的自動評測指標,包括通用指標和特定任務指標。

易上手、易擴展:新手也可快速上手,一鍵復現,搭積木式的靈活開發,想要的模型統統安排!

論文地址:https://arxiv.org/pdf/2101.02046.pdf

項目GitHub地址:https://github.com/RUCAIBox/TextBox

核心特色

TextBox框架具有三大核心特色。

基於PyTorch的統一模塊化框架

TextBox是基於深度學習框架PyTorch開發的文本生成庫。為了統一開發多種文本生成模型並簡化其開發難度,TextBox的設計是高度模塊化的。它將不同的模型解耦成了一組可高度復用的模塊,如數據模塊、模型模塊、評估模塊和公共功能模塊。因此,在本框架中,通過簡單而靈活的配置,就可以根據內置的評估方法來比較不同的文本生成模型。同時,還可以像搭積木一樣插入或者交換模塊,在高度概念化的層面上開發新的文本生成模型。

全面的基準模型、數據集和評估。

除了模塊化的設計之外,TextBox還包含了廣泛的基準文本生成模型,其涵蓋了變分自編碼器(VAE)、生成式對抗網絡(GAN)、循環神經網絡(RNN),基於Transformer的模型,以及預訓練語言模型(PLM)等類別。TextBox通過配置文件或命令行提供靈活的參數指定來運行、比較和測試這些傳統的基準模型和目前最先進的模型。為了構建一個可重用的基準,TextBox整合了許多常用的數據集,可以針對不同的文本生成任務進行評估。例如,我們採用在GigaWord數據集上執行文本摘要任務,以及在WMT 2014 English to German數據集上執行機器翻譯任務。TextBox支持一系列廣泛使用的評估算法,用於測試和比較各類文本生成模型,例如評估語言模型的perplexity和neg-likelihood,評估翻譯模型的BLEU,以及評估摘要生成模型的ROUGE。

高度靈活及拓展性強的框架

TextBox在文本生成模型部分提供了多種常用的函數與模塊的接口。例如RNN encoder-decoder, Transformer encoder-decoder以及各種預訓練語言模型。具有不同需求和專業背景的用戶可以很方便地選擇不同的接口來構建自己的模型,並且能夠基於框架提供的統一評估標準來對模型進行評估。更重要的是,TextBox提供的接口可以與PyTorch接口完全兼容,允許無縫集成用戶自定義的模塊,使得用戶能夠根據需要集成任何外部組件。

快速上手

TextBox提供了較好的封裝,我們將提供簡單的tutorial大致介紹如何快速上手。

安裝

目前TextBox支持原始碼安裝和Pip安裝,用戶可以通過下面的簡單命令進行安裝使用:

一鍵運行

我們在Github提供了一系列一鍵運行的腳本,包括訓練、單獨測試:

通過上述命令就可以直接在COCO數據集上基於RNN模型進行無條件生成任務的訓練和單獨測試。

如果你想改變參數,比如rnn_type、max_vocab_size等,可以按需在命令行設置額外的參數:

如果你想運行別的數據集、模型和任務,可以使用

如果你使用pip安裝,只需新建一個py文件,添加以下代碼即可實現模型的訓練和測試

使用預訓練語言模型

TextBox支持部分預訓練語言模型進行文本生成任務,下面以GPT-2為例,展示我們如何利用預訓練語言模型進行fine-tuning。

從huggingface提供的模型源(https://huggingface.co/gpt2/tree/main)中下載GPT-2模型,包括config.json, merges.txt, pytorch_model.bin, tokenizer.json和vocab.json五個文件,將其放在同一個文件夾下,路徑為pretrained_model/gpt2,與textbox文件夾同級。

下載好模型之後,直接通過腳本運行:

未來展望

至此,「妙筆」文本生成庫的自我介紹就到此結束啦。未來我們將繼續努力,開發更多新的模型,維護並保持版本穩定。期待大家的試用體驗和寶貴意見。

相關焦點

  • 谷歌推出開源 Python 庫「Tangent」,支持前向模式自動微分
    據介紹,這個庫與現有的機器學習庫相比,存在諸多優勢,可以大大改善了用戶的使用體驗。雷鋒網 AI科技評論編譯整理如下:Tangent 是一個全新的免費開源 Python 庫,可以用於自動微分。與其他現有的機器學習庫相比,Tangent屬於源到源(source-to-source)系統,可以用 Python f 函數調用新的 Python 函數,計算出 f 的梯度。
  • 網事觀會|聚力司法保障 貢獻基層智慧 妙筆生花看豐臺
    網事觀會|聚力司法保障 貢獻基層智慧 妙筆生花看豐臺 2021-01-12 17:57 來源:澎湃新聞·澎湃號·政務
  • 比基線模型快100倍,Google開源文本生成「加速器」LaserTagger
    雷鋒網訊,2014年,Google提出了Sequence-to-Sequence模型,旨在將句子文本映射到fixed-length向量,其中輸入和輸出的長度可能會有所不同。Seq2Seq通常應用於NLP領域的文本生成任務,例如摘要生成、語法糾錯、句子合併等。
  • 2017,最受歡迎的 15 大 Python 庫有哪些?
    因此,我根據近來的使用體驗,在本文中列出了對數據科學家、工程師們最有用的那些庫。由於這些庫都開源了,我們從Github上引入了提交數,貢獻者數和其他指標,這可以作為庫流行程度的參考指標。核心庫1.對於機器學習輔助,scikit-learn是所有軟體包裡最突出的一個。它建立在SciPy之上,並大量利用它的數學運算。scikit-learn給常見的機器學習算法公開了一個簡潔、一致的接口,可簡單地將機器學習帶入生產系統中。該庫中集成了有質量的代碼和良好的文檔、簡單易用並且十分高效,是使用Python進行機器學習的實際行業標準。
  • 分享一個PyTorch醫學圖像分割開源庫
    分享一位52CV粉絲Ellis開發的基於PyTorch的專注於醫學圖像分割的開源庫,其支持模型豐富,方便易用。其可算為torchio的一個實例,作者將其綜合起來,包含眾多經典算法,實用性比較強。地址在這裡:https://github.com/MontaEllis/Pytorch-Medical-Segmentation該庫特點:支持2D和3D醫學圖像分割,可以修改hparam.py文件來確定是2D分割還是3D分割以及是否可以進行多分類
  • 衰衰妙筆生花製作龜甲,為夢想而拼搏忍辱負重
    同學們大家好,每個人的心中都有一個夢想,夢想是美好的,但是實現夢想的道路是曲折的,無數人在實現夢想的道路上遭遇了無盡的荊棘,但是堅持夢想披荊斬棘的走了下去,衰衰就是這樣的一個人同學,為了影帝的夢想,在臉臉的壓迫找茬下依然忍辱負重的一步步向前走去,世界上最快樂的事情,莫過於為了夢想而奮鬥。
  • 藥學科普「雲課堂」 來啦,get技巧才能妙筆生花!
    藥學科普「雲課堂」 來啦,get技巧才能妙筆生花!申請澎湃號請用電腦訪問http://renzheng.thepaper.cn。
  • 2017年最流行的15個數據科學Python庫
    」中的列將數據結構轉換為「Dataframe」對象處理丟失數據,表示為 NaN(Not a Number)功能強大的分組可視化4)Matplotlib地址:https://matplotlib.orgMatplotlib 是另一個 SciPy Stack 核心軟體包和另一個 Python 庫,專為輕鬆生成簡單而強大的可視化而量身定製。
  • 推斷速度達seq2seq模型的100倍,谷歌開源文本生成新方法LaserTagger
    來源:機器之心作者:Eric Malmi等機器之心編譯參與:魔王、杜偉使用 seq2seq 模型解決文本生成任務伴隨著一些重大缺陷,谷歌研究人員提出新型文本生成方法 LaserTagger,旨在解決這些缺陷,提高文本生成的速度和效率。
  • NeuralNLP-NeuralClassifier:騰訊開源深度學習文本分類工具
    NeuralNLP是騰訊廣告(Tencent Marketing Solution,TMS)(https://e.qq.com/)數據算法團隊搭建的一個基於PyTorch的深度學習NLP公共實驗平臺,主要涵蓋文本分類、序列標註、語義匹配、BERT微調和文本生成等,目前已經廣泛應用於騰訊廣告業務文本相關的需求場景中,如廣告定向、相關性計算、LookAlike、動態創意、點擊率/轉化率預估等
  • 誰是2020年最強Python庫?年度Top10出爐
    它的推理API跟sklearn範例十分相似,都可以重複使用現有的代碼,但是它是用Hummingbird生成的代碼去實現的。Hummingbird還在Sklearn API之後提供了一個方便的統一推理API。這樣就可以將Sklearn模型與Hummingbird生成的模型互換,而無需更改推理代碼。它之所以被重點關注,還因為它能夠支持多種多樣的模型和格式。
  • 使用一行Python代碼從圖像讀取文本
    雖然圖像分類和涉及到一定程度計算機視覺的任務可能需要大量的代碼和紮實的理解,但是從格式良好的圖像中讀取文本在Python中卻是簡單的,並且可以應用於許多現實生活中的問題。在今天的帖子中,我想證明這一點。雖然會安裝一些庫,但不會花很多時間。
  • 繼斯瓦爾巴全球種子庫,承載著人類歷史的開原始碼也存放到了北極
    種子庫看起來就像電影裡的某個場景,它的入口是一個三角形方尖碑,高高地聳立在一片白茫茫之中。它閃爍著綠光。在一個寒冷而又出奇安靜的礦脈深處,弗裡德曼來到了一個看起來像金屬工具棚的地方。他說:「它比我想像得更有我的風格,更土氣,更原始。」這是北極世界檔案館,種子庫的堂兄可沒那麼性感。弗裡德曼用一把簡單的門鑰匙打開了貨櫃門,然後在裡面存放了世界上大部分的開源軟體代碼。
  • 衰衰另類創作「我的班主任」妙筆生花,為何同學說實話卻受懲罰?
    哈嘍,同學們大家好,這裡是青柚,我們都知道忠言逆耳,實話在我們耳朵中聽起來會讓我們感到牴觸、反感,但是實事求是,作為一個誠實的人往往說出的實話會讓人厭煩,但是實話實說才是一個人基本的素養,如果滿嘴謊言,時間久了誰還會願意聽他講話呢,然而衰衰由於在作文中描寫老師說了過多的實話遭受到了老師的懲罰,
  • 12 種自然語言處理的開源工具
    -- Dan Barker(作者)在過去的幾年裡,自然語言處理(NLP)推動了聊天機器人、語音助手、文本預測等這些滲透到我們的日常生活中的語音或文本應用程技術的發展。目前有著各種各樣開源的 NLP 工具,所以我決定調查一下當前開源的 NLP 工具來幫助你制定開發下一個基於語音或文本的應用程式的計劃。
  • Uber 上市了,國內對標的「滴滴」有什麼開源軟體?
    下面是開源中國整理的滴滴公司的開源項目:falcon-log-agent 簡介 falcon-log-agent 是一個開源版的日誌採集工具,旨在從流式的日誌中抓取、統計日誌中的特徵信息。獲取的特徵信息,與開源版 Open-Falc...背景 此進程在滴滴雲上用於管理機器上面的其他 agent,比如監控的 agent、安全的 agent,管理主要是:安裝、升級、卸載、查看啟動狀態,不做其他事情。省去客戶手工安裝其他 agent ...Pile.js 是滴滴開發的基於React的移動端開發組件庫。 輕量,易用,包含52個交互功能,支持多語言與自定義皮膚。
  • 機器之心年度盤點:2018年重大研究與開源項目
    谷歌會為每一個任務獨立地訓練一個理解模型,但所有任務都能利用共享的語料庫。此外,谷歌還會使用 TFX 中的超參數優化方法優化模型的性能。如下所示,輸入語音將輸入到 ASR 系統並獲得輸出,在結合 ASR 的輸出與語境信息後可作為循環神經網絡的輸入。這一深度 RNN 最終將基於輸入信息輸出對應的響應文本,最後響應文本可傳入文本轉語音(TTS)系統完成對話。
  • PyTorch實現用於文本生成的循環神經網絡
    自然語言處理(NLP)有很多有趣的應用,文本生成就是其中一個有趣的應用。當一個機器學習模型工作在諸如循環神經網絡、LSTM-RNN、GRU等序列模型上時,它們可以生成輸入文本的下一個序列。PyTorch提供了一組功能強大的工具和庫,這些工具和庫為這些基於NLP的任務增添了動力。它不僅需要較少的預處理量,而且加快了訓練過程。
  • PyTorch:Bi-LSTM的文本生成
    有時它來得容易而且完美;有時就像在巖石上鑽孔,然後用炸藥把它炸開一樣。」—歐內斯特·海明威本博客的目的是解釋如何通過實現基於LSTMs的強大體系結構來構建文本生成的端到端模型。本質上,我們使用這種類型的神經網絡,因為它在處理順序數據時具有巨大的潛力,例如文本類型的數據。同樣,也有大量的文章提到使用基於循環神經網絡的體系結構(例如RNN、LSTM、GRU、Bi-LSTM等)進行文本建模,特別是文本生成[1,2]。所提出的神經網絡結構由一個嵌入層、一個雙LSTM層和一個LSTM層組成。
  • 文本也有攻防戰:清華大學開源對抗樣本必讀論文列表
    在本文中,我們簡要討論了攻防的概念,並介紹了清華大學近日開源的 NLP 對抗樣本攻防必讀論文列表。自然語言處理方面的研究在近幾年取得了驚人的進步,深度神經網絡模型已經取代了許多傳統的方法。但是,當前提出的許多自然語言處理模型並不能夠反映文本的多樣特徵。因此,許多研究者認為應該開闢新的研究方法,特別是利用近幾年較為流行的對抗樣本生成和防禦的相關研究方法。