英文

led-large-book-summary

此模型是在BookSum数据集(kmfoda/booksum)上对 allenai/led-large-16384 进行微调的版本。它旨在通用化,可以对长文本进行学术和日常目的的摘要。

  • 处理最多16,384个输入标记
  • 查看上面链接的Colab演示或尝试 demo on Spaces

注意:由于推理API的超时限制,输出可能会在完全摘要返回之前截断(请尝试使用Python或演示)

基本用法

要提高摘要质量,在调用流水线对象时使用encoder_no_repeat_ngram_size=3。此设置有助于模型利用新的词汇并构建抽象的摘要。

将模型加载到流水线对象中:

import torch
from transformers import pipeline

hf_name = 'pszemraj/led-large-book-summary'

summarizer = pipeline(
    "summarization",
    hf_name,
    device=0 if torch.cuda.is_available() else -1,
)

将文本输入流水线对象中:

wall_of_text = "your words here"

result = summarizer(
    wall_of_text,
    min_length=16,
    max_length=256,
    no_repeat_ngram_size=3,
    encoder_no_repeat_ngram_size=3,
    repetition_penalty=3.5,
    num_beams=4,
    early_stopping=True,
)

重要提示:为了获得最佳的摘要质量,在解码时使用全局注意力掩码,如 this community notebook 中所示,请查看generate_answer(batch)的定义。

如果面临计算限制,请考虑使用基础版本 pszemraj/led-base-book-summary

训练信息

数据

该模型在 booksum 数据集上进行了微调。训练过程中,章节是输入列,而summary_text是输出。

流程

在13个以上的迭代中对BookSum数据集进行了微调。值得注意的是,最后四个迭代将训练集和验证集合并为“train”,以增强泛化性能。

超参数

训练过程中使用了不同的设置:

  • 最初的三个迭代:学习率较低(5e-05),批量大小为1,梯度累积步数为4,使用线性学习率调度程序。
  • 迭代中间:将学习率降低到4e-05,批量大小增加到2,梯度累积步数为16,切换到余弦学习率调度程序,热身比例为0.05。
  • 最后两个迭代:进一步降低学习率(2e-05),批量大小恢复为1,保持梯度累积步数为16,并继续使用余弦学习率调度程序,尽管热身比例较低(0.03)。

版本

  • Transformers 4.19.2
  • Pytorch 1.11.0+cu113
  • Datasets 2.2.2
  • Tokenizers 0.12.1

使用TextSum简化操作

为了简化使用该模型及其他模型的过程,我开发了名为textsum的 a Python package utility 。该软件包提供了将摘要模型应用于任意长度文本文档的简单接口。

安装TextSum:

pip install textsum

然后在Python中使用该模型:

from textsum.summarize import Summarizer

model_name = "pszemraj/led-large-book-summary"
summarizer = Summarizer(
    model_name_or_path=model_name,  # you can use any Seq2Seq model on the Hub
    token_batch_length=4096,  # tokens to batch summarize at a time, up to 16384
)
long_string = "This is a long string of text that will be summarized."
out_str = summarizer.summarize_string(long_string)
print(f"summary: {out_str}")

目前实现的接口包括Python API,命令行界面(CLI)和演示/ Web界面。

有关详细说明和文档,请查看 README wiki

相关模型

请查看这些其他相关模型,它们也是在BookSum数据集上进行了训练:

我在hf档案中还有其他数据集的其他变体等,随时尝试它们:)