刘知远团队大模型技术与交叉应用L6-基于大模型文本理解和生成介绍

news2024/9/28 17:39:40

介绍

NLP的下游运用可以分为:NLU(理解)和NLG(生成)
信息检索:NLU
文本生成:NLG
机器问答:NLU+NLG
在这里插入图片描述

大模型在信息检索

在这里插入图片描述
在这里插入图片描述

大模型在机器问答

在这里插入图片描述

大模型在文本生成

在这里插入图片描述

信息检索-Information Retrieval (IR)

背景

谷歌搜索引擎目前同时集成了文档排序和问答系统。

在这里插入图片描述

定义和评测

如何定义IR任务

IR系统分为两个阶段:
Retrieval阶段:对整个文档库排序后,抽回一部分相关文档的子集。主要考虑召回率。
Re-Rankink阶段:精排序

在这里插入图片描述

如何评测

IR中常用的评价指标为MRR、MAP、NDCG

平均倒数排名-MRR

只会考虑排名最靠前的相关文档的排名
在这里插入图片描述

平均准确率-MAP

会考虑所有相关文档。
在这里插入图片描述

归一化的折损累计增益-NDCG

这个指标是商业的搜索引擎或是推荐系统中最常用的评价指标。
前两个指标抽回的文档只有相关和不相关两个等级。NDCG有更细粒度的相关等级划分。
在这里插入图片描述

传统方法

BM25

BM25是一种典型的基于词汇匹配的IR方法。
其中k和b是可调节的超参数。
tf是词频:query中的每个词在文档中出现的频率。
idf是逆文档的频率:评估查询中的一个词汇在所有文档中常见或稀缺的程度。例如一个查询词在所有文档中都常见,则idf分数会很低。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

存在的问题-词汇失配

在这里插入图片描述

存在的问题-语义失配

在这里插入图片描述

神经网络方法-大模型

下面介绍两种架构:Cross-Encoder,Dual-Encoder

Neural IR

在Re-ranking阶段主要使用cross-encoder架构:query和doc进行词汇级别的拼接,然后喂给大模型。经过大模型之后生成q-d的表示,最后得到相关性分数。
好处是:精细,效果好。
缺点是:计算代价高。

在Retrieval阶段主要使用Dual-encoder架构:使用双塔架构,对query和doc分别进行编码,经过大模型,形成两个独立向量,再去计算向量的相似性。
好处是:计算开销较小。
在这里插入图片描述

Cross-Encoder

在这里插入图片描述
在这里插入图片描述

Dual-Encoder

在这里插入图片描述
Dual-Encoder的好处是,因为是分开编码的。所以可以对整个文档库提前编码好,将其向量存起来。有新的query进来,只需要编码query,然后用最近邻找到相关的文档。

在这里插入图片描述
在这里插入图片描述

前沿热点

Fine-tuning中的负例增强

in-batch negative:同一batch的正例可以作为其他query的负例
random negative:随机从文档库中采样,作为负例
BM25 negative:先用BM25针对每个query抽回一些top k文档,再把相关的删除,剩余就是不相关的。
在这里插入图片描述
下面介绍一篇ICLR2021的工作:训练过程中,使用模型本身去挖掘更难的负样本。
具体地,在模型训练过程中,异步维护一个inferencer的程序。每隔k步将最新的模型拿去做inference,把排名靠前的难负样本抽回来。再加到新的一轮训练中,不断迭代。

在这里插入图片描述
在这里插入图片描述
RocketQA引入了建模更精细的Cross-Encoder帮助Dual-Encoder筛选难负例,再加到Dual-encoder的训练中。
在这里插入图片描述

预训练阶段

为encoder配置弱的decoder,迫使中间的cls token具有更强的表达能力。

在这里插入图片描述

Few-Shot IR

有些网页天然缺乏用户的点击,用户的监督。
有一些涉及到隐私的个人检索,企业检索,他们的数据无法公开获得。
在医学和法律的检索领域,人工标注比较昂贵。
在这里插入图片描述
所以一部分研究是考虑如何用弱监督的数据去取代监督数据。生成弱监督数据的方式可以包含,titile和文档组成的q-d对,锚文本和文档组成的q-d对,文档和相应大语言生成q-d对。

