引言

最近准备给大家整个大活儿,写一个系列文章,给大家仔细掰扯掰扯有关LLM(大语言模型)的这些事儿。这工作我个人盘算着肯定是吃力不讨好的,一方面由于偏科普,所以需要查阅大量的资料以免出现错误;另一方面,这些内容确实不够“吸睛”,不知道大家感不感兴趣。

照例还是先讲下创作这个系列的动机:

  • 搭建个人知识体系。记录是巩固知识的最佳途径,尤其在这个“伪知识”爆炸的时代。和大家一样,我每天也会接触达大量的错误信息,大部分一眼离谱的就罢了,还有很多似是而非的。这些“伪知识”看的多了,难免就是进入知识误区,开始人云亦云。所以,适当的进行知识的梳理和记录,非常有助于排除这类“知识噪声”。

  • 为中文互联网尽一点绵薄之力。其实不仅是中文互联网,全世界主要国家的互联网高质量内容的比例都在不断下降。尤其是在这波ChatGPT浪潮的加持下,创作的门槛已经被无限的拉低了。所以写一些没人愿意碰的概念科普,也算是尽了自己的绵薄之力了。虽然只是九牛一毛,就当是聊表寸心了。

  • 为以后得文章铺路。后期我打算写一些较为深入的AI工具使用教程,在这些工具的使用过程中,可能会需要使用者对一些概念有正确的理解,到时候我直接把相关的文件链接贴上来就行了,不用一次次重复了。

  • 科普。当然,肯定还有一些小伙伴只听过概念,没仔细研究过这些概念的内核,正好可以了解下。

本系列文章将会遵循以下原则:

  • 尽量保持有趣并通俗易通,不过多涉及数学。毕竟是以科普为目标的,搞得都是数学公式,描述是方便了,理解上却困难了。
  • 尽量完善参考文献。关键位置尽可能都给出出处,方便大家深入研究或者查阅校对。但是也不可能像论文一样给的那么详细。

第一篇文章,我们就来讲讲大语言模型的“大”是从何而来~

自然语言处理

要把LLM的事情说清楚,咱们还得从LLM的终极目标自然语言处理理(Natural Language Processing, NLP)说起。

自然语言处理理(Natural Language Processing, NLP)是利用计算机技术来分析、理解和处理自然语言的一门学科, 涉及到语言学、计算机科学、人工智能等交叉领域,关注计算机和人类(自然)语言之间的交互。

翻译一下,NLP的终极目标就是让人和机器能够通过自然语言进行交互。这里的自然语言特指的是符号语言,也就是文字,不包括语音。NLP其实还可以被细分为很多不同的任务,例如词法分析、句法分析、语义分析、文本生成、文本摘要、文本分类、信息抽取、机器翻译、问答系统、对话系统、知识图谱等。但是无论是哪种任务,我们都需要先对建立一个语言模型(Language Model , LM),再以这个模型为基础来完成具体的任务。

语言模型

语言模型(Language Model , LM)的目的是计算一个词序列(如一个句子或一个文档)出现的概率,或者给定一个上下文,预测下一个词的概率。

翻译一下,就是建立一个计算某个(或某些)文字*出现概率的模型。有了语言模型,NLP问题就可以用数学语言来进行描述了,自然也就可以用数学方法来解决了。

*这里用文字是为了便于理解,但是是不准确的,在实际处理中大多用的是token而不是文字。后面也会有类似的问题,就不再赘述了。

统计语言模型

既然是概率问题,首先想到的肯定是用统计的方法来解决,这也就自然引出了最早的语言模型—统计语言模型(Statistical language models , SLM)。

统计语言模型(Statistical language models , SLM)是一种基于统计分析的结果来预测某个词在给定的上下文中出现概率的模型。这种模型的基本工作原理是通过分析大量的语料库,学习到词语之间的概率关系,然后利用这些概率关系来生成或者理解语言。

这里我举一个典型的SLM的例子,大家就容易理解了。

N-gram模型是一种最常用的统计语言模型,它假设一个词的出现只与前面N-1个词相关。这种模型的优点是计算简单,但是缺点是无法捕捉到长距离的词语依赖关系。

方法非常朴素,就是首先创建一个训练集,然后计算训练集里面每个字和其他字相关的概率。然后根据这个概率去预测后续任务中可能出现的字。这个方法的优点很明显,就是简单易行,对于特定任务也有不错的效果。但是缺点也同样明显,由于很难获取高阶统计量,方法的上限被极大的限制了。

在这个阶段,语言模型处于一个能用,但是又不是很好用的状态中。只有在某些特定任务,统计语言模型才能获得不错的效果。

神经网络语言模型

随着神经网络(Neural Network , NN)方法的提出和演化,语言模型也随之进化到了第二阶段—神经网络语言模型(Neural Network Language Model , NNLM)。

神经网络语言模型(Neural Network Language Model , NNLM)使用神经网络(如RNN、LSTM、GRU等)来预测词序列的概率。这些模型可以学习到词语的语义信息,能够处理更复杂的语言现象。

NNLM的基本工作原理是:首先,每个词都被表示为一个高维的向量,这个向量被称为word embedding。然后,模型会使用这些word embedding来计算词序列的概率。具体来说,模型会将前N个词的词嵌入作为输入,然后通过神经网络计算出下一个词的概率分布。

