8、神经网络与Transformer详解

8、神经网络与Transformer详解

神经网络与Transformer详解

1. 一个模型的典型场景

对用户咨询的法律问题做自动归类:

婚姻纠纷、劳动纠纷、合同纠纷、债权债务、房产纠纷、交通事故、医疗纠纷、版权纠纷

Image Description

2. 模型就是一个数学公式

我们一般将这样的问题描述为:给定一组输入数据,经过一系列数学公式计算后,输出n个概率,分别代表该用户对话属于某分类的概率

举个非常简单的例子:

Image DescriptionImage Description

Image DescriptionImage Description
Image DescriptionImage Description
Image Description

3. 万金油公式 - 神经网络

确定数学公式的过程

1、公式:y = ax + b

2、参数:a = 50, b = -100

神经网络的公式结构

MNIST(Mixed National Institute of Standards and Technology database)

包含了70,000张手写数字的图像,其中60,000张用于训练,10,000张用于测试,每张图像的内容只包含一个手写数字,从0到9的其中一个数字。

任务:给定一张28x28像素的灰度图像,经过一系列数学公式计算后,输出10个概率,分别代表该图像中的内容是0-9某个数字的概率




划重点:
    这种在输入向量x和输出向量y之间,增加了一层z向量, 并且用上述格式的计算公式去计算z向量和y向量中的每一个数值的结构, 就叫做神经网络。



神经网络的参数设计

1、我可能会这样设计:设定z向量的长度为784,则x向量与z向量等长




2、会这样简化公式:z[i] = x[i+1] - x[i](下一个像素值-当前像素值)

相当于把公式 z0 = w0 * x0 + w1 * x1 + w2 * x2 + …… + w782 * x782 + w783 * x783 + w784

的系数 w0设置为-1,w1设置为1,w2及以后的系数全部都设置为0

公式自然变成了 z[0] = x[1] - x[0]





3、再加一层z向量

划重点:
  1. 在x层和y层之间,加入多层z向量,用以提取更深层特征,这种多层结构,叫做深度神经网络。
  2. 而通过计算机完成大规模数学计算以找到相对更优的w参数组合的过程,就叫做机器学习,也就是我们所说的模型训练。

4. Transformer的模型长什么样

回到课程最开始的场景

Image Description

Tokenization - 文本变成Token

首先,我们要把这一段文字,变成一组Token,也就是词元化(Tokenization)。

⼦词(subword)词元化是词元化的⼀种,这种⽅案把会单词再切得更细⼀些,⽤更基础的单位来表达语⾔。⽐如:”subword”这个词,可以拆分成”sub”和”word”两个⼦词,”sub”是⼀个通⽤的前缀可以和其他组合词的”sub”前缀合并,这样⼤模型将会学会使⽤”sub”前缀。类似的,”encoded”可以拆解为”encod”+”ed”,“encoding”可以拆解为“encod”+”ing”,这样两个词的核⼼部分”encod”被提取出来了,⽽且还得到时态信息。所以这种子词的处理方式,会让一段内容的Token数量多于单词数量,例如OpenAI的官网上,1000 Tokens大概是750个英文单词上下(500个汉字上下)。

Image Description

如果输入内容是:海南麒麟瓜

海, unicode:28023, utf8:b’\xe6\xb5\xb7’

南, unicode:21335, utf8:b’\xe5\x8d\x97’

麒, unicode:40594, utf8:b’\xe9\xba\x92’

麟, unicode:40607, utf8:b’\xe9\xba\x9f’

瓜, unicode:29916, utf8:b’\xe7\x93\x9c’

通过tiktoken处理之后得到的Token序列是:(共11个Token)

b’\xe6\xb5\xb7’

b’\xe5\x8d\x97’

b’\xe9’

b’\xba’

b’\x92’

b’\xe9’

b’\xba’

b’\x9f’

b’\xe7’

b’\x93’

b’\x9c’

Embedding - Token变成向量

one-hot编码

Image Description

比如一句话:“我饿了,你吃了么?”

Image Description

one-hot的一些问题

1、维度过高,过于稀疏:

容纳3000个汉字就需要3000个3000维向量,容纳5000个汉字则需要5000个5000维向量;

2、没有体现出“距离”概念:

如果两个字之间的意思相近,那两个对应的向量求“距离”的时候,就应该更相近;

Image Description

3、没有数学或逻辑关系:

最好能满足:国王 - 男人 + 女人 = 女王

需要了解的几个Embedding模型

1、Word2Vec:Google在2013年提出的概念,也是一个预训练模型

2、OpenAI Embedding Models:就是RAG那节课中,王卓然老师介绍到的OpenAI的API

Image Description

3、OpenAI Clip Text Encoder:如果一段文本描述的内容,和一张图片包含的内容,是相似或相近的,则生成的向量也是相似度较高的

两只狗在草地玩球
狗狗们在草地上玩,一只和另一只相互传球

两只狗狗在雪地里玩球

科比正在训练篮球

划重点:
    我们可以通过一个模型把一个Token变成一个Embedding向量、把一个单词变成一个Embedding向量、把一句话变成一个Embedding向量、把一张图变成一个Embedding向量

这段对话中有650个字,GPT会把这些汉字转换成大概1300个Token,然后再变成1300个Embedding向量


划重点:
    把每一个Token都变成一个512的向量之后,这1300个向量只能代表这1300个Token,并不能充分的体现这段文字的语义。

Encoder & Decoder

Encoder一般用来做分析,Decoder一般用来做生成,内部核心计算模块以RNN为主

过去以RNN为核心的Encoder Decoder有以下几个重要的问题

1、信息丢失

2、无法处理较长句子

3、不能并行计算

Transformer Encoder & Decoder

带有Attention机制的Transformer Encoder

划重点:
  1. Self-Attention之后的输出,每个向量中,除了包含对应Token的向量数据之外,还加入了上下文中其它所有Token以关联程度为系数的向量数据







带有Attention机制的Transformer Decoder

Encoder only & Decoder only

5. 新模型框架的重要尝试

Transformer的O(n^2)计算复杂度

RWKV的线性注意力机制

Mamba的选择性SSM架构

MoE 混合专家模型

作者

步步为营

发布于

2025-03-15

更新于

2025-03-15

许可协议