原文链接:【LangChain系列 2】LangChain核心模块简介(一)
本文速读:
-
Model I/O
-
Retrieval
-
Chains
01 Model I/O
大模型应用最核心当然是大模型本身,而LangChain就是在大模型在基础上,提供了一些基础模块,我们可以通过这些基础模块与大模型进行交互,主要包括:
-
Prompts:通过模版将prompts输入给大模型(Input)。
-
Language models:调用语言模型的一些接口(Model)。
-
Output Parsers:对于大模型输出进行解析(Output)。
这些模块统称为Model I/O,其数据流图如下所示:
02 Retrieval
我们知道LLM需要训练数据去训练它,而且数据质量越好,训练出来的模型效果更好。除了训练数据,很多LLM应用还需要特定的数据,而这些数据的主要是通过RGA(Retrieval Augmented Generation)而来的;在这个过程中,通过检索外部的数据,然后输入给LLM。
对于RGA应用,LangChain提供了所有的构建模块,主要模块如下图所示:
-
文档加载器:加载不同数据源的文档,总共有100多种加载器。
-
文档转换器:一种主要的转换器就是分割,比如将大段文本分割成小块,LangChain提供了几种不同的分割算法。
-
文本embedding模型:将文本向量化,简单来说就是将文本数字化。
-
向量存储:用来存储向量化的文本。
-
检索:在数据库中进行向量的检索。
03 Chains
Chain简单来说就是:将一系列的调用组件链接在一起,既可以是线性的顺序链,也可以是类似有向图的顺序链。通过链这种方式,我们就可以将多个组件进行组合、协同从而创建一个简单、统一的应用。
LangChain主要的链类型有:
-
LLM链(LLMChain):将LLM和prompt链接在一起。
-
简单顺序链(SimpleSequentialChain):线性的,单个输入单个输出。
-
常规顺序链(SequentialChain):类似有向图,可以多个输入,多个输出。
-
路由链(RouterChain):包含子链路。
Model I/O、Retrieval、Chains这3 个模块就是 LangChain模块简介 的第一部分,下篇我们将介绍它的第二部分。
更多最新文章,请关注公众号:大白爱爬山