在这里插入图片描述
弱监督数据的筛选:
但这些弱监督数据没有经过人工标注,可能存在噪声。于是可以经过筛选,具体的,通过训练和反馈的方式构建强化学习过程。
在这里插入图片描述
另一种方法是:meta-learning数据筛选
在这里插入图片描述

Zero-shot IR

训练好一个大模型之后,直接迁移到其他领域。

在这里插入图片描述

其他课题

  • 对话检索
  • 如何检索长文档
    在这里插入图片描述

机器问答

介绍

主要的机器问答类型:机器阅读理解、开放域问答、基于知识库问答、对话式QA

在这里插入图片描述

机器阅读理解

任务定义

在这里插入图片描述

  • 完形填空
    在这里插入图片描述
  • 多选
    在这里插入图片描述
  • 抽取式阅读理解(原文找答案)
    在这里插入图片描述

经典方法和pipeline

1.文档和问题分别进行编码
2.汇成一个向量
3.文章和问题进行交互
4.融合后的向量通过MLP来进行预测

在这里插入图片描述
实例:BiDAF
在这里插入图片描述

大模型方法

只需要大模型就可以将前三层直接替代

在这里插入图片描述
基于bert的问答系统
将问题和doc输入到bert中,再拿cls embedding出来,然后进行分类任务
在这里插入图片描述
在SQuAD这个非常流行的抽取式QA数据集上,只用bert就取得了很好的成绩。

在这里插入图片描述
除了简化了pipeline,大模型用于QA的另一个好处是可以统一不同任务的形式,统一为text to text的形式。这保证了迁移性。
在这里插入图片描述

开放式QA

有语料库,但是没有具体的文档。开放式QA有两种类型:生成式方法、检索式的方法

生成式方法

在这里插入图片描述
在这里插入图片描述

检索式方法

在这里插入图片描述

大模型之前

检索
在这里插入图片描述
阅读理解
在这里插入图片描述

大模型方法

如何用检索来辅助大模型的预训练过程。让大模型在下游的机器问答环节中表现更好。
REALM在预训练过程中也加入检索任务。相当于把预训练也当成开放式QA的任务,在预训练时,同时训练大模型和知识的检索器。

在这里插入图片描述
让大模型根据检索到的语料库来回答答案。
在这里插入图片描述

WebGPT

在这里插入图片描述
在这里插入图片描述

文本生成

介绍

data-to-text: 可以把一些非语言性的表示的信息,通过模型,以人类可以理解的语言表示出来。
text-to-text

在这里插入图片描述

文本生成任务

在这里插入图片描述

Data-to-Text

在这里插入图片描述

对话生成

在这里插入图片描述

机器翻译

在这里插入图片描述

诗歌生成

在这里插入图片描述

风格转义

在这里插入图片描述

故事生成

在这里插入图片描述

总结生成

在这里插入图片描述

神经网络文本生成

语言建模-Language Modeling

在这里插入图片描述

有条件的语言建模

在这里插入图片描述
例子:seq2seq

在这里插入图片描述
在这里插入图片描述

比较知名的模型:T5

在这里插入图片描述
T5是在一个被清洗过的爬取的数据集上训练的。输入时,会将其中一部分mask,
在这里插入图片描述

自回归的生成

在这里插入图片描述
经典的模型:GPT
在这里插入图片描述
GPT-2

在这里插入图片描述

非自回归的生成

在这里插入图片描述
非自回归的生成,可以一下子同时生成文本。
在这里插入图片描述

解码策略

模型得到的是概率。如何将概率解码得到文本。

贪心编码-Greedy Decoding

选择概率最大的token。
但是可读性可能比较差。
在这里插入图片描述

Beam Search Decoding

寻找一个子序列。但这样只是获得了局部的最优解,并不一定是全局的。
在这里插入图片描述
过程演示:
在这里插入图片描述
参数k很重要。
增大k的话,会生成更通用,但是和input text更无关的句子。
在这里插入图片描述
在这里插入图片描述

Sampling-based Decoding
  • Pure sampling:随机从词表选token,对于概率大的词以较大概率去选。模型的多样性会大大增加。

为了防止一些概率很小的词出现,又引入top-n和top-p来限制模型生成的范围。

  • Top-n sampling:不是在整个词表上采样,而是在n个最有可能概率的词上采样。
  • Top-p sampling:首先是概率最大的token,而且这些token的概率加起来大于等于阈值p

