大模型之自注意力机制Self-Attention(三)

发布于:2024-05-18 ⋅ 阅读:(301) ⋅ 点赞:(0)

大模型之自注意力机制Self-Attention

LlaMA 3 系列博客

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (一)

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (二)

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (三)

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (四)

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (五)

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (六)

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (七)

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (八)

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (九)

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (十)
构建安全的GenAI/LLMs核心技术解密之大模型对抗攻击(一)

构建安全的GenAI/LLMs核心技术解密之大模型对抗攻击(二)

构建安全的GenAI/LLMs核心技术解密之大模型对抗攻击(三)

构建安全的GenAI/LLMs核心技术解密之大模型对抗攻击(四)

构建安全的GenAI/LLMs核心技术解密之大模型对抗攻击(五)

你好 GPT-4o!

大模型标记器之Tokenizer可视化(GPT-4o)

大模型标记器 Tokenizer之Byte Pair Encoding (BPE) 算法详解与示例

大模型标记器 Tokenizer之Byte Pair Encoding (BPE)源码分析

大模型之自注意力机制Self-Attention(一)

大模型之自注意力机制Self-Attention(二)

大模型之自注意力机制Self-Attention(三)

位置编码的公式在论文(第 3.5 节)中有描述。您可以在 中查看生成位置编码的代码 。这不是位置编码的唯一可能的方法。然而,它的优点是能够扩展到看不见的序列长度(例如,如果我们训练的模型被要求翻译比我们训练集中的任何句子都长的句子)。

2020年7月更新:上面显示的位置编码是基于Tensor2Tensor实现的Transformer。论文中展示的方法略有不同,它不是直接连接,而是交织两个信号。下图显示了它的外观。这是生成它的代码

残差

在编码器架构中我们需要提到的一个细节是,每个编码器中的每个子层(自注意力、ffnn)都有一个残差连接,并随后进行层归一化步骤。


如果我们要可视化与自注意力相关的向量和层归一化操作,它将看起来像这样:


这也适用于解码器的子层。如果我们要想象一个堆叠了2个编码器和解码器的Transformer,它将看起来像这样:

解码器方面

现在我们已经涵盖了编码器方面的大多数概念,我们基本上也知道了解码器组件的工作原理。但让我们看看它们是如何协同工作的。

编码器首先处理输入序列。顶层编码器的输出随后转换为一组注意力向量K和V。这些将由每个解码器在其“编码器-解码器注意力”层中使用,这有助于解码器专注于输入序列中的适当位置:
在这里插入图片描述

完成编码阶段后,我们开始解码阶段。解码阶段的每一步都会输出输出序列中的一个元素(在这种情况下是英语翻译句子)。

以下步骤重复该过程,直到达到一个特殊符号,表示Transformer解码器已完成其输出。每个步骤的输出在下一个时间步骤中被送入底层解码器,解码器就像编码器一样将它们的解码结果向上冒泡。就像我们对编码器输入所做的一样,我们嵌入并添加位置编码到这些解码器输入中,以指示每个单词的位置。

在这里插入图片描述

解码器中的自注意力层与编码器中的自注意力层的工作方式略有不同:

在解码器中,自注意力层只允许关注输出序列中的早期位置。这是通过在自注意力计算的Softmax步骤之前掩蔽未来位置(将它们设置为-inf)来完成的。

“编码器-解码器注意力”层的工作方式就像多头自注意力一样,但它从它下面的层创建其查询矩阵,并从编码器栈的输出中获取键和值矩阵。

最后的线性和Softmax层

解码器栈输出一个浮点数向量。我们如何将其变成一个单词?这就是最后的线性层的工作,它后面跟着一个Softmax层。

线性层是一个简单的全连接神经网络,它将解码器栈产生的向量投影到一个称为logits向量的大得多的向量中。

假设我们的模型知道10,000个独特的英语单词(我们模型的“输出词汇表”),这些单词是从其训练数据集中学习到的。这将使logits向量有10,000个单元宽——每个单元对应一个独特单词的分数。这就是我们解释模型输出的方式,紧接着是线性层。

然后,softmax层将这些分数转换为概率(全部为正数,全部加起来为1.0)。选择最高概率的单元,与之相关联的单词被产生为这个时间步的输出。


这个图从底部开始,显示了解码器栈产生的向量。然后它被转换成一个输出单词。

训练回顾

现在我们已经介绍了通过训练的Transformer的整个前向传递过程,审视一下模型训练的直觉将会很有用。

