大语言模型

  • 什么是大语言模型
  • Transformer模型
    encoder-decoder框架
    attention机制与self-attention机制

BERT模型
GPT-2模型

一、大语言模型的定义

大语言模型指的是那些在大规模文本语料上训练、包含百亿级别(或更多)参数的语言模型,是一系列的人工智能模型,旨在理解和生成人类语言。它们在大量的文本数据上进行训练,可以执行广泛的任务,包括文本总结、翻译、情感分析等等。

LLM的特点是规模庞大,包含数十亿的参数,帮助它们学习语言数据中的复杂模式。这些模型通常基于深度学习架构,如转化器,这有助于它们在各种NLP任务上取得令人印象深刻的表现。

目前的大语言模型(如GPT和BERT)采用与小模型类似的Transformer架构预训练目标(如 Language Modeling),与小模型的主要区别在于增加模型大小、训练数据和计算资源。拿 GPT 来说,GPT 其实出现了好几代,GPT-3 它有 45 tb 的训练数据,整个维基百科里面的数据只相当于他训练数据的 0. 6%。

二、Transformer

首先介绍 Transformer 的整体结构,下图是 Transformer 用于中英文翻译的整体结构:


基本框架

Encoder-Decoder框架——attention机制——Transformer——BERT/GPT

2.1 Encoder-Decoder(编码-解码)

Encoder:将可变长度的输入序列编码成一个固定长度的向量;
Decoder:将固定长度的向量解码成一个可变长度的输出序列;
不同的任务可以选择不同的编码器和解码器 (RNN,CNN,LSTM,GRU)。

2.11 简单回顾RNN

RNN模型

假设时刻t时,输入为xt ,隐藏层状态为ht ,可以看到ht 与当前输入xt 和上一时刻的隐藏层状态有关

2.12 编码与解码

通过RNN进行编码,t时刻的ht 可以表示为ht=f(ht-1,xt),在获得各个时刻的隐藏状态后,最终在T时刻,将信息汇总生成最后的语义编码c