在这里插入图片描述

  • Sampling with temperature
    送入softmax之前会除以一个temperature。不同的temperature对应的是不同的生成策略。
    t高,则生成的文本更多样。
    t低,则生成的文本更相关。

在这里插入图片描述

受控文本生成

如何保持文本控制性和文本质量是一种重要课题。

Prompt methods
  • 文本前面加prompt
    在这里插入图片描述
  • 模型前面加prefix
    在这里插入图片描述
修改概率分布

除了基础模型,还会训练两个模型:生成非歧视文本的天使LM,生成有歧视文本的恶魔LM。
生成的时候希望生成语言的概率贴近天使模型,而去远离恶魔模型。
在这里插入图片描述

修改模型结构

在这里插入图片描述

文本生成测评

通用度量
  • BLEU
    生成的文本有多少与金标准的文本是类似的。BP是对短句的惩罚。我们希望尽量生成长句。

  • PPL
    在测试集上进行计算,会去验证模型有多大概率生成某个sample。PPL越低越好。

在这里插入图片描述

翻译和总结的通用度量

在这里插入图片描述

其他度量

在这里插入图片描述

文本生成的挑战

  • 在训练和模型策略上
    总是生成重复的词
    在seq2seq中,teacher forcing会引入一些exposure bias。

  • 逻辑一致性
    缺少逻辑一致性

  • 控制性
    很难保证有很好的控制性和很好的语言质量

  • 评估
    合理的度量和数据集
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1429220.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界

前言 数字时代,数字化服务已经发展到各行各业,我们的生活中也随处可见。 数字化服务的便捷了我们的衣食住行的方方面面,除了我们日常化的出行、饮食、购物,其实住方面也已有了很深的发展。 水电燃气这三项和我们生活息息相关的…

YOLO-World: Real-Time Open-Vocabulary Object Detection

文章目录 1. Introduction2. Experiments2.1 Implementation Details2.2 Pre-training2.3 Ablation Experiments2.3.1 预训练数据2.3.2 对RepVL-PAN的消融研究2.3.3 文本编码器 2.4 Fine-tuning YOLO-World2.5 Open-Vocabulary Instance Segmentation2.6 Visualizations Refere…

R语言分析任务:

有需要实验报告的可CSDN 主页个人私信 《大数据统计分析软件(R语言)》 实 验 报 告 指导教师: 专 业: 班 级: 姓 名: 学 …

Multisim14.0仿真(四十三)LM311应用

一、LM311简介: lm311是一款高灵活性的电压比较器,能工作于5V-30V单个电源或正负15V分离电源。 二、LM311主要特性: ★ 快速响应时间:165 ns。 ★ 选通能力。 ★ 最大输入偏置电流:300nA。 ★ 最大输入偏置电流&#…

8868体育助力意甲尤文图斯俱乐部 帮助球队签订新合同

意甲的尤文图斯俱乐部是8868合作体育球队之一,根据意大利媒体的消息,尤文图斯已经决定和费德里科-基耶萨续约,这名球员已经开始思考他的将来了。 费德里科-基耶萨今年26岁,他和尤文图斯的合约到2025年6月30号就结束了。他知道很多…

大数据分析|设计大数据分析的三个阶段

文献来源:Saggi M K, Jain S. A survey towards an integration of big data analytics to big insights for value-creation[J]. Information Processing & Management, 2018, 54(5): 758-790. 下载链接:链接:https://pan.baidu.com/s/1…

flask基于django大数据的证券股票分析系统python可视化大屏

证券分析系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的Python进行编写,使用了Django框架。该系统从两个对象:由管理员和用户来对系统进行设计构建。主要功能包括:个人信息修改,对股票信息、股票买入、…

[Linux 进程(六)] 写时拷贝 - 进程终止

文章目录 1、写时拷贝2、进程终止2.1 进程退出场景2.1.1 退出码2.1.2 错误码错误码 vs 退出码2.1.3 代码异常终止引入 2.2 进程常见退出方法2.2.1 exit函数2.2.2 _exit函数 本片我们主要来讲进程控制,讲之前我们先把写时拷贝理清,然后再开始讲进程控制。…

从源代码看Chrome 版本号