在训练期间,一个未训练的模型将经历完全相同的前向传递。但由于我们正在使用标记的训练数据集对其进行训练,我们可以将其输出与实际正确的输出进行比较。

为了可视化这一点,假设我们的输出词汇表只包含六个单词(“a”,“am”,“i”,“thanks”,“student”和“”(代表‘句子结束’))。


我们模型的输出词汇表是在训练开始之前的预处理阶段创建的。

一旦我们定义了输出词汇表,我们就可以使用宽度相同的向量来表示词汇表中的每个单词。这也被称为独热编码。例如,我们可以使用以下向量来表示单词“am”:


示例:我们输出词汇表的独热编码

在这次回顾之后,让我们讨论模型的损失函数——在训练阶段我们要优化的指标,以期最终得到一个训练有素且希望非常准确的模型。

损失函数

假设我们正在训练我们的模型。假设这是训练阶段的第一步,我们正在训练它进行一个简单的示例——将“merci”翻译成“thanks”。

这意味着,我们希望输出是一个概率分布,指示单词“thanks”。但由于这个模型尚未训练,目前还不太可能发生。


由于模型的参数(权重)都是随机初始化的,未训练的模型为每个单元/单词产生一个具有任意值的概率分布。我们可以将其与实际输出进行比较,然后使用反向传播调整模型的所有权重,使输出更接近期望的输出。

如何比较两个概率分布?我们简单地从一个中减去另一个。有关更多详细信息,请查看交叉熵Kullback–Leibler散度

但请注意,这是一个过度简化的示例。更现实的情况是,我们会使用超过一个单词的句子。例如——输入:“je suis étudiant”,期望的输出:“i am a student”。这实际上意味着,我们希望我们的模型连续输出概率分布,其中:

  • 每个概率分布由宽度为vocab_size(在我们的示例中为6,但实际上可能是30,000或50,000等数字)的向量表示
  • 第一个概率分布在与单词“i”相关联的单元上具有最高概率
  • 第二个概率分布在与单词“am”相关联的单元上具有最高概率
  • 依此类推,直到第五个输出分布指示<end of sentence>符号,它也有一个与之相关联的单元,来自10,000个元素的词汇表。


在训练示例中,我们将针对一个样本句子训练我们的模型的预定概率分布。

在足够大的数据集上训练模型足够长的时间后,我们希望产生的概率分布看起来像这样:


希望经过训练,模型会输出我们期望的正确翻译。当然,这并不是真实的迹象,如果这个短语是训练数据集的一部分(见:交叉验证)。请注意,每个位置都有一定概率,即使它不太可能是该时间步的输出——这是softmax的一个非常有用的特性,有助于训练过程。

现在,由于模型一次产生一个输出,我们可以假设模型正在从概率分布中选择具有最高概率的单词,并丢弃其余部分。这是实现方式之一(称为贪婪解码)。另一种方式是保留,比如说,前两个单词(以‘I’和‘a’为例),然后在下一步中运行模型两次:一次假设第一个输出位置是单词‘I’,另一次假设第一个输出位置是单词‘a’,然后保留考虑了#1和#2两个位置的误差较小的版本。我们对#2和#3位置重复此过程……等等。这种方法称为“beam search”,在我们的示例中,beam_size为二(意味着始终在内存中保留两个部分假设(未完成的翻译)),top_beams也是两个(意味着我们将返回两个翻译)。这些都是可以实验的超参数。

前进并转换

我希望您发现这是开始了解Transformer的主要概念的有用起点。如果您想深入了解,我建议采取以下步骤:

大模型技术分享

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

《企业级生成式人工智能LLM大模型技术、算法及案例实战》线上高级研修讲座

模块一:Generative AI 原理本质、技术内核及工程实践周期详解
模块二:工业级 Prompting 技术内幕及端到端的基于LLM 的会议助理实战
模块三:三大 Llama 2 模型详解及实战构建安全可靠的智能对话系统
模块四:生产环境下 GenAI/LLMs 的五大核心问题及构建健壮的应用实战
模块五:大模型应用开发技术:Agentic-based 应用技术及案例实战
模块六:LLM 大模型微调及模型 Quantization 技术及案例实战
模块七:大模型高效微调 PEFT 算法、技术、流程及代码实战进阶
模块八:LLM 模型对齐技术、流程及进行文本Toxicity 分析实战
模块九:构建安全的 GenAI/LLMs 核心技术Red Teaming 解密实战
模块十:构建可信赖的企业私有安全大模型Responsible AI 实战 

Llama3关键技术深度解析与构建Responsible AI、算法及开发落地实战

