【完整】可视理解Transformer的Attention技术

本章我们将跟随大佬_Grant Sanderson_深入完整探讨可视化理解Transformer的核心技术—注意力Attention机制。

图 2: Transformer模型架构

在此想快速回顾一些重要的背景信息:正在研究的模型的目标是读取一段文本并预测下一个词。输入文本被分割成称之为Tokens的小部分,它们通常是完整的单词或单词的一部分。但为了让我们在这个视频中的例子更加简单易懂,让我们假设Token总是完整的单词。

嵌入技术(Embeddings)

Transformer的第一步是将每个Token与一个高维向量关联,这就是我们所说的嵌入向量。我希望你能理解的关键概念是,如何理解在所有可能的嵌入向量所构成的高维空间中,不同的方向能够代表不同的语义含义。

在上一章中给出了一个例子,说明了方向如何对应性别,即在这个空间中添加一定的变化可以从一个男性名词的嵌入转到对应的女性名词的嵌入。

这只是一个例子,可以设想在这样一个复杂的空间中有无数的方向,每一个都可能代表着词义的不同方面,Transformer的目标是逐步调整这些嵌入,使之不仅仅编码单词本身,而是包含更丰富、更深层次的上下文含义。

词嵌入Embedding是将每个 Token 映射到高维向量——词向量。

图中每个词表示一个Token(视频为了展示效果,用单词作为Token)。所有可能的 embedding 构成的高维空间(词向量空间)中,方向可以对应语义含义。

方向对应性别的示例:(𝐸(𝑤𝑜𝑚𝑎𝑛)−𝐸(𝑚𝑎𝑛)) 的向量的方向表示性别,因此 𝐸(𝑘𝑖𝑛𝑔) 在叠加上该向量后,近似于 𝐸(𝑞𝑢𝑒𝑒𝑛)。

transformer的目标是逐步调整这些embedding,使它们不仅仅编码单词本身,而是融入更加丰富、更深层次的上下文语义。

注意力机制Attention

深入到计算细节和矩阵运算之前,有必要先了解一些我们期望注意力机制能实现的行为示例。

考虑以下短语:

  • American shrew code:美国真鼹鼠(mole)

  • One mole of carbon dioxide:一摩尔(mole)二氧化碳

  • Take a biopsy of the more:对肿瘤(mole) 进行活检

在不同的上下文环境下,"mole"这个词会有不同的意思。然而在Transformer的第一步中,文本被拆分,每个Token都被关联到一个向量,这时"mole"这个词对应的向量在所有情况下都是相同的,因为初始的Token嵌入向量本质上是一个不参考上下文的查找表。直到Transformer的下一步,周围的嵌入才有机会向这个Token传递信息。可以想象嵌入空间里有多个不同的方向,这些方向分别编码了"mole"这个词的多种不同含义。如果Token经过了良好的训练,注意力模块就可以计算出需要根据上下文在通用嵌入向量中添加什么内容,使其指向其中一个特定的方向。

再来看一个例子,比如单词"Tower"的嵌入向量,这可能是个非常通用、不特定的方向,与许多大型、高大的名词关联。如果"Tower"前面是"埃菲尔",你可能希望更新这个向量,使其更具体地指向埃菲尔铁塔的方向,可能与巴黎、法国或者钢铁制品相关的向量有关。如果前面还有"微型"这个词,那么这个向量应该进一步更新,使其不再与大型、高大的事物相关。

更进一步讲,注意力模块不仅可以精确一个词的含义,还能将一个嵌入向量中的信息传递到另一个嵌入向量中,即使这两个嵌入向量相距很远,信息也可能比单一单词要丰富得多。如我们在上一章中看到的,所有向量通过网络流动,包括经过许多不同的注意力模块后,预测下一个Token的计算过程完全取决于序列中的最后一个向量。例如,你输入的文字是一整部悬疑小说,到了接近尾声的部分,写着"所以,凶手是"。

蓝色游荡生物

如果模型要准确地预测下一个词,那么这个序列中的最后一个向量,它最初只是嵌入了单词"是",它必须经过所有的注意力模块的更新,以包含远超过任何单个单词的信息,通过某种方式编码了所有来自完整的上下文窗口中与预测下一个词相关的信息。

但为了逐步解析计算过程,我们先看一个更简单的例子。假设输入包含了一个句子,“[a fluffy blue creature roamed the verdant forest.]一个蓬松的蓝色生物在葱郁的森林中游荡”。假设我们此刻关注的只是让形容词调整其对应名词的含义的这种更新方式。我马上要讲的是我们通常所说的单个注意力分支,稍后我们会看到一个注意力模块是由许多不同的分支并行运行组成的。

