AI

大白话讲解 LangChain

LangChain 是啥?🔖


🔹想象你有一个超级智能的助手(比如 ChatGPT),但它只能回答简单问题。如果你想让它帮你:

  • 查资料(比如最新的新闻)
  • 处理长文档(比如总结一份 100 页的PDF)
  • 连接其他工具(比如发邮件、算数学题)
  • 记住之前的对话(比如聊了 10分钟还能接上话)

这时候就需要 LangChain, 它像一根”链条”,把 ChatGPT 和这些功能连在一起,让 Al 变得更强大、更自动化。

🔹LangChain 是一个为构建大型语言模型(LLMs)驱动的应用程序而设计的框架。它的核心目标是简化从开发到生产的整个应用程序生命周期。

  • 模块化构建:LangChain 提供了一套模块化的构建块和组件,这些组件可以集成到第三方服务中,帮助开发者构建应用程序。
  • 生命周期支持:LangChain 支持整个应用程序的生命周期,从开发到生产化再到部署。
  • 开源与集成:它提供了开源的库和工具,以及与第三方服务的集成
  • 生产化工具:LangSmith 是一个开发平台,用于调试、测试、评估和监控基于LLM的应用程序
  • 部署:LangServe 允许将LangChain链作为REST API部署,从而方便应用程序的访问和使用。

  

LangChain 的核心功能(用生活例子比喻)🔖


🔹连接各种工具 (Chains)

例子:你想让 Al 帮你查天气,然后根据天气推荐穿搭。

  • 普通 Al:只能回答”今天天气如何”,但不会主动推荐衣服。
  • LangChain:自动先查天气一再告诉 Al一 Al 根据结果推荐”穿羽绒服”。
  • 这就是”链” (Chain):把多个步骤串起来。

  

🔹长期记忆 (Memory)

例子:你和 Al聊天,上次你说”我喜欢吃辣”,下次它还能记得。

  • 普通 Al:聊完就忘。
  • LangChain:能自动保存聊天记录,下次说”推荐餐厅”时,Al 会说”你去川菜馆吧!”

  

🔹处理长文本 (Documents)

例子:你丢给 Al 一本 200 页的书,让它总结。

  • 普通 Al:一次只能处理几段文字。
  • LangChain:能把书拆成小块,分批处理,最后拼成一个完整总结。

  

🔹连接外部数据 (Retrieval)

例子:你想问 Al “公司去年销售额多少?

  • 普通 Al:不知道你公司的数据。
  • LangChain:能先帮你从公司数据库里查数据,再让 AI回答。

  

LangChain 怎么用?(举个真实场景) 🔖


场景:你想白动回复客户的邮件,内容要根据客户的历史订单生成。

  1. 步骤1:用 LangChain 连接你的邮箱(工具)。
  2. 步骤2:从数据库查客户过去的订单(外部数据)。
  3. 生骤3:让 Al根据订单写回复(比如“您上次买的鞋有新品!”)。
  4. 步骤4:自动发邮件(工具)。

全程不用人插手!这就是 LangChain 的威力。

  

为什么需要 LangChain? 🔖


  • 普通 Al:像是一个只会回答问题的”学霸”,但不会动手干活。
  • LangChain:像是给学霸配了一个秘书团队,能查资料、记笔记、跑腿办事。

  

LangChain RAG🔖


为各种大型语言模型应用提供通用接口,从而简化应用程序的开发流程,轻松地构建如下所示的 RAG 应用

检索增强生成(RAG, Retrieval-Augmented Generation)。该架构巧妙地整合了从庞大知识库中检索到的相关信息,并以此为基础,指导大型语言模型生成更为精准的答案,从而显著提升了回答的准确性与深度。

🔹目前 LLM 面临的主要问题有:

  • 信息偏差/幻觉: LLM 有时会产生与客观事实不符的信息,导致用户接收到的信息不准确。RAG 通过检索数据源,辅助模型生成过程,确保输出内容的精确性和可信度,减少信息偏差。
  • 知识更新滞后性: LLM 基于静态的数据集训练,这可能导致模型的知识更新滞后,无法及时反映最新的信息动态。RAG 通过实时检索最新数据,保持内容的时效性,确保信息的持续更新和准确性。
  • 内容不可追溯: LLM 生成的内容往往缺乏明确的信息来源,影响内容的可信度。RAG 将生成内容与检索到的原始资料建立链接,增强了内容的可追溯性,从而提升了用户对生成内容的信任度。
  • 领域专业知识能力欠缺: LLM 在处理特定领域的专业知识时,效果可能不太理想,这可能会影响到其在相关领域的回答质量。RAG 通过检索特定领域的相关文档,为模型提供丰富的上下文信息,从而提升了在专业领域内的问题回答质量和深度。
  • 推理能力限制: 面对复杂问题时,LLM 可能缺乏必要的推理能力,这影响了其对问题的理解和回答。RAG 结合检索到的信息和模型的生成能力,通过提供额外的背景知识和数据支持,增强了模型的推理和理解能力。
  • 应用场景适应性受限: LLM 需在多样化的应用场景中保持高效和准确,但单一模型可能难以全面适应所有场景。RAG 使得 LLM 能够通过检索对应应用场景数据的方式,灵活适应问答系统、推荐系统等多种应用场景。
  • 长文本处理能力较弱: LLM 在理解和生成长篇内容时受限于有限的上下文窗口,且必须按顺序处理内容,输入越长,速度越慢。RAG 通过检索和整合长文本信息,强化了模型对长上下文的理解和生成,有效突破了输入长度的限制,同时降低了调用成本,并提升了整体的处理效率。

  

  

