LLM(语言逻辑模型)是 LangChain 平台与各种大模型进行交互的核心模型,是一个能够处理语言输入和输出的抽象概念,可以理解为一个黑盒。
其输入是一个字符串,表示用户的请求或问题,输出也是一个字符串,表示模型的回答或结果。LLM 能根据不同输入调用不同大模型来完成不同语言任务,如文本生成、文本理解、文本翻译等。
从大模型的整体架构来看,LLM 处于模型层,例如 GPT 就是一种常见的 LLM,一般使用 transformer 算法实现。
LLM 的工作原理是像输入法的输入联想逻辑一样,一个字一个字地推理生成内容。通过将上下文加入输入,能帮助模型理解下一个字。但存在计算时带入全量数据算力吃不消以及仅算字的概率易被不相干信息干扰的问题,词向量机制和 transformer 模型中的 attention 自注意力机制解决了这些难题。
原创AI小智AI小智2023-12-07 08:10发表于湖北在之前的课程中,我带领小伙伴们使用开源项目实现了将星火模型的OpenAI-API接口适配转换封装,没有看过的小伙伴可以点击链接查看:[AI课程合集](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg2ODA5NTM1OA==&action=getalbum&album_id=3115055723522015235#wechat_redirect)但是这种做法的局限性也很强,只能使用开源项目适配过的大模型,并且由于多了一层适配代理,接口的性能也存在一定损耗。今天,我将给大家介绍一个更加通用的方案,基于LangChain()平台提供的LLM基础模型,完成任意模型接口的封装。[heading2]LangChain与大模型交互的核心模型-LLM[content]LLM(语言逻辑模型)是LangChain平台与各种大模型进行交互的核心模型,它是一个抽象的概念,可以理解为一个能够处理语言输入和输出的黑盒。LLM的输入是一个字符串,表示用户的请求或问题,LLM的输出也是一个字符串,表示模型的回答或结果。LLM可以根据不同的输入,调用不同的大模型,来完成不同的语言任务,如文本生成、文本理解、文本翻译等。LLM的优势在于,它可以让开发者无需关心大模型的细节和复杂性,只需要关注语言的逻辑和意义,就可以利用大模型的能力来构建自己的应用。LLM也可以让开发者灵活地选择和切换不同的大模型,而无需修改代码或适配接口。LLM还可以让开发者自己封装自己的LLM,来实现自己的语言逻辑和功能。
首先为方便大家对大模型有一个整体的认知,我们先从大模型的整体架构着手,来看看大模型的组成是怎么样的。下面是我大致分的个层。从整体分层的角度来看,目前大模型整体架构可以分为以下几层:[heading3]1.基础层:为大模型提供硬件支撑,数据支持等[content]例如A100、数据服务器等等。[heading3]2.数据层[content]这里的数据层指的不是用于基层模型训练的数据基集,而是企业根据自己的特性,维护的垂域数据。分为静态的知识库,和动态的三方数据集[heading3]3.模型层:LLm或多模态模型[content]LLm这个大家应该都知道,large-language-model,也就是大语言模型,例如GPT,一般使用transformer算法来实现。多模态模型即市面上的文生图、图生图等的模型,训练所用的数据与llm不同,用的是图文或声音等多模态的数据集[heading3]4.平台层:模型与应用间的平台部分[content]比如大模型的评测体系,或者langchain平台等,提供模型与应用间的组成部分[heading3]5.表现层:也就是应用层,用户实际看到的地方[content]这个就很好理解了,就不用我多作解释了吧
首先讲一下LLm,即large-language-model,大语言模型的工作原理。我们可以观察LLm大模型比如豆包在回复的时候,是不是一个一个字,行业里称之为流式输出的方式给你呈现内容的。为什么会这样呢?这是因为,大模型确实是在一个字一个字地去推理生成内容的。就好像我们看输入法的输入联想逻辑,输入联想,其实就是根据你输入的单个字,来推测你要输入的下个字是什么。比如我打了一个“输”字,那么我要打的下字就很有可能是“入”,当然这里就会有人问了,我要打的下个字也很有可能是“球”啊。没错,最开始的研究人员确实也识别到了这个问题。那么解法是什么呢?其实很简单,我们把上下文加入到输入里,不就能帮助模型理解下个字该是什么了吗。比如我们输入的是“我想在这个单元格中输”,那这下一个字大概率就是“入”。而我们如果输入的是“这场足球比赛中,输”,那下一个字大概率就是“球”。那么看到这里,善于思考的同学可能会发现这里存在第一,我们知道大模型的学习数据规模往往是海量的,每次的计算如果都带入全量的数据,算力上肯定是吃不消的。第二,仅去算字的概率,似乎也有问题。因为我们用于训练的文章数据等,往往是出于各种场景各种背景写就的。仅去算下个字出现的概率,容易会被各种不相干的信息干扰。是的,研究人员同样也遇到了这两个问题,而这时,两个概念的出现解决了这一难题。一个是词向量机制,一个是transformer模型中的attention自注意力机制。1)词向量机制