模型:
pszemraj/led-base-book-summary
Longformer编码器-解码器(LED)用于叙事般的长文本摘要是我从 allenai/led-base-16384 精调的模型,可以以相对适用的方式压缩详尽的技术、学术和叙事内容。
注意:由于推理超时的限制,API小部件的最大长度约为96个标记。
该模型是在SalesForce发布的BookSum数据集上进行训练的,该数据集遵循BSD-3-Clause许可协议。训练过程包括16个时期,参数调整以促进非常微调的训练(超低学习率)。
模型检查点: pszemraj/led-base-16384-finetuned-booksum 。
这个模型是我所研究的最小/最快的booksum调优模型。如果你正在寻找更高质量的摘要,请查看:
我的hf个人资料中还有其他数据集的变体等,欢迎尝试:)
推荐在调用流水线对象时使用encoder_no_repeat_ngram_size=3,因为它通过鼓励使用新词汇和制作抽象摘要来提高摘要质量。
创建流水线对象:
import torch
from transformers import pipeline
hf_name = "pszemraj/led-base-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=8,
max_length=256,
no_repeat_ngram_size=3,
encoder_no_repeat_ngram_size=3,
repetition_penalty=3.5,
num_beams=4,
do_sample=False,
early_stopping=True,
)
print(result[0]["generated_text"])
为了简化使用该模型和其他模型的过程,我开发了一个名为textsum的 a Python package utility 。该软件包提供了对将摘要模型应用于任意长度的文本文档的简单界面。
安装TextSum:
pip install textsum
然后在Python中使用该模型:
from textsum.summarize import Summarizer
model_name = "pszemraj/led-base-book-summary"
summarizer = Summarizer(
model_name_or_path=model_name, # you can use any Seq2Seq model on the Hub
token_batch_length=4096, # how many tokens to batch summarize at a time
)
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界面。