NNLM的一个重要特性是它可以捕捉到词与词之间的语义和语法关系。例如,模型可能会学习到"king"和"queen"、"man"和"woman"之间的关系。这是因为在训练过程中,模型会尝试将语义或语法上相似的词映射到word embedding空间中的相近位置。

但是,使用基础的NN方法,还是不能有效地捕获全局语义信息。但是随着新的NN方法的不断出现(如RNN、LSTM、GRU等),NNLM在很多领域的效果获得了长足的进步,已经具备了极高的实用价值。

基于Transformer的语言模型

从道理上讲,基于Transformer的语言模型也属于NNLM的一部分,但是由于这类模型对截止目前为止的NLP领域影响巨大,所以单独拿出来分为一类。目前大部分知名的大语言模型都是基于Transformer构架的,包括:BERT(Bidirectional Encoder Representations from Transformers)、GPT(Generative Pretrained Transformer)和 T5(Text-to-Text Transfer Transformer)等。

Transformer构架由 Vaswani 等人在 2017 年的论文 《Attention is All You Need》提出。它主要依赖于自注意力(self-attention)机制来捕捉输入序列中的全局依赖关系,而不依赖于循环或卷积结构。其优点包括:

  • 处理长距离依赖:Transformer架构的自注意力机制使得模型可以直接关注到序列中任何位置的信息,因此可以有效地处理长距离依赖问题。这是传统的循环神经网络(RNN)和卷积神经网络(CNN)难以做到的。
  • 并行计算:由于Transformer架构不依赖于序列的顺序,因此可以并行处理整个序列,大大提高了计算效率。这对于处理大规模数据和训练大型模型非常重要。
  • 灵活的模型结构:Transformer架构由多个编码器和解码器堆叠而成,可以根据任务的需要灵活地调整模型的深度和宽度。此外,通过调整自注意力机制的参数,可以控制模型关注序列中的哪些部分。
  • 强大的表示能力:Transformer架构可以生成丰富的序列表示,这些表示能够捕捉到序列中的复杂模式和结构。这使得Transformer架构在许多NLP任务中都表现出了优越的性能,包括机器翻译、文本摘要、情感分析等。
  • 预训练和微调:Transformer架构支持预训练和微调的策略。在预训练阶段,模型在大量的无标签文本数据上进行训练,学习到文本数据的通用特性;在微调阶段,模型在特定任务的标签数据上进行训练,使得模型可以适应特定的任务。这种策略大大提高了模型的泛化能力和效率。

当然,Transformer构架也不是完美的,也有以下缺陷:

  • 计算和存储需求:Transformer模型通常包含大量的参数,这意味着它们需要大量的计算资源来训练。此外,由于自注意力机制需要计算序列中所有元素之间的关系,这会导致计算复杂度和存储需求与序列长度的平方成正比。这使得Transformer模型在处理非常长的序列时可能会遇到困难。
  • 缺乏显式的序列顺序信息:虽然Transformer模型通过位置编码来注入序列的顺序信息,但它并没有像循环神经网络(RNN)那样显式地建模序列的顺序。这可能会导致模型在处理一些强依赖于顺序信息的任务时表现不佳。
  • 训练不稳定:由于Transformer模型的深度和复杂性,它们的训练过程可能会比较不稳定。例如,模型可能会遇到梯度消失或梯度爆炸的问题。
  • 解释性差:虽然Transformer模型的性能很好,但它们的解释性通常比较差。也就是说,很难理解模型的决策是如何做出的,这在某些应用中可能是一个问题。
  • 需要大量训练数据:为了充分利用Transformer模型的能力,通常需要大量的训练数据。对于一些小数据集,使用Transformer模型可能会导致过拟合。

优点和缺点对比着一起看,我们发现了什么?发现Transformer构架哪哪都好,就是必须得“大”才行。这里的“大”值的不仅是模型训练数据要大,模型运行资源要大,甚至用于训练模型的资金量也必须要大才行,看起来是典型的“大力出奇迹”任务(当然,事实上并不真的是这样,但是对比其他方法,Transformer构架确实也对“大力”更加友好)。所以,我们今天谈到的语言模型(LM)就都变成了大语言模型(LLM)。

结语

这篇文章,我们从NLP讲起,非常简短的帮大家回顾了语言模型的几个重要发展阶段。同时,也说明白了GPT中的T具体代表的啥。下一篇文章,我们讲直指本次AI热潮的“罪魁祸首”ChatGPT,讲讲它是从哪里一步步演化而来的,都经历了哪些技术演进。

这类文章写着真累,希望对大家能有帮助。如果有帮助的话,希望给个点赞或者分享,让更多的人看到。您的支持是我最大的动力,感谢!!!

另:这里给出这篇明星文章的链接Attention is All You Need,正文只有10页,值的一读。大家注意,这篇文章里有个图是画错了的,具体位置大家网上搜下,有很多文章都说过了。

另另:没魔法看不到文章的,关注公众号输入暗号“文章”获取,我会把一些我认为值的一读的经典文章打包给大家分享。

博览AI的奥秘,博学AI的知识,博交AI的朋友,我是博而不士,欢迎加入我的AI探索之旅。关注我,一起玩转AI。

推荐阅读:

Claude:无需魔法、完全免费、GPT3.5的最佳国内替代「一文说清」
举报/反馈

博而不士

1183获赞 344粉丝
博览AI的奥秘,博学AI的知识,博交AI的朋友
关注
0
0
收藏
分享