AI已经在我们的工作和生活中全面开花了,好久之前在GPT、混元大模型出来的时候,就想着能够学习一下关于AI的知识,所以这次打算从LLM开始学习,就问DeepSeek关于LLM的学习路线,DeepSeek就提到了Transformer架构。
Transformer 是一种深度学习模型,主要用于自然语言处理(NLP)和计算机视觉(CV)等任务。它的核心功能是 处理和生成序列数据,比如:
上面都是我们比较熟悉的一些场景,尤其在之前研究stable diffusion的时候,也接触到了Transformer。
Transformer将Embedding处理成stable diffusion中的潜在向量,然后进入到Unet模型中用于图像去噪。
Transformer 由 编码器(Encoder)和解码器(Decoder) 组成,根据我认知就是:编码器用于输入,解码器用作输出。
Encoder 是将输入的文本转换为一个固定长度的表示,通常是一个向量或一组向量,例如上面提到的stable diffusion中的 text transformer。但是它不是简单单个字词的转换,而是要根据文本中的上下文进行转换。
Encoder 由多个相同的层堆叠而成(如 6 层或 12 层),每一层包含两个主要组件:Self-Attention 机制和前馈神经网络(Feed-Forward Network, FFN)。
Self-Attention 机制:让模型在处理每个词时,能够关注输入序列中的其他词,从而捕捉上下文信息。
例如:
“苹果公司昨天发布了一款新手机,它的屏幕更大了。”
我们很轻松知道它指的是新手机,那么计算机怎么知道这个是新手机的呢?为什么不能是苹果、苹果公司呢?这就不得不提到 自注意力机制(Self-Attention)。
当模型处理 “它” 这个词时,Self-Attention 会计算它和所有单词的相关性:
苹果 | 公司 | 昨天 | 发布 | 一款 | 新 | 手机 | 它 | 的 | 屏幕 | 更 | 大 | 了 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
它 | 0.1 | 0.05 | 0.02 | 0.1 | 0.2 | 0.1 | 0.5 | - | 0.1 | 0.3 | 0.1 | 0.1 | 0.05 |
然后计算机知道“它”最可能代指的就是手机。
前馈神经网络(Feed-Forward Network)是对 Self-Attention 的输出进行非线性变换,这样每个单词不再是再是简单的直线关系。
例如:“猫喜欢鱼”。
Self-Attention 可以找出句子里单词之间的关系,模型会知道 "猫" 和 "鱼" 有关系。
而Feed-Forward:对每个单词再加工,强化信息,比如:
这样让 Transformer 更好地学习每个词的特征,增强了模型的理解能力。
Decoder 的作用是将 Encoder 提供的编码结果转换为最终的输出。例如在机器翻译中,Encoder 先将输入句子转换成向量,Decoder 再根据这个向量生成目标语言的翻译。
与 Encoder 类似,Decoder 也由多个相同的层堆叠而成(6层或12层),但每一层包含三个主要组件:
Masked Self-Attention 机制与 Encoder 的 Self-Attention 机制类似,也用于捕捉上下文信息,但它有一个额外的 mask(掩码)机制。
在语言模型生成任务中,Decoder 是 从左到右 逐步生成输出单词的。因此,在预测当前单词时,不能看到未来的单词。Masked Self-Attention 通过掩码隐藏未来的单词,确保模型在解码时 只能依赖已经生成的部分,不会提前“偷看”答案。
例如,我们让模型生成句子:“我 喜欢 吃 苹果”。在预测“吃”时,模型只能看到“我 喜欢”,而看不到“苹果”:
我 | 喜欢 | 吃 | 苹果 | |
---|---|---|---|---|
吃 | 0.5 | 0.4 | - | - |
其中,“吃” 只能关注“我”和“喜欢”,不能看到“苹果”,如果在“吃”的时候,就看到“苹果”,那么训练不仅失去了从左向右的逻辑,而且也失去了让模型学会如何基于上下文逐步预测单词的意义。
Encoder-Decoder Attention 允许 Decoder 关注 Encoder 输出的信息。这部分的作用是让 Decoder 结合 Encoder 提供的全局信息,以确保文本生成时语义连贯。
举个例子,如果 Encoder 处理的句子是:
Apple released a new phone yesterday."
Encoder 生成了一个向量表示。Decoder 需要根据这个向量生成目标语言翻译:
"苹果公司昨天发布了一款新手机。"
在生成 "苹果公司" 时,Decoder 需要关注 Encoder 输出中的 "Apple", 在生成 "手机"时,需要关注 "phone"。Decoder 在不同的时间步会关注不同的 Encoder 输出,从而生成符合上下文的翻译。
前馈神经网络(Feed-Forward Network)与 Encoder 相同,主要用于对 Encoder-Decoder Attention 机制的结果进行进一步加工。
例如,在翻译句子 "I love coding." 时:
最终,Decoder 依次输出目标句子的单词,如:"我 热爱 编程"。
本篇文章主要是对 LLM Transformer 学习笔记的一个整理,内容更多的是一些概念性的东西,主要是了解 Transformer 的相关知识,为下一步的学习奠定基础。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。