首页 > 其他分享 >BART&BERT

BART&BERT

时间:2024-09-15 17:22:53浏览次数:10  
标签:BERT BART 模型 生成 model 文本

BART和BERT都是基于Transformer架构的预训练语言模型。

  1. 模型架构

    • BERT (Bidirectional Encoder Representations from Transformers) 主要是一个编码器(Encoder)模型,它使用了Transformer的编码器部分来处理输入的文本,并生成文本的表示。BERT特别擅长理解语言的上下文,因为它在预训练阶段使用了掩码语言模型(MLM)任务,即随机遮蔽一些单词,然后让模型预测这些被遮蔽的单词。
    • BART 是一个解码器(Decoder)模型,它使用了Transformer的解码器部分。BART在预训练阶段使用了类似于BERT的MLM任务,但它还包括了一个下一句预测(NSP)任务,这使得BART在生成文本方面更为擅长。
  2. 预训练任务

    • BERT的预训练任务主要是MLM,它随机遮蔽输入文本中的一些单词,并让模型预测这些单词。
    • BART的预训练任务除了MLM,还包括一个句子排列任务,即模型需要预测给定句子序列的正确顺序。
  3. 应用场景

    • BERT通常用于需要理解文本的任务,如文本分类、命名实体识别、问答系统等。
    • BART则更适合于文本生成任务,如摘要、翻译、文本填空等。
  4. 生成方式

    • BERT是一个自回归模型,它在生成文本时是逐词生成的,每次只预测一个词。
    • BART也是一个自回归模型,但它在生成文本时可以更灵活地处理序列到序列的任务,例如在机器翻译中将一个句子从一种语言翻译成另一种语言。
  5. 使用以下代码来加载BERT模型并进行一个简单的文本分类任务:                                            from transformers import BertTokenizer, BertForSequenceClassification
    import torch

    # 加载预训练的BERT模型和分词器
    model_name = "bert-base-uncased"  # 选择一个BERT模型
    tokenizer = BertTokenizer.from_pretrained(model_name)
    model = BertForSequenceClassification.from_pretrained(model_name)

    # 准备输入数据
    text = "This is a positive example."  # 一个正面的例子
    encoded_input = tokenizer(text, return_tensors='pt')

    # 模型预测
    model.eval()  # 将模型设置为评估模式
    with torch.no_grad():
        output = model(**encoded_input)

    # 输出预测结果
    predictions = torch.nn.functional.softmax(output.logits, dim=-1)
    print(predictions)

  6. 对于BART模型,进行文本摘要任务,可以使用以下代码:                                                  from transformers import BartTokenizer, BartForConditionalGeneration
    import torch

    # 加载预训练的BART模型和分词器
    model_name = "facebook/bart-large-cnn"  # 选择一个BART模型,这里使用CNN新闻摘要任务的预训练模型
    tokenizer = BartTokenizer.from_pretrained(model_name)
    model = BartForConditionalGeneration.from_pretrained(model_name)

    # 准备输入数据
    text = "The quick brown fox jumps over the lazy dog."  # 一个完整的句子
    encoded_input = tokenizer(text, return_tensors='pt', max_length=512, truncation=True)

    # 生成摘要
    model.eval()  # 将模型设置为评估模式
    with torch.no_grad():
        output = model.generate(**encoded_input, max_length=20)

    # 输出生成的摘要
    print(tokenizer.decode(output[0], skip_special_tokens=True))

  7. 模型目标

    • BERT的目标是提高对文本的理解能力,通过预训练的上下文表示来增强下游任务的性能。
    • BART的目标是提高文本生成的能力,通过预训练的序列到序列表示来增强生成文本的连贯性和准确性。

尽管BART和BERT在设计和应用上有所不同,但它们都利用了Transformer的强大能力来处理自然语言,并在NLP领域取得了显著的成果。

标签:BERT,BART,模型,生成,model,文本
From: https://blog.csdn.net/GDHBFTGGG/article/details/142286451

相关文章

  • Transformer两大发展方向——GPT系列及BERT(一)
    前面介绍了Transformer,随着其发展在NLP领域应用越来越多,在其基础上主要有两篇影响非常大的文章,一篇是GPT,另一篇是BERT。OpenAI提出的GPT采用Transformer解码器结构,一路更新迭代到了现在有了GPT-4,而Google提出的BERT采用Transformer的编码器结构。大体时间线如下图所示。这里对几篇......
  • 办公软件:管理和组织菜单栏图标Bartender 4 for Mac
    Bartender是一款专为macOS用户设计的强大软件,主要用于管理和组织菜单栏图标。软件下载地址主要特点:一、菜单栏图标管理菜单栏图标隐藏:用户可隐藏菜单栏图标,仅在需要时显示,减少视觉干扰,使界面更整洁专注。可自定义的菜单栏排序:提供直观拖放界面,用户能自定义图标的顺序和......
  • for Qbert sometimes we stay in lives == 0 condtion for a few frames —— baselin
    相关:baselines中环境包装器EpisodicLifeEnv的分析一直不是很理解在reinforcementleanrning算法在atari游戏的observation的交互过程中对lives和episodes的判断,为什么要有lives>0的这个要求,后来发现这个游戏的实战视频,发现这个游戏在某些情况下即使lives=0的时候,也会再允许进......
  • 使用bert_base_chinese实现文本语义相似度计算
    本文选择将模型下载到本地,进行离线分析计算,也可以使用在线下载,但本文略过1下载bert_base_chinese下载地址:https://huggingface.co/google-bert/bert-base-chinese/tree/main下载图上红框内的四个文件,并按照下图的目录结构放置bert-base-chinese文件夹里放2代码......
  • 《BERT基础教程:Transformer大模型实战》一本相见恨晚的大模型入门书(附PDF)
    前言随着chatgpt的火热,大模型成为业界新的热点。而未来每个人,不仅仅是人工智能或者计算机行业从业者,未来的工作或多或少可能都会被大模型的影响。所以了解transformer为基础的大模型(Bert,gpt)就很有必要了。本书聚焦谷歌公司开发的BERT自然语言处理模型,由浅入深地介绍了BERT的工......
  • 【NLP修炼系列之Bert】Bert多分类&多标签文本分类实战(附源码)
    引言今天我们就要用Bert做项目实战,实现文本多分类任务和我在实际公司业务中的多标签文本分类任务。通过本篇文章,可以让想实际入手Bert的NLP学习者迅速上手Bert实战项目。1项目介绍本文是Bert文本多分类和多标签文本分类实战,其中多分类项目是借鉴github中被引用次数比较......
  • 掌握 BERT:自然语言处理 (NLP) 从初级到高级的综合指南(1)
    简介BERT(来自Transformers的双向编码器表示)是Google开发的革命性自然语言处理(NLP)模型。它改变了语言理解任务的格局,使机器能够理解语言的上下文和细微差别。在本文[1]中,我们将带您踏上从BERT基础知识到高级概念的旅程,并配有解释、示例和代码片段。BERT简介什么......
  • 元气日语 Genki-1 第 6 课 Robert 的一天
    ロバートさんの一日课文I山下先生:ロバートさん、次のページを読んでください。ロバート:......山下先生:ロバートさん、起きてください。クラスで寝てはいけませんよ。ロバート:先生、教科書を忘れました。山下先生:教科書を持ってきてくださいね。毎日使いますから......
  • 【HuggingFace Transformers】BertSelfAttention源码解析
    BertSelfAttention源码解析1.BertSelfAttention类介绍1.1关键组件1.2主要方法2.BertSelfAttention类源码解析(核心简版)3.BertSelfAttention类源码解析1.BertSelfAttention类介绍BertSelfAttention类是BERT模型的核心组件之一,主要负责实现多头自注意力......
  • 【大模型理论篇】大模型时代下Bert去哪啦?
        这个标题是最近看到的一篇文章《WhathappenedtoBERT&T5?OnTransformerEncoders,PrefixLMandDenoisingObjectives》有感而发,也感觉很有意思。在几年前,在项目中还经常会用到Bert。本文主要回顾一下Bert的原理、Bert的继续训练和使用,以及对看到的文章中关......