BART: Bidirectional and Auto-Regressive Transformers

BART是结合BERT和GPT特性的双向序列到序列模型,用于自然语言生成、翻译和理解。它通过学习修复破坏文本来训练,包含双向encoder和自回归decoder。相比BERT,BART的decoder有额外的交叉注意力层,并且在预训练中采用多种文本噪声方式。在多项任务上,BART展现出优秀性能,特别是在生成任务上达到新的最佳状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 简介

BART: Bidirectional and Auto-Regressive Transformers.

本文根据2019年《BART: Denoising Sequence-to-Sequence Pre-training for Natural
Language Generation, Translation, and Comprehension》翻译总结。

BERT是双向encoder,GPT是left-to-right decoder。BART可以说是既有encoder,又有decoder,即BERT和GPT结合体。如下图:
在这里插入图片描述

BART输入的损坏文本可以使用任意噪声函数,然后模型来学习回复原始文本。所以BART是一个去噪autoencoder。
BART是一个sequence-to-sequence model,包括双向encoder(接受损坏的文本)和left-to-right 自回归(autoregressive)decoder。

BART和BERT的差异是:(1)decoder的每一层会额外的对encoder的最后隐藏层进行cross-attention;(2)BERT在word预测前使用了feed-forward network,而BART没有使用。总体来说,BART比BERT多10%左右的参数。

BART在Discriminative Tasks上,达到了RoBERTa类似的表现;在text generation tasks.取得了new state-of-the-art结果。

2 预训练BART

各种不同的输入情况:
Text Infilling:文本片段的一部分是被一个单独的[mask]替换,片段的长度从0到3等。
Sentence Permutation:根据句号分割句子,重新排列组合。
Document Rotation:随机找到一个token作为开始位置。
在这里插入图片描述

3 Fine-tuning BART

下面是分类和翻译的模型示例。翻译任务增加了一个随机初始化的encoder。

在这里插入图片描述

4 实验结果

可以看到test infilling的效果不错。其中Language Model(类似GPT),Permuted Language Model(基于XLNet)

在这里插入图片描述

4.1 Discriminative Tasks

BART可以达到RoBERTa的效果。
在这里插入图片描述

4.2 Generation Tasks
BART表现很好。
在这里插入图片描述

### 关于 `BART-base-Chinese` 模型 #### 模型介绍 `BART-base-Chinese` 是一种基于 BART (Bidirectional and Auto-Regressive Transformers) 架构的预训练语言模型,专为中文自然语言处理任务设计。与 BERT 不同的是,BART 结合了双向编码器自回归解码器,在多种 NLP 任务中表现出更强大的性能,尤其是在文本生成类的任务上。 #### 使用方法 为了使用 `BART-base-Chinese` 进行开发工作,通常需要先安装 Hugging Face 的 transformers 库: ```bash pip install transformers ``` 加载并应用该模型的一个简单例子如下所示: ```python from transformers import BartForConditionalGeneration, BertTokenizer tokenizer = BertTokenizer.from_pretrained('fnlp/bart-base-chinese') model = BartForConditionalGeneration.from_pretrained('fnlp/bart-base-chinese') text = "你好世界" inputs = tokenizer(text, return_tensors='pt') outputs = model.generate(**inputs) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` 此代码片段展示了如何初始化 tokenzier 模型实例,并执行基本的文本转换操作[^4]。 #### 下载方式 对于希望离线使用的开发者来说,可以从 Hugging Face 官方网站获取 `BART-base-Chinese` 模型文件。具体链接地址为 https://huggingface.co/fnlp/bart-base-chinese/tree/main 。下载完成后,可以根据官方文档指导将其部署至目标环境当中[^5]。 #### 预训练过程 `BART-base-Chinese` 经过大量未标注语料库上的无监督学习阶段来获得通用的语言理解能力。这种预训练机制使得模型能够在较少领域特定数据的情况下快速适应各种下游任务需求[^6]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值