世界上只有一种病,穷病,这种病你没法治,你也治不过来。
01 Retrieval介绍
在大模型开发中,Retrieval(检索)通常指的是从一个大型知识库或语料库中查找与当前任务相关的信息或数据的过程。这种检索过程是为了解决纯基于生成(Generative)模型在处理某些复杂任务时可能出现的知识局限性问题。生成模型,如GPT或BERT,虽然能够生成连贯的文本,但它们的记忆能力有限,可能无法记住所有训练数据中的事实信息。
许多 LLM 应用程序都需要一些特定的数据,这些数据不属于模型的训练集。实现此目的的主要方法是通过检索增强生成 (Retrieval Augmented Generation,RAG)。在此过程中,首先检索外部数据,然后在执行生成步骤时将其传递给 LLM。
以下是一个完整的检索实现流程图:
02 关键概念
Document loaders
文档加载器从许多不同的数据源加载文档。LangChain 提供了 100 多种不同的文档加载器,以及与该领域其他主要提供商(如 AirByte 和 Unstructured)的集成。LangChain内部集成一些能力,让开发者可以从各种不同的位置(private S3 buckets, public websites)加载所有类型的文档(HTML,PDF,code)。
总结:文档加载
Text Splitting
检索的一个关键部分是仅获取文档中与问题相关的部分。这涉及准备要检索的文档的几个转换步骤。这里的主要方法之一是将大文档拆分(或分块)成更小的块。LangChain提供了几种转换算法来做到这一点,以及针对特定文档类型(code、markdown等)进行优化的逻辑。
总结:文档分块
Text embedding models
检索的另一个关键部分是为文档创建嵌入。嵌入捕获文本的语义含义,使得我们能够快速有效地找到文本中其他相似的部分。LangChain提供了超过25种不同的嵌入提供商和方法的集成,从开源到专有API,允许开发者选择最适合业务需求的一种。LangChain提供了一个标准接口,允许开发者轻松地在模型之间切换。
总结:文档嵌入,转换成向量
Vector stores
随着嵌入的兴起,出现了对向量数据库的需求,以支持这些嵌入后的向量的高效存储和搜索。LangChain提供与50多种不同向量存储的集成,从开源的本地向量存储到云托管的专有向量存储,允许开发者选择最适合业务需求的向量存储。LangChain提供了一个标准接口,允许开发者轻松地在向量数据库之间切换。
总结:词嵌入后存储到向量数据库
Retrievers
数据进入数据库后,仍需要检索它。LangChain支持许多不同的检索算法,这是LangChain的价值之一。LangChain支持易于上手的基本方法,即简单的语义搜索。但是,在此基础上还添加了一系列算法以提高性能。这些算法包括:
-
父文档检索器:这允许开发者为每个父文档创建多个嵌入,从而查找较小的块但返回较大的上下文。
-
自查询检索器:用户问题通常包含对某些内容的引用,这些内容不仅仅是语义上的,而是表达了一些逻辑,这些逻辑可以表示为元数据过滤器。通过自查询,可以从检索结果中获取其他元数据过滤器以及解析出查询的语义部分。
-
集合检索器:有时我们可能希望从多个不同的来源或使用多种不同的算法检索文档。集合检索器就是干这事的。
-
其他的一些检索器大家可以自行查看...
总结:不同的算法检索出不同的结果,LLM根据检索结果回答问题
Indexing
LangChain索引API将数据从任何来源同步到向量数据库中,从而帮助开发者:
-
避免将重复的内容写入向量存储中
-
避免重写未更改的内容
-
避免对未更改的内容重新计算嵌入
03 总结
周六刚考完软考,个人感觉没考好,这次就水一篇文章了,惭愧。
本篇文章主要是为后续的RAG开发打基础,介绍了一些重点概念。工欲善其事必先利其器~
LangChain基础篇合集已完结
【可能是全网最丝滑的LangChain教程】一、LangChain介绍
【可能是全网最丝滑的LangChain教程】二、LangChain安装
【可能是全网最丝滑的LangChain教程】三、快速入门LLMChain
【可能是全网最丝滑的LangChain教程】四、快速入门Retrieval Chain
【可能是全网最丝滑的LangChain教程】五、快速入门Conversation Retrieval Chain
【可能是全网最丝滑的LangChain教程】六、快速入门Agent
【可能是全网最丝滑的LangChain教程】七、LCEL表达式语言
LangChain进阶系列连载中
【LangChain进阶教程】一、LangChain进阶之LLM
【LangChain进阶教程】二、LangChain进阶之Chat Model
【LangChain进阶教程】三、LangChain进阶之Prompts
【LangChain进阶教程】四、LangChain进阶之Output Parsers
如果能帮我点个免费的关注,那就是对我个人的最大的肯定。
以上内容依据官方文档编写,官方地址:python.langchain.com/docs/module…
Peace Baby~