新的模型架构

写在前文

今天主要学习基于检索的模型,以及拓展学习了一下cv方面的Transformer-vit,混合专家模型由于我的能力不足,只能放在后面再进行回顾。

10.2 基于检索的模型

基于检索的模型,它主要是可以帮助我们突破稠密Transformer的缩放上限。

10.2.1 编码器-解码器

首先,在编码器-解码器的框架下序列到序列的任务是:

i n p u t   x − > o u t p u t   y input \ x->output\ y input x>output y
示例(开放回答):

 输入x:What is the capital of Canada?
 输出y:Ottawa

编码器-解码器模型的原理:
在编码器-解码器模型中,编码器负责将输入序列转换为一个低维表示,而解码器则将这个低维表示转换为输出序列。它们通常使用循环神经网络(如 LSTM 或 GRU)或者自注意力机制(如 Transformer)作为基础组件。它通过将长序列的信息转化为固定长度的表示,并通过解码器逐步生成输出,实现了对序列数据的建模和生成。

10.2.2检索方法

假设我们有一个存储库 ,它是一组序列(通常是文档或段落)的集合。

基于检索的模型直观的生成过程:
基于输入 x ,检索相关序列 z 。给定检索序列 z 和输入,生成输出 y 。 基于输入x ,检索相关序列z 。 给定检索序列 z和输入,生成输出y。 基于输入x,检索相关序列z。给定检索序列z和输入,生成输出y
最近邻是常用的一种的检索方法,示例:

 1.S’是训练集。
 2.检索 (x',y') ,使得 x' 和 x 最相似。
 3.生成 y=y' 。

其实还有层次式索引(Hierarchical Indexing):
层次式索引将数据组织成多个层次结构,其中高层次的索引具有粗糙的聚类,低层次的索引细化了聚类。它可以提高检索效率,使相似的数据更加集中,减少不必要的计算开销。它的主要特点是可以通过低维度的形式来处理高维度的数据。

10.2.3 Retrieval-augmented generation (RAG) (Lewis et al., 2020)

rag-architecture

形式上,RAG模型定义如下:

( y ∣ x ) = ∑ z ∈ S p ( z ∣ x ) ⏟ retriever p ( y ∣ z , x ) ⏟ generator . (y \mid x) = \sum_{z \in S} \underbrace{p(z \mid x)}\text{retriever} \underbrace{p(y \mid z, x)}\text{generator}. (yx)=zS p(zx)retriever p(yz,x)generator.

在实践中, 由前k个代替(类似于为混合专家选择前1个或2个专家)。

10.2.3.1 检索器:
Dense Passage Retrieval (DPR)** (Karpukhin et al., 2020)

p ( z ∣ x ) = exp ⁡ ( BERTd ( z ) ⋅ BERTq ( x ) ) ∑ z ′ ∈ S exp ⁡ ( BERTd ( z ′ ) ⋅ BERTq ( x ) ) . p(z \mid x) = \frac{\exp(\text{BERT}\text{d}(z) \cdot \text{BERT}\text{q}(x))}{\sum_{z' \in S} \exp(\text{BERT}\text{d}(z') \cdot \text{BERT}\text{q}(x))}. p(zx)=zSexp(BERTd(z)BERTq(x))exp(BERTd(z)BERTq(x)).

这里以用维基百科文章的标题来检索段落为例
使用QA数据集(如NaturalQuestions、TriviQA等)的query、正例、负例
来训练模型:
负例:随机或者使用BM25检索出的不包含答案的段落
推理:使用FAISS(Facebook AI相似性搜索)

10.2.3.2 生成器:

使用BART-large(400M参数),其中输入为检索出的段落 和输入
回想一下,BART是基于网络、新闻、书籍和故事数据,使用去噪目标函数(例如,掩码)训练得到的

10.2.3.3 训练:

用BART、DPR(用BERT初始化)初始化
训练 和 BERT q \text{BERT}_\text{q} BERTq

10.2.4 RETRO (Borgeaud et al., 2021)

基于32个token的块进行检索
存储库:2 trillion tokens
70亿参数(比GPT-3少25倍)
使用冻结的BERT进行检索(不更新)
在MassiveText上训练(与训练Gopher的数据集相同)

10.2.4.1 实验结果

在语言建模方面表现出色
NaturalQuestions准确率:45.5%(SOTA为54.7%)
Alt

vit模型:

论文地址:An Image is Worth 16x16 Words:Transformers for Image Recognition at Scale

之前的算法大都是保持CNN整体结构不变,在CNN中增加attention模块或者使用attention模块替换CNN中的某些部分。ViT算法中,作者提出没有必要总是依赖于CNN,仅仅使用Transformer结构也能够在图像分类任务中表现很好。

受到NLP领域中Transformer成功应用的启发,ViT算法中尝试将标准的Transformer结构直接应用于图像,并对整个图像分类流程进行最少的修改。具体来讲,ViT算法中,会将整幅图像拆分成小图像块,然后把这些小图像块的线性嵌入序列作为Transformer的输入送入网络,然后使用监督学习的方式进行图像分类的训练。ViT算法的整体结构如 图1 所示。
Alt

该算法在中等规模(例如ImageNet)以及大规模(例如ImageNet-21K、JFT-300M)数据集上进行了实验验证,发现:

Tranformer相较于CNN结构,缺少一定的平移不变性和局部感知性,因此在数据量不充分时,很难达到同等的效果。具体表现为使用中等规模的ImageNet训练的Tranformer会比ResNet在精度上低几个百分点。
当有大量的训练样本时,结果则会发生改变。使用大规模数据集进行预训练后,再使用迁移学习的方式应用到其他数据集上,可以达到或超越当前的SOTA水平。
图2 为大家展示了使用大规模数据集预训练后的 ViT 算法,迁移到其他小规模数据集进行训练,与使用 CNN 结构的SOTA算法精度对比。
Alt

图2:ViT模型精度对比

图中前3列为不同尺度的ViT模型,使用不同的大规模数据集进行预训练,并迁移到各个子任务上的结果。第4列为BiT算法基于JFT-300M数据集预训练后,迁移到各个子任务的结果。第5列为2020年提出的半监督算法 Noisy Student 在 ImageNet 和 ImageNet ReaL 数据集上的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值