01 预备知识概览
本文不涉及面向对象编程(OOP),仅需掌握简单的 Python 语法即可。不过,要想顺畅阅读这篇博客,具备对神经网络和 Transformer 架构的基本认识是必不可少的前提。这两点便是学习本文的全部要求。
02 LLaMA 2 与 LLaMA 3 的区别
在探讨相关技术的细枝末节之前,需要了解的一点是,LLaMA 3的架构设计与 LLaMA 2 相同。因此,即便你尚未深入了解 LLaMA 3 的技术细节,阅读这篇博客也没有啥问题。即便不了解 LLaMA 2 的架构也别着急,我们也会对其技术细节进行概述,尽力确保所有感兴趣的读者都能阅读本文。以下是有关 LLaMA 2 与 LLaMA 3 的几个核心要点:
03 LLaMA 3 架构探秘
在着手编写代码之前,了解 LLaMA 3 架构非常重要。为了帮助各种读者更形象地理解这一概念,特附上一张对比图,直观展示原始 Transformer 架构与 LLaMA 2/3 及 Mistral 之间的异同。
现在,让我们深入了解一下 LLaMA 3 中几个核心要素的细节:
3.1 使用 RMSNorm 进行预归一化
沿袭 LLaMA 2 的做法,LLaMA 3 采取了一项名为 RMSNorm 的技术,来对每一个 Transformer 子层