大语言模型入门之综述阅读

这个系列用于记录我的大语言模型学习过程


前言

        这篇主要通过阅读大语言模型综述《Large Language Models:A Survey》来学习LLM的一些概念和基础知识。

论文链接:https://arxiv.org/abs/2402.06196

基础知识可以参考:从零开始学习大语言模型(一)_哔哩哔哩_bilibili

论文翻译可以参考:最新语言大模型综述 Large Language Models A Survey_large language models: a survey-CSDN博客


一、摘要

        本文综述了大型语言模型(LLMs)的研究进展和应用情况。LLMs通过在大量文本数据上训练数十亿个参数,实现了对自然语言的理解和生成能力。本文介绍了三种流行的LLM家族(GPT、LLaMA、PaLM),讨论了它们的特点、贡献和限制,并给出了构建和增强LLMs的技术概览。此外,还介绍了用于LLM训练、微调和评估的流行数据集,以及广泛使用的LLM评估指标,并比较了几种流行的LLMs在代表性基准测试上的性能表现。最后,文章探讨了开放性挑战和未来研究方向。

        将这篇综述整理成如下所示的脑图。

二、文章结构

1.引言

  • 历史背景:文章首先回顾了语言建模的悠久历史,从20世纪50年代Shannon将信息理论应用于人类语言开始,到统计语言模型在语音识别、机器翻译和信息检索等领域的基础性作用。
  • 现代进展:强调了基于Transformer的大型语言模型(LLMs)的最新进展,这些模型通过在网络规模的文本语料库上进行预训练,极大地扩展了语言模型的能力。

2.大型语言模型(Large Language Models, LLMs)

  • 定义与特点:LLMs通过训练数十亿乃至数万亿的参数,在海量文本数据上学习通用语言理解和生成能力。
  • 主流家族:文章详细介绍了GPT、LLaMA和PaLM三大LLM家族,讨论了它们各自的架构、规模、训练数据以及在不同任务上的表现。
  1. GPT家族:GPT家族是基于解码器的Transformer模型,由OpenAI开发。该家族包括多个模型,如GPT-1、GPT-2、GPT-3等。其中,GPT-3是最新的成员,具有更强的语言理解和生成能力,展示了在不使用梯度更新或微调的情况下进行下游任务的能力。此外,还有一种称为InstructGPT的改进版本,它通过与用户意图对齐来引导模型执行特定任务。

  2. LLama家族:LLama是由Meta开发的一系列基础语言模型,它们都是开源的,可以在研究社区中免费使用。这个家族中的第一个模型于2023年发布,参数范围从7亿到65亿。这些模型是在公共数据集上预训练的,采用了类似于GPT-3的架构,并进行了一些小的修改,例如使用SwiGLU激活函数代替ReLU,使用旋转变换而不是绝对位置编码,以及使用均方根层归一化而不是标准层归一化。这个家族的模型已经证明比GPT-3更强大,可以作为竞争性的开源模型。

  3. PaLM家族:PaLM是由Google开发的一个庞大的语言模型家族,其中包括540亿参数的PaLM-540B和260亿参数的PaLM-2。这些模型在广泛的自然语言任务和用例上进行了预训练,并且在许多基准测试中表现出色。此外,还有一些领域特定的PaLM变体,如医疗领域的Med-PaLM。

想了解各个模型可以深入阅读该综述,这里就不再赘述。

3.LLMs的构建与增强

  • 构建技术:概述了构建LLMs的关键技术,包括模型架构、训练策略、数据预处理等
  • 增强方法:讨论了通过知识蒸馏、模型压缩、多模态融合等技术来增强LLMs性能的方法。

3.1 构建大概流程

A.主要LLM架构

        最广泛使用的LLM架构是仅编码器、仅解码器和编码器-解码器。它们大多基于Transformer(作为构建块)。因此,我们在这里也回顾了Transformer架构:大语言模型入门之Transformer-CSDN博客

1.仅编码器模型(Encoder-Only)

        对于这类模型,在每个阶段,注意力层可以访问初始句子中的所有单词。这些模型的预训练通常包括以某种方式破坏给定句子(例如,通过对其中的单词进行屏蔽)并要求模型找到或重建初始句子。编码器模型非常适用于需要理解完整序列的任务,比如句子分类、命名实体识别和抽取式问答。

        这就像是一个阅卷老师。他去批改卷子(输入的信息),然后根据卷子的内容给出分数。Encoder-Only模型就是专注于理解和分析输入的信息(卷子上的内容),而不是创造新的内容。