高维向量

需要强调的是,每个词的初始嵌入是一个高维向量,只编码了该特定词的含义,不包含任何上下文。实际上,这并不完全正确。它们还编码了词的位置。关于位置如何被编码的细节有很多,但你现在只需要知道,这个向量的条目足以告诉你这个词是什么,以及它在上下文中的位置。让我们用字母 E 来表示这些嵌入。

我们的目标是,通过一系列计算产生一组新的、更为精细的嵌入向量,比如这样做可以让名词的嵌入向量捕捉并融合了与它们相对应的形容词的含义。而在深度学习的过程中,希望大部分的计算都像矩阵 - 向量的乘积,其中的矩阵充满了可调的权重,模型将根据数据来学习这些权重。

需要明确的是构造这个形容词调整名词的例子,只是为了说明可以设想一个注意力分支可能做的事情。正如深度学习常见的情况,真实的行为更为复杂,因为它涉及到调整和微调海量参数以最小化某种成本函数。

Attention[工作原理]

逐一审视这一过程中涉及的各种参数矩阵时,设想一个具体的应用场景能帮助更好地理解其背后的逻辑。

在这个过程的第一步,你可以想象每个名词,比如"生物",都在问,有没有形容词在我前面?对于"毛茸茸的"和"蓝色的"这两个词,都会回答是一个形容词,就在那个位置。

这个问题会被编码成另一个向量_Query Vector_,也就是一组数字,称之为这个词的查询向量。这个查询向量的维度比嵌入向量要小得多,比如说128维。计算这个查询就是取一个特定的矩阵,也就是WQ,并将其与嵌入向量相乘。

Query Vector的维度比词嵌入向量的维度要小得多。Query Vector的计算过程,就是用一个矩阵(𝑊𝑄)与词向量相乘:

每一个Token与𝑊𝑄相乘,都能得到一个Query Vector:

_如何理解𝑊𝑄?𝑊𝑄比较单一理解,它是一种映射,能够捕捉到一些特殊规律,比如“寻找前置形容词”的规律。_除此之外还有Key Vector,可以将Key Vector想象成潜在的查询回答者。

_[类似于查询矩阵𝑊𝑄,𝑊𝑘也充满可调整的参数]。_Query Vector和Key Vector位于同一空间内(Query/Value space)当方向密切对齐时,可以将Key视为与Query匹配。

简化一下把查询向量记作Q,然后看到把一个矩阵放在一个箭头旁边,就表示通过这个矩阵与箭头起点的向量相乘,可以得到箭头终点的向量。在这种情况下,将这个矩阵与上下文中的所有嵌入向量相乘,得到的是每个Token对应的一个查询向量。这个矩阵由模型的参数组成,意味着它能从数据中学习到真实的行为模式。但在实际应用中,要明确这个矩阵在特定Attention机制中的具体作用是相当复杂的。不过尝试想象一个理想情况:希望这个查询矩阵能将名词的嵌入信息映射到一个较小的空间中的特定方向上,这种映射方式能够捕捉到一种特殊的寻找前置形容词的规律。至于它对其他嵌入向量做什么,我们不知道。也许它同时试图用这些实现一些其他的目标。

现在[Attention]集中在名词上,同时这里还有另一个我们称之为键矩阵的矩阵,同样需要与所有嵌入向量相乘,这会生成一个称之为键的向量序列。从概念上讲可以把键想象成是潜在的查询回答者,这个键矩阵也充满了可调整的参数,同查询矩阵一样,将嵌入向量映射到同一个较小的维度空间中。当键与查询密切对齐时,可以将键视为与查询相匹配。

举例来说,可以想象键矩阵将形容词"毛茸茸的"和"蓝色的" 映射到与单词"生物"生成的查询紧密对齐的向量上。为了衡量每个键与每个查询的匹配程度,你需要计算每一对可能的键 - 查询组合之间的点积。我喜欢将其想象为一个充满各种点的网格,其中较大的点对应着较大的点积,即键与查询对齐的地方。就我们讨论的形容词与名词的例子而言,如果"毛茸茸的"和"蓝色的"生成的键确实与"生物"产生的查询非常吻合,那么这两个点的点积会是一些较大的正数。用机器学习的术语来说,"毛茸茸的"和"蓝色"的嵌入向量会关注"生物"的嵌入向量。相比之下,像"the"这样的词的键与"生物"的查询之间的点积会是一些较小或者负值,这反映出它们之间没有关联。因此面前展开了一个[值域横跨负无穷到正无穷的实数网格,这个网格赋予了我们评估每个单词在更新其它单词含义上的相关性得分的能力]。

接下来将利用这些分数执行一种操作:按照每个词的相关重要性,沿着每一列计算加权平均值。因此目标不是让这些数据列的数值范围无限扩展,从负无穷到正无穷。相反是希望这些数据列中的每个数值都介于0和1之间,并且每列的数值总和为1,正如它们构成一个概率分布那样。如果是从上一章继续阅读,就知道接下来要做什么。会按列计算softmax函数以标准化这些值。

在示意图中,对所有列应用softmax函数后会用这些标准化的值填充网格。此时可以将每一列理解为根据左侧的单词与顶部对应值的相关性赋予的权重。将这种网格称为"[Attention模式]"。如果看原始的Transformer 论文会发现是用一种非常简洁的方式描述了所有这些。这里的变量Q和K分别代表查询向量和键向量的完整数组,这些都是通过将嵌入向量与查询矩阵和键矩阵相乘得到的小型向量。这个在分子上的表达式是一种简洁的表示方式,可以表示所有可能的键-查询对的点积网格。这里有一个之前没有提到的小细节,那就是为了数值稳定性,要将所有这些值除以键 - 查询空间维度的平方根。然后包裹全表达式的softmax函数,应理解为是按列应用的。

逐Token训练

在训练过程中,对给定文本进行处理时,模型会通过调整权重来奖励或惩罚预测的准确性,即根据模型对文中下一个词的预测概率的高低。有种做法能显著提高整个训练过程的效率,那就是同时让模型预测该段落中每个初始Token子序列之后所有可能出现的下一个Token。例如对于正在关注的那个短语,它也可能在预测 “生物” 后面应该跟什么单词,以及 “the” 后面应该跟什么单词。这样一来一个训练样本就能提供更多的学习机会。

掩蔽技术Masking

在设计注意力模式时,一个基本原则是不允许后出现的词汇影响先出现的词汇,如果不这样做,后面的词汇可能会提前泄露接下来内容的线索。这就要求在模型中设置一种机制,确保代表后续 Token对前面Token的影响力能够被有效地削弱到零。直觉上可能会考虑直接将这些影响力设置为零。但这样做会导致一个问题:那些影响力值的列加和不再是1,也就失去了标准化的效果。为了解决这个问题,一个常见的做法是在进行softmax归一化操作之前,将这些影响力值设置为负无穷大。这样经过softmax处理后,这些位置的数值会变成零,同时保证了整体的归一化条件不被破坏。这就是所谓的掩蔽Musking过程

在Attention机制的某些应用场景中,不会采用掩码技术。但在GPT示例中无论是在训练阶段还是在运作阶段(比如作为聊天机器人)都会应用这种掩蔽技术,以防止后面的Token对前面的Token产生影响。

上下文的尺寸限制

值得一提的是这个Attention模式的大小等于上下文大小的平方。这就解释了上下文大小可能会对大型语言模型构成巨大瓶颈,而且要扩大它的话并非易事。近年来出于对更大上下文窗口的追求,出现了一些对Attention机制的改进,使其在处理上下文方面更具可扩展性,但在这里还是专注于基础知识的讲解。

近年来,出于对更大上下文窗口的追求,出现了一些对注意力机制的改进:

  • Sparse Attention Machanisms

  • Blockwise Attention

  • Linformer

  • Reformer

  • Ring attention

  • Longformer

  • Adaptive Attention Span

    ……

解析“值”

通过计算这个模式,模型能够推断哪些词与其他词相关。然后就需要实际更新嵌入向量,让词语可以将信息传递给它们相关的其他词。比如说,你希望 “毛茸茸的” 的嵌入向量能够使得 “生物” 发生改变,从而将它移动到这个 12000 维嵌入空间的另一部分,以更具体地表达一个 “毛茸茸的生物”。

首先展示的是执行这个操作的最简单方法,不过要注意,在多头Attention的情境下,这个方法会有些许调整。这个方法的核心是使用一个第三个矩阵,也就是我们所说的"值矩阵"。你需要将它与某个单词的嵌入相乘,比如"毛茸茸的"。得出的结果我们称之为"值向量",是要加入到第二个单词的嵌入向量中的元素,例如在这个情境下,就是要加入到"生物"的嵌入向量中。因此这个值向量就存在于和嵌入向量一样的,非常高维的空间中。当用这个值矩阵乘以某个单词的嵌入向量时,可以理解为在询问:如果这个单词对于调整其他内容的含义具有相关性,那么为了反映这一点,需要向那个内容的嵌入中添加什么呢?回到图表先不考虑所有的键和查询,因为一旦计算出Attention模式,这些就不再需要了。

