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

介绍

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.mzph.cn/news/667901.shtml

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

相关文章

Docker 可视化工具

1、Portainer 概念介绍 Portainer是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境。 Portainer分为开源社区版(CE版)和商用版(BE版/EE版)。 Porta…

嵌入式学习第十六天!(Linux文件查看、查找命令、标准IO)

Linux软件编程 1. Linux: 操作系统的内核: 1. 管理CPU 2. 管理内存 3. 管理硬件设备 4. 管理文件系统 5. 任务调度 2. Shell: 1. 保护Linux内核(用户和Linux内核不直接操作,通过操作Shell,Shell和内核交互…

idea常用设置

1、内存优化 根据自己电脑本身的内存,对idea安装包里bin目录下的idea64.exe.vmoptions文件进行修改 -server -Xms256m -Xmx2048m -XX:MaxPermSize1024m -XX:ReservedCodeCacheSize256m -ea -Dsun.io.useCanonCachesfalse -Djava.Net.preferIPv4Stacktrue -Djsse.e…

CSS:水平垂直居中

公共的 CSS 样式&#xff1a; .parent {width: 300px;height: 300px;background-color:#d0e4fe; }.child {width: 100px;height: 100px;background-color:orange; }HTML: <div class"parent"><div class"child"></div> </div>最…

docker-compose部署laravel项目实战(主机nginx连接项目容器)(详细配置过程)

我用的是主机上的nginx,没有用docker安装nginx&#xff0c; 所以需要先在主机上安装nginx # 更新系统yum sudo yum update# 安装安装包sudo yum install epel-release sudo yum install wget# 安装Nginx sudo yum install nginx #启动 sudo systemctl start nginx #开机自启动…

Centos7配置登录失败处理导致root被锁定处理办法

1、应用场景 root用户被系统锁定&#xff0c;无法登录系统。 2、问题现象 root锁定无法登录系统 3、原因 设置登录失败处理并对root用户生效&#xff0c;一直尝试错误的root密码或暴力破解root密码&#xff0c;导致无法自动解锁Linux的root账户 4、解决方案 1.将虚拟机开…

机器学习中的有监督学习和无监督学习

有监督学习 简单来说&#xff0c;就是人教会计算机学会做一件事。 给算法一个数据集&#xff0c;其中数据集中包含了正确答案&#xff0c;根据这个数据集&#xff0c;可以对额外的数据希望得到一个正确判断&#xff08;详见下面的例子&#xff09; 回归问题 例如现在有一个…

[SWPUCTF 2021 新生赛]easyupload1.0

发现是上传文件第一想到是文件木马 <?php eval ($_POST[123]);?>木马上传burp修改后缀发现flag里面这个是假的 我们猜想是在phpinfo我们上传<?php eval(phpinfo(););?>木马上传burp修改后缀里面 CtrlF 发现flag

Linux文件编译

一、GCC编译 我们都知道想要实现一个程序首先需要写好代码让其能运行起来&#xff0c;那么写出来的.c文件是如何被编译出来的呢&#xff1f; 1.直接编译 首先将程序直接编译为可执行文件可以通过Linux中的GCC编译器。 GCC&#xff08;是一套广泛使用的编译器工具集&#xff…

读论文:DiffBIR: Towards Blind Image Restoration with Generative Diffusion Prior

DiffBIR 发表于2023年的ICCV&#xff0c;是一种基于生成扩散先验的盲图像恢复模型。它通过两个阶段的处理来去除图像的退化&#xff0c;并细化图像的细节。DiffBIR 的优势在于提供高质量的图像恢复结果&#xff0c;并且具有灵活的参数设置&#xff0c;可以在保真度和质量之间进…

【论文笔记】Lift-Attend-Splat: Bird’s-eye-view camera-lidar fusion using transformers

原文链接&#xff1a;https://arxiv.org/abs/2312.14919 1. 引言 多模态融合时&#xff0c;由于不同模态有不同的过拟合和泛化能力&#xff0c;联合训练不同模态可能会导致弱模态的不充分利用&#xff0c;甚至会导致比单一模态方法性能更低。 目前的相机-激光雷达融合方法多基…

【JMeter】使用技巧

在这此对新版本jmeter的学习温习的过程&#xff0c;发现了一些以前不知道的功能&#xff0c;所以&#xff0c;整理出来与大分享。本文内容如下。 如何使用英文界面的jmeter如何使用镜像服务器Jmeter分布式测试启动Debug 日志记录搜索功能线程之间传递变量 如何使用英文界面的…

YOLO部署实战(5):NVIDIA Jetson Tx2部署YOLO

1 一些概念 Jetson Tx2 NVIDIA Jetson 是NVIDIA为新一代自主机器设计的的嵌入式系统&#xff0c;是一个AI平台&#xff0c;它的优势就是可以覆盖不同领域、不同行业。目前Jetson产品线已经有四个产品系列&#xff0c;包括Jetson Nano、Jetson TX2、Xavier NX和AGX Xavier。四…

MySQL温故篇(一)SQL语句基础

一、SQL语句基础 1、SQL语言分类 DDL&#xff1a;数据定义语言 DCL&#xff1a;数据控制语言 DML&#xff1a;数据操作语言 DQL&#xff1a;数据的查询语言 2、数据类型 3、字符类型 char(11) &#xff1a; 定长 的字符串类型,在存储字符串时&#xff0c;最大字符长度11个&a…

【HarmonyOS应用开发】HTTP数据请求(十四)

文章末尾含相关内容源代码 一、概述 日常生活中我们使用应用程序看新闻、发送消息等&#xff0c;都需要连接到互联网&#xff0c;从服务端获取数据。例如&#xff0c;新闻应用可以从新闻服务器中获取最新的热点新闻&#xff0c;从而给用户打造更加丰富、更加实用的体验。 那么…

计算机网络——03网络核心

网络核心 网络核心 网络核心&#xff1a;路由器的网络状态基本问题&#xff1a;数据怎样通过网络进行传输 电路交换&#xff1a;为每个呼叫预留一条专有电路分组交换 将要传送的数据分成一个个单位&#xff1a;分组将分组从一个路由器传到相邻路由器&#xff08;hop&#xff…

101 C++内存高级话题 内存池概念,代码实现和详细分析

零 为什么要用内存池&#xff1f; 从前面的知识我们知道&#xff0c;当new 或者 malloc 的时候&#xff0c;假设您想要malloc 10个字节&#xff0c; char * pchar new char[10]; char *pchar1 malloc(10); 实际上编译器为了 记录和管理这些数据&#xff0c;做了不少事情&…

01-Datahub是什么?

Datahub是LinkedIn开源的基于现代数据栈的元数据管理平台&#xff0c;原来叫做WhereHows 。经过一段时间的发展datahub于2020年2月在Github开源。 官网地址为&#xff1a;A Metadata Platform for the Modern Data Stack | DataHub 源码地址为&#xff1a;GitHub - datahub-p…

幻兽帕鲁联机服务器 - 小白部署教程

简介&#xff1a; 本文将基于阿里云&#xff0c;介绍如何最低以24元的成本拥有一台幻兽帕鲁私人服务器 1. 基础部署幻兽帕鲁服务器 1.1 访问帕鲁专题活动页 首先登录阿里云官网&#xff1a;阿里云特惠专区-幻兽帕鲁专属云服务器 用钉钉或者支付宝app扫码注册新用户&#xff…

PyTorch 2.2 中文官方教程(六)

音频 音频 I/O pytorch.org/tutorials/beginner/audio_io_tutorial.html 此教程已移至pytorch.org/audio/stable/tutorials/audio_io_tutorial.html 3 秒后将重定向。 音频重采样 原文&#xff1a;pytorch.org/tutorials/beginner/audio_resampling_tutorial.html 译者&…