2.仅解码器模型(Decoder-Only)

        对于这些模型,在每个阶段,对于任何单词,注意力层只能访问该单词之前位置的单词。这些模型有时也被称为自回归模型。这些模型的预训练通常被制定为预测序列中的下一个单词(或标记)。仅解码器模型最适用于涉及文本生成的任务。GPT 模型是这一模型类别的杰出示例。

        这就像一个讲故事的人。给一个开头,比如“山上有座庙,庙里有个老和尚”,然后他会继续这个故事,讲述下去,一直到故事结束。Decoder-Only模型就是这样,它接收一些信息(开头),然后生成接下来的内容(故事)。

3.编码器-解码器模型(Encoder-Decoder)

        这些模型同时使用编码器和解码器,有时被称为序列到序列模型。在每个阶段,编码器的注意力层可以访问初始句子中的所有单词,而解码器的注意力层只能访问输入中给定单词之前位置的单词。这些模型通常使用编码器或解码器模型的目标进行预训练,但通常涉及更复杂的内容。例如,一些模型通过用单个掩码特殊词替换文本的随机跨度(可能包含多个单词),然后目标是预测此掩码词替换的文本来进行预训练。编码器-解码器模型最适用于根据给定输入生成新句子的任务,例如摘要、翻译或生成式问答。
        这就像是翻译家。他先听你说一段话(比如英文),理解它,然后把它翻译成另一种语言(比如中文)。Encoder-Decoder模型就是这样,先理解输入的信息(Encoder部分),然后基于这个理解生成新的、相关的内容(Decoder部分)。

B.数据清洗

  • 数据过滤:数据过滤旨在提升训练数据的质量和训练后语言模型的有效性。常见的数据过滤技术包括:
  1. 去除噪声:指消除可能影响模型泛化能力的不相关或嘈杂数据。例如,可以考虑从训练数据中删除虚假信息,以降低模型生成错误响应的可能性。质量过滤的两种主流方法包括:基于分类器和基于启发式的框架。
  2. 处理异常值:识别和处理数据中的异常值或异常情况,以防止它们对模型产生不成比例的影响。
  3. 解决不平衡:平衡数据集中类别或类别的分布,以避免偏见并确保公平代表性。这对于负责任的模型训练和评估特别有用。
  4. 文本预处理:通过删除停用词、标点符号或其他对模型学习贡献不大的元素来清理和标准化文本数据。
  5. 处理歧义:解决或排除可能在训练过程中使模型困惑的模糊或矛盾数据。这有助于模型提供更明确和可靠的答案。
  • 去重:去重指的是在数据集中删除重复实例或相同数据的重复出现。重复数据点可能会在模型训练过程中引入偏见,并降低多样性,因为模型可能多次从相同示例中学习,可能导致对这些特定实例过度拟合。一些研究表明,去重可以提高模型对新的、未见数据的泛化能力。

具体的数据清洗方法可以参考:Four Data Cleaning Techniques to Improve Large Language Model (LLM) Performance | by Intel | Intel Tech | Medium

C.分词

        分词是将文本序列转换为更小部分(称为标记)的过程。虽然最简单的分词工具只是根据空格将文本切分为标记,但大多数分词工具依赖于词典。然而,在这种情况下,词汇表外(OOV)是一个问题,因为分词器只认识其词典中的词。为增加词典的覆盖范围,用于大型语言模型的流行分词器基于子词,这些子词可以组合成大量单词,包括训练数据中未见的单词或其他语言中的单词。接下来,我们描述三种流行的分词器。

  1. BytePairEncoding:BytePairEncoding 最初是一种使用字节级频繁模式来压缩数据的算法。按定义,该算法主要尝试保留常见单词的原始形式,并分解不常见的单词。这种简单的范例使得词汇表不会很大,同时也足够好地表示常见单词。如果后缀或前缀在算法的训练数据中也经常出现,那么常见单词的形态形式也可以很好地表示。
  2. WordPieceEncoding:这种算法主要用于非常知名的模型,如 BERT 和 Electra。在训练开始时,该算法获取训练数据中的所有字母,以确保训练数据中不会留下 UNK 或未知的内容。当模型接收到无法由分词器进行分词的输入时,就会出现这种情况。这种情况通常发生在一些字符无法被分词器进行分词的情况下。与 BytePairEncoding 类似,它试图最大化根据频率将所有标记放入词汇表的可能性。
  3. SentencePieceEncoding:尽管前面描述的两种分词器强大且与基于空格分词相比具有许多优势,但它们仍然默认单词始终由空格分隔。这种假设并不总是正确,事实上,在某些语言中,单词可能会被许多嘈杂元素(如不需要的空格或甚至虚构的单词)破坏。SentencePieceEncoding 试图解决这个问题。

        这部分具体介绍在另一篇:大语言模型入门之Tokenization-CSDN博客

