深度学习系列60: 大模型文本理解和生成概述

参考网络课程:https://www.bilibili.com/video/BV1UG411p7zv/?p=98\&spm_id_from=pageDriver\&vd_source=3eeaf9c562508b013fa950114d4b0990

1. 概述

包含理解和分类两大类问题,对应的就是BERT和GPT两大类模型;而交叉领域则对应T5

2. 信息检索(IR)

2.1 传统方法:BM25

传统IR方法BM25基于tf-idf,介绍如下

根据单词去匹配有两类问题:有时候同一个词有很多意思;有时候同一个意思使用完全不同的词表达的;这样就会产生precision和recall两方面的问题。

2.2 大模型方法

大模型IR的逻辑如下:将查询q和文档库D都输入神经网络,得到q的向量和D中所有d的向量,然后查询和q相似度最高的d。

大模型IR方法有两种:cross-encoder和dual-encoder。

一般会分两步:先使用右边的de进行粗筛,然后使用左边的ce进行精排。

3. 知识问答

3.1 理解类QA

举个例子,我们英语考试的阅读理解:

传统模型如下:

一个具体的实现方法如下:

有了大模型之后,整体的架构变得极为简单:

下面是一个基于BERT的例子,把问题和reference输入bert,然后把cls的embedding拿出来,接上一个分类层即可。

还有一种更简单的prompt learning的方式:

3.2 开放类QA

包括两类:

1) 生成式问答

2)检索式问答

第一步的检索工作,可以使用大模型来训练:


3.3 微调代码

下面是使用openDelta进行微调知识问答的例子:




4. 文本生成

4.1 语言建模LM



大模型中的seq2seq代表是BART和T5,使用下面的方法,学习到了很强的填空能力

GPT是自回归的模型,结构上是把transformer的decoder单独拿出来。GPT学习到的是预测下一个词的能力

而BERT则是非回归的模型,结构上可以理解为transformer的encoder。没有时序关系,因此可以做上下文理解任务。

4.2 解码过程

LM的结果是词表的概率分布,我们需要解码成人类可读的语言

从最简单的greedy decoding开始:

这种myopic的方法,效果只能说是一般。

第二种是beam search的方法:


第三种是不追求概率最大,而是以一定概率去随机解码

temperature是softmax之前处以的一个数,这个数字越大的话,采样就越平均,也就是随机性增加了(多样性增加了,但是可能不相关)。

4.3 可控文本生成

有3类方法

4.3.1 prompt方法

可以在输入文本前面加prompt

也可以在模型前加prefix(也就是prefix-tuning的做法)

4.3.2 修改概率分布

使用正样本和负样本生成器来知道原模型:

4.3.3 直接修改模型结构

如下图,有两个encoder,其中一个用来编码guidance,并且会先解码,其结果再和source文本编码的结果一起进行解码

4.4 测评

BLUE指的是生成的文本的n-gram有多少与token的text是相似的,其中BP是对短句的惩罚,然后N一般取4,也就是计算1-gram到4-gram的相似度平均值。

PPL指的是生成目标概率的负相关系数。

ROUTE是一个基于recall-oriented来进行计算的方法


相关推荐
江_小_白1 小时前
自动驾驶之激光雷达
人工智能·机器学习·自动驾驶
yusaisai大鱼2 小时前
TensorFlow如何调用GPU?
人工智能·tensorflow
珠海新立电子科技有限公司5 小时前
FPC柔性线路板与智能生活的融合
人工智能·生活·制造
IT古董5 小时前
【机器学习】机器学习中用到的高等数学知识-8. 图论 (Graph Theory)
人工智能·机器学习·图论
曼城周杰伦5 小时前
自然语言处理:第六十三章 阿里Qwen2 & 2.5系列
人工智能·阿里云·语言模型·自然语言处理·chatgpt·nlp·gpt-3
余炜yw6 小时前
【LSTM实战】跨越千年,赋诗成文:用LSTM重现唐诗的韵律与情感
人工智能·rnn·深度学习
莫叫石榴姐6 小时前
数据科学与SQL:组距分组分析 | 区间分布问题
大数据·人工智能·sql·深度学习·算法·机器学习·数据挖掘
96776 小时前
对抗样本存在的原因
深度学习
如若1236 小时前
利用 `OpenCV` 和 `Matplotlib` 库进行图像读取、颜色空间转换、掩膜创建、颜色替换
人工智能·opencv·matplotlib
YRr YRr7 小时前
深度学习:神经网络中的损失函数的使用
人工智能·深度学习·神经网络