模型简介
模型特点
模型能力
使用案例
许可证:
- Apache-2.0
- BSD-3-Clause
标签:
- 摘要生成
- 总结
- 书籍摘要
- 长文档
- 长文本
- tglobal-xl
- XL
数据集:
- kmfoda/booksum
评估指标:
- ROUGE
推理:禁用
模型索引:
- 名称:pszemraj/long-t5-tglobal-xl-16384-book-summary
结果:
- 任务:
类型:摘要生成
名称:Summarization
数据集:
名称:multi_news
类型:multi_news
配置:默认
拆分:测试
指标:
- 类型:rouge 值:36.2043 名称:ROUGE-1 已验证:true 验证令牌:eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJoYXNoIjoiYzRmMmUyOTVjMmJmZTRiZDcyYzY3MTQ1MmUyNDA5NjVhYzEzYzBiNzcxYTRhMDQ3OTlhMGZjYmJlNDM1M2NjYyIsInZlcnNpb24iOjF9._uArOQ1_0znXDPXMq7unA1OHB-XbgqzzKRbFRcVUzTUJdWk26LiSa2pEEVNNmJPg6Uo7CAvONmhpEswLvl9TAg
- 类型:rouge 值:8.424 名称:ROUGE-2 已验证:true 验证令牌:eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJoYXNoIjoiNzg0MzljYjVjYWQ3MmRkZDBlOGI5M2RiMGU0M2UwZGUzMDg2NTU0NjcwMTNiN2ZmODEzNTQ0MmEwNDA3NDA5MSIsInZlcnNpb24iOjF9.Dzj85ld6TjosQ8KyUdoadzicMLedEFrICC6Q-08O3qx28d9B9Uke1zw-VWabiuesPEDTRGbWuBgPA5vxYWUZAw
- 类型:rouge 值:17.3721 名称:ROUGE-L 已验证:true 验证令牌:eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJoYXNoIjoiNDA3ZjZmODAwMTNlM2RlZmJlMDI5MGVkMGRkMTBjMTYzNDk5ZjFiNTY5MWE1MDUwNWI2MDE4ZDA2YWMwMmI2NCIsInZlcnNpb24iOjF9.MOV_nId0XAK1eMQssG5GN9DsitZaTrxl4jdCJnOg9EZ0-vAw227ln599YV5YfZ1OPJnWwek6rneqqyONiHn9AQ
- 类型:rouge 值:32.3994 名称:ROUGE-LSUM 已验证:true 验证令牌:eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJoYXNoIjoiZmY3MDMwOTZjNWI0YTk1MDgwMzJkYTFiN2U5YWU0Mzc0MWRiMzc1NzZlMDhjMWUwMmY2ODI2MjI5ODBkYWUxOSIsInZlcnNpb24iOjF9._BwGIZbcA4pUBkEAL0cW-JPPta0KSoGug4Z7vogHacUz-AEhIOI5ICUldZh0pt9OK67MpUSzpShJOu3rSt5YDQ
- 类型:loss 值:2.0843334197998047 名称:loss 已验证:true 验证令牌:eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJoYXNoIjoiOWFhMmE5ZjA3ODM4YmVjMDMyMjk5YjNlMjA1MGMzOWY0NTRlYzk1YjZiMzQxMDMxOTMwMjFkNTdmNjM1NDcyMyIsInZlcnNpb24iOjF9.3wbXV4CIIgnfXAnnRztdOR12PwsWsEfiglQQ09K-C1EgW4gai4x9l-wTE2OZ7CTWkuk_tr4tL_uqOCXLZRMtCQ
- 类型:gen_len 值:248.3572 名称:gen_len 已验证:true 验证令牌:eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJoYXNoIjoiMWZhOGMwMDJjNGU2MzA2YzI1OWU1ZDY5N2NjZmM1YTA5NDg1MzUwNmU1YTBhNjQyNWYwYzA3OGNmODFjMmE2NSIsInZlcnNpb24iOjF9.Rc9u89zCdbFnjsnmq65l_JvCtUwOX_ZWapKJpTZ-rC8HxcUVfi2Ash2QfvvvxHH_YWhwklxxdnNa0HCm46qLAA
- 任务:
类型:摘要生成
名称:Summarization
数据集:
名称:billsum
类型:billsum
配置:默认
拆分:测试
指标:
- 名称:ROUGE-1 类型:rouge 值:41.3645 已验证:true
- 名称:ROUGE-2 类型:rouge 值:16.144 已验证:true
- 名称:ROUGE-L 类型:rouge 值:24.2981 已验证:true
- 名称:ROUGE-LSUM 类型:rouge 值:35.3234 已验证:true
- 名称:loss 类型:loss 值:1.282260775566101 已验证:true
- 名称:gen_len 类型:gen_len 值:291.8158 已验证:true
- 任务:
类型:摘要生成
名称:Summarization
数据集:
名称:ccdv/arxiv-summarization
类型:ccdv/arxiv-summarization
配置:document
拆分:测试
指标:
- 名称:ROUGE-1 类型:rouge 值:36.3225 已验证:true
- 名称:ROUGE-2 类型:rouge 值:9.3743 已验证:true
- 名称:ROUGE-L 类型:rouge 值:19.8396 已验证:true
- 名称:ROUGE-LSUM 类型:rouge 值:32.2532 已验证:true
- 名称:loss 类型:loss 值:2.146871566772461 已验证:true
- 名称:gen_len 类型:gen_len 值:186.2966 已验证:true
- 任务:
类型:摘要生成
名称:Summarization
数据集:
名称:multi_news
类型:multi_news
配置:默认
拆分:测试
指标:
long-t5-tglobal-xl + BookSum
[!重要] 根据此讨论,我们发现long-t5模型>=4.23.0存在问题 - 请使用
pip install transformers==4.22.0
以确保此模型的良好性能
总结长文本并获取任何主题的类似SparkNotes的摘要!
- 对学术和叙述性文本有较好的泛化能力。
- 这是XL检查点,从人类评估的角度来看,它能生成更好的摘要。
俏皮的概念验证
对臭名昭著的海豹突击队复制粘贴文本的摘要:
在本章中,怪物解释了他打算如何报复“小混蛋”对他的侮辱。他告诉孩子,他是一个训练有素、经验丰富的杀手,将利用他的武器库——包括他对互联网的访问——来对这个小混蛋实施正义。
虽然这是一个粗糙的例子,但尝试将此复制粘贴文本通过其他摘要模型运行,看看理解上的差异(尽管它甚至不是“长”文本!)。
目录
描述
在kmfoda/booksum
数据集上微调的google/long-t5-tglobal-xl版本。
阅读Guo等人的论文:LongT5: Efficient Text-To-Text Transformer for Long Sequences
Python中的使用方法
安装/更新transformers:pip install -U transformers
使用pipeline总结文本:
import torch
from transformers import pipeline
summarizer = pipeline(
"summarization",
"pszemraj/long-t5-tglobal-xl-16384-book-summary",
device=0 if torch.cuda.is_available() else -1,
)
long_text = "这里有很多我不想阅读的文本。替换我"
result = summarizer(long_text)
print(result[0]["summary_text"])
基础之外
除了简单的推理外,还有两点需要考虑:调整解码参数以提高性能,以及量化以减少内存消耗。
调整参数
在调用summarizer
时传递与束搜索文本生成相关的其他参数以获得更高质量的结果。
LLM.int8量化
替代标题:如何让这个怪物在免费的Colab运行时上运行推理
通过此PR,long-t5
模型现在支持LLM.int8。
- 根据初步测试,摘要质量似乎保持不变,同时内存使用显著减少!*
- 此模型的8位量化版本已在Hub上提供,因此如果您使用8位版本,可以从那里开始,仅需3.5 GB下载!
首先,确保您有相关包的最新版本:
pip install -U transformers bitsandbytes accelerate
以8位加载(由bitsandbytes
在幕后完成魔法)
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer.from_pretrained(
"pszemraj/long-t5-tglobal-xl-16384-book-summary"
)
model = AutoModelForSeq2SeqLM.from_pretrained(
"pszemraj/long-t5-tglobal-xl-16384-book-summary",
load_in_8bit=True,
device_map="auto",
)
上述内容已包含在模型卡顶部链接的Colab演示中。
* 随着时间的推移,将进行更严格的基于指标的对比研究,比较使用和不使用LLM.int8的束搜索摘要。
关于
预期用途与限制
虽然此模型似乎提高了事实一致性,但不要将摘要视为万无一失,检查看起来奇怪的内容。
具体来说:否定陈述(即,模型说:这个东西没有[属性],而实际上应该说_这个东西有很多[属性]_)。
- 我相信最终会有人就此写一篇论文(如果还没有的话),但您通常可以通过将特定陈述与周围句子的含义进行比较来检查这一点。
训练与评估数据
HuggingFace上的kmfoda/booksum
数据集 - 阅读原始论文。
- 对于初始微调,仅使用输入token不超过12288个且输出token不超过1024个的文本(即,超过该长度的行在训练前被丢弃)出于内存原因。经过快速分析,12288-16384范围内的摘要在此数据集中占极少数。
- 此外,此初始训练将训练集和验证集合并,并在聚合数据上进行训练,以增加功能数据集大小。因此,对验证集结果持保留态度;主要指标应(始终)是测试集。
- 微调的最终阶段使用了标准的16384输入/1024输出约定,保留标准的输入/输出长度(并截断更长的序列)。这似乎没有显著改变损失/性能。
评估结果
将使用模型评估器计算并发布官方结果。
请阅读上述说明,由于训练方法的原因,验证集上的性能看起来比测试集上的结果要好。模型在评估集上达到以下结果:
-
eval_loss: 1.2756
-
eval_rouge1: 41.8013
-
eval_rouge2: 12.0895
-
eval_rougeL: 21.6007
-
eval_rougeLsum: 39.5382
-
eval_gen_len: 387.2945
-
eval_runtime: 13908.4995
-
eval_samples_per_second: 0.107
-
eval_steps_per_second: 0.027
***** 预测/测试指标(初始) ***** predict_gen_len = 506.4368 predict_loss = 2.028 predict_rouge1 = 36.8815 predict_rouge2 = 8.0625 predict_rougeL = 17.6161 predict_rougeLsum = 34.9068 predict_runtime = 2:04:14.37 predict_samples = 1431 predict_samples_per_second = 0.192 predict_steps_per_second = 0.048
* 评估大型模型并不像看起来那么容易。正在进一步调查
常见问题
如何在CPU上运行推理?
哈哈
如何对非常长的文档(30k+ tokens)进行批量推理?
参见我的hf空间文档摘要中的summarize.py
:)
您还可以使用相同的代码将文档分成4096等批次,并使用模型迭代它们。这在CUDA内存有限的情况下非常有用。
更新: 参见下面关于textsum
包的部分。
如何进一步微调?
有没有更简单的方法运行?
为此,我创建了一个Python包实用程序。它叫做textsum,您可以用它来加载模型并用几行代码总结内容。
pip install textsum
在Python中使用textsum
与此模型:
from textsum.summarize import Summarizer
summarizer = Summarizer(
model_name_or_path="pszemraj/long-t5-tglobal-xl-16384-book-summary"
)
long_string = "这是一个将被总结的长文本字符串。"
out_str = summarizer.summarize_string(long_string)
print(f"摘要:{out_str}")
此包提供了易于使用的接口,用于将摘要模型应用于任意长度的文本文档。当前实现的接口包括Python API、CLI和可共享的演示应用程序。
有关详细信息、说明和文档,请参阅README(上面链接)或wiki。
训练过程
更新
与此模型/模型卡相关的更新将在相关时发布。模型似乎已经相当收敛;如果可以使用BookSum
数据集进行更新/改进,将更新此仓库。
训练超参数
训练期间使用了以下超参数:
- 学习率:0.0006
- 训练批次大小:1
- 评估批次大小:1
- 随机种子:10350
- 分布式类型:多GPU
- 设备数量:4
- 梯度累积步数:32
- 总训练批次大小:128
- 总评估批次大小:4
- 优化器:Adam,betas=(0.9,0.999),epsilon=1e-08
- 学习率调度器类型:constant
- 训练轮数:1.0
*之前的训练会话使用了大致相似的参数(学习率更高);由于训练耗时极长,需要多次会话。
框架版本
- Transformers 4.25.0.dev0
- Pytorch 1.13.0+cu117
- Datasets 2.6.1
- Tokenizers 0.13.1








