最近准备给大家整个大活儿,写一个系列文章,给大家仔细掰扯掰扯有关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的语言模型也属于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构架也不是完美的,也有以下缺陷:
优点和缺点对比着一起看,我们发现了什么?发现Transformer构架哪哪都好,就是必须得“大”才行。这里的“大”值的不仅是模型训练数据要大,模型运行资源要大,甚至用于训练模型的资金量也必须要大才行,看起来是典型的“大力出奇迹”任务(当然,事实上并不真的是这样,但是对比其他方法,Transformer构架确实也对“大力”更加友好)。所以,我们今天谈到的语言模型(LM)就都变成了大语言模型(LLM)。
这篇文章,我们从NLP讲起,非常简短的帮大家回顾了语言模型的几个重要发展阶段。同时,也说明白了GPT中的T具体代表的啥。下一篇文章,我们讲直指本次AI热潮的“罪魁祸首”ChatGPT,讲讲它是从哪里一步步演化而来的,都经历了哪些技术演进。
这类文章写着真累,希望对大家能有帮助。如果有帮助的话,希望给个点赞或者分享,让更多的人看到。您的支持是我最大的动力,感谢!!!
另:这里给出这篇明星文章的链接Attention is All You Need,正文只有10页,值的一读。大家注意,这篇文章里有个图是画错了的,具体位置大家网上搜下,有很多文章都说过了。
另另:没魔法看不到文章的,关注公众号输入暗号“文章”获取,我会把一些我认为值的一读的经典文章打包给大家分享。
博览AI的奥秘,博学AI的知识,博交AI的朋友,我是博而不士,欢迎加入我的AI探索之旅。关注我,一起玩转AI。
推荐阅读:
Claude:无需魔法、完全免费、GPT3.5的最佳国内替代「一文说清」