机器学习:Bert and its family

这篇具有很好参考价值的文章主要介绍了机器学习:Bert and its family。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

机器学习:Bert and its family,机器学习,bert,预训练模型

Bert

机器学习:Bert and its family,机器学习,bert,预训练模型
先用无监督的语料去训练通用模型,然后再针对小任务进行专项训练学习。

机器学习:Bert and its family,机器学习,bert,预训练模型

  • ELMo
  • Bert
  • ERNIE
  • Grover
  • Bert&PALS

Outline

机器学习:Bert and its family,机器学习,bert,预训练模型

Pre-train Model

机器学习:Bert and its family,机器学习,bert,预训练模型

首先介绍预训练模型,预训练模型的作用是将一些token表示成一个vector

机器学习:Bert and its family,机器学习,bert,预训练模型
比如:

  • Word2vec
  • Glove

但是对于英文,有太多的英文单词,这个时候应该对单个字符进行编码:

  • FastText
    机器学习:Bert and its family,机器学习,bert,预训练模型

对于中文,可以对部首偏旁,或者把中文字当做图片送人网络中得到输出:
机器学习:Bert and its family,机器学习,bert,预训练模型
上述方法的问题不会考虑每个句子意思中相同字会有不同的意思,产生相同的token:
机器学习:Bert and its family,机器学习,bert,预训练模型
contextualized word embedding
机器学习:Bert and its family,机器学习,bert,预训练模型
类似于sequence2sequence模型的encoder一样。
机器学习:Bert and its family,机器学习,bert,预训练模型
机器学习:Bert and its family,机器学习,bert,预训练模型
同样的token,给出不一样的embedding,上述句子都有苹果两字。

  • Bigger Model机器学习:Bert and its family,机器学习,bert,预训练模型
  • Smaller Model
    机器学习:Bert and its family,机器学习,bert,预训练模型
    重点关注ALBERT,将模型变小的技术:
    机器学习:Bert and its family,机器学习,bert,预训练模型
    网络架构设计:
    机器学习:Bert and its family,机器学习,bert,预训练模型
    让模型能读很长的内容,不仅是一篇文章,有可能是一本书。
  • Transformer-XL
  • Reformer
  • Longformer

self-attention的计算复杂度是 O ( n 2 ) O(n^2) O(n2)

How to fine-tune

如何进行预训练
机器学习:Bert and its family,机器学习,bert,预训练模型
机器学习:Bert and its family,机器学习,bert,预训练模型

  • 输入:
    一个句子还是两个句子,[sep]进行分割。
    机器学习:Bert and its family,机器学习,bert,预训练模型
  • 输出部分:
    输出一个class,加入一个[cls],产生跟整个句子有关的embedding
    机器学习:Bert and its family,机器学习,bert,预训练模型
    如果没有cls,就是把所有的embedding合起来送入模型,得到一个输出。
    机器学习:Bert and its family,机器学习,bert,预训练模型
    第二种就是给每个token一个class,相当于每个embedding一个class
    机器学习:Bert and its family,机器学习,bert,预训练模型
    Extraction-based QA
    机器学习:Bert and its family,机器学习,bert,预训练模型
    机器学习:Bert and its family,机器学习,bert,预训练模型
    机器学习:Bert and its family,机器学习,bert,预训练模型
    General Sequence
    如何用在生成文本呢?
    机器学习:Bert and its family,机器学习,bert,预训练模型
    上述结构encoder得不到好的使用

机器学习:Bert and its family,机器学习,bert,预训练模型
将预训练模型当做encoder使用,每次产生一个word后,送入模型继续生成,直到产生eos结束符。

机器学习:Bert and its family,机器学习,bert,预训练模型
微调有两种方法:

  • 第一种:预训练模型不动,对其产生的embedding 针对具体任务进行训练,只对上层模型微调;
  • 第二种:预训练模型和具体任务模型联合到一起训练,消耗会大一些;
    第二种方法会比对第一种方法获得的效果要更好一点,但是训练整个模型会遇到的一些问题:
    机器学习:Bert and its family,机器学习,bert,预训练模型
  • 训练完了之后预训练模型也发生了改变,相当于每个任务都会有一个不同的预训练模型,每个模型都比较大,这样非常的浪费。

针对上述问题,解决方法:

  • Adapter:只训练少量的参数结构APT

