
“李太白少时,梦所用之笔头上生花后天才赡逸,名闻天下。” - - 王仁裕《开元天宝遗事·梦笔头生花》
TextBox 2.0:具有预训练语言模型的文本生成库
TextBox 2.0是基于Python和Pytorch的最新文本生成库,致力于构建统一和标准化的管道,用于将预训练的语言模型应用于文本生成:
与以前的文本框相比,此扩展名主要集中在构建一个统一,灵活和标准化的框架上,以更好地支持基于PLM的文本生成模型。 TextBox 2.0有三个优点:

TextBox 2.0的整体框架
考虑到将安装了变压器的修改版本,建议创建一个新的Conda环境:
conda create -n TextBox python=3.8然后,您可以克隆我们的存储库,并使用一键式安装。
git clone https://github.com/RUCAIBox/TextBox.git && cd TextBox
bash install.sh如果您面对files2rouge ROUGE-1.5.5.pl - XML::Parser dependency error时的问题,则可以参考此问题。
这是一个在端到端管道中运行TextBox 2.0的脚本模板:
python run_textbox.py --model= < model-name > --dataset= < dataset-name > --model_path= < hf-or-local-path >替代--model=<xxx> , --dataset=<xxx>和--model_path=<xxx>您可以选择。
model和model_path的选择可以在模型中找到。我们提供该页面中每个模型的详细说明。
dataset的选择可以在数据集中找到。您应该在https://huggingface.co/rucaibox上下载数据集,并将下载的数据集放在dataset集文件夹下,就像Samsum一样。如果您想使用自己的数据集,请参考此处。
下面的脚本将在samsum数据集上运行Facebook BART-base模型:
python run_textbox.py --model=BART --dataset=samsum --model_path=facebook/bart-base对于基本培训,我们提供了一个详细的教程(此处),用于设置常用参数,例如优化器,调度程序,验证频率,早期停止等。
TextBox 2.0提供了四个预训练的目标,以帮助用户从头开始预训练模型,包括语言建模,蒙版序列到序列建模,自动编码和蒙版跨度预测。有关详细的教程,请参见预培训文档。
提供了四种有用的训练方法来改善PLM的优化:分布式数据平行,有效的解码,超参数优化和重复实验。此处提供了详细说明。
为了支持PLM在文本生成上的快速进步,TextBox 2.0包含了47个模型/模块,涵盖了一般,翻译,中文,对话,可控制,蒸馏,提示和轻量级模型(模块)的类别。有关每个模型,预训练的模型参数和生成参数的详细用法指令的信息,请参见模型文档。
现在,我们支持13个一代任务(例如,翻译和故事生成)及其相应的83个数据集。我们还为每个数据集提供描述,基本统计信息,培训/验证/测试样本和排行榜。在此处查看更多详细信息。
TextBox 2.0支持17个4个类别的自动指标和几种可视化工具,以探索和分析各个维度的生成文本。有关评估详细信息,请参见评估文档。
| 发行 | 日期 | 特征 |
|---|---|---|
| v2.0.1 | 24/12/2022 | TextBox 2.0 |
| v2.0.0 | 20/08/2022 | TextBox 2.0 Beta |
| v0.2.1 | 15/04/2021 | 文本框 |
| V0.1.5 | 01/11/2021 | 基本文本框 |
如果您遇到错误或提出问题,请告诉我们是否有任何建议。
我们欢迎从错误修复到新功能和扩展的所有贡献。
我们希望在问题跟踪器中讨论所有贡献并进行PRS。
我们感谢 @lucastsui0725构成了HRED模型和几个评估指标。
我们感谢@wxdai在变形金刚API中贡献了Pointernet和20多种语言模型。
TextBox由AI盒开发和维护。
TextBox使用MIT许可证。
如果您发现Textbox 2.0对您的研究或开发有用,请引用以下论文:
@inproceedings{tang-etal-2022-textbox,
title = "{T}ext{B}ox 2.0: A Text Generation Library with Pre-trained Language Models",
author = "Tang, Tianyi and Li, Junyi and Chen, Zhipeng and Hu, Yiwen and Yu, Zhuohao and Dai, Wenxun and Zhao, Wayne Xin and Nie, Jian-yun and Wen, Ji-rong",
booktitle = "Proceedings of the The 2022 Conference on Empirical Methods in Natural Language Processing: System Demonstrations",
month = dec,
year = "2022",
address = "Abu Dhabi, UAE",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2022.emnlp-demos.42",
pages = "435--444",
}
@inproceedings{textbox,
title = "{T}ext{B}ox: A Unified, Modularized, and Extensible Framework for Text Generation",
author = "Li, Junyi and Tang, Tianyi and He, Gaole and Jiang, Jinhao and Hu, Xiaoxuan and Xie, Puzhao and Chen, Zhipeng and Yu, Zhuohao and Zhao, Wayne Xin and Wen, Ji-Rong",
booktitle = "Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing: System Demonstrations",
month = aug,
year = "2021",
address = "Online",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2021.acl-demo.4",
doi = "10.18653/v1/2021.acl-demo.4",
pages = "30--39",
}