D.位置编码

  • 绝对位置嵌入:(APE) 在原始 Transformer 模型中被用于保留序列顺序的信息。因此,单词的位置信息被添加到编码器和解码器堆栈底部的输入嵌入中。关于位置编码,有多种选项,可以是学习的,也可以是固定的。在传统的 Transformer 中,正弦和余弦函数被用于此目的。使用 APE 在 Transformer 中的主要缺点是限制于一定数量的标记。此外,APE 未考虑标记之间的相对距离。
  • 相对位置嵌入:(RPE)扩展了自注意力机制,考虑输入元素之间的成对链接。RPE 被添加到模型的两个级别:首先作为键的附加组件,随后作为值矩阵的子组件。这种方法将输入视为具有标签和有向边的全连接图。对于线性序列,边可以捕获输入元素之间的相对位置差异的信息。一个剪切距离,表示为k,2\leqslant k\leqslant n-4,指定了相对位置的最大限制。这使得模型能够对不属于训练数据的序列长度做出合理的预测。
  • 旋转位置嵌入:旋转位置嵌入(RoPE)解决了现有方法的问题。学习的绝对位置编码可能缺乏泛化性和意义性,特别是当句子很短时。此外,像 T5 的位置嵌入这样的当前方法在构建位置之间的完整注意力矩阵时面临挑战。RoPE 使用旋转矩阵来编码单词的绝对位置,并同时在自注意力中包含显式的相对位置细节。RoPE 带来了一些有用的特性,如对句子长度的灵活性,随着相对距离的增加减少单词依赖性,以及通过相对位置编码改进线性自注意力的能力。GPT-NeoX-20B、PaLM、CODEGEN 和 LLaMA 是利用 RoPE 架构的模型之一。
  • 相对位置偏差: 这种类型的位置嵌入的概念旨在促进推理过程中对比训练中遇到的更长序列的外推。Press等人提出了带有线性偏差的注意力(ALiBi)。他们不是简单地将位置嵌入加到词嵌入中,而是为查询-键对的注意力分数引入了偏差,对它们的距离施加了罚款。在BLOOM模型中,利用了ALiBi。

E.模型预训练

        预训练是大型语言模型训练流程中的第一步,它帮助语言模型获得基本的语言理解能力,这对各种与语言相关的任务都很有用。在预训练期间,语言模型通常会以自监督的方式在大量(通常是)无标签的文本上进行训练。用于预训练的不同方法包括下一个句子预测 ,其中最常见的两种方法包括下一个标记预测(自回归语言建模)和掩码语言建模。

F.微调和指令微调

        早期的语言模型(如 BERT)使用自监督训练。为了使基础模型有用,需要使用带标签数据对其进行特定任务的微调(称为监督微调或 SFT)。例如,在原始的 BERT 论文中,该模型被微调用于 11 个不同的任务。尽管最近的语言模型不再需要进行微调即可使用,但它们仍然可以从任务或数据特定的微调中受益。

        微调不一定只针对单个任务,还有不同的多任务微调方法。微调到一个或多个任务已知可以改善结果并减少提示工程的复杂性,它可以作为检索增强生成的一种替代方法。此外,进行微调可能是明智的另一个原因。例如,有人可能希望微调以使模型接触到在预训练期间未曾接触过的新数据或专有数据。

G.对齐

H.解码策略

I.成本效益的训练/推理/适应/压缩

3.2 增强方法

4.数据集与评估

  • 数据集:介绍了用于LLMs训练、微调和评估的流行数据集,包括它们的特点、规模和覆盖范围。
  • 评估指标:回顾了广泛使用的LLM评估指标,如准确率、BLEU分数、ROUGE-L等,并讨论了这些指标的优缺点。

5.性能比较

  • 基准测试:在代表性基准测试集上比较了多个流行LLMs的性能,展示了它们在语言理解、生成、问答等任务上的表现差异。

6.挑战与未来方向

  • 开放挑战:讨论了LLMs面临的几个关键挑战,包括模型可解释性、计算效率、数据隐私与偏见等
  • 未来研究:提出了未来可能的研究方向,如更高效的模型架构、更精细的评估体系、以及LLMs在更多实际场景中的应用。

(未完待续。。。)


总结

《Large Language Models: A Survey》一文为大型语言模型的研究提供了全面的视角和深入的见解。通过综述LLMs的发展历程、主流家族、构建与增强技术、数据集与评估方法以及性能比较,文章不仅揭示了LLMs在自然语言处理领域的巨大潜力,也指出了当前面临的挑战和未来可能的研究方向。对于学习大模型的同学来说,这篇无疑是一份很系统的学习参考资料。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值