机器学习:Bert and its family,机器学习,bert,预训练模型
机器学习:Bert and its family,机器学习,bert,预训练模型
fine-tune的时候只会调APT结构的参数,但是是插入到transformer结构中,加深了网络:
机器学习:Bert and its family,机器学习,bert,预训练模型

  • Weighted Features
    综合每一层的embedding,送到具体的任务中学习,权重参数可以学出来。
    机器学习:Bert and its family,机器学习,bert,预训练模型
    机器学习:Bert and its family,机器学习,bert,预训练模型
    机器学习:Bert and its family,机器学习,bert,预训练模型
    机器学习:Bert and its family,机器学习,bert,预训练模型
    模型的loss,泛化能力。start-point到end-point,两点间距离越宽,凹的越浅说明泛化能力越一般;两点间距离越近,凹得越深说明泛化能力越好。

How to pre-train

如何进行预训练:

机器学习:Bert and its family,机器学习,bert,预训练模型

翻译任务
  • Context Vector(Cove)
    机器学习:Bert and its family,机器学习,bert,预训练模型
    把输入的句子A送入encoder,然后decoder得到句子B,需要大量的pair对data
Self-supervised Learning

机器学习:Bert and its family,机器学习,bert,预训练模型
self-supervised的input和output是自己产生出来的。

Predict Next Token

给定输入,预测下一个token

机器学习:Bert and its family,机器学习,bert,预训练模型
有了w1预测w2,用w1, w2预测w3, 然后用w1,w2,w3预测w4, 但是不能用右边的数据用来预测左边的数据:
机器学习:Bert and its family,机器学习,bert,预训练模型
机器学习:Bert and its family,机器学习,bert,预训练模型
基础架构网络使用的是LSTM:

  • LM
  • ELMo
  • ULMFiT

后续一些算法将LSTM换成Self-attention
机器学习:Bert and its family,机器学习,bert,预训练模型

  • GPT
  • Megatron
  • Turing NLG

注意:控制Attention的范围

机器学习:Bert and its family,机器学习,bert,预训练模型
可以用来生成文章: talktotransformer.com

机器学习:Bert and its family,机器学习,bert,预训练模型
机器学习:Bert and its family,机器学习,bert,预训练模型
机器学习:Bert and its family,机器学习,bert,预训练模型
机器学习:Bert and its family,机器学习,bert,预训练模型

机器学习:Bert and its family,机器学习,bert,预训练模型
如果只考虑左边的出现关系,为什么不考虑右边文本呢?

Predict Next Token-Bidrectional

左右两边产生的context,二者联合起来作为最终表示:
机器学习:Bert and its family,机器学习,bert,预训练模型

但是问题是左边只能看到左边的,无法看到右边的结束,右边只能看到右边的,无法看到左边的开始。

Masking input

机器学习:Bert and its family,机器学习,bert,预训练模型

随机的盖住某个词,是看到了完整的句子才来预测这个词是什么。
这种思想往前推,跟以前的cbow非常像:
机器学习:Bert and its family,机器学习,bert,预训练模型
Bert与cbow的区别就是左右两边的长度可以无限,而不是有个window窗口长度。

随机mask是否够好呢?有几种mask方法:

  • wwm
  • ERNIE
  • SpanBert
  • SBO
    机器学习:Bert and its family,机器学习,bert,预训练模型
    盖住一整个句子或者盖住好几个词。或者先把Entity找出来,然后把这些词盖住:
    机器学习:Bert and its family,机器学习,bert,预训练模型
    机器学习:Bert and its family,机器学习,bert,预训练模型
    盖住的长度按照上述图的出现概率。
    机器学习:Bert and its family,机器学习,bert,预训练模型
    盖住的左右两边的embedding来预测,以及输入的index来恢复中间的哪个词。
    SBO的设计期待左右两边的token embedding能够包含左右两边的embeeding信息。

XLNet

结构不是使用的Transformer,而是使用Transformer-XL

机器学习:Bert and its family,机器学习,bert,预训练模型

随机把顺序打乱,用各式各样不同的信息训练一个token。

Bert的训练语料比较规整:
机器学习:Bert and its family,机器学习,bert,预训练模型
Bert不擅长做Generative任务,因为bert训练的时候给的是整个句子,而generative只是给一部分,然后由左得右预测下一个token
机器学习:Bert and its family,机器学习,bert,预训练模型

MASS/BART

机器学习:Bert and its family,机器学习,bert,预训练模型
要对w1,w2, w3,w4进行一些破坏,不然model学不到任何东西,破坏的方法:
机器学习:Bert and its family,机器学习,bert,预训练模型
机器学习:Bert and its family,机器学习,bert,预训练模型

  • mask(随机mask)
  • delete(直接删掉)
  • permutation(打乱)
  • rotation(改变起始位置)
  • Text Infilling (插入一个别的误导,少掉一个mask)

结果是:
机器学习:Bert and its family,机器学习,bert,预训练模型

UniLM

机器学习:Bert and its family,机器学习,bert,预训练模型
机器学习:Bert and its family,机器学习,bert,预训练模型
UniLM进行多项训练