接下来将使用这个值矩阵,将其与每一个嵌入向量相乘,从而生成一系列的值向量。可以将这些值向量视作在某种程度上与它们相对应的"键"有关。对图表中的每一列来说,需要将每个值向量与该列中相应的权重相乘。

举个例子对于代表"生物"的嵌入向量,会主要加入"毛茸茸的"和"蓝色的"这两个值向量的较大比例,而其他的值向量则被减少为零,或者至少接近零。

最后为了更新这一列与之相关联的嵌入向量,原本这个向量编码了"生物"这一概念的某种基本含义(不考虑具体上下文),需要将列中所有这些经过重新调整比例的值加总起来,这一步骤产生了一个想要引入的变化量,将其称为delta-e。接着就将这个变化量叠加到原有的嵌入向量上。希望最终得到的是一个更精细的向量,是一个更加细致和含有丰富上下文信息的向量,比如描绘了一个毛绒绒、蓝色的奇妙生物。显然不仅仅对一个嵌入向量进行这种处理,而是将同样的加权求和方法应用于图像中所有的列,由此产生一连串的调整。将这些调整加到相应的嵌入向量上,便形成了一组更为细腻且富含信息的嵌入向量序列。

从宏观角度来看,讨论的整个过程构成了所谓的"单头Attention"机制。正如之前所解释的,这一机制是通过三种不同的、充满可调整参数的矩阵来实现的,即"键Key"、“查询Query"和"值Value”。

参数数量

GPT-3 总参数量是175,181,291,520,位于27,938个矩阵当中。通过统计GPT-3模型的参数数量来进行"计分",这些键矩阵和查询矩阵每个都有12,288 列与嵌入维度匹配,以及128行与较小的键查询空间的维度匹配,那么给每个矩阵增加了大约150万个参数。

如果看看值矩阵,按照目前的描述它看上去是一个正方形的矩阵,有12,288列和12,288行,因为它的输入和输出都存在于这个庞大的嵌入空间中。如果这是真的,那就意味着要增加大约1500万个参数。当然可以让值矩阵拥有数量级更多的参数,而不是键矩阵和查询矩阵。但在实践中,如果想效率更高,可以让值矩阵的参数数量与键矩阵和查询矩阵的参数数量相同。特别是在同时运行多个Attention机制的场景下,这一点尤为重要。

具体来说,值映射实际上是两个小矩阵乘积的形式。还是建议从整体上去理解这个线性映射过程,输入和输出都在这个更大的嵌入空间中,比如将"蓝色"的嵌入向量指向加到名词上以表示"蓝色"的方向。它只是被分成了两个单独的步骤。

这里的变化只是它的行数比较少,通常和键查询的空间大小一致。可以理解为将较大的嵌入向量映射到了一个更小的空间。虽然这不是通用的术语,但决定将其称作"值降维矩阵"。

而第二个矩阵则是从这个较小的空间映射回原来的嵌入空间,生成了用于实际更新的向量,将其称为"值升维矩阵",这个命名同样非传统。在大多数论文中会看到的描述方式可能和本文说的有所不同,稍后会解释原因。但个人认为那种描述方式可能会让概念理解变得更加混乱。

在这里借用一下线性代数的专业术语,实际上在做的就是把整个数据的变换过程限制成一种比较简单的形式。回到参数计数,这四个矩阵的尺寸相同,全部加起来就得到了大约630万个参数,这是一个Attention机制所需要的。

交叉注意力Cross-attention

顺带一提,为了更准确,到目前为止我们讨论的这部分通常被称为"自我注意力"机制,这是为了将其与其他模型中出现的一个不同版本区分开来,那就是被称为"交叉注意力"的版本。

这与GPT示例无关,但如果你感兴趣的话,交叉注意力涉及的模型会处理两种不同类型的数据,比如一种语言的文本和正在翻译的另一种语言的文本,或者可能是语音输入和正在进行的转录。

交叉注意力机制看起来几乎和自注意力机制一样。唯一的区别是,键和查询映射在交叉注意力机制中会作用于不同的数据集。例如,在进行翻译的模型中,键可能来自一种语言,而查询来自另一种语言,注意力模式可以描述 一种语言的哪些词对应另一种语言的哪些词。在这种情况下,通常不会有遮蔽,因为并不存在后面的词会影响前面的词的概念。

多头注意力Multi-head Attention

继续讨论自注意力机制,如果已经理解了到目前为止的所有内容,那么即使现在停下,也已经领会了注意力模型的核心要义。剩下要讲的就是这个过程需要做多次的原因。