在解码过程中同样用RNN进行解码,用st来表示隐藏层状态,可以看到隐藏层的状态更新,不仅跟上一时刻的隐藏层输出st-1和当前时刻的输入c有关,还跟上一时刻的输出yt-1有关:
st=f(st-1,yt-1,c
因此我们预测下一个输出ytp(yt|{y1,y2,...,yt-1},c)=g(st,y1,c) ,这里g函数一般为softmax函数。

Encoder-Decoder结构可以忽略传统RNN模型对于语序的要求,但是也有局限性。最大的局限性就在于编码和解码之间的唯一联系就是一个固定长度的语义向量c。它能储存的信息就是有限的,当句子长度不断变长,由于后方的decoder网络的所有信息都来自中间状态,中间状态需要表达的信息就越来越多。

2.2 Attention 机制

简单的说,模型在产生输出的时候,需要让其产生一个“注意力范围”表示接下来输出的时候要重点关注输入序列中的哪些部分,然后根据关注的区域来产生下一个输出,如此往复。模型的大概示意图如下所示 :


对于Decoder的隐藏层,就变成了st=f(st-1,yt-1,ct),其中ct指的是在t时刻encoder模块的隐藏层ht加权平均的结果。
带有Attention的Encoder-Decoder网络的迭代过程就是如下几步:

  • Encoder网络按照原来的方法计算出h1,h2,...ht
  • 计算Decoder网络,对于第k个输出词语,计算出得到ck所需要的h1,h2,...ht的权重αk,由此得到ck
  • sk-1,yk-1,ck带入g(sk-1,yk-1,ck)得到sk,并带入网络得到输出yk
  • 重复直到网络输出<end>。
    (如何计算权重:设计一个以si,hj为输入的网络用softmax算概率作为权重)
2.21 self-attention

Query、Value 、Key
attention函数可以理解为利用向量key和value将一次查询进行映射的过程。


做法:针对某query,计算所有key对query的点乘,为了减少方差,除以sqrt(dk),并使用softmax归一化该权重,最后和value点乘得到输出。由于每个输出仅与所欲的输入有关,所以我们可以并行计算多个查询。多个query形成矩阵Q,同时多个key和value形成矩阵K、V,因此attention函数的计算公式:

2.3 transformer模型


:输入 + 中间部分(Multi-Head Attention + FeedForward + Add & Normalize)+ 输出

2.31 输入层

encoder的输入层和decoder的输入层是一样的结构,都是token embedding(词向量)+ positional embedding(位置向量),得到最终的输入向量。(为什么要用位置向量:因为 Transformer 不采用 RNN 的结构,而是使用全局信息,不能利用单词的顺序信息,而这部分信息对于 NLP 来说非常重要。所以 Transformer 中使用位置 Embedding 保存单词在序列中的相对或绝对位置。)

token embedding 有很多种方式可以获取,例如可以采用 Word2Vec、Glove 等算法预训练得到,也可以在 Transformer 中训练得到。

positional embedding可以用正余弦进行编码
2.32 Encoder

Multi-Head Attention


Add & Normalize
残差连接就是将输入向量加上输出向量后传给下一层。例如:假设一个输入向量x,经过一个网络结构,得到输出向量f(x),即:x->f(x),这时加上残差连接,相当于在输出向量中加入输入向量,输出结构变为f(x)+x。这样就避免了梯度消失的问题,因为对x求偏导时,总会有一个常数项1。
因此,Add & Normalize层的实质是,输出向量经过残差连接与输入向量相加然后通过LayerNorm进行归一化,将最后结果向量传给下一层。
Feed Forward
是一个两层的全连接层,第一层的激活函数为 Relu,第二层不使用激活函数。

通过上面描述的 Multi-Head Attention, Feed Forward, Add & Norm 就可以构造出一个 Encoder block,通过多个 Encoder block 叠加就可以组成 Encoder。
第一个 Encoder block 的输入为句子单词的表示向量矩阵,后续 Encoder block 的输入是前一个 Encoder block 的输出,最后一个 Encoder block 输出的矩阵就是编码信息矩阵 C,这一矩阵后续会用到 Decoder 中。

2.34 Decoder

与 Encoder block 相似,但是存在一些区别:包含两个 Multi-Head Attention 层。

  • 第一个 Multi-Head Attention 层采用了 Masked 操作。
  • 第二个 Multi-Head Attention 层的K, V矩阵使用 Encoder 的编码信息矩阵C进行计算,而Q使用上一个 Decoder block 的输出计算。

最后有一个 Softmax 层计算下一个翻译单词的概率。

流程总结:
  1. encoder层
  • 每个词向量(token embedding)➕ 对应的位置向量(positional embedding)=> 每个词的输入向量x
  • 输入向量通过多头自注意力机制(Multi-Head Attention)得到的向量与输入向量进行残差连接与归一化(Add & Normalize)向量向量
  • 将归一化得到的每个词的向量继续做前向神经网络(Feed Forward)
  • 最后再进行一次残差连接与归一化(Add & Normalize)

此时一层encoder层结束,将得到的结果向量当成输入向量继续传给第二层的encoder,依次传递计算,直到6层encoder计算结束,将最后结果向量保留,之后会传给decoder层计算。

  1. decoder层
  • 当前词及之前词的词向量(token embedding)➕ 对应的位置向量(positional embedding)=> 当前词及之前词的输入向量x
  • 输入向量x同样经过mask的多头自注意力机制(Multi-Head Attention)处理和残差连接与归一化
  • 对归一化的输出继续进行Attention处理,这层的k、v是来自于encoder层的结果,而q是本身上一层的结果
  • 接下来几步和上面encoder的步骤是一样的,最后得到结果向量,作为decoder第二层的输入向量。然后依次进行以上步骤,直到6层decoder全部计算结束。

3.linear和softmax输出

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容