Replace or Not

  • ELECTRA,避开了需要训练和生成的东西,判断哪个位置是否被置换,训练非常简单,另外每个输出都被用到。
    *机器学习:Bert and its family,机器学习,bert,预训练模型
    置换的词不好弄,如果是随便置换肯定很容易知道。所以有了下面的结果,用一个小的bert预测的结果作为替换的结果,小的bert效果不要太好,不然预测的结果跟真实的一样,得不到替换的效果,因为替换的结果是一模一样的。
    机器学习:Bert and its family,机器学习,bert,预训练模型
    机器学习:Bert and its family,机器学习,bert,预训练模型
    只需要四分之一的计算量,就能达到XLNet的效果。

Sentence Level

机器学习:Bert and its family,机器学习,bert,预训练模型
需要整个句子的embedding。
机器学习:Bert and its family,机器学习,bert,预训练模型

  • 使用skip thought,如果两个句子的预测结果比较像,那么两个输入句子也比较像。
  • quick thought,如果两个句子的输出是相连的,让相似的句子距离越近越好。
    上述方法避开做生成的任务。

原始的Bert其实还有一项任务NSP,预测两个句子是否是相接的还是不相接的。两个句子中间用sep符号分割。
机器学习:Bert and its family,机器学习,bert,预训练模型

  • nsp:效果表现不好
  • Roberta:效果一般
  • sop: 正向是相接,反向是不相接,被用在ALBERT
  • structBert:Alice,
    机器学习:Bert and its family,机器学习,bert,预训练模型
T5 Comparison

机器学习:Bert and its family,机器学习,bert,预训练模型
5个T就叫T5
4个C就叫C4

ERNIE

希望在train的时候加入knowledge

机器学习:Bert and its family,机器学习,bert,预训练模型
Audio Bert
机器学习:Bert and its family,机器学习,bert,预训练模型


Multi-lingual BERT

多语言BERT
机器学习:Bert and its family,机器学习,bert,预训练模型

机器学习:Bert and its family,机器学习,bert,预训练模型
使用多种语言训练一个Bert模型
机器学习:Bert and its family,机器学习,bert,预训练模型
104种语言进行训练,可以做到Zero-shot的阅读理解。
机器学习:Bert and its family,机器学习,bert,预训练模型
在英文语料上进行训练,但在中文的QA任务上,效果还不错

机器学习:Bert and its family,机器学习,bert,预训练模型
机器学习:Bert and its family,机器学习,bert,预训练模型
中文翻译成英文,然后进行英文训练,发现结果并没有直接用中文训练的模型。
机器学习:Bert and its family,机器学习,bert,预训练模型

  • NER
  • Pire:词性标注

NER任务和词性标注任务都符合上述规律,用一种语言进行训练,然后在另外一种语音上进行任务处理。

是不是可以用来处理甲骨文?
机器学习:Bert and its family,机器学习,bert,预训练模型

Cross-lingual Alignment

中文的兔子embedding与英文的兔子embedding是比较接近的,模型可能去掉了语音的特性,而只考虑意思。

机器学习:Bert and its family,机器学习,bert,预训练模型
机器学习:Bert and its family,机器学习,bert,预训练模型
year排在第一名,month排在第三名,对应的分数是rank的倒数

机器学习:Bert and its family,机器学习,bert,预训练模型
机器学习:Bert and its family,机器学习,bert,预训练模型
资料量要非常大才能有比较好的结果,从BERT200k和BERT1000k中结果可以看到。
对传统的算法GloVe和Word2Vec也进行同样的实验,发现Bert效果还是要优于之前的算法。
机器学习:Bert and its family,机器学习,bert,预训练模型

How alinment happens

机器学习:Bert and its family,机器学习,bert,预训练模型
机器学习:Bert and its family,机器学习,bert,预训练模型
用fake-english代替真的english,然后去训练,跨语言的能力不需要中介语音的存在。

机器学习:Bert and its family,机器学习,bert,预训练模型
bert是知道语言的信息的,但是不是很在意语言类型。

机器学习:Bert and its family,机器学习,bert,预训练模型
每串文字代表一种语言,语言还是有一些差距的。
机器学习:Bert and its family,机器学习,bert,预训练模型
机器学习:Bert and its family,机器学习,bert,预训练模型
机器学习:Bert and its family,机器学习,bert,预训练模型
黄色是英文编码,蓝色是中文编码,二者融合起来,通过α进行控制:
机器学习:Bert and its family,机器学习,bert,预训练模型

在英文上进行fine-tune,然后在中文上进行测试,让embedding更像中文,在测试阶段,加上蓝色向量会提升效果。文章来源地址https://www.toymoban.com/news/detail-600623.html