一直以来都是用Chrome 浏览器,但是看到Chrome 点分4 组数据的表达方式,总是感觉怪怪的,遂深入源代码了解她的版本号具体表示的内容 chrome 浏览器中显示的版本号 源代码中的版本号标识 版本号文件位于 chrome/VERSION , 看到源代…

Docker上安装配置tomcat

目录 1. 拉取镜像 2. 创建运行镜像 3. 查看是否创建成功 ps:如果出现404错误 tomcat目录结构 1. 拉取镜像 这里使用 tomcat:8.5.40 版本作为安装 docker pull tomcat:8.5.40 2. 创建运行镜像 docker run -d --name tomcat -p 8080:8080 \--privilegedtrue …

2024最新版Sublime Text 4安装使用指南

2024最新版Sublime Text 4安装使用指南 Installation and Usage Guide to the Latest Sublime Text 4 in 2024 By JacksonML 0. Sublime Text是什么? Sublime Text 由自定义组件构建,支持Python, Java, C/C等多种编程语言,并为用户提供无与…

记一次 Android CPU高使用率排查

文章目录 背景排查高占用的进程adb shelltoptop -b -H -n 1 | grep 29337 (打印各线程 cpu使用详情)kill -3 29337 (生成trace文件)adb pull /data/anr /Users/gerry.liang/Desktop定位问题 补充说明: 背景 测试同学反馈我们的App CPU使用率 90% 居高不下,经过一番艰难的排查后…

flutter如何实现省市区选择器

前言 当我们需要用户填写地址时,稳妥的做法是让用户通过“滚轮”来滑动选择省份,市,区,此文采用flutter的第三方库来实现这一功能,比调用高德地图api简单一些。 流程 选择库 这里我选择了一个最近更新且支持中国的…

本体匹配方法概述

目录 前言1 基于术语匹配的方法1.1 字符串匹配1.2 语言方法 2 基于虚拟文档的方法3 基于结构的匹配方法3.1 结构信息利用3.2 Anchor-prompt方法 4 大型本体匹配4.1 本体划分4.2 匹配分块4.3 实体间映射 结语 前言 本文将深入探讨本体匹配的不同方法,从基于术语匹配…

Python||五城P.M.2.5数据分析与可视化_使用华夫图分析各个城市的情况(上)

目录 五城P.M.2.5数据分析与可视化——北京市、上海市、广州市、沈阳市、成都市,使用华夫图分析各个城市的情况 1.北京市的空气质量 2.广州市的空气质量 【上海市和成都市空气质量情况详见下期】 五城P.M.2.5数据分析与可视化——北京市、上海市、广州市、沈阳市、成…

108.乐理基础-五线谱-五线谱的拍号、音符与写法

内容参考于:三分钟音乐社 上一个内容:十五度记号-CSDN博客 上一个内容联系的答案: 调号、拍号、速度的性质与内涵跟简谱里一样,所以这里只会写它们在五线谱里造型上有什么改变,该怎样去识别。 拍号:五线…

深度学习入门笔记(七)卷积神经网络CNN

我们先来总结一下人类识别物体的方法: 定位。这一步对于人眼来说是一个很自然的过程,因为当你去识别图标的时候,你就已经把你的目光放在了图标上。虽然这个行为不是很难,但是很重要。看线条。有没有文字,形状是方的圆的,还是长的短的等等。看细节。纹理、颜色、方向等。卷…

聚观早报 | 360 AI搜索App上线;岚图汽车与京东达成合作

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 1月30日消息 360 AI搜索App上线 岚图汽车与京东达成合作 三星电子在硅谷新设实验室 小米平板7系列参数曝光 Spa…

【文本到上下文 #8】NLP中的变形金刚:解码游戏规则改变者

一、说明 欢迎来到我们对不断发展的自然语言处理 (NLP) 领域的探索的第 8 章。在本期中,我们将重点介绍一项重塑 NLP 格局的突破性创新:Transformers。在我们之前对 seq2seq 模型、编码器-解码器框架和注意力机制的讨论之后&#…

OpenCV+ moviepy + tkinter 视频车道线智能识别项目源码

项目完整源代码,使用 OpenCV 的Hough 直线检测算法,提取出道路车道线并绘制出来。通过tkinter 提供GUI界面展示效果。 1、导入相关模块 import matplotlib.pyplot as plt import numpy as np import cv2 import os import matplotlib.image as mpimg …