上节概述课的笔记懒得记了,所以就合并到这一节后续补上。

# 预训练语言模型

# 基本任务

预训练语言模型的目的是解决语言模型任务,在给定一部分前文的情况下,评估一段文本的生成概率,可以简化为预测下一个词,即计算

P(wnw1,w2,,wn1).P(w_n|w_1, w_2, \cdots, w_{n-1}).

2003 年,JMLR 上的 Neural Language Modeling 文章可以算是预训练模型的奠基之作。

# Two Mainstrems of PLMs

  • Feature-based approachs
  • Fine-tuning approachs

# feature-based

# word2vec

  • CBOW
  • Skip-gram

word2vec 的一个问题是无法解决多义词问题,比如 bank 同时具有银行和堤岸两个含义,但是在空间中只能有一个点。因此学出来的结果不与任何一个词义相似。

# context2vec

一种 end2end 的方法以解决累积误差的问题。

其核心思想是将词的静态表示转化为基于上下文的动态表示。

# ELMo

NAACL 2018 best paper.

ELMo 让社区发现了 GPU 的含金量。

# Semi-supervised Sequence Learning

第一篇提出预训练 - 微调想法的文章,但作者的想法是让神经网络有更好的初始化。

在此之前,长距离模型如 RNN 等都很有可能收敛到局部最小值,其原因就是初始化不好。从而才有了 Kaiming Init.

# ULMFIT

2018ACL. 正式提出 pre-training fine-tuning 范式的工作。实际提出的是三阶段范式:

  1. LM pre-training
  2. LM fine-tuning
  3. Calssifier fine-tuning

# Transformer

使用 nvidia-smi 查询时,只要 GPU 中有一个核在一直工作,则使用率就是 100% . 因此要将显存拉满才可以。

key-value memory network: 可以让同类型的知识更加聚集。

# subword embedding

# GPT

Scaling law 的出现。

GPT-2 发现,在 1.5B 量级下,即使没有 SFT, model 也会有很好的表现,表现在 QA, summarization 等任务上。

# BERT

NAACL 2019 best paper. 所以说 NAACL 的 best paper 很有含金量?

BERT 是预训练模型真正火起来的时候。直到 ChatGPT 出现之前,学术和工业界始终在进行 BERT 的改进。

BERT 使用双向上下文,而 GPT 使用单向上下文。双向信息更符合人类的习惯。

# Masked LM

80 % Mask, 10 % 替换为随机词,10 % 不变。并没有根本解决问题。这样在 pre-training 阶段会有信息泄露,从而降低模型的学习难度。

BERT 参数规模增加时效果提升不明显。

# Next Semtemce Prediction

ChatGPT 出现之后这个方法就不再用了。

模型不需要进行句子之间信息的判断。从词语级别判断词语是否属于同一 topic 就足够了。

目前训 LLM 的一些问题:

  • 数据配比
    • 训练顺序
  • 架构下的隐藏参数

A-100 训 Bert-Base 大概只需要一两天,8 卡 v-100 需要四五天左右。

数据的使用

目前的数据已经不太够用了,仍然能获得数据的只有两个方面:

  1. 合成数据
  2. 具身数据

# PLMs after BERT

ChatGPT 之前面向 BERT 的一些尝试。

# RoBERTa

一种将 BERT 训练得更好的工程方法。

# Dynamic Masking

# XLNet

# ELECTRA

把 GAN 用到 NLP 中。