文本生成作为近年来自然语言处理中的热门领域,受到了学界和工业界的广泛关注。随着研究的不断深入,文本生成领域下的子任务和相应的模型越来越丰富,一些优秀的开源框架也纷纷涌现。

现有的开源文本生成库大致可分为两类,一类倾向于模块化驱动,提供各个组件供研究者搭建不同的模型,但缺点在于许多特殊的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安装,用户可以通过下面的简单命令进行安装使用:

git clone https://github.com/RUCAIBox/TextBox.git && cd TextBox
pip install -e . --verbose或pip install textbox

一键运行

我们在Github提供了一系列一键运行的脚本,包括训练、单独测试:

python run_textbox.py --model=RNN --dataset=COCO --task_type=unconditional
python run_textbox.py --model=RNN --dataset=COCO --task_type=unconditional –-load_experiment=<ckpt_file> --test_only=true

通过上述命令就可以直接在COCO数据集上基于RNN模型进行无条件生成任务的训练和单独测试。

如果你想改变参数,比如rnn_type、max_vocab_size等,可以按需在命令行设置额外的参数:

python run_textbox.py --model=RNN --dataset=COCO --task_type=unconditional \--rnn_type=lstm --max_vocab_size=4000

如果你想运行别的数据集、模型和任务,可以使用

python run_textbox.py --model=<model_name> --dataset=<dataset_name> --task_type=<task_type>

如果你使用pip安装,只需新建一个py文件,添加以下代码即可实现模型的训练和测试

from textbox.quick_start import run_textboxrun_textbox(config_dict={'model': 'RNN','dataset': 'COCO','data_path': './dataset','task_type': 'unconditional'})

使用预训练语言模型

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 run_textbox.py --model=GPT2 --dataset=COCO --task_type=unconditional \--pretrained_model_path=pretrained_model/gpt2

未来展望

至此,“妙笔”文本生成库的自我介绍就到此结束啦。未来我们将继续努力,开发更多新的模型,维护并保持版本稳定。有好的建议或意见也欢迎关注(点击右边链接关注➡️)AI Box公众号后台留言或者在Github的issues中提问,期待大家的试用体验和宝贵意见。

????

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

妙笔生花:一个易用、高效的文本生成开源库相关推荐

  1. 四步快速配置一个简单高效的文本生成图像基准模型 T2I baseline

    本文将介绍一个简单高效的文本生成图像基准模型,该基准模型是DF-GAN20版代码,清楚简单,实用性高,本基准模型代码在他的基础上经过少量简化和处理,虚拟环境也进行了打包,非常适合作为一个基线模型,然后 ...

  2. JNI开发笔记(四)--实现一个简单的JNI工程并生成so库

    实现一个简单的JNI工程并生成so库 引 前言 1. 编写C/h文件并添加到工程 2. 修改CmakeLists.txt文件 3. 编写native-lib.cpp文件 4. 在MainActivit ...

  3. 基于结构化数据的文本生成:非严格对齐生成任务及动态轻量的GCN生成模型

    作者|邴立东.程丽颖.付子豪.张琰等 单位|阿里巴巴达摩院.香港中文大学等 摘要 基于结构化数据生成文本(data-to-text)的任务旨在生成人类可读的文本来直观地描述给定的结构化数据.然而,目前 ...

  4. 基于层次过滤的文本生成

    ©PaperWeekly 原创 · 作者|邓云天 学校|哈佛大学计算机系博士生 研究方向|自然语言处理 论文标题:Cascaded Decoding with Markov Transformers ...

  5. DALL·E:用文本生成图像

    DALL·E是OpenAI公司发布的一个用文本生成图像的模型,它是GPT-3的一个版本,经过文本-图像数据集训练,具有120亿参数,可以从文本描述生成图像.DALL·E能够创建拟人化的动物和物体,以合 ...

  6. 集合70多种推荐算法,东北大学老师用Java写了一个开源库,在GitHub上收获近1500个Star...

     [AI科技大本营导读]在经过一年多的开发工作之后,LibRec 3.0 版本终于发布了.LibRec 是一个基于 Java 的开源算法工具库,覆盖了 70 余个各类型推荐算法,可以有效解决评分预测 ...

  7. 剑桥大学等提出MAGIC,一个即插即用、无需训练的图像-文本生成框架

    ©作者 | 苏熠暄 单位 | 剑桥大学 研究方向 | 文本生成和表征学习 本文提出了一个全新的 MAGIC (iMAge-guided text GeneratIon with CLIP) 框架.该框 ...

  8. [Android开源]一个非常简单易用用来花式展示二维码样式生成的库QRCodeStyle

    类库说明 一个非常简单易用用来花式展示二维码样式生成的库 自由组合二维码样式 使用范例 设置带圆边圈的logo Bitmap logo = BitmapFactory.decodeResource(g ...

  9. 如何把一个网页生成一个快捷方式在桌面?_如何打造一个简洁、高效的桌面?

    都2020年了,你的桌面仍是这样的? 或是这样的? 但当然你也见过这样的: 你当然会好奇,没有各种快捷方式.任何文件或文件夹的工作桌面,使用起来岂不效率低下? 然则非也. 我认为高效的工作得从舒服的桌 ...

最新文章

  1. BSON及mongoDB数据类型
  2. 控制系统设计_PLC自动化控制系统设计基本原则
  3. 【LeetCode从零单排】No58.Length of Last Word
  4. HDU - 4388 Stone Game II(博弈+思维)
  5. smarty中section的使用
  6. python 发送邮件不显示附件_python3发送邮件(无附件)
  7. CSS--背景样式---伪类选择器---高级选择器---盒子模型---浮动
  8. Windows操作系统远程Linux服务器传输文件方法(以EasyDSS云平台、EasyNVR上传部署为例)...
  9. 深入理解Solaris内核中互斥锁(mutex)与条件变量(condvar)之协同工作原理
  10. instead of 的用法
  11. 51单片机电子琴设计
  12. 养生秘诀呼吸吐纳真的可以养生嘛?
  13. 19款最好用的免费数据挖掘工具大汇总(干货)
  14. Typora使用总结
  15. 3.HTML段落、文本格式化、链接
  16. 基于SSM+MYSQL写的javaWeb房屋租赁管理系统,包括系统前端和后台,页面美观,功能完善,非常高端的SSM源码
  17. 【NOIP2017提高组正式赛】列队
  18. 智能ABC输入法的巧用
  19. Unity3D 之 学习路线与学习经验分享
  20. RTKLIB专题学习(三)---矩阵应用

热门文章

  1. mysql 客户端_技术分享 | MySQL 客户端连不上(1045 错误)原因全解析
  2. ps拨号服务器原理_呼叫中心的原理和功能
  3. ZJOI2019游记
  4. poj2513 Fence Repair(小根堆)
  5. 关于现代软件工程学习
  6. 【bzoj4592】[Shoi2015]脑洞治疗仪
  7. 【01】什么是AJAX
  8. 关于Metasploit开发环境的搭建
  9. 使用 nc (Netcat) 建立傳送資料的 socket server
  10. 切换ip下的sql server用户权限丢失_Zabbix_server高可用之文件同步