LLM(大语言模型)的工作原理如下:
另外,RAG 对大语言模型的作用就像开卷考试对学生,事实性知识与 LLM 的推理能力相分离,被存储在容易访问和及时更新的外部知识源中,分为参数化知识(模型训练中学习得到,隐式储存在神经网络权重中)和非参数化知识(存储在外部知识源,如向量数据库中)。
打个比方,“我今天吃了狮子头和蔬菜”这句话,在transformer中,会由attention层对这句话加入更多的信息来补充。比如补充“狮子头是一道菜”“今天是星期六”等等。这些补充信息,会作为输入给到下一个attention层进行补充。当然有些信息可能是不重要的,也会被忽视掉。最终层与层之间,哪些信息需要补充,哪些信息需要保留,哪些信息传递,均由模型自主学习完成。而最终学习的结果就是,模型可以把海量的数据以关系网的形式“消化”掉,并保留其重要的相关性。这些表述可能还不够直观,再打个比方,这些层就好像人在去阅读文章的时候的一个连贯性注意力的过程。就好像我们在去阅读理解一篇文章的时候,脑子里会对输入的内容进行消化然后吸收记忆,而记忆下来的不是点状的知识,而是网状的经验。3)再形象些的比喻llm的原理基本就是这样了,总结起来就是大模型以词向量和transformer的模型学习了海量的知识,把知识作为向量空间中的一种关系网进行存储,并在接受输入时,通过向量空间中的一系列匹配进行输出。这个过程其实大家想一想,是不是就像是人脑在阅读学习的个过程?比如我们在记忆一些资料时,其实记忆的也不可能是逐字逐句去记忆的,也是按照相关性,重要程度,再结合历史经验信息进行记忆的。记忆下来的东西,也不是一个个的文字,而更像是一种感觉,一种“意象”。再比如我们去看红色,会觉得这个代表温暖,代表强烈,这也是因为我们在去记忆这个信息时,同时受到来自生理、社会伦理等的关联记忆,所以一个简单的“红色”在我们的脑海中记忆时,也不仅是一个简单的词语,而是带有了很多的“feature”信息。
首先讲一下LLm,即large-language-model,大语言模型的工作原理。我们可以观察LLm大模型比如豆包在回复的时候,是不是一个一个字,行业里称之为流式输出的方式给你呈现内容的。为什么会这样呢?这是因为,大模型确实是在一个字一个字地去推理生成内容的。就好像我们看输入法的输入联想逻辑,输入联想,其实就是根据你输入的单个字,来推测你要输入的下个字是什么。比如我打了一个“输”字,那么我要打的下字就很有可能是“入”,当然这里就会有人问了,我要打的下个字也很有可能是“球”啊。没错,最开始的研究人员确实也识别到了这个问题。那么解法是什么呢?其实很简单,我们把上下文加入到输入里,不就能帮助模型理解下个字该是什么了吗。比如我们输入的是“我想在这个单元格中输”,那这下一个字大概率就是“入”。而我们如果输入的是“这场足球比赛中,输”,那下一个字大概率就是“球”。那么看到这里,善于思考的同学可能会发现这里存在第一,我们知道大模型的学习数据规模往往是海量的,每次的计算如果都带入全量的数据,算力上肯定是吃不消的。第二,仅去算字的概率,似乎也有问题。因为我们用于训练的文章数据等,往往是出于各种场景各种背景写就的。仅去算下个字出现的概率,容易会被各种不相干的信息干扰。是的,研究人员同样也遇到了这两个问题,而这时,两个概念的出现解决了这一难题。一个是词向量机制,一个是transformer模型中的attention自注意力机制。1)词向量机制
RAG对大语言模型(Large Language Model,LLM)的作用,就像开卷考试对学生一样。在开卷考试中,学生可以带着参考资料进场,比如教科书或笔记,用来查找解答问题所需的相关信息。开卷考试的核心在于考察学生的推理能力,而非对具体信息的记忆能力。同样地,在RAG中,事实性知识与LLM的推理能力相分离,被存储在容易访问和及时更新的外部知识源中,具体分为两种:参数化知识(Parametric knowledge):模型在训练过程中学习得到的,隐式地储存在神经网络的权重中。非参数化知识(Non-parametric knowledge):存储在外部知识源,例如向量数据库中。