23 注意力机制—BERT

BERT 预训练

NLP 里的迁移学习

  • 在计算机视觉中比较流行,将 ImageNet 或者更大的数据集上预训练好的模型应用到其他任务中,比如小数据的预测、图片分类或者是目标检测

  • 使用预训练好的模型(例如 word2vec 或语言模型)来抽取词、句子的特征

  • 做迁移学习的时候,一般不更新预训练好的模型

  • 在更换任务之后,还是需要构建新的网络来抓取新任务需要的信息

    • 使用预训练好的模型来抽取特征的时候,一般得到的是一些比较底层的特征,很多时候只是当成一个 embedding 层来使用,还是需要设计一个比较复杂的模型
    • word2vec 忽略了时序信息
    • 语言模型只看一个方向,而且训练的模型不是很大(RNN 处理不了很长的序列,因为它只能看到很短的一部分)

BERT

  • BERT 是芝麻街中一个人物的名字,芝麻街是美国一个针对小朋友启蒙的节目
  • BERT 结合了 ELMo 对上下文进行双向编码以及 GPT 任务无关这两方面的优点,对上下文进行双向编码,并且对于大多数的自然语言处理任务只需要最少的架构改变
    • 通过将整个序列作为输入,ELMo 是为输入序列中的每一个单词分配一个表示的函数(ELMo 将来自预训练的双向长短期记忆网络的所有中间层表示组合为输出表示,ELMo 的表示将作为附加特征添加到下游任务的现有监督模型中)
    • 在加入 ELMo 表示之后,冻结了预训练的双向 LSTM 模型中的所有权
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
BERT(Bidirectional Encoder Representations from Transformers)是一种基于Transformer模型的预训练语言模型。它的核心是注意力机制,通过自注意力机制来编码和理解文本表示。 BERT注意力机制是通过计算输入序列中每个位置与其他位置之间的相关性来实现的。具体来说,BERT使用了多头自注意力机制,将输入序列分为多个子序列,并为每个子序列分配一个注意力头。每个注意力头都会计算每个位置与其他位置之间的相关性,并将这些相关性作为权重来加权计算每个位置的表示。 通过多头自注意力机制BERT能够捕捉到输入序列中不同位置之间的依赖关系和语义信息。这使得BERT能够更好地理解文本的上下文和语义,并生成更准确的文本表示。 下面是一个示例代码,示了如何使用BERT注意力机制来编码文本表示: ```python import torch from transformers import BertModel, BertTokenizer # 加载预训练的BERT模型和分词器 model_name = 'bert-base-uncased' tokenizer = BertTokenizer.from_pretrained(model_name) model = BertModel.from_pretrained(model_name) # 输入文本 text = "Hello, how are you?" # 分词和编码 tokens = tokenizer.encode(text, add_special_tokens=True) input_ids = torch.tensor([tokens]) # 获取注意力掩码 attention_mask = torch.ones(input_ids.shape) # 使用BERT模型编码文本表示 outputs = model(input_ids, attention_mask=attention_mask) # 获取编码后的文本表示 encoded_text = outputs.last_hidden_state # 打印编码后的文本表示 print(encoded_text) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unknown To Known

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值