首页 > 其他分享 >各类LLM模型分析比较

各类LLM模型分析比较

时间:2024-02-24 21:45:14浏览次数:28  
标签:BERT mathbf 模型 MASK 各类 LLM theta 文本

Large Language Model 模型对比

对于LLM模型框架主要如下3类[1]:1、autoregressive,2、autoencoding,3、encoder-decoder。主要对3类结构以及部分细节进行阐述。(对于框架分类其实多种,在此论文中[2]采用的是双向/单向结构)

模型 参数量 模型结构
BERT
GLM
XLNet
SpanBERT
GPTv1 Decoder-Only
GPTv2
GPTv3

TODO List:

LLM模型发展

对于自回归以及自编码采用此论文[1:1]中数学描述。
自回归在逻辑:通过前面\(t\)段文字内容去对\(t+1\)的内容进行预测,数学上表述如下:

\[\max_\theta\quad\log p_\theta(\mathbf{x})=\sum_{t=1}^T\log p_\theta(x_t\mid\mathbf{x}_{<t})=\sum_{t=1}^T\log\frac{\exp\left(h_\theta(\mathbf{x}_{1:t-1})^\top e(x_t)\right)}{\sum_{x^{\prime}}\exp\left(h_\theta(\mathbf{x}_{1:t-1})^\top e(x^{\prime})\right)} \]

自编码结构主要是首先对文本进行"挖空"([MASK]去对文本进行标记),而后去对"挖空"内容进行预测,数学表述为:

\[\max_\theta\quad\log p_\theta(\bar{\mathbf{x}}\mid\hat{\mathbf{x}})\approx\sum_{t=1}^Tm_t\log p_\theta(x_t\mid\hat{\mathbf{x}})=\sum_{t=1}^Tm_t\log\frac{\exp\left(H_\theta(\hat{\mathbf{x}})_t^\top e(x_t)\right)}{\sum_{x^{\prime}}\exp\left(H_\theta(\hat{\mathbf{x}})_t^\top e(x^{\prime})\right)} \]

公式中\(\approx\)在BERT模型中对于概率公式\(p(\overline{x}|\hat{x})\)是基于独立性假设的:所有的被[MASK]标记内容都被单独重构(all masked tokens \(\overline{x}\) are separately reconstructed)

其中:\(x_{<t}\)代表前\(t\)段文本,\(x_t\)代表预测的\(t\)位置文本,\(h_{\theta}(x_{1:t-1})\)代表神经网络模型(RNN/Transformer),\(e(x)\)代表\(x\)的编码内容,\(\overline{x}\)代表[MASK]内容

因为BERT此类模型是双向结构,那么对于文本的处理上存在天然优势(更好的去理解上下文),因此在后续的自回归的模型框架上,都在尝试加入 "双向" 结构,去让模型更加好的理解文本的内容。

1、Autoregressive

1.1 Generative Pre-Training

  • Generative Pre-Training v1**

对于大部分的深度学习任务,需要大量的标记数据(labeled data),但是如果使用大量的标记数据就会导致一个问题:构建得到的模型缺少适用性(可以理解为模型的泛化性能可能不佳)。那么就尝试使用非标记的数据(unlabelled data)但是这样一来又会有一个新的问题:时间消费大(time-consuming and expensive)。所以目前学者提出:使用预训练的词嵌入来提高任务性能。使用 未标注的文本信息(word-level information from unlabelled text)可能会:1、不清楚那种优化目标(optimization objective)在学习对迁移有用的文本表示时最有效;2、如何将这些学习到的表征有效的迁移到目标任务(target task)中。
作者提出:1、无监督的预训练(unsupervised pre-training);2、监督的微调(supervised fine-tuning)

1、Unsupervised pre-training

给定一些列的的 无标签token:\(U=\{u_1,...,u_n\}\),构建自回归的模型:\(L_1(U)= \sum_{i}logP(u_i|u_{i-k},...,u_{i-1}; \theta)\),其中\(\theta\)为模型的参数。作者在模型中使用Transformer作为decoder,在最后的模型上作者构建得到为:

\[h_0= UW_e+W_p \\ h_l = transformer\_block(h_{l-1})\forall i \in [1,n]\\ P(u)=softmax(h_nW_e^T) \]

其中\(n\)代表神经网路层的数目,\(W_e\)代表token embedding matrix,\(W_p\)代表position embedding matrix。对于无监督下的预训练:通过构建的数据集,去对模型的参数进行训练,得到模型的参数。

2、Supervised fine-tunning

作者在此部分提到:通过第一步得到的模型参数去对监督任务进行训练(采用的模型结构是没有变化的)。给定标签数据集\(C\),给定输入:\(\{x^1,...,x^m \}\)以及其标签\(y\)。将数据投入到预训练得到的模型参数里面得到:\(h_l^m\),然后添加一个线性输出层(参数为:\(W_y\))去对\(y\)进行预测。

\[P(y|x^1,...,x^m)=softmax(h_l^wW_y) \]

对于上述两部分步骤直观上理解:人首先从外界获取大量信息:网络,书本等,把这些信息了解之后,然后去写作文或者去回答问题。

模型结构:

GPTv1 framework
  • GPTv2

1.2 XLNet[3]

模型创新点

  • 1、对"排序"进行打乱(all possible permutations of the factorization order)

注:对"排序"打乱不是指将文本里面文字随机打乱,而是将Masked AttentionMASK进行打乱,如下图最右侧描述

模型框架如下:

Two-Stream Self-Attention for Target-Aware Representations

在结构上作者认为标准的语言模型在置换目标时效果不佳,比如说:对于两段文本ACAB在自回归中模型都获取到A的信息,而后去对后续的B/C进行预测,效果显然会差强人意。因此作者提出两部分表示并且对预测目标进行改进:

  • 预测目标

\[p_\theta(X_{z_t}=x\mid\mathbf{x}_{z<t})=\frac{\exp\left(e(x)^\top g_\theta(\mathbf{x}_{\mathbf{z}<t},z_t)\right)}{\sum_{x'}\exp\left(e(x')^\top g_\theta(\mathbf{x}_{\mathbf{z}<t},z_t)\right)} \]

  • 两部分表示(上图最左侧内容表示,上述内容都是\(3\rightarrow 2\rightarrow 4\rightarrow 1\),虚线代表获取不到信息)
    1、The content represenation(\(h_{\theta}\)) || 内容表示:与传统的Transformer中的隐藏单元作用相同,同时对 内容预测内容\(x_{z_t}\)进行编码
    2、The query represenation(\(g_{\theta}\)) || 查询表示:只获取\(x_{z<t}\)内容以及预测内容位置\(z_t\)的信息
  • 部分预测
    对于减少模型的优化难度,作者对自回归的预测内容改进,原始的是“逐一”,而作者提出直接“部分”也就是说先获取\(z_{<c}\)的内容而后去对\(z{>c}\)的内容进行预测。设置超参数\(K\)用来设置文本的长度

1.3 General Language Model[1:2]

国产大模型,对于GLM模型在整体思路上还是自回归的思路,不过在文本预训练上提出俩部分改进:1、Span shuffling;2、2D positional encoding。对于NLU(natural language understanding)有意思的将他们比作“完形填空”(cloze question)。模型的框架:

1、Auto-regressive blank infilling

2、Multi-Task Pretraining


2、Autoencoding

2.1 BERT[2:1]

模型创新点

1、Masked LM(MLM)

2、Next Sentence Prediction(NSP)

  • 缺点
    1、BERT neglects dependency between the masked positions and suffers from a pretrain-finetune discrepancy(忽略了屏蔽位置之间的依赖性,并遭受预训练微调差异的影响)[1:3]

这是因为在BERT模型中,在预训练阶段会添加[MASK],但是在下游任务(downsteram tasks)中并不会使用[MASK]

  • 优点

2.2 SpanBERT[4]

模型创新点
SpanBERT逻辑上还是和BERT相同,对BERTMLMNSP就行改进

  • 1、使用随机连续的Span(use a different random process to mask spans of tokens, rather than individual ones)

    保持和BERT相同的[MASK]比例(80%的内容[MASK]标记,10%的内容随机替换,10%保持不变),不过在SpanBERTMASK操作做出了改进:1、在确定比例之后,通过几何分布(geometric distribution | \(Geo(p) \ p=0.2\))来确定单词数量;2、然后随机的选择MASK要开始的位置。不过需要注意的是:在SpanBERTMASK的内容是连续的,而BERT是不连续的。

  • 2、设计SBO(which tries to predict the entire masked span using only the representations of the tokens at the span’s boundary)

    Span Boundary Objective原理:
    假设一段输入文本:\(x_1,...,x_n\),通过第一步得到连续的MASK内容:\((x_s,...,x_e)\),那么对\(x_i\)的预测通过MASK外的内容(\(s-1,\ e+1\))来以及其所在位置(\(i-s+1\))对MASK内的内容就行预测:

    \[y_i=f(x_{s-1},x_{e+1},p_{i-s+1}) \]

    对于函数\(f\)使用的是2层的前馈神经网络:

    \[h_0\ =\ [x_{s-1};x_{e+1},p_{i-s+1}] \\ h_1\ =\ LayerNorm(GeLU(W_1h_0))\\ y_i\ = \ LayerNorm(GeLU(W_2 h_1)) \]

    损失函数:交叉熵损失函数(cross-entropy loss)。对所有损失函数进行相加:

    \[\begin{aligned} \mathcal{L}(x_{i})& =\mathcal{L}_{\mathbf{MLM}}(x_i)+\mathcal{L}_{\mathbf{SBO}}(x_i) \\ &=-\log P\left(x_i\mid\mathbf{x}_i\right)-\log P\left(x_i\mid\mathbf{y}_i\right) \end{aligned} \]

  • 3、对样本随机采集连续文本作为样本,而非BERT中的NSP(samples a single contiguous segment of text for each training example)

模型框架:

The framework of the SpanBERT

3、Encoder-Decoder


4、下游任务

4.1 General Language Understanding Evaluation


5、模型细节

5.1 高斯线性激活函数(GeLU)[5]

其在思想上结合ReLU(对输入有选择归零/保持不变)以及dropout(对输入随机归零)特点,函数定义为:

\[

标签:BERT,mathbf,模型,MASK,各类,LLM,theta,文本
From: https://www.cnblogs.com/Big-Yellow/p/18031642

相关文章

  • Go语言精进之路读书笔记第33条——掌握Go并发模型和常见并发模式
    不要通过共享内存来通信,而应该通过通信来共享内存。——RobPike33.1Go并发模型CSP(CommunicatingSequentialProcess,通信顺序进程)模型。一个符合CSP模型的并发程序应该是一组通过输入/输出原语连接起来的P的集合。Go始终推荐以CSP模型风格构建并发程序。Go针对CSP模型提供......
  • R语言时变面板平滑转换回归模型TV-PSTR分析债务水平对投资的影响|附代码数据
    全文下载链接:http://tecdat.cn/?p=21506最近我们被客户要求撰写关于TV-PSTR的研究报告,包括一些图形和统计输出。在本文中,当采用两种状态时,单转换函数PSTR模型具有两个变量:我们的经验方法的基础包括评估N个国家的资本流动性。相应的模型定义如下:其中,Iit是第i个国家在时间t时观......
  • R语言基于ARMA-GARCH-VaR模型拟合和预测实证研究分析案例
    原文链接:http://tecdat.cn/?p=3186原文出处:拓端数据部落公众号 本文显示了如何基于潜在的ARMA-GARCH模型(当然也涉及更广泛意义上的QRM)来拟合和预测风险价值(VaR)。从ARMA-GARCH过程模拟(log-return)数据我们考虑使用t分布的ARMA(1,1)-GARCH(1,1)过程。模拟一个序列(用于说明目的)。......
  • 数据库基础3 关系数据库与关系模型
    数据库系统的组成1.硬件平台2.软件3.人员(1)数据库管理员(DBA)(2)系统分析员、数据库设计人员(3)应用程序员(4)最终用户1.偶然用户2.简单用户3.复杂用户 关系数据库关系模型是从表(Table)的处理方式中抽象出来的在对传统表的操作上,进行数学化严格定义的基础上,......
  • 数据库基础2 数据模型
    数据模型数据模型是什么数据模型是对现实世界数据特征的抽象数据模型应该满足的要求数据模型分类1.现实→概念→逻辑→物理转换过程2.概念模型信息世界基本概念实体(Entity)属性码(键)实体型实体集 联系 ER图:实体-联系方法(待续)数据模型的组成要素1.数......
  • python 加密 变量 (可用于深度学习模型加密)
    需求:深度学习基于pytorch,模型需要加密。查看到网上有使用cryptography加密的方法,如https://blog.csdn.net/weixin_43508499/article/details/124390983,总体思路是调用torch的save函数将模型保存为io.BytesIO,然后使用cryptography将保存为io.BytesIO的字节进行加密,解密......
  • 多模态大模型总结
    两类多模态大模型原生多模特模型和多个单模型拼接原生多模态模型意味着这些模型是从一开始的设计阶段,就是用于处理多种模态(包括文本、图像、音频、视频等)的数据。把不同的单个模型拼接起来使得模型具备多模态能力这种做法也比较好理解,比如之前社区开源的Qwen-VL[1],它就是Qwen-7B......
  • 医疗大模型:数据+知识双轮驱动实现医学推理、医患问答、病历自动生成、临床决策,为未来
    医疗大模型:数据+知识双轮驱动实现医学推理、医患问答、病历自动生成、临床决策,为未来医疗服务提供全新可能性1.指令数据集构建目前大多数开源的ChatLLM项目使用的是其他模型(如:ChatGPT)生成的指令数据,其不可避免的存在数据幻想的问题,数据幻想问题将严重影响LLM在实际场景中的应用......
  • 各类数学公式
    同余费马小定理:\(p\)为质数,则对任意整数满足:\[a^p\equiva\pmod{p}\]欧拉定理:若\(a,n\in\mathbb{N}^+,\gcd(a,n)=1\)则:\[a^{\varphi(n)}\equiv1\pmod{n}\]其中\(\varphi(n)\)为欧拉函数。扩展欧拉定理:\[a^b\equiv\begin{cases}a^b,b<\varphi(n)\\a^{b\mod{\v......
  • django模型models常用字段24个以及参数17个简要说明
    一、常用字段1、models.AutoField自增列=int(11)如果没有的话,默认会生成一个名称为id的列,如果要显式的自定义一个自增列,必须设置primary_key=True。2、models.CharField字符串字段,必须设置max_length参数3、models.BooleanField布尔类型=tinyint(1)不能为空,可......