以下是关于利用大模型构建系统的工具的相关内容:
大模型的发展历程:
Inhai:Agentic Workflow:AI 重塑了我的工作流:
开发:LangChain 应用开发指南 - 大模型的知识外挂 RAG: LangChain 是专注于大模型应用开发的平台,提供一系列组件和工具构建 RAG 应用:
这一切的起源是2017年发布的Attention Is All You Need([4])论文,之后基于大量语料的预训练模型百花齐放,比如:BERT(Bidirectional Encoder Representations from Transformers):Google在2018年提出,创新性的双向预训练并行获取上下文语义信息,以及掩码语言建模(MLM)让模型更好地推断语义信息。它开创了预训练语言表示范式,对自然语言处理产生了深远影响。参数规模:110M到340MGPT(Generative Pre-trained Transformer):OpenAI在2018年提出,开创了仅使用自回归语言建模作为预训练目标而无需额外监督信号。它展示了通过无监督大规模预训练获得的语言生成能力,对研究与应用都带来重大影响。参数规模:1750亿Large LAnguage Model Approach(LLAMA):Meta在2021年提出,首个开源模型。为构建更大规模、更通用的语言模型提供了系统化的方法与工具。参数规模:十亿到千亿
如果大家使用Kimi Chat来查询某个问题,你会发现它会在互联网上检索相关内容,并基于检索结果进行总结分析,最后给出结论。这其实是大模型利用「网页搜索」工具的一个典型例子,同时你也会看到PPT中介绍了非常多的不同领域类型的工具,它其实是为大模型在获取、处理、呈现信息上做额外的补充。PlanningAgent通过自行规划任务执行的工作流路径,面向于简单的或者一些线性流程的运行。比如下图中:Agent会先识别男孩的姿势,并可能找到一个姿势提取模型来识别姿势,在接下来要找到一个姿势图像模型来合成一个新的女孩图像,然后再使用图像理解文本的模型,并在最后使用语音合成输出,完成这个流程任务。Multiagent Collaboration吴恩达通过开源项目ChatDev进行举例,你可以让一个大语言模型扮演不同的角色,比如让一个Agent扮演公司CEO、产品经理、设计师、代码工程师或测试人员,这些Agent会相互协作,根据需求共同开发一个应用或者复杂程序。AI Agent基本框架OpenAI的研究主管Lilian Weng曾经写过一篇博客叫做《LLM Powered Autonomous Agents》,其中就很好的介绍了Agent的设计框架,她提出了“Agent=LLM+规划+记忆+工具使用”的基础架构,其中大模型LLM扮演了Agent的“大脑”。Planning(规划)主要包括子目标分解、反思与改进。将大型任务分解为较小可管理的子目标处理复杂的任务。而反思和改进指可以对过去的行动进行自我批评和自我反思,从错误中学习并改进未来的步骤,从而提高最终结果的质量。Memory(记忆)
LangChain是一个专注于大模型应用开发的平台,它提供了一系列的组件和工具,帮助你轻松地构建RAG应用。LangChain提供了以下的组件来帮助你构建RAG应用:数据加载器(DocumentLoader):数据加载器是一个对象,可以从一个数据源加载数据,并将其转换为文档(Document)对象。一个文档对象包含两个属性:page_content(str)和metadata(dict)。page_content是文档的文本内容,metadata是文档的元数据,例如标题、作者、日期等。文本分割器(DocumentSplitter):文本分割器是一个对象,可以将一个文档对象分割成多个较小的文档对象。这样做的目的是为了方便后续的检索和生成,因为大模型的输入窗口是有限的,而且在较短的文本中更容易找到相关的信息。文本嵌入器(Embeddings):文本嵌入器是一个对象,可以将文本转换为嵌入(Embedding),即一个高维的向量。文本嵌入可以用来衡量文本之间的相似度,从而实现检索的功能。向量存储器(VectorStore):向量存储器是一个对象,可以存储和查询嵌入。向量存储器通常使用一些索引技术,例如Faiss或Annoy,来加速嵌入的检索。检索器(Retriever):检索器是一个对象,可以根据一个文本查询返回相关的文档对象。检索器的一种常见实现是向量存储器检索器(VectorStoreRetriever),它使用向量存储器的相似度搜索功能来实现检索。聊天模型(ChatModel):聊天模型是一个对象,可以根据一个输入序列生成一个输出消息。聊天模型通常基于大模型,例如GPT-3,来实现文本生成的功能。使用LangChain构建RAG应用的一般流程如下: