首页 > 其他分享 >LLM主要架构

LLM主要架构

时间:2024-10-19 18:21:40浏览次数:6  
标签:BERT Transformer 架构 训练 模型 任务 主要 LLM GPT

LLM本身基于Transformer架构

自2017年,Attention is all you need诞生起,原始的Transformer模型不同领域的模型提供了灵感和启发

基于原始的Transformer框架,衍生了一系列模型,一些模型仅仅使用encode或decoder,有些模型同时使用encoder + decoder。
image
Transformer 模型图:
image

LLM 分类一般分为三种:自编码模型(Encoder)、**自回归模型(decoder) **和 序列到序列模型(Encoder-decoder)

自编码模型(AE, AutoEncoder model)

代表模型BERT

AE模型,代表作BERT,其特点为:Encoder-Only

基本原理:在输入中随机MASK掉一部分单词,更精上下文预测这个词

AE模型通常用于内容理解任务,比如自然语言理解(NLU)中的分类任务:情感分析、提取式问答

BERT 是2018年10月由Google AI研究院提出的一种预训练模型

  • BERT全称为:Bidirectional Encoder Representation from Transformers
  • BERT在机器阅读理解顶级水平测试SQuAD1.1 中表现出惊人的成绩:全部两个衡量标准上全面超越人类,并且在11种不同NLP测试中创出SOTA表现,包括将GLUE基准推高至80.4%(绝对改进7.6%),MultiNLI准确度达到86.7%(绝对改进5.6%),称为NLP发展史上里程碑式的模型成就

BERT架构

总体架构:如下图所示,最左边的就是BERT的架构图,一个典型的双向编码模型。

image

从上面的架构图中可以看到,宏观上BERT分为三个主要模块:

  • 最底层黄色标记的Embedding模块
  • 中间层蓝色标记的Transformer模块
  • 最上层绿色标记的预微调模块

Embedding模块

BERT中的该模块是由三种Embedding共同组成而成,如下图:

image

  • Token Embeddings: 词嵌入向量,第一个单词是CLS标志,可以用于之后的分类任务
  • Segment Embedding:句子分段嵌入张量,是为了服务后续的两个句子为输入的预训练任务
  • Position Embedding: 位置编码张量
  • 整个Embedding模块的输出张量就是这三个张量的直接加和结果

双向Transformer

image

BERT中使用了经典Transformer结构中的Encoder部分,完全舍弃了Decoder部分
两大训练任务也集中体现在训练Transformer模块中

预微调模块

经过中间层Transformer的处理后,BERT的最后一层根据任务的不同需求而作不同的调整即可
image

比如对于sequence-level的分类任务,BERT直接取第一个[CLS] token的final hidden state,再加一个层全连接层后进行softmax来预测最终的标签

BERT的预预测任务

  • Masked LM(带mask的语言模型训练),简称MLM

    在原始训练文本中,随机的抽取15%的token作为参与MASK任务的对象

    • 80%的概率下,用[MASK]标记替换该token
    • 在10%的概率下,用一个随机的单词替换token
    • 在10%的概率下,保持该token不变
  • Next Sentence Prediction(下一句话预测任务),简称NSP

    输入句子对(A, B),模型来预测句子B是不是句子A的真实的下一句话。

    • 所有参与任务训练的句子都被选中作为句子A
    • 其中50%的B是原始文本中真实跟随A的下一句话(标记为IsNext,代表正样本)
    • 其中50%的B是原始文本中随机抽取的一句话(标记为NotNext,代表负样本)

数据集与BERT模型的特点

数据集如下:

​ BooksCorpus (800M words) + English Wikipedia (2,500M words)

模型的一些关键参数为:
image

AE模型总结

  • 优点

​ BERT使用双向Transformer,在语言理解相关的任务重表现很好

  • 缺点
    • 输入噪声:预训练-微调存在差异
    • 更适合NLU(自然语言理解)任务,不适合用NLG(自然语言生成)任务

PS

  • 什么是自编码?
    答:在输入中随机MASK掉一部分单词,根据上下文预测找个词

  • BERT模型的核心架构?
    答:Transformer的Encoder模块

  • BERT的预训练任务?
    答:MLM和NSP

自回归模型(AR, AutoRegresive model)

代表模型GPT

AR模型,代表作GPT,其特点为:Decoder-Only
基本原理:从左往右学习的模型,只能利用上文或者下文的信息。
AR模型通常用于生成式任务,在长文本的生成能力很强,比如自然语言生成(NLG)领域的任务:摘要、翻译或抽象问答

2018年6月,OpenAI公司发表论文"Improving Language Understanding by Generative Pre-training"(用生成式预训练提高模型的语言理解力),推出了具有1.17亿个参数的GPT(Generative Pre-training,生成式预训练)模型

GPT模型架构

三个语言模型的对比架构图,中间为GPT
image

从上图可看到GPT采用的是 单向Transformer模型,例如给定一个句子\([u_1, u_2, ..., u_n]\) ,GPT在预测单词\(u_i\)的时候只会利用\([u_1, u_2, ...,u_{(i-1)}]\) 的信息,而BERT会同时利用上下文的信息\([u_1, u_2, ...,u_{(i-1)}, u_{i+1},...,u_n]\)

GPT采用了Transformer的Decoder模块,但GPT的Decoder Block和经典Transformer Decoder Block 有所不同
GPT中取消了第二个encoder-decoder attention子层,只保留Masked Multi-Head Attention层和Feed Forward层
PS:
注意:对比于经典的Transformer架构,解码器模块采用了6个Decoder Block;GPT的架构中采用了12个Decoder Block。

image image

GPT训练过程

GPT的训练包括两个阶段过程:1.无监督的预训练语言模型2.有监督的下游任务fine-tunning
无监督的预训练语言模型

  • 给定句子\(U = [u_1, u_2, ..., u_n]\),GPT训练语言模型时的目标是最大化下面的似然函数:

\[L_1(U) = \sum_i{logP(u_i|u_{i-k, ..., u_{i-1};\Theta})} \]

  • 上述公式具体来说是要预测每个词\(u_i\)的概率,这个概率是基于它前面\(u_{i-k}\)到\(u_{i-1}\)个词,以及模型\(\Theta\),这里的k代表上文的窗口大小,理论上,k取的越大,模型所能获取的上文信息越充足,模型的能力越强。

  • GPT是一个单向语言模型,模型对输入U进行特征嵌入得到Transformer第一层的输入\(h_0\),再经过多层Transformer特征编码,使用最后一层的输出即可得到当前预测的概率分布,计算过程如下:

\[h_0 = UW_e + W_p \]

$W_p$代表单词的位置编码,形状是[max_seq_len, embedding_dim],
$W_e$的形状为$[vocab\_size, embedding\_dim]$
  • 得到输入张量\(h_0\)后,要将\(h_0\)传入GPT的Decoder Block中,依次得到\(h_t\):

\[h_t = transformer\_block(h_{l-1}) l \in [1, t] \]

  • 最后通过得到的\(h_t\)来预测下一个单词:

\[P(u) = softmax(h_tW_e^T) \]

有监督的下游任务fine-tunning

  • GPT预训练后,会针对具体的下游任务队模型进行微调
    微调采用的是 有监督学习,训练样本包括单词序列\([x_1, x_2, ..., x_n]\)和label y
    GPT微调的目标任务:根据单词序列\([x_1, x_2, ..., x_n]\)预测标签y

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

其中,\(W_y\)表示预测输出的矩阵参数,微调任务的目标是最大化下面的函数:

\[L_2 = \sum_{(x,y)}log{P(y|x^1, ..., x^m)} \]

综合两个阶段的目标任务函数,可知GPT的最终优化函数为:

\[L_3 = L_2 + \lambda L_1 \]

整体训练过程架构图
根据下游任务适配的过程分两步:

    1. 根据任务定义不同输入
    1. 对不同任务增加不同的分类层
      具体定义可以参见下图:
      image

GTP数据集

GPT使用了BooksCorpus数据集,文本大小约5GB,包含7400W+的句子。这个数据集由7000本独立的、不同风格类型的书籍组成,选择该部分数据集的原因:

    1. 书籍文本包含大量高质量长句,保证模型学习长距离信息依赖
    1. 书籍未开源公布,所以很难在下游数据集上见到,更能体验模型的泛化能力

GPT模型的特点

模型的一些关键参数为:
image

优点

  • GPT在9个任务上的表现sota
  • 更易于并行化

缺点

  • GPT语言模型是单向的
  • 针对不同的任务,需要不同数据集进行模型微调,相对比较麻烦

PS

  • 什么是自回归模型?
    答:从左往右学习的模型,只能利用上文或下文的信息

  • GPT模型的核心架构?
    答:transformer 的Decoder模块(去除中间的第二个子层)

  • GPT的预训练任务?
    答:无监督的预训练 和 有监督任务的微调

序列到序列模型(Sequence to Sequence Model)

代表模型T5

encoder-decoder模型同时使用编码器和解码器,它将每个task视作序列到序列的转换/生成(比如,文本到文本,文本到图像或图像到文本的多模态任务)。Encoder-decoder模型通常用于需要内容理解和生成的任务如机器翻译

T5由谷歌提出,该模型的目的是构建任务统一框架:将所有NLP任务都视为文本转换任务
image
通过这样的方式就能将NLP任务转换为Text-to-Text形式,也就可以用同样的模型,同样的损失函数,同样的训练过程,同样的解码过程来完成所有NLP任务。

T5模型架构与训练过程

T5模型结构与原始的Transformer基本一致,除了做了以下几点改动:

  • 采用了简化版的Layer Normalization,去除了Layer Norm的bias;将Layer Norm放在残差连接外面

  • 位置编码:T5使用了一种简化版的相对位置编码,即每个位置编码都是一个标量,被加在logits上用于计算注意力权重。各层共享位置编码,但是在同一层内,不同的注意力头的位置编码都是独立学习的。

自监督预训练
采用类似于Bert模型的MLM预训练任务

多任务预训练
除了使用大规模数据进行无监督预训练,T5模型还可以利用任务的标注数据进行有监督的多任务预训练,例如SQuAD问答和机器翻译等任务

T5数据集与模型的特点

  • T5 数据集
    作者对公开爬取的页面数据集Common Crawl进行过滤,去掉一些重复的、低质量的、看起来像代码的文本等,并且最后只保留英文文本,得到数据集 C4:the Colossal Clean Crawled Corpus
  • 模型的一些关键参数:
    image

PS

  • 什么是序列到序列模型?
    答:同时使用编码器和解码器,它将每个task视作序列到序列的转换/生成

  • T5模型的核心架构?
    答: Transformer

  • T5的预训练任务?
    答: 采用类似于Bert模型的MLM预训练任务和多任务预训练

标签:BERT,Transformer,架构,训练,模型,任务,主要,LLM,GPT
From: https://www.cnblogs.com/whiteBear/p/18478087

相关文章

  • 设计一个可复用的 ArkWeb 基础组件架构
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。引言在华为鸿蒙开发环境中,ArkWeb组......
  • 20241019CSAD架构
    两种不同模态的MR图像(即T2和ADC)被发送到双流编码器子网络中。在训练期间,注意力图生成块(AMGB)生成的注意力图用于实现CSAD,而输入图像和相应的掩码用于优化编码器-解码器网络以完成分割任务。在编码器子网络的每个中间层,添加一组注意力图生成块(AMGB)来实现跨模态自注意......
  • 华中科大:通过慢思考评估LLM代码质量
    ......
  • 架构师之路-学渣到学霸历程-22
    NFS文件共享服务器今天开始了云计算-SRE架构师的第二个阶段,第二阶段就是服务阶段了;第一个分享的就是NFS服务;文件共享服务;早上就了解一下NFS原理;1、NFS文件共享服务器NFS:就是networkfilesystem的缩写:可以通过网络让不同的机器实现文件共享的功能客户端可以挂在服务器的......
  • IPMI(智能平台管理接口,Intelligent Platform Management Interface)是一种行业标准的接
    IPMI(智能平台管理接口,IntelligentPlatformManagementInterface)是一种行业标准的接口规范,主要用于服务器和计算机系统的管理。它提供了硬件监控和管理功能,使管理员能够远程监控和控制计算机系统。以下是IPMI的一些主要特点和功能:主要特点硬件监控:IPMI能够监控系统的硬件状态......
  • 软考论文之论软件架构风格
    一、论点论据软件体系结构表示系统的框架结构,是从比较高层次来描述构件、构件性质和构件间的关系及其接口。软件体系结构风格是描述某一个特定应用领域中系统组织方式的惯用模式,是多年研究工程实践的结果。组织方式则描述了系统的组织构件和这些构件的方式。可以选择以下5~6类主......
  • 架构师之路-学渣到学霸历程-21
    云计算-SRE架构师的想法篇:刚完成了第一阶段的学习,暂停一下,思索着明天继续分享第二阶段的内容,因此也就发表一下想法;仅仅是个人的理解;或许有错,或许有不妥,仅仅代表目前现在我的想法了;1.想法:今晚其实也很克制自己了,想着要回来进行一个分享;我思索了很久,应不应该继续分享第二......
  • NOTE6:Agent/LLM+游戏/LLM中的对齐
    :::hljs-rightDATE:October12,2024:::Agent智能体可能需要包含感知、记忆、规划、反思、互动五个模块图源:https://lilianweng.github.io/posts/2023-06-23-agent/以上图的组件为例,Planning任务分解:使用链式思考(ChainofThought)技术,将复杂任务分解为更小、更简单的......
  • Redis架构演进之单机版Redis和数据持久化
    单机版Redis假设现在有一个业务应用,需要引入Redis来提高应用的性能,此时可以选择部署一个单机版的Redis来使用业务应用可以把Redis当作缓存来使用,从MySQL里查询数据,然后写入Redis中,之后业务应用再从Redis里读取数据,因为Redis的数据都是存储在内存里的,所以整体的速度很快。......
  • 使用LangGraph构建多Agent系统架构!
    0前言Agent是一个使用大语言模型决定应用程序控制流的系统。随着这些系统的开发,它们随时间推移变得复杂,使管理和扩展更困难。如你可能会遇到:Agent拥有太多的工具可供使用,对接下来应该调用哪个工具做出糟糕决策上下文过于复杂,以至于单个Agent无法跟踪系统中需要多个专业领域(......