国内投资咨询网站 html模板,档案网站建设的步骤,张店网站制作哪家好,app免费下载入口吾名爱妃#xff0c;性好静亦好动。好编程#xff0c;常沉浸于代码之世界#xff0c;思维纵横#xff0c;力求逻辑之严密#xff0c;算法之精妙。亦爱篮球#xff0c;驰骋球场#xff0c;尽享挥洒汗水之乐。且喜跑步#xff0c;尤钟马拉松#xff0c;长途奔袭#xf… 吾名爱妃性好静亦好动。好编程常沉浸于代码之世界思维纵横力求逻辑之严密算法之精妙。亦爱篮球驰骋球场尽享挥洒汗水之乐。且喜跑步尤钟马拉松长途奔袭考验耐力与毅力每有所进心甚喜之。 吾以为编程似布阵算法如谋略需精心筹谋方可成就佳作。篮球乃团队之艺协作共进方显力量。跑步与马拉松乃磨炼身心之途愈挫愈勇方能达至远方。愿交志同道合之友共探此诸般妙趣。 诸君此文尚佳望点赞收藏谢之 这篇文章主要探讨在LangChain框架中连接外部的数据做数据增强的能力。我们的生活周围充斥着各种各样的数据例如本地的文档、网页上的知识、企业内部的知识库、各类研究报告、软件数据库以及聊天的历史记录等。这些数据无论是广泛的互联网数据还是具有特定价值的其他内部数据都是构建和优化大语言模型的重要资源。
数据增强模块的相关概念 你可能会问既然已经有了强大的大语言模型例如OpenAI的GPT-4为什么还需要连接外部数据呢原因其实很简单那就是大语言模型的知识是有限的。以GPT-4为例它的数据集只训练到2023年4月也就是说这个时间之后的数据并没有被模型学习和理解。所以到2023年下半年仍会看到ChatGPT在其界面上显示ChatGPT可能会产生关于人、时间、地点或事件不准确的信息。这是因为模型在训练数据集之外的知识领域中其预测能力是受限的。 除此之外还需要个性化的知识比如企业的内部知识。想象一下如果你有一个企业你可能希望你的聊天机器人能够理解和回答一些关于你的产品或服务的具体问题这些问题的答案往往需要依赖你的企业内部的专有知识。大语言模型无法直接访问这些知识因此需要将这些知识以某种方式连接到大语言模型。 连接外部数据不仅可以填补大语言模型的知识缺失而且还能让开发的应用程序更加可靠。当模型需要回答一个问题时它可以根据真实的外部数据进行回答而不是仅仅依赖于它在训练时学习的知识。例如当询问模型“2023年的新冠病毒疫苗有哪些副作用”时模型可以根据最近的医学研究报告来提供答案而不是依赖于它在两年前学习的可能已经过时的知识进行回答。 这些大语言模型不仅需要连接外部的数据填补缺失的知识同时还收到了提示词的限制因为构建好的提示词往往需要外部数据的加持。但是这种提示词的字符数量是有限的这就是我们通常所说的max tokens的概念。 为了解决大语言模型的这些限制问题LangChain设计了数据增强模块。设计这个模块的目的是检索与用户输入的问题相关的外部数据包括筛选相关问题的相关的文档。然后这些相关数据会形成提示词模板提交给LLM或Chat Model类型的模型包装器。这些模型包装器封装了各个大语言模型平台的底层API使得我们可以方便的与这些平台进行交互获取大语言模型平台的输出。 然而加载了这些外部的文档数据后我们经常希望对它们进行转换以更好的适应应用程序。最简单的例子是将一个长文档切割成多个较小的文档避免文档长度超过max tokens限制。为了实现这一目标LangChain框架提供了一系列内置的文档转换器这些文档转换器可以对文档进行切割、组合、过滤等。
LEDVR工作流 数据增强模块是一个多功能的数据增强集成工具我们可以方便地称作LEDVR。其中L表示加载器Loader、E代表嵌入模型包装器Text Embedding Model、D代表文档转换器Document Transformers、V表示向量数据库VectorStore、R表示检索器Retriever。
加载器 加载器负责从各种来源加载数据作为文档其中文档是由文本和相关元数据组成的。无论是简单的txt文档还是任意网页文本内容加载器都可以将他们加载为文档。
嵌入模型包装器 嵌入模型包装器是一个专门为各种文本嵌入模型交互而设计的类。它的作用与LLM模型包装器和聊天模型包装器一样。
文档转换器 文档转换器主要用来对文档进行切割、组合、过滤等各种转换。数据增强模块提供了一系列内置的文档转换器。最常见的文档转换是切割文档例如将大型文档切割为小片段文档。文本切割器是最常见的文档转换器工具。文档转换器的目的是将加载的文档转换为可被嵌入模型包装器操作的文档数据格式。
向量数据库 向量数据库是用于存储和检索嵌入向量的工具处理的数据是通过模型平台的文本嵌入模型Text Embedding Model转换的向量数据这是处理非结构化数据的一种常见方法。向量数据库负责存储嵌入数据并执行向量检索。在建索时可以嵌入非结构化查询以建索与嵌入数据最相似的嵌入向量。
检索器 检索器是一个接口返回非结构化查询的文档。它比向量存储库更通用。检索器无需存储文档只需要返回检索后的文档。