深入探究LlaMA 3 手冊 ??
图片由作者提供(由我4岁的孩子绘制的闪耀LlaMA 3版本。)
在安第斯山脉的险峻山峰中,住着三个非常美丽的生物——里奥、罗基和西耶拉。它们毛皮光亮,眼睛闪烁,如同坚韧不拔的力量之光,引人注目。
据说,他们从小就对知识有着无尽的渴求。他们会寻找族群中的智者老人,认真倾听他们的故事,像海绵一样吸收他们的智慧。就这样,他们的超能力逐渐成长,那就是与他人合作的能力,他们学会了团队合作是应对安第斯山脉严峻地形挑战的关键。
如果他们遇到迷路或需要帮助的旅者,Rio会理解他们的处境并安慰地引导他们,Rocky则迅速提供解决方案,而Sierra确保他们有足够的力量继续前行。就这样,他们赢得了大家的钦佩,并鼓励每个人都效仿他们的做法。
当太阳在安第斯山脉落下时,里奥、罗基和西拉一起站在一起,他们的精神如同山脉本身一样交织在一起。于是,他们的故事作为知识、智慧和协作的力量以及改变世界的意志的见证而流传下来。
它们是超级羊驼,而这三者被亲切地称为LlaMA3!
Meta的LlaMA 3而且这个故事与Meta开源的大规模语言模型(LLM)——LlaMA 3(Meta AI大型语言模型)的故事并不遥远。2024年4月18日,Meta发布了其LlaMa 3系列的大规模语言模型,包括8B和70B参数版本,声称在性能上超越了LlaMA 2,并在该规模上争夺最佳的前沿LLM模型。
根据Meta,在构建LlaMA 3时,有四个关键的聚焦点——模型架构、预训练数据、扩大预训练规模以及指令微调。这让我们思考如何在企业层面以及基层层面最大限度地利用这个非常强大的模型。
为了帮助探索这些问题的一些答案,我与AWS的生成式AI负责人Edurado Ordax以及科罗拉多大学博尔德分校的计算机科学教授Prof. Tom Yeh合作。
所以,让我们开始这段旅程:
如何利用LlaMA 3的强大功能? API 与微调的区别根据最近的实践,这些大型语言模型(LLMs)主要通过两种方式被访问和使用——API 和 微调。即使这两种方法非常不同,过程中还有其他因素变得至关重要,如以下图片所示。
(本节中的所有图片均由 Eduardo Ordax 提供。)
用户与 LlaMA 3 交互的主要步骤有 6 个阶段。
阶段1:通过直接使用模型来满足广泛的通用需求。
阶段2:根据用户定义的应用程序使用模型。
第三阶段:使用提示工程训练模型以产生所需的输出。
阶段4:在用户侧使用提示工程,同时深入研究一些数据检索和微调,这些工作仍然主要由LLM提供商管理。
第五阶段:将大部分工作掌握在自己手中(用户),从提示工程到数据检索和微调(RAG模型、PEFT模型等)。
阶段6:从零开始创建整个基础模型——从预训练到后训练。
为了充分利用这些模型,建议进入 第五阶段,因为这样用户可以拥有更多的灵活性。能够根据领域需求自定义模型对于最大化其效益至关重要。如果不深入系统,就无法获得最佳回报。
为了做到这一点,这里是一些有用的工具的概览:
图片表明,为了从模型中获得最大的收益,一套结构和一个路线图是必不可少的。它包括三个组成部分:
- 人员:不仅包括最终用户,还包括数据工程师、数据科学家、MLOps工程师、机器学习工程师以及提示工程师等都是重要的。
- 流程:不仅仅是将LLM接入API,而是要专注于整个模型评估、模型部署和微调的生命周期,以满足特定需求。
- 工具:不仅仅是API访问和API工具,还包括整个环境、不同的机器学习流水线、单独的访问账户和运行检查。
当然,对于企业级部署来说,这样才能真正发挥模型的实际效益。为了做到这一点,MLOps 工具和实践变得非常重要。结合 FMOps,这些模型可以证明非常有价值,并丰富 GenAI 生态系统。
FMOps ⊆ MLOps ⊆ DevOps
MLOps,即机器学习运维,是机器学习工程的一部分,专注于机器学习模型的开发、部署和维护,确保它们可靠且高效地运行。
MLOps 属于 DevOps(开发和运维),但专门针对机器学习模型。
FMOps(基础模型运维) 则针对生成式AI场景,通过选择、评估和微调LLMs来工作。
说了这么多,有一件事始终不变。那就是 LlaMA 3 说到底是一个大语言模型(LLM),它在企业级的实施只有在基础元素被严格设置和验证之后才可能且有益。为了做到这一点,让我们来探讨一下 LlaMA 3 的技术细节。
LlaMa 3 的成名秘诀是什么?从基本层面上说,确实是 transformer。如果我们稍微深入一点来看,答案就是 transformer 架构,但经过 高度优化,以在行业标准基准测试中实现更优性能,同时也能支持新的功能。
好消息是,由于LlaMa 3是开源的(由Meta决定),我们现在可以访问Model Card,它提供了关于这一强大架构的配置细节。
所以,让我们深入探讨并解析这些好东西:
自注意力机制如何与Transformer架构结合在LlaMA 3中发挥作用?首先,这里简要回顾一下 transformer 是如何工作的:
- 变换器架构可以被视为注意力层和前向传播层的结合。
- 注意力层在水平方向上结合特征,以生成新的特征。
- 前向传播层(FFN)在垂直方向上结合特征的部分或特性,以生成新的部分/特性。
(本节中的所有图片(除非另有说明)均由Prof. Tom Yeh提供,我已获其许可进行了编辑。)
以下是一个基本的架构外观及其功能的示例。
包含注意力和前向传播模块的变压器架构。
这里提供了关于Transformers和Self-Attention的深入文章链接,在这些文章中详细讨论了整个过程。
LlaMA 3 的核心要点是时候深入探讨一下,在实际的LlaMa 3模型中,Transformer的参数是如何发挥作用的。在我们的讨论中,我们只考虑8B版本。开始吧:
- LlaMA 3 — 8B 模型的参数是什么?我们需要探索的主要数字/值是那些在变压器架构中起关键作用的参数。它们如下所示:
- Layers : 这里的层指的是transformers的基本模块——注意力层和FFN,如上图所示。这些层一个接一个堆叠在一起,输入数据流入一层,然后该层的输出传递给下一层,逐步转换输入数据。
- Attention heads : 注意力头是自注意力机制的一部分。每个头独立扫描输入序列并执行注意力步骤 (记住:QK模块、SoftMax函数)
- 词汇词 : 词汇指的是模型识别或知道的单词数量。本质上,可以将其视为人类构建我们词汇量的方式,以便我们发展语言的知识和灵活性。通常情况下,词汇量越大,模型性能越好。
- 特征维度 : 这些维度指定了输入数据中每个标记的向量大小。从输入嵌入到每一层的输出,这个数字在整个模型中保持一致。
- 隐藏维度 : 这些维度是指模型内部层的大小,更常见的是前向层隐藏层的大小。通常,这些层的大小可以大于特征维度,帮助模型从数据中提取和处理更复杂的表示。
- 上下文窗口大小 : 这里的“窗口大小”指的是模型在计算注意力时一次考虑的输入序列中的标记数量。
在定义了这些术语之后,让我们来看一下 LlaMA 3 模型中这些参数的实际数值。(这些数值的原始源代码可以在 这里 找到。)
这些数字的原始源代码可以在这里找到:here。
牢记这些值,接下来的步骤将说明它们如何在模型中发挥作用。它们按照在源代码中出现的顺序列出。
[1] 上下文窗口在实例化 LlaMa 类 时,变量 _max_seqlen 定义了 上下文窗口。该类中还有其他参数,但这个参数与 transformer 模型相关,对我们来说很有用。这里的 _max_seqlen 为 8K,意味着注意力头一次可以扫描 8K 个 token。
接下来是 Transformer 类,它定义了词汇表大小和层数。这里的 词汇表大小 指的是模型可以识别和处理的单词(和标记)的集合。这里的 注意力层 指的是模型中使用的 transformer 块(注意力层和前向层的组合)。
根据这些数字,LlaMA 3 的词汇量为 128K,相当大。此外,它有 32 个 transformer 块的副本。
[3] 特征维度和注意力头特征维度和注意力头进入自注意力**模块。特征维度指的是嵌入空间中令牌的向量大小,而注意力头**则包含支持转换器中自注意力机制的QK模块。
在 Feed-Forward 类别 中,隐藏维度 特征指定了模型中的隐藏层数量。对于 LlaMa 3,隐藏层的大小是特征维度的 1.3 倍。更多的隐藏层可以让网络在将内部表示投影回较小的输出维度之前,创建和操作更丰富的内部表示。
- 第一个矩阵是输入特征矩阵,它通过Attention层生成加权注意力特征。在这张图中,输入特征矩阵的大小仅为5 x 3的矩阵,但在实际的Llama 3模型中,它的大小会增长到8K x 4096,这非常庞大。
- 接下来的是Feed-Forward网络中的隐藏层,其大小会增长到5325,然后在最终层中缩减回4096。
LlaMA 3 将上述的32个 transformer 块结合在一起,其中一个块的输出传递到下一个块,直到到达最后一个块为止。
一旦我们启动了上述所有组件,就到了将它们整合起来,看看它们如何产生 LlaMA 效应的时候了。
所以,这里发生了什么?
第一步:首先我们有输入矩阵,其大小为8K(上下文窗口)x 128K(词汇量)。这个矩阵经过嵌入过程,将高维矩阵转换为低维矩阵。
步骤2:在这种情况下,较低的维度是4096,这是我们在之前看到的LlaMA模型中特征的指定维度。 (从128K减少到4096是非常显著的。)
步骤 3: 此功能通过Transformer块进行处理,首先经过Attention层,然后是FFN层。Attention层在其特征上水平处理数据,而FFN层则在其维度上垂直处理数据。
步骤 4:步骤 3 会重复执行 32 层的 Transformer 块。最终得到的矩阵与用于特征维度的矩阵维度相同。
步骤 5:最后将该矩阵转换回原始的词汇矩阵大小,即128K,以便模型可以选择并映射词汇表中存在的那些单词。
那就是 LlaMA 3 在那些基准测试中表现出色并产生 LlaMA 3 效应的原因。
LlaMA 3的影响LlaMA 3 发布了两个模型版本——8B 和 70B 参数,以满足各种应用场景的需求。除了在标准基准测试中取得最先进的性能外,还开发了一套新的严格的人类评估集。Meta 承诺将陆续发布该模型的多语言和多模态版本,性能更优、更强。据早期报道(此处),即将发布的更大模型将拥有超过 400B 参数,性能几乎比 LlaMA 3 提升了近 20%。
然而,必须强调的是,尽管所有即将到来的变化和更新,有一件事将保持不变——这一切的基础——使这一惊人技术进步成为可能的变压器架构和变压器模块。
这可能只是一个巧合,但根据安第斯山脉的传说,真正的羊驼一直因其力量和智慧而受到人们的尊敬。这与“Gen AI”——“LlaMA”模型并没有太大不同。
所以,让我们一起踏上这个激动人心的GenAI Andes之旅,同时牢记这些大型语言模型背后的基石!
附言:如果你想自己完成这个练习,这里有一个空白模板的链接供你使用。
现在去玩吧,创造一些 LlaMA 3 的效果!
图片由作者提供
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章