在之前的例子中专注于形容词如何改变名词的含义,但实际上语境对词语含义的影响方式有很多种。比如,如果"他们撞毁了"出现在"车"之前,会对车子的形状和结构产生预设。

而且很多时候,这种联系可能并不遵循语法规则。比如"魔法师"和"哈利"出现在同一篇文章中,可能暗示的是哈利·波特,而如果这篇文章中还出现了"女王",“萨塞克斯"和"威廉”,那么哈利的词嵌入应该更新为指代王子。能想象的每一种上下文更新方式,键和查询矩阵的参数都会有所不同,用以捕捉不同的注意力模式,而值映射的参数会根据需要添加到嵌入中的信息有所改变。

再次强调虽然这些映射的真实行为更复杂难懂,但权重设置是为了让模型能够更好地完成预测下一个Token 的任务。前面所描述的都只是单个Attention中,在Transformer完整的注意力块由多头注意力组成,同时运行多个操作,每个操作都有其独特的键、查询和值映射。例如,GPT-3 在每个块中都使用了96个attention头。考虑到每一个都相当复杂,的确需要花费一些精力理解。也就是说有 96 套不同的键和查询矩阵,产生 96 种不同的attention模式。然后每个attention头都有独特的值矩阵用来产生96个值向量的序列。所有这些都通过使用对应的注意力模式作为权重进行加总。

这意味着在上下文中的每个位置,每个Token所有的头都会产生一个建议的变化,以便添加到该位置的嵌入中。因此需要将所有这些建议的变化加在一起,每个头对应一个,然后将结果加入到该位置的原始嵌入中。这个总和就是从多头attention块输出的一个部分,是精炼后的嵌入之一,它从另一端弹出来。

总的来说,通过并行运行多个不同的头,就能让模型有能力学习上下文改变含义的多种不同方式。计算下来每个包含96个头的参数,各自有四个矩阵的变体,每个多头attention块最后大约有6亿个参数。

输出矩阵

对于那些想深入了解transformer的人,这里有个小插曲必须提一下。可能还记得之前曾经说过,值映射被分解成两个不同的矩阵,把它们标记为_值下降和值上升矩阵_。之前的描述可能会让人觉得在每个attention头里都会看到这一对矩阵,并且实际上也确实可以这样实现,这种设计是可行的。但是在论文中,以及在实践中的实现方式看起来有些不同。

所有这些每个头的值向上矩阵,都像是被合在一起的一个巨大的矩阵,称之为输出矩阵,它与整个多头attention块相关联。当你看到人们谈论某个attention head的值矩阵时,通常只指的是这个第一步,也就是所说的_值向下投影到小空间_的步骤。虽然这是一个可能会让人偏离主要概念的细节,但还是想提一下,这样在其他地方看到这些讨论时,就会知道它的来龙去脉。

深化模型结构增强性能

抛开所有的技术细节,在上一章的概览中了解到,数据在Transformer中的流动并不局限于单个注意力模块。

首先,数据还会经过其他被称为多层感知器的操作。然后数据会反复经过这两种操作的多个副本。这意味着一个单词在吸收了一些上下文信息后,这个更细致的embedding仍有更多的机会受到其周围更为细致环境的影响。在网络中越深入,每个embedding从所有其他embedding中获取的含义就越多,这些embedding本身也变得越来越复杂,希望这能有助于编码关于给定输入的更高级别和更抽象的概念,而不仅仅是描述和语法结构。这些概念可以是情感、语调,是否是一首诗,以及与这个作品相关的基础科学真理等等。

再回到统计GPT-3包括96个不同的层,因此关键查询和值参数的总数需要乘以96,这使得总数达到将近580亿个,这些参数全部用于各种attention head。这确实是一个巨大的数字,但它只占网络总计1750亿参数的大约三分之一。所以尽管Attention模型吸引了所有的关注,但大部分的参数其实来自那些位于这些步骤之间的模块。

本章小结

Attention机制的成功之处并非在于它所启动的任何特定类型的行为,而在于它极其适合并行运算,这意味着可以使用GPU在短时间内完成大量的计算任务。在过去十年或二十年的深度学习研究中得到了一个重要启示,那就是规模的放大似乎可以带来模型性能的巨大定量提升,因此适合并行运算的架构具有巨大的优势。

膜拜大佬

原文视频是_3Blue1Brown_出品,是由斯坦福大学的数学系学生**Grant Sanderson**创建的YouTube频道。该频道从独特的视觉角度解说高等数学,内容包括线性代数、微积分、神经网络、黎曼猜想、傅里叶变换以及四元数等等。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值