一文讲清:大模型的定义、表现形式、架构、Transformer 深度学习架构

161 阅读8分钟

前言:

这是一篇写给0基础新手小白想要学习AI大模型的文章,本文我们将从大模型定义、大模型的表现形式、Transformer 深度学习架构、大模型的架构四个部分去讲解,助于大家能够更好地去理解大模型。

图片

大模型定义

大语言模型(英文:Large Language Model,缩写LLM),即大型语言模型 (LLM),大型语言模型 (LLM) 之所以大,是指具有大规模参数和复杂计算结构(超过 10 亿个参数),LLM通常基于 Transformer 模型架构,由深度神经网络构建,对海量数据进行预训练处理。

LLM的特点是规模庞大,包含数十亿的参数,帮助它们学习语言数据中的复杂模式。大模型的底层转换器包含一系列神经网络,分为编码器和解码器,且具有自注意力功能。

下面是来自维基百科的解释:

一个大型语言模型(LLM)以其实现通用语言理解和生成的能力而引人注目。LLM通过在计算密集的自监督和半监督训练过程中从文本文档中学习统计关系来获得这些能力。LLM是遵循Transformer架构的人工神经网络。

图片

简单来说,两个特点:

(1) LLM模型基本上是一个具有大量参数/海量参数的神经网络。

模型的大小即参数数量。 模型越大,参数越多。

例如,GPT-3有1750亿个参数,而GPT-4可能有超过1万亿个参数。

(2)LLM是在大量文本数据集(如书籍、网站或用户生成内容)上进行训练的。

大型语言模型 (LLM) 是一种在海量文本数据上进行训练的深度学习模型,用于学习语言的模式、语法、语义和语境。

LLM旨在理解和生成新的内容,LLM以自然的方式,按照提示,生成新文本或者其他形式的内容。

ChatGPT这类的预训练模型在训练过程中需使用的数据样本较多。ChatGPT接受了从互联网上抓取的数千亿个分词的训练,而庞大的训练数据集包含有害言论,会被人工智能学习。

对于ChatGPT这样的语言模型,如果没有人工标注来筛除一些不恰当的内容,那么它不仅会给出一些错误的信息,更会对用户造成心理不适。这就需要数据的标注。

由于样本数非常多,数据标注的需求较高。数据标注的工作流程包括数据标注、打标签、分类、调整和处理等,是构建AI模型的数据准备和预处理工作中不可或缺的一环。

图片

大模型的表现形式

对很多大模型小白来说,一个直观的问题是:大模型的表现形式,是什么?

是一个可以执行的程序?

是一个数据库?

实际上, 一个训练好的大模型,是一个特定格式的文件。

比如,Meta 开发并“开放”的LLaMA-2大模型,是其此前发布的大模型LLaMA的升级迭代版本,是一个巨大进步的版本。

LLaMA-2是一个基础模型,Meta开放了两个版本,一个是纯无监督训练出来的基础模型,另一个是在基础模型之上进行有监督微调SFT和人类反馈的强化学习RLHF进行训练的Chat模型。

所发布的SFT、RLHF两个版本中,都提供了7B、13B 和70B的三个参数规模的模型。

LLaMA-2-70B大模型,表现形式就是下面的一个文件

图片

Llama 原始的意思是“美洲驼【A llama is a South American animal with thick hair, which looks like a small camel without a hump.】”,也因此,许多基于 LLaMA的模型都以动物名称来命名。

在上面的图像中,parameters 文件是 Meta's Llama-2-70b model,其大小为140GB,包含70亿个参数(以数字格式表示)。run.c 文件是推理程序,使用这些参数进行模型推理。

这是huggingface设计的一种新格式,大致就是以更加紧凑、跨框架的方式存储 Dict[str, Tensor] ,主要存储的内容为tensor的名字(字符串)及内容(权重)。

图片

其官网对文件格式的详细内容进行了解释,本质上就是一个JSON文件加上若干binary形式的buffer。

对于tensor而言,它只存储了数据类型、形状、对应的数据区域起点和终点。

因此它只支持存储dense and contiguous tensor,也就是稠密张量(没有stride,没有view等信息)。

本质上,它就像存储了一大块连续的内存,甚至可以直接把文件映射到内存里(使用Python的 mmap 模块)。

.safetensors 支持五种框架,包括pytorch、TensorFlow、flax(jax)、paddle(paddlepaddle)、numpy。

对每个框架都提供了 save/save_file/load/load_file 这四个函数:

  • load( data: bytes, device = 'cpu' ) → Dict[str, Tensor]
  • load_file( filename: Union[str, os.PathLike], device = 'cpu' ) → Dict[str, Tensor]
  • save( tensors: Dict[str, Tensor], metadata: Optional = None ) → bytes
  • save_file( tensors: Dict, filename: Union[str, os.PathLike], metadata: Optional = None ) →None

对于 numpy ,函数没有 device 参数; Tensor 类型根据具体的框架替换成框架的具体类,例如:torch.Tensor 或者 np.array 。

训练这些超大型模型非常昂贵。像GPT-3这样的模型的训练成本高达数百万美元。

图片

截至今日,最杰出的模型GPT-4不再是单一模型,而是由多个模型混合而成。每个模型都是在特定领域进行训练或微调,并在推理过程中共同发挥作用,以实现最佳性能。

Transformer 深度学习架构

LLM (Large Language Model) 是怎么来的? 或者 从何而来?

简单来说,LLM (Large Language Model) 是通过深度学习得到的。

LLM (Large Language Model) 是指由大量参数组成的神经网络模型,用于自然语言处理任务,例如文本生成、语言理解等。

通常情况下,LLM基于Transformer架构构建,GPT系列模型就是基于Transformer的架构。

因此,LLM和Transformer之间存在密切的关联,LLM通常是Transformer的一种具体实现。

什么是Transformer?

Transformer是一种常用于构建语言模型的深度学习架构,它采用自注意力机制来处理序列数据,被广泛应用于机器翻译、文本生成等任务中。

2018年10月,Google发出一篇论文 《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》BERT模型横空出世,并横扫NLP领域11项任务的最佳成绩!

而在BERT中发表重要作用的结构就是Transformer,之后又相继出现XLNET,roBERT等模型击败了 BERT,但是他们的核心没有变,仍然是:Transformer

Transformer 网络架构架构由 Ashish Vaswani 等人在 Attention Is All You Need一文中提出,并用于机器翻译任务,和以往网络架构有所区别的是,该网络架构中,编码器和解码器没有采用 RNN 或 CNN等网络架构,而是采用完全依赖于注意力机制的架构。

Transformer改进了RNN被人诟病的训练慢的特点,利用self-attention可以实现快速并行,Transformer网络架构如下所示:

图片

大模型的架构

大型语言模型(LLM)通常采用 Transformer 架构。

Transformer的中文翻译是 “变换器”“转换器”。

Transformer是一种深度学习模型架构,最初由Vaswani等人在2017年的论文中提出,用于自然语言处理任务,如机器翻译。

随后,Transformer架构被广泛应用于各种语言任务,并成为许多大型语言模型(如GPT系列、BERT等)的基础。

Transformer架构的核心是自注意力机制(self-attention mechanism),它使得模型能够同时考虑输入序列中的所有位置,从而在处理长距离依赖关系时表现出色。

此外,Transformer还包括位置编码(position encoding)和前馈神经网络(feedforward neural network)等组件。

大型语言模型通常会对Transformer架构进行扩展和改进,以处理更大的数据集和更复杂的语言任务。

例如,GPT系列模型将Transformer架构与自监督学习相结合,通过对大规模文本数据进行预训练,从而使模型具有广泛的语言理解和生成能力。

总的来说,大型语言模型的架构基于Transformer,但会根据具体任务和性能需求进行调整和扩展,以实现更好的性能和效果。

在LLM出现之前,基于神经网络的机器学习训练受到相对较小的数据集的限制,并且对于上下文理解的能力非常有限。这意味着早期的模型无法像人类一样理解文本。

当这篇论文首次发表时,其旨在用于训练语言翻译模型。然而,OpenAI团队发现变压器架构是字符预测的关键解决方案。

一旦在整个互联网数据上进行了训练,该模型有可能理解任何文本的上下文,并且能够像人类一样连贯地完成任何句子。

以下是一个图示,展示了模型训练过程中发生的情况:

图片

Transformer由论文《Attention is All You Need》提出,现在是谷歌云TPU推荐的参考模型。论文相关的Tensorflow的代码可以从GitHub获取,其作为Tensor2Tensor包的一部分。哈佛的NLP团队也实现了一个基于PyTorch的版本,并注释该论文。

AI大模型全套学习资源【点击蓝字获取】