到了这里,关于机器学习:Bert and its family的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【自然语言处理NLP】Bert预训练模型、Bert上搭建CNN、LSTM模型的输入、输出详解

    Bert模型的输入 context 张量需要满足以下要求: 张量形状: context 应为二维张量,形状为 [batch_size, sequence_length] ,其中 batch_size 是输入样本的批量大小, sequence_length 是输入序列的长度。 数据类型: context 的数据类型应为整数类型,如 torch.LongTensor 。 值范围: context 中的值应

    2024年02月11日
    浏览(40)
  • 【预训练语言模型】 使用Transformers库进行BERT预训练

    基于 HuggingFace的Transformer库,在Colab或Kaggle进行预训练。 鉴于算力限制,选用了较小的英文数据集wikitext-2 目的 :跑通Mask语言模型的预训练流程 注意:在Kaggle上训练时,最好将datasets更新到最新版(再重启kernel),避免版本低报错 colab和kaggle已经预安装transformers库 加载数据

    2024年03月14日
    浏览(45)
  • 使用Bert预训练模型处理序列推荐任务

    最近的工作有涉及该任务,整理一下思路以及代码细节。 总体来说思路就是首先用预训练的bert模型,在训练集的序列上进行CLS任务。对序列内容(这里默认是token id的sequence)以0.3左右的概率进行随机mask,然后将相应sequence的attention mask(原来决定padding index)和label(也就是

    2024年02月14日
    浏览(36)
  • 带你熟悉NLP预训练模型:BERT

    本文分享自华为云社区《【昇思技术公开课笔记-大模型】Bert理论知识》,作者: JeffDing。 语言模型演变经历的几个阶段 word2vec/Glove将离散的文本数据转换为固定长度的静态词向量,后根据下游任务训练不同的语言模型 ELMo预训练模型将文本数据结合上下文信息,转换为动态

    2024年01月22日
    浏览(72)
  • 自然语言处理实战项目8- BERT模型的搭建,训练BERT实现实体抽取识别的任务

    大家好,我是微学AI,今天给大家介绍一下自然语言处理实战项目8- BERT模型的搭建,训练BERT实现实体抽取识别的任务。BERT模型是一种用于自然语言处理的深度学习模型,它可以通过训练来理解单词之间的上下文关系,从而为下游任务提供高质量的语言表示。它的结构是由多

    2024年02月07日
    浏览(56)
  • 【NLP】1、BERT | 双向 transformer 预训练语言模型

    论文:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 出处:Google 在 BERT 之前的语言模型如 GPT 都是单向的模型,但 BERT 认为虽然单向(从左到右预测)预测任务符合语言模型的建模过程,但对一些语言理解任务不太友好,因为要理解一句话说的是什么意思的话

    2024年02月12日
    浏览(44)
  • [oneAPI] 基于BERT预训练模型的SWAG问答任务

    比赛:https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Intel® DevCloud for oneAPI:https://devcloud.intel.com/oneapi/get_started/aiAnalyticsToolkitSamples/ 在Intel® DevCloud for oneAPI平台上,我们搭建了实验环境,充分发挥其完全虚拟化的优势,使我们能够专注于模型开发和优化,无需过多关心底层配

    2024年02月11日
    浏览(35)
  • [oneAPI] 基于BERT预训练模型的SQuAD问答任务

    比赛:https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Intel® DevCloud for oneAPI:https://devcloud.intel.com/oneapi/get_started/aiAnalyticsToolkitSamples/ 我们在Intel® DevCloud for oneAPI平台上构建了实验环境,充分发挥其完全虚拟化的优势。更具影响力的是,我们充分发挥了Intel® Optimization for PyTor

    2024年02月11日
    浏览(40)
  • [oneAPI] 基于BERT预训练模型的命名体识别任务

    比赛:https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Intel® DevCloud for oneAPI:https://devcloud.intel.com/oneapi/get_started/aiAnalyticsToolkitSamples/ 在本次实验中,我们在Intel® DevCloud for oneAPI上搭建实验,借助完全虚拟化的环境,专注于模型开发与优化,无需关心底层配置。使用Intel® Opti

    2024年02月12日
    浏览(36)
  • NLP(六十七)BERT模型训练后动态量化(PTDQ)

      本文将会介绍BERT模型训练后动态量化(Post Training Dynamic Quantization,PTDQ)。 量化   在深度学习中,量化(Quantization)指的是使用更少的bit来存储原本以浮点数存储的tensor,以及使用更少的bit来完成原本以浮点数完成的计算。这么做的好处主要有如下几点: 更少的模型

    2024年02月09日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包