写点什么

实用机器学习笔记二十九:NLP 中的微调

作者:打工人!
  • 2022 年 3 月 19 日
  • 本文字数:1051 字

    阅读完需:约 3 分钟

实用机器学习笔记二十九:NLP 中的微调

前言:

本文是个人在 B 站自学李沐老师的实用机器学习课程【斯坦福 2021 秋季中文同步】的学习笔记,感觉沐神讲解的非常棒 yyds。

NLP 模型的现状:

  • 没有大量标注的 NLP 数据集


  • 大量高质量的无标注的文档

  • 维基百科,电子书,网页等


  • 通常使用自监督预训练来训练 NLP 模型

  • 产生“伪标号”并使用自监督学习任务来进行预训练

  • NLP 中常见生成“伪标号”的任务

  • 语言模型(LM):根据前面的词来预测下一个词。比如:I like your (hat)

  • 带掩码的语言模型(MLM):在一个句子中,随机扣掉一些词,然后去预测这些词,就像完形填空。比如:I like (your)hat

常见的预训练模型:


  • 词嵌入:对于每一个词 w 学习两个词嵌入​和。所谓词嵌入就是一个向量。

  • 在一个句子中或者一个文档中,盖住一个词然后根据这个词的前后的词​来预测这个词,其中表示窗口的大小,根据实际情况定,也就是要用前后多少个词来预测。

从上面的公式可知:对于要被预测的词用词向量 u 表示,前后上下文的词用词向量 v 表示。所有的 v 加起来然后和 u 做内积,并使其最大。这样的话,学习到的 u 就包含了和其他词上下文的的语义关 系,内积越大,关系就越相近。

  • 学习到词向量后,在做预测任务时,就在词典中找到一个使得上式最大的词,这个词就是要预测的词。

  • 在词嵌入中,还有一些其他方式,比如用中心词去预测周围的词,本文讲解的是用周围的词预测中心词。


  • 基于 transformer 的预训练模型:

  • BERT:实际上是一个 transformer 的编码器,适合做带掩码的语言模型,既可以从左到右,也可以从右到左

  • GPT:一个 transformer 的解码器,是一个从左到右的过程。可以预测下一个词

  • T5:基于编码器-解码器架构的 transformer。

使用 BERT 做微调:


在训练好预训练模型之后,既就可以在自己的任务上做微调了。一般是把预训练模型的最后一层拿掉,根据自己的任务构建最后一层,然后进行微调。


  • 随机初始化最后一层,使用小的学习率进行训练

  • 下游任务调参


句子分类任务


命名实体识别


问答任务

预训练模型库


HuggingFace:一个收集 tensorflow 和 pytorch 版本的预训练 transformer 模型库

应用:

BERT:

bert 在 11 个自然语言任务中取得了最好的成绩:

  • 判断句子是否语法正确

  • 判断电影评论是否是正面评论

  • 判断两个句子是否在语义上等价

  • 假设和结论都否匹配

T5:

  • 输入文章,输出摘要

  • 知识问答

总结:


  • 在 NLP 中,预训练模型通常是通过自监督学习来训练的

  • 作用就是做语言模型

  • BERT 是一个非常大的 transformer 编码器

  • 做下游任务时,通常通过微调,单独构造最后一层

发布于: 刚刚阅读数: 2
用户头像

打工人!

关注

未来自动驾驶领域扫地僧 2019.11.10 加入

2021年InfoQ年度最佳内容获得者。 InfoQ签约作者 自动化和控制专业入坑人士,目前在研究深度强化学习(DRL)技术。学了Java,本来要入坑互联网,现在要入坑车联网了。喜欢了解科技前沿技术,喜欢手机摄影。

评论

发布
暂无评论
实用机器学习笔记二十九:NLP 中的微调_机器学习_打工人!_InfoQ写作平台