00-LangChain 简介

什么是 LangChain

LangChain: 一个让你的 LLM 变得更强大的开源框架。LangChain 就是一个 LLM 编程框架,你想开发一个基于 LLM 应用,需要什么组件它都有,直接使用就行;甚至针对常规的应用流程,它利用链(LangChain中Chain的由来)这个概念已经内置标准化方案了。下面我们从新兴的大语言模型(LLM)技术栈的角度来看看为何它的理念这么受欢迎。

LangChain 起源

LangChain 的作者是 Harrison Chase,最初是于 2022 年 10 月开源的一个项目,在 GitHub 上获得大量关注之后迅速转变为一家初创公司。2017 年 Harrison Chase 还在哈佛上大学,如今已是硅谷的一家热门初创公司的 CEO,这对他来说是一次重大而迅速的跃迁。Insider 独家报道,人工智能初创公司 LangChain 在种子轮一周后,再次获得红杉领投的 2000 万至 2500 万美元融资,估值达到 2 亿美元。

为什么需要 Langchain?

大模型的智能效果令人振奋,可是当开发人员试图将大模型这颗“聪明脑”放入应用程序时,却发现了前所未有的挑战。

  • prompt的结构如何标准化?
  • 如果我想中途随时切换大模型,怎样简单方便地操作?
  • LLM的输出是非结构化的,它如何与结构化的程序接口相互交互?
  • 预训练模型的知识落后,如何让它知道最新的信息?
  • 如何让这颗大脑拥有记忆?
  • 如何给这颗“聪明脑”装上“五官”,让它能够感知环境输入?
  • 怎样给这颗“聪明脑”装上“手”和“脚”,让它帮我执行具体的任务?

LangChain 尝试解决的,就是这些问题。LangChain 框架背后的核心思想是将自然语言处理序列分解为各个部分,允许开发人员根据自己的需求高效地定制工作流程。

LangChain 六大主要领域

  • 管理和优化 prompt。不同的任务使用不同 prompt,如何去管理和优化这些prompt 是 langchain的主要功能之一。
  • 链,初步理解为一个具体任务中不同子任务之间的一个调用。
  • 数据增强的生成,数据增强生成涉及特定类型的链,它首先与外部数据源交互以获取数据用于生成步骤。这方面的例子包括对长篇文字的总结和对特定数据源的提问/回答。
  • 代理,根据不同的指令采取不同的行动,直到整个流程完成为止。
  • 评估,生成式模型是出了名的难以用传统的指标来评估。评估它们的一个新方法是使用语言模型本身来进行评估。LangChain 提供了一些提示/链来协助这个工作。
  • 内存:在整个流程中帮我们管理一些中间状态。

总的来说 LangChain 可以理解为:在一个流程的整个生命周期中,管理和优化prompt,根据 prompt 使用不同的代理进行不同的动作,在这期间使用内存管理中间的一些状态,然后使用链将不同代理之间进行连接起来,最终形成一个闭环。

LangChain 组件

  • Model I/O:管理大语言模型(Models),及其输入(Prompts)和格式化输出(Output Parsers)
  • Data connection:管理主要用于建设私域知识(库)的向量数据存储(Vector Stores)、内容数据获取(Document Loaders)和转化(Transformers),以及向量数据查询(Retrievers)
  • Memory:用于存储和获取 对话历史记录 的功能模块
  • Chains:用于串联 Memory ↔️ Model I/O ↔️ Data Connection,以实现 串行化 的连续对话、推测流程
  • Agents:基于 Chains 进一步串联工具(Tools),从而将大语言模型的能力和本地、云服务能力结合
  • Callbacks:提供了一个回调系统,可连接到 LLM 申请的各个阶段,便于进行日志记录、追踪等数据导流

reference


00-LangChain 简介
https://flepeng.github.io/045-LangChain-00-LangChain-简介/
作者
Lepeng
发布于
2024年6月30日
许可协议