PaddleNLP 中使用 BART 进行文本摘要:模型原理、微调与生成实践

发布时间:2026/9/25 14:43:12

PaddleNLP 中使用 BART 进行文本摘要:模型原理、微调与生成实践 人工智能大模型预训练微调LoRARLHF强化学习分布式训练【免费下载链接】PaddleNLPEasy-to-use and powerful LLM and SLM library with awesome model zoo.项目地址https://gitcode.com/gh_mirrors/pa/PaddleNLP点击查看免费下载导读本文围绕 slm/examples/text_summarization/bart/README.md 所介绍的 BART 文本摘要示例系统讲解 BART 作为 Seq2Seq 降噪自编码器的模型原理、在 PaddlePaddle 2.2 上的 PaddleNLP 实现、CNN/DailyMail 数据集上的微调流程与摘要生成方法并深入剖析 paddlenlp/transformers/bart 目录下的源码实现。读完本文你将掌握 BART 的结构特性、如何加载预训练模型、如何配置BartConfig完成微调以及如何调用BartForConditionalGeneration进行摘要生成。BART 模型简介BARTBidirectional and Auto-Regressive Transformer是一种Seq2Seq 结构的降噪自编码器denoising autoencoder。其核心训练思想是对原始文本施加多种噪声进行破坏corrupt再让模型学习重建reconstruct原文从而在编码器-解码器框架中同时习得双向语境理解与自回归生成能力。从结构上看BART 使用标准的 Transformer 架构可以看作三类预训练模型的统一泛化形式BERT 的泛化BART 的编码器是双向的bidirectional encoder能够像 BERT 一样建模左右双向上下文GPT 的泛化BART 的解码器是从左到右自回归的left-to-right decoder具备 GPT 式的生成能力其他预训练结构的泛化通过统一的双向编码 自回归解码组合BART 在文本生成类任务如摘要、翻译、对话上表现出色。这种破坏-重建的预训练目标使得 BART 天然适合下游生成类任务文本摘要正是其代表性应用场景之一。本项目概览PaddleNLP 中的 BART 摘要示例slm/examples/text_summarization/bart/README.md所描述的项目是BART 在 PaddlePaddle 2.2 上开源实现的文本摘要示例覆盖了在CNN/DailyMail数据集上进行**微调fine-tuning与摘要生成generation**的完整代码路径。CNN/DailyMail 是英文抽象式摘要领域最经典的基准数据集之一训练样本由新闻报道原文与人工撰写的摘要句对组成用于评估模型在长文档压缩与信息抽取方面的能力。项目以该数据集为微调目标直接面向输入新闻正文、输出简洁摘要这一真实任务形态。在当前仓库中与 BART 直接相关的实现位于模型与配置paddlenlp/transformers/bart/modeling.py、paddlenlp/transformers/bart/configuration.py分词器paddlenlp/transformers/bart/tokenizer.py单元测试tests/transformers/bart/test_modeling.py、tests/transformers/bart/test_tokenizer.py下面分别从预训练权重、模型配置、模型结构、分词器与生成链路几个层面展开。预训练权重与配置BartConfig内置预训练模型清单在 configuration.py 中PaddleNLP 内置了两档 BART 预训练配置bart-base与bart-large对应两套预设超参数参数bart-basebart-largevocab_size5026550265d_model7681024num_encoder_layers/num_decoder_layers6 / 612 / 12encoder_attention_heads/decoder_attention_heads12 / 1216 / 16encoder_ffn_dim/decoder_ffn_dim3072 / 30724096 / 4096dropout/attention_dropout/activation_dropout0.1 / 0.1 / 0.10.1 / 0.1 / 0.1activation_functiongelugelumax_position_embeddings10241024init_std0.020.02scale_embeddingFalseFalse特殊 token idbos/pad/eos/forced_eos/decoder_start0 / 1 / 2 / 2 / 20 / 1 / 2 / 2 / 2两类配置共享 50265 词表与相同的特殊 token 定义bos_token_id0、pad_token_id1、eos_token_id2、forced_eos_token_id2、decoder_start_token_id2。其中decoder_start_token_id2意味着解码器以/seos作为起始 tokenforced_eos_token_id保证生成达到max_length时强制以 eos 收尾。对应的预训练权重映射表BART_PRETRAINED_RESOURCE_FILES_MAP中登记了bart-base.pdparams与bart-large.pdparamsBartModel与BartForConditionalGeneration可通过from_pretrained(bart-base)的方式自动下载加载。BartConfig 关键参数语义BartConfig见 configuration.py继承自PretrainedConfigmodel_type bart。其核心参数在实例化 BART 模型时直接决定架构vocab_size词表大小决定 embedding 矩阵与 LM 输出头的维度默认 50265d_model编码器/解码器各层的隐藏维度默认 768encoder_layers/decoder_layers编码器与解码器的 Transformer 层数默认均为 6注意源码中通过attribute_map将num_encoder_layers等别名映射到encoder_layers/decoder_layers保证与社区配置的兼容encoder_attention_heads/decoder_attention_heads编码器与解码器的注意力头数默认 12encoder_ffn_dim/decoder_ffn_dim编码器与解码器前馈网络的中间维度默认 3072activation_function前馈网络使用的非线性激活函数支持gelu、relu及 PaddlePaddle 支持的激活函数默认geludropout/attention_dropout/activation_dropout全连接层、注意力概率、激活输出的 dropout 比率默认均为 0.1max_position_embeddings模型可接受的最大序列长度默认 1024预训练配置中 base 与 large 均为 1024init_std所有权重矩阵初始化时截断正态分布的标准差默认 0.02scale_embedding是否按d_model的平方根缩放 embedding默认Falseis_encoder_decoderTrue、decoder_start_token_id2、forced_eos_token_id2表明模型为编解码结构并指定解码起始与强制结束 tokenforced_bos_token_id可选配置用于部分摘要任务强制首 token 生成s源码中为兼容旧版 CNN 模型保留了force_bos_token_to_be_generated的向后兼容处理。模型结构源码解析modeling.py 中实现了完整的 BART 模型族顶层类定义包括BartPretrainedModel基类封装权重加载与初始化逻辑BartLearnedPositionalEmbedding可学习位置编码BartEncoder/BartDecoder双向编码器 / 自回归解码器BartModel完整编解码主干BartForConditionalGeneration条件生成模型文本摘要的实际入口以及BartForSequenceClassification、BartForQuestionAnswering等其他任务头BartModel编码器-解码器主干BartModel由BartEncoder与BartDecoder组成二者均基于标准 Transformer 层多头自注意力 前馈网络 LayerNorm 残差连接并共享底层的 token embeddingshared位置编码采用BartLearnedPositionalEmbedding。前向时编码器对input_ids进行双向编码得到encoder_output解码器在此基础上结合decoder_input_ids做自回归解码。BartForConditionalGeneration摘要生成的入口BartForConditionalGenerationmodeling.py在主干之上叠加语言建模头内部持有一个BartModel并创建形状为[vocab_size, d_model]的lm_head_weight参数配合final_logits_bias偏置构成 LM 输出头get_encoder()/get_decoder()暴露编码器与解码器便于与生成框架协同forward接收input_ids、attention_mask、decoder_input_ids、decoder_attention_mask、encoder_output、labels等输入labels用于计算掩码语言建模损失索引为 -100 的 token 被忽略不参与 loss当labelsNone时返回形状为[batch_size, sequence_length, vocab_size]的lm_logits可直接用于解码采样返回值为Seq2SeqLMOutputreturn_dictTrue时或对应元组use_cache开启时可返回 KV cache 加速自回归。快速解码FasterBARTprepare_fast_entry展示了 BART 的快速解码接入点通过FasterBART位于paddlenlp.ops在具备自定义 decoding 库的环境下启用加速解码支持use_fp16_decoding、decoding_lib、enable_fast_encoder等开关。同时源码明确约束了快速解码的适用边界仅支持 top-k 采样或 top-p 采样中的一种二者不能同时启用暂不支持repetition_penalty ! 1.0暂不支持min_length ! 0暂不支持非空的forced_bos_token_id。在常规 CPU/GPU 环境中直接使用标准自回归解码路径即可上述限制仅在启用快速解码时生效。BartTokenizerbyte-level BPE 分词BART 的分词器BartTokenizertokenizer.py基于byte-level Byte-Pair-EncodingBPE继承自GPTTokenizer特殊 token 为sbos/cls、/seos/sep等。其实现要点bytes_to_unicode()构建 UTF-8 字节到 Unicode 字符的可逆映射表这是 byte-level BPE 处理任意文本包括未登录字符的基础get_pairs(word)生成词内相邻符号二元组是标准 BPE merge 过程的核心步骤加载时需提供vocab_file词表映射与merges_filemerge 规则与预训练词表配套使用PRETRAINED_POSITIONAL_EMBEDDINGS_SIZES将bart-base/bart-large的位置编码长度标记为 1024与配置一致。配套的 tests/transformers/bart/test_tokenizer.py 与 tests/transformers/bart/test_modeling.py 覆盖了分词往返一致性、特殊 token 处理、模型前向与生成等关键路径可作为自定义 BART 摘要训练的回归验证参考。文本摘要实战加载、微调与生成1. 加载预训练模型与分词器使用from_pretrained即可加载内置权重import paddle from paddlenlp.transformers import BartForConditionalGeneration, BartTokenizer # 加载 bart-base 预训练权重自动下载 model BartForConditionalGeneration.from_pretrained(bart-base) tokenizer BartTokenizer.from_pretrained(bart-base)bart-base与bart-large均登记在BART_PRETRAINED_INIT_CONFIGURATION与BART_PRETRAINED_RESOURCE_FILES_MAP中可直接指定名称加载。2. 数据准备与微调微调目标为 CNN/DailyMail 数据集的新闻正文 → 摘要句对。训练时构造编解码输入def encode_fn(text, summary): # 编码器输入正文 eos src_ids tokenizer(text, max_length1024, truncationTrue)[input_ids] # 解码器输入摘要前移一位并补 eos作为 decoder_input_ids tgt_ids tokenizer(summary, max_length128, truncationTrue)[input_ids] return src_ids, tgt_ids训练时将labels传入BartForConditionalGeneration.forward模型会自动对摘要 token 计算交叉熵损失-100位置被忽略。注意解码器以decoder_start_token_id2起始因此摘要 token 序列需整体右移一位置入decoder_input_ids。3. 摘要生成微调完成后使用generate接口进行自回归摘要生成可配置的典型参数包括max_length生成摘要的最大长度生成结束时由forced_eos_token_id保证以 eos 收尾min_length最小长度约束num_beamsbeam search 的束宽1 时启用 beam searchdecode_strategygreedy_search/sampling/beam_search等top_k/top_p采样策略下的截断与核采样参数repetition_penalty重复惩罚系数抑制摘要中词语重复no_repeat_ngram_size禁止 n-gram 重复。示例inputs tokenizer( The quick brown fox jumps over the lazy dog ., return_tensorspd, max_length1024, truncationTrue, ) summary_ids model.generate( input_idsinputs[input_ids], max_length64, num_beams4, decode_strategybeam_search, repetition_penalty1.2, )[0] summary tokenizer.decode(summary_ids[0], skip_special_tokensTrue) print(summary)值得注意的是若启用快速解码路径FasterBART当前源码只支持单一 top-k 或 top-p 采样、repetition_penalty1.0且min_length0的组合复杂解码参数请使用标准generate路径。4. 性能与验收参考从源码结构可以推断bart-based_model768、6 层编码器 6 层解码器适合在单卡/CPU 环境快速验证流程bart-larged_model1024、1212 层吞吐更高但显存与算力需求明显增大。项目 README 未给出具体评测数值实际训练时建议以 CNN/DailyMail 验证集的 ROUGE 指标ROUGE-1/2/L作为摘要质量验收标准并结合 tests/transformers/bart/test_modeling.py 中的生成用例确认解码链路正确。小结BART 是双向编码 自回归解码的 Seq2Seq 降噪自编码器是 BERT 与 GPT 结构的统一泛化PaddleNLP 在paddlenlp/transformers/bart下完整提供了BartConfig、BartModel、BartForConditionalGeneration与BartTokenizer内置bart-base/bart-large预训练权重slm/examples/text_summarization/bart/README.md所示的示例项目基于 PaddlePaddle 2.2聚焦 CNN/DailyMail 数据集的微调与摘要生成实操上通过from_pretrained加载权重、以正文 → 摘要句对构造编解码输入完成微调再用generate结合 beam search、重复惩罚等参数产出摘要启用快速解码FasterBART时需注意其对解码策略的参数约束常规场景使用标准生成路径即可。赞分享人工智能大模型预训练微调LoRARLHF强化学习分布式训练【免费下载链接】PaddleNLPEasy-to-use and powerful LLM and SLM library with awesome model zoo.项目地址https://gitcode.com/gh_mirrors/pa/PaddleNLP点击查看免费下载相关推荐Transformers 摘要生成实战指南基于 T5 微调 BillSum 法律文本摘要模型Transformers 摘要生成实战指南基于 T5 微调 BillSum 法律文本摘要模型 摘要生成Summarization是 Transfor人工智能深度学习机器学习预训练微调NLP计算机视觉语音多模态BART模型文本摘要从原理到实战的终极完整指南BART模型文本摘要从原理到实战的终极完整指南 在当今信息爆炸的时代如何从海量文本中快速提取核心信息成为迫切需求。BART模型文本摘要技术应运而生它通过深教程DeepSpeed加速BART文本摘要三小时打造专业级摘要模型DeepSpeed加速BART文本摘要三小时打造专业级摘要模型 还在为训练文本摘要模型耗时过长而烦恼DeepSpeed让BART模型微调变得前所未有的简单高示例工程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/25 15:43:16

Atlas 300V 24G推理卡实战:YOLO多路视频流部署与调优

拿到一块Atlas 300V 24G的时候,我第一反应不是赶紧跑YOLO demo,而是先问自己一个问题:这卡到底是干嘛用的,和训练卡有什么区别,24G这个显存数字在推理场景里到底能带来多少真实收益。热搜词里天天有人在问“atlas 300v…

2026/9/25 15:43:16

windsurf Pro 获取详细教程:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 15:43:16

Atlas 300V 24G推理卡上部署YOLO:从环境到调优全流程解析

1. 项目概述:Atlas到底是什么,为什么大家都在聊它如果你最近在AI推理、边缘计算或端侧部署的圈子里逛,大概率会频繁撞见“Atlas”这个词。有人拿它跑YOLO目标检测,有人用它做视频流分析,还有人直接把它当“平民版GPU推…

2026/9/24 20:24:47

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/23 12:06:55

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/25 0:02:35

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:02:35

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:02:35

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