LangChain:数据增强概念
LangChain 框架的数据增强模块主要基于检索增强生成(RAG)技术,通过整合外部知识库提升大语言模型(LLM)在专业领域、实时性要求和私有数据场景下的表现。
LangChain的数据增强模块的目的是检索与用户输入的问题相关的外部数据,包括筛选相关问题和相关的文档。
核心组件
数据增强模块是一个多功能的数据增强集成工具,以下5个核心组件。
- Loader:加载器,负责从各种来源加载数据作为文档。
- Text Embedding Model:嵌入模型包装器,专门为各种文本嵌入模型交互而设计。
- Document Transformers:文档转换器,主要用来对文档进行分割、组合、过滤等各种转换。
- VectorStore:向量存储库,用于存储和检索嵌入向量的工具,负责存储嵌入数据并执行向量检索。处理的数据是通过模型平台的文本嵌入模型转换的向量数据。
- Retriever:检索器,是一个接口,返回非结构化查询的文档。它比向量存储库更通用。检索器无须存储文档,只需返回(或检索)文档。
数据类型
在数据增强模块中,主要操作两种类型的数据:
- 文档数据
- 向量数据
这两种数据类型在 LangChain 数据增强模块的处理流程中可以自由流通和转换。
一旦文档数据加被加载进来,就可以将它们传递给文档转换器进行处理。最常见的处理就是 切割文档,别外还有压缩文档、过滤文档。目的是为了使文档更好适应应用需求。
经过处理的文档数据会被传递给嵌入模型包装器,在这时,它们会被转为向量数据,完成文本向量化。文本向量化是将原始数据转换为向量的过程。向量是用于机器学习模型处理的数值表示形式。
这些向量数据存储在向量存储库中,在需要时会对它们进行检索。检索过程由检索器完成,它根据用户的查询返回相应的数据。
数据在 LangChain 增强模块中,通过加载器、嵌入模型包装器、文档转换器、向量存储库和检索器后,被规范化为文档数据和向量数据两种类型,这两种类型的数据就可以自由地在各个组件之间流通、转换。