用Transformers 库来完成中文文本摘要任务
transformers
huggingface/transformers: 是一个基于 Python 的自然语言处理库,它使用了 PostgreSQL 数据库存储数据。适合用于自然语言处理任务的开发和实现,特别是对于需要使用 Python 和 PostgreSQL 数据库的场景。特点是自然语言处理库、Python、PostgreSQL 数据库。
项目地址:https://gitcode.com/gh_mirrors/tra/transformers
免费下载资源
·
虽然 Hugging Face 已经提供了很多文本摘要模型,但是它们大部分只能处理英文,因此本文将微调一个多语言文本摘要模型用于完成中文摘要:为新浪微博短新闻生成摘要。
文本摘要可以看作是将长文本“翻译”为捕获关键信息的短文本,因此大部分文本摘要模型同样采用 Encoder-Decoder 框架。当然,也有一些非 Encoder-Decoder 框架的摘要模型,例如 GPT 家族也可以通过小样本学习 (few-shot) 进行文本摘要。
下面是一些目前流行的可用于文本摘要的模型:
- GPT-2:虽然是自回归 (auto-regressive) 语言模型,但是可以通过在输入文本的末尾添加
TL;DR
来使 GPT-2 生成摘要; - PEGASUS:与大部分语言模型通过预测被遮掩掉的词语来进行训练不同,PEGASUS 通过预测被遮掩掉的句子来进行训练。由于预训练目标与摘要任务接近,因此 PEGASUS 在摘要任务上的表现很好;
- T5:将各种 NLP 任务都转换到 text-to-text 框架来完成的通用 Transformer 架构,要进行摘要任务只需在输入文本前添加
summarize:
前缀; - mT5:T5 的多语言版本,在多语言通用爬虫语料库 mC4 上预训练,覆盖 101 种语言;
- BART:包含一个 Encoder 和一个 Decoder stack 的 Transformer 架构,训练目标是重构损坏的输入,同时还结合了 BERT 和 GPT-2 的预训练方案;
- mBART-50:BART 的多语言版本,在 50 种语言上进行了预训练。
T5 模型通过模板前缀 (prompt prefix) 将各种 NLP 任务都转换到 text-to-text 框架进行预训练,例如摘要任务的前缀就是 summarize:
,模型以前缀作为条件生成符合模板的文本,这使得一个模型就可以完成多种 NLP 任务
一、模型准备:
mT5-multilingual-XLSum是一个文本摘要模型,支持包括中文在内的30多个语言。模型托管在
csebuetnlp/mT5_multilingual_XLSum - Gitee AI
二、代码示例:
import torch
from transformers import AutoTokenizer
from transformers import AutoModelForSeq2SeqLM
device = 'cuda' if torch.cuda.is_available() else 'cpu'
print(f'Using {device} device')
model_checkpoint = "csebuetnlp/mT5_multilingual_XLSum"
tokenizer = AutoTokenizer.from_pretrained(model_checkpoint)
model = AutoModelForSeq2SeqLM.from_pretrained(model_checkpoint)
model = model.to(device)
article_text = """
受众在哪里,媒体就应该在哪里,媒体的体制、内容、技术就应该向哪里转变。
媒体融合关键是以人为本,即满足大众的信息需求,为受众提供更优质的服务。
这就要求媒体在融合发展的过程中,既注重技术创新,又注重用户体验。
"""
input_ids = tokenizer(
article_text,
return_tensors="pt",
truncation=True,
max_length=512
)
generated_tokens = model.generate(
input_ids["input_ids"],
attention_mask=input_ids["attention_mask"],
max_length=32,
no_repeat_ngram_size=2,
num_beams=4
)
summary = tokenizer.decode(
generated_tokens[0],
skip_special_tokens=True,
clean_up_tokenization_spaces=False
)
print(summary)
GitHub 加速计划 / tra / transformers
65
5
下载
huggingface/transformers: 是一个基于 Python 的自然语言处理库,它使用了 PostgreSQL 数据库存储数据。适合用于自然语言处理任务的开发和实现,特别是对于需要使用 Python 和 PostgreSQL 数据库的场景。特点是自然语言处理库、Python、PostgreSQL 数据库。
最近提交(Master分支:5 个月前 )
f4f33a20
* Remove pyav pin to allow python 3.11 to be used
* Run make fixup
---------
Co-authored-by: Louis Groux <louis.cal.groux@gmail.com> 11 小时前
90b46e98
* remove traces of the old deprecated benchmarks
* also remove old tf benchmark example, which uses deleted code
* run doc builder 14 小时前
更多推荐
已为社区贡献3条内容
所有评论(0)