1、Llama开源模型家族大模型技术、工具和多模态详解:学员将深入了解Meta Llama 3的创新之处,比如其在语言模型技术上的突破,并学习到如何在Llama 3中构建trust and safety AI。他们将详细了解Llama 3的五大技术分支及工具,以及如何在AWS上实战Llama指令微调的案例。
2、解密Llama 3 Foundation Model模型结构特色技术及代码实现:深入了解Llama 3中的各种技术,比如Tiktokenizer、KV Cache、Grouped Multi-Query Attention等。通过项目二逐行剖析Llama 3的源码,加深对技术的理解。
3、解密Llama 3 Foundation Model模型结构核心技术及代码实现:SwiGLU Activation Function、FeedForward Block、Encoder Block等。通过项目三学习Llama 3的推理及Inferencing代码,加强对技术的实践理解。
4、基于LangGraph on Llama 3构建Responsible AI实战体验:通过项目四在Llama 3上实战基于LangGraph的Responsible AI项目。他们将了解到LangGraph的三大核心组件、运行机制和流程步骤,从而加强对Responsible AI的实践能力。
5、Llama模型家族构建技术构建安全可信赖企业级AI应用内幕详解:深入了解构建安全可靠的企业级AI应用所需的关键技术,比如Code Llama、Llama Guard等。项目五实战构建安全可靠的对话智能项目升级版,加强对安全性的实践理解。
6、Llama模型家族Fine-tuning技术与算法实战:学员将学习Fine-tuning技术与算法,比如Supervised Fine-Tuning(SFT)、Reward Model技术、PPO算法、DPO算法等。项目六动手实现PPO及DPO算法,加强对算法的理解和应用能力。
7、Llama模型家族基于AI反馈的强化学习技术解密:深入学习Llama模型家族基于AI反馈的强化学习技术,比如RLAIF和RLHF。项目七实战基于RLAIF的Constitutional AI。
8、Llama 3中的DPO原理、算法、组件及具体实现及算法进阶:学习Llama 3中结合使用PPO和DPO算法,剖析DPO的原理和工作机制,详细解析DPO中的关键算法组件,并通过综合项目八从零开始动手实现和测试DPO算法,同时课程将解密DPO进阶技术Iterative DPO及IPO算法。
9、Llama模型家族Safety设计与实现:在这个模块中,学员将学习Llama模型家族的Safety设计与实现,比如Safety in Pretraining、Safety Fine-Tuning等。构建安全可靠的GenAI/LLMs项目开发。
10、Llama 3构建可信赖的企业私有安全大模型Responsible AI系统:构建可信赖的企业私有安全大模型Responsible AI系统,掌握Llama 3的Constitutional AI、Red Teaming。

解码Sora架构、技术及应用

一、为何Sora通往AGI道路的里程碑?
1,探索从大规模语言模型(LLM)到大规模视觉模型(LVM)的关键转变,揭示其在实现通用人工智能(AGI)中的作用。
2,展示Visual Data和Text Data结合的成功案例,解析Sora在此过程中扮演的关键角色。
3,详细介绍Sora如何依据文本指令生成具有三维一致性(3D consistency)的视频内容。 4,解析Sora如何根据图像或视频生成高保真内容的技术路径。
5,探讨Sora在不同应用场景中的实践价值及其面临的挑战和局限性。

二、解码Sora架构原理
1,DiT (Diffusion Transformer)架构详解
2,DiT是如何帮助Sora实现Consistent、Realistic、Imaginative视频内容的?
3,探讨为何选用Transformer作为Diffusion的核心网络,而非技术如U-Net。
4,DiT的Patchification原理及流程,揭示其在处理视频和图像数据中的重要性。
5,Conditional Diffusion过程详解,及其在内容生成过程中的作用。
三、解码Sora关键技术解密
1,Sora如何利用Transformer和Diffusion技术理解物体间的互动,及其对模拟复杂互动场景的重要性。
2,为何说Space-time patches是Sora技术的核心,及其对视频生成能力的提升作用。
3,Spacetime latent patches详解,探讨其在视频压缩和生成中的关键角色。
4,Sora Simulator如何利用Space-time patches构建digital和physical世界,及其对模拟真实世界变化的能力。
5,Sora如何实现faithfully按照用户输入文本而生成内容,探讨背后的技术与创新。
6,Sora为何依据abstract concept而不是依据具体的pixels进行内容生成,及其对模型生成质量与多样性的影响。


网站公告

今日签到

点亮在社区的每一天
去签到