语言:
- 英语
许可证:
- Apache-2.0
- BSD-3-Clause
标签:
- 摘要生成
- 抽取式
- 摘要
- 生成式
- 多任务
- 文档摘要
数据集:
- jordiclive/scored_summarization_datasets
评估指标:
- ROUGE
多功能摘要生成器(基于3B参数的google/flan-t5-xl模型在多个摘要数据集上微调)
这是google/flan-t5-xl模型在多个摘要数据集(xsum、wikihow、cnn_dailymail/3.0.0、samsum、scitldr/AIC、billsum、TLDR)上微调的版本。
目标:打造一个适用于学术和通用场景的通用摘要生成器。通过在源文档前添加不同的指令,可以控制生成摘要的类型。尽管训练时最大源文本长度为512个标记,最大摘要长度为150个标记,但该模型在各种文本上表现良好。
使用方法
请参考Colab笔记本获取详细使用说明。
模型期望在源文档前添加提示语以指定摘要类型,以下是训练时使用的提示语示例:
提示语应以冒号结尾,模型输入格式应为"总结以下内容:{输入文本}"。请注意,与jordiclive/flan-t5-11b-summarizer-filtered
等模型相比,本模型训练时使用的提示语较少,因此新提示语可能泛化效果不佳。
prompts = {
"article": "为以下新闻文章生成摘要:",
"one_sentence": "用一句话总结以下新闻文章:",
"conversation": "以第三人称简要总结以下对话:",
"scitldr": "为以下科学文章提供TL;DR式摘要:",
"bill": "总结以下立法提案(法案):",
"outlines": "为以下文章生成包含各段落要点的摘要:",
}
安装transformers
后运行以下代码:
此流水线运行速度较慢,且不具备Colab中的某些分词参数。
from transformers import pipeline
summarizer = pipeline("summarization", "jordiclive/flan-t5-3b-summarizer", torch_dtype=torch.bfloat16)
raw_document = '在纽约州居住或工作必须年满18岁...'
prompt = "为以下新闻文章生成摘要:"
results = summarizer(
f"{prompt} {raw_document}",
num_beams=5,
min_length=5,
no_repeat_ngram_size=3,
truncation=True,
max_length=512,
)
训练过程
- 使用BF16精度训练,采用deepspeed stage 2策略,共6个epoch,在验证集上监控ROUGE-2指标。
硬件配置
- GPU数量:8块NVIDIA A100-SXM4-40GB
- CPU数量:48核
训练超参数
训练使用的超参数如下:
- 学习率:3e-05
- 训练批大小:5
- 评估批大小:8
- 随机种子:42
- 分布式类型:多GPU
- 梯度累积步数:2
- 有效训练批大小:80
- 优化器:Adam,参数betas=(0.9,0.999),epsilon=1e-08
- 学习率调度器类型:线性
- 预热步数:2000
- 训练轮数:10
框架版本
- Transformers 4.24.0
- Pytorch 1.9.1+cu111
- Deepspeed 0.7.4
- Pytorch-lightning 1.8.1
引用
@misc{jordiclive_flan_t5_3b_summarizer_2023,
title={{多功能摘要生成器(基于google/flan-t5-xl模型在多个摘要数据集上微调)}},
author={{Jordan Clive}},
howpublished={\url{https://huggingface.co/jordiclive/flan-t5-3b-summarizer}},
year={2023},
note={Apache 2.0和BSD-3-Clause许可证。在xsum、wikihow、cnn_dailymail/3.0.0、samsum、scitldr/AIC、billsum、TLDR等多个摘要数据集上微调。专为学术和通用场景设计,可通过在源文档前添加不同指令控制摘要类型。},
url={https://huggingface.co/jordiclive/flan-t5-3b-summarizer},
}