《大语言模型:原理与工程实践》-大语言模型关键技术
[复制链接]
本帖最后由 kit7828 于 2024-8-28 17:22 编辑
大型语言模型(LLM,Large Language Models)是深度学习在自然语言处理(NLP)领域的一个突破性应用。它们通过分析和理解大量的文本数据,能够执行各种复杂的语言任务,如翻译、摘要、问题回答等。LLM中使用的一些关键技术主要有:
一、语言表示方面
1. 词表示
独热编码:词表示是大语言模型的基础,它涉及将词汇映射到高维空间中的向量。这些向量捕捉了词的语义和语法特性。独热编码的好处是运算的便捷,n维向量在乘积等运算时,维度只保留相应的维度,大大简化了运算,缺点是大量的矩阵稀疏问题。
词的分布式表示:词的语义可以由其上下文的分布表示,即可以通过该词的前后文推断其语义,应用于大模型的未标注数据,通过文档矩阵、上下文矩阵,以及降维操作等,获得词义。
基于预训练的词嵌入表示:先在语料库中利用某种语言模型进行训练,然后将其运用到下游任务中,词向量随着任务更新调整,如Word2Vec或GloVe,它们通过分析大量文本数据来学习词的上下文相关性。
2. 分词技术
分词技术是将文本分割成可处理的单元,如单词、短语或子词。对于英文,这可能只是单词的分割;而对于中文等语言,则需要更复杂的分词算法来识别词的边界。子词分词技术,如Byte Pair Encoding (BPE),允许模型处理未见过的词汇,通过组合已知的子词单元。
基于Word粒度、character粒度和subword粒度的分词区别如下:
目前,三种主流的构造subword的方法,分别是BPE、WordPiece和Unigram,一些常见的预训练模型使用的分词方法如下图所示:
分为词向量后,就可以对语句用独热进行矩阵表示,如
这里,假设一个矩阵处理5000个词向量。
自然语言处理中,通过对大量的文本预料训练后得到一个嵌入矩阵E,大致为某个词向量的权重值。
矩阵运算后,可以得到以下的结果,便于后续进入Transformer进行运算
二、Transformer结构
Transformer 架构是目前语言大模型采用的主流架构,其基于自注意力机制(Self-attention Mechanism)模型。其主要思想是通过自注意力机制获取输入序列的全局信息,并将这些信息通过网络层进行传递。标准的Transformer如图2-1所示,是一个编码器-解码器架构,其编码器和解码器均由一个编码层和若干相同的Transformer 模块层堆叠组成,编码器的Transformer 模块层包括多头注意力层和全连接前馈网络层,这两部分通过残差连接和层归一化操作连接起来。与编码器模块相比,解码器由于需要考虑解码器输出作为背景信息进行生成,其中每个Transformer 层多了一个交叉注意力层。
Transformer 架构包含编码层与Transformer 模块两个核心组件。
编码层,主要是将输入词序列映射到连续值向量空间进行编码,每个词编码由词嵌入和位置编码构成,由二者加和得到:
1)词嵌入,在Transformer架构中,词嵌入是输入数据的第一步处理过程,它将词映射到高维空间中的向量,可以捕获词汇的语义信息,如词义和语法关系。每个词都被转化为一个固定长度的向量,然后被送入模型进行处理。
2)位置编码,由于自注意力机制本身对位置信息不敏感,为了让模型能够理解序列中的顺序信息,引入了位置编码。标准Transformer 架构的位置编码方式是使用正弦和余弦函数的方法。对于每个位置i,对应的位置编码是一个长度为d的向量,其中d是模型的嵌入维度。这个向量的第j个元素由以下公式计算:如果 j 是偶 数,那么编码的第j个元素为码的第j个元素为 ;如果 j 是奇数,那么编码的第j个元素为
Transformer模块,通过自注意力机制获取输入序列的全局信息,并将这些信息通过网络层进行传递,包括多头注意力层和全连接前馈网络层,这两部分通过残差连接和层归一化操作连接起来,Transformer 模块,由自注意力层、全连接前馈层、残差连接和层归一化操作等基本单元组成。
1)自注意力层,注意力(Attention)是Transformer模型的核心组成部分。它包含一个查询矩阵k,一个键矩阵k 和一一个值矩阵v ,其中矩阵中的每一行对应一个词。注意力机制的计算方式:
直观来说,矩阵H中的每一行是V中行向量的加权和,其中权重由查询向量和键矩阵的点积决定。记具有序列长度n的查询序列的特征矩阵和具有序列长度为 m 的键-值序列的特征矩阵分别为和,三个矩阵Q、K、V由三个线性变换得到, , , . Transformer 模型采用的特定注意力机制被称为自注意力机制,因为三个矩阵Q、K、V都来自于前一层的相同特征矩阵 X 。
此外,Transformer 采用了多头自注意力(Multi-head Attention)机制,即输入序列被线性映射多次得到不同的投影矩阵。多个尺度化后点积注意力可以并行计算,并产生多个自注意力输出。多头注意力生成多个高维的注意力表示,这使得其比单头注意力具有更强的表达能力。
2)全连接前馈层,在注意力层之后的全连接前馈层由两个线性变换和一个非线性激活函数组成。将输入矩阵表示为 X ,前馈层的输出:
其中,是激活函数(通常为ReLU或GELU),而 , , , 均为可学习的参数。
FFN作用包括两个方面:(1)非线性激活:在每个注意力模块之后引入了非线性激活函数,这有助于增强模型的表达能力;(2)信息整合:自注意力机制允许模型在不同的位置间建立联系,而全连接前馈网络则在每个位置独立地对信息进行整合,这两者结合起来,使得模型既能捕获全局(长距离)的信息,又能在每个位置进行局部的信息整合。
3)残差连接和层归一化,在每个注意力层和每个全连接前馈层之后,Transformer 都应用残差连接(Residual Connection)和层归一化(Layer Normalization)技术,这有助于在模型非常深时保留信息并确保模型性能。具体来说,对于某一层神经网络 ,残差连接和归一化层定义为 .
在Transformer 模型被提出之后,它也衍生出了相当一部分的变体,包括在编码器和解码器中出现了不同方式的注意力机制、归一化操作、残差连接、前馈层和位置编码等。
三、大模型的主要应用
1.提示工程(Prompt Engineering)
理解和设计有效的提示词以指导大模型生成期望的输出
研究不同的提示策略,如 Few-shot prompting、Zero-shot prompting.
探索提示词的优化和自动生成技术:
2.检索增强生成(Retrieval-Augmented Generation, RAG)
理解RAG 模型如何结合外部知识库以增强生成能力,
堂握信息检索技术,包括搜索引擎优化和数据库查询,
实现和维护用于RAG的数据管道和索引机制。
3.智能体(Agent)
设计和开发基于AI的智能体,能够与用户和环境互动
理解强化学习原理,以及如何应用于智能体训练。
掌握多智能体系统(MAS)的设计原则和实现
4.模型微调(Fine-tuning)
理解预训练模型和微调过程,以及如针对特定任务进行模型调整
掌握数据预处理、标注和增强技术,以优化微调效果
实现和维护模型训练和评估的流程
|