🔹RAG 是一个完整的系统,其工作流程可以简单地分为数据处理、检索、增强和生成四个阶段:

  

  1. 数据处理阶段
    • 对原始数据进行清洗和处理。
    • 将处理后的数据转化为检索模型可以使用的格式。
    • 将处理后的数据存储在对应的数据库中。
  2. 检索阶段
    • 将用户的问题输入到检索系统中,从数据库中检索相关信息。
  3. 增强阶段
    • 对检索到的信息进行处理和增强,以便生成模型可以更好地理解和使用。
  4. 生成阶段
    • 将增强后的信息输入到生成模型中,生成模型根据这些信息生成答案。

  

理解什么是agent,什么是chain🔖


  • Chain:在LangChain中,Chain 是指一系列按顺序执行的任务或操作,这些任务通常涉及与语言模型的交互。Chain 可以被看作是处理输入、执行一系列决策和操作,最终产生输出的流程。Chain 可以是非常简单的,比如只有一个提示(prompt)和一个语言模型的调用;也可以是非常复杂的,涉及多个步骤和决策点。
  • Agent:Agent 在LangChain中是一个更为高级和自主的实体,它负责管理和执行Chain。Agent 可以决定何时、如何以及以何种顺序执行Chain中的各个步骤。Agent 通常基于一组规则或策略来模拟决策过程,它们可以观察执行的结果,并根据这些结果来调整后续的行动。Agent 使得LangChain能够构建更为复杂和动态的应用程序,如自动化的聊天机器人或个性化的问答系统。

  

Agent:基于某模型实现的一个问答系统,就可以看做是一个Agent

Chain:问答系统需要根据一个prompt给出一个回答,这样的任务可以看做是一个Chain,当然,实际的回答过程一般是多个任务(Chain)一个接一个执行得到的。

  

🔹一个简单顺序链: 

🔹一个更复杂一些的路由链:

  

RAG 和 微调(Finetune)🔖


在提升大语言模型效果中,RAG 和 微调(Finetune)是两种主流的方法

微调: 通过在特定数据集上进一步训练大语言模型,来提升模型在特定任务上的表现。

RAG 和 微调的对比可以参考下表:

特征比较RAG微调
知识更新直接更新检索知识库,无需重新训练。信息更新成本低,适合动态变化的数据。通常需要重新训练来保持知识和数据的更新。更新成本高,适合静态数据。
外部知识擅长利用外部资源,特别适合处理文档或其他结构化/非结构化数据库。将外部知识学习到 LLM 内部。
数据处理对数据的处理和操作要求极低。依赖于构建高质量的数据集,有限的数据集可能无法显著提高性能。
模型定制侧重于信息检索和融合外部知识,但可能无法充分定制模型行为或写作风格。可以根据特定风格或术语调整 LLM 行为、写作风格或特定领域知识。
可解释性可以追溯到具体的数据来源,有较好的可解释性和可追踪性。黑盒子,可解释性相对较低。
计算资源需要额外的资源来支持检索机制和数据库的维护。依赖高质量的训练数据集和微调目标,对计算资源的要求较高。
推理延迟增加了检索步骤的耗时单纯 LLM 生成的耗时
降低幻觉通过检索到的真实信息生成回答,降低了产生幻觉的概率。模型学习特定领域的数据有助于减少幻觉,但面对未见过的输入时仍可能出现幻觉。
伦理隐私检索和使用外部数据可能引发伦理和隐私方面的问题。训练数据中的敏感信息需要妥善处理,以防泄露。

  

LangChain核心组件 🔖


LangChian 作为一个大语言模型开发框架,可以将 LLM 模型(对话模型、embedding 模型等)、向量数据库、交互层 Prompt、外部知识、外部代理工具整合到一起,进而可以自由构建 LLM 应用。 LangChain 主要由以下 6 个核心组件组成:

  • 模型输入/输出(Model I/O):与语言模型交互的接口
  • 数据连接(Data connection):与特定应用程序的数据进行交互的接口
  • 链(Chains):将组件组合实现端到端应用。比如像检索问答链来完成检索问答。
  • 记忆(Memory):用于链的多次运行之间持久化应用程序状态;
  • 代理(Agents):扩展模型的推理能力。用于复杂的应用的调用序列,执行复杂任务和流程的关键组件,代理集成,以扩展其功能,连接到用户自己的信息源或API;
  • 回调(Callbacks):扩展模型的推理能力。用于复杂的应用的调用序列;

在开发过程中,我们可以根据自身需求灵活地进行组合。

  

总结 🔖


  • LangChain 二 Al 的“外挂”:让AI 能调用其他工具、记住
    历史、处理复杂任务。
  • 核心用途:自动化、 个性化、处理长文本/数据。
  • 小白理解:已就是一套”乐高积木”,把 Al和其他功能拼在一起,搭出更牛的东西。