模型:
pszemraj/led-large-book-summary
此模型是在BookSum数据集(kmfoda/booksum)上对 allenai/led-large-16384 进行微调的版本。它旨在通用化,可以对长文本进行学术和日常目的的摘要。
注意:由于推理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”,以增强泛化性能。
训练过程中使用了不同的设置:
为了简化使用该模型及其他模型的过程,我开发了名为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界面。
请查看这些其他相关模型,它们也是在BookSum数据集上进行了训练:
我在hf档案中还有其他数据集的其他变体等,随时尝试它们:)