初识langchain

什么是langchain

langchain[1]是一个用于构建LLM-Based应用的框架,提供以下能力:

  • 上下文感知:可以为LLM链接上下文(如知识库、prompt等)
  • 推理:通过大模型的能力进行推理(推理、决策)

用计算机类比的话,在这套框架内,LLM扮演的是CPU的角色,langchain扮演的是主板,为其提供内存、磁盘等设备,使其完成更多复杂的功能。

image.png
langchain架构图

从架构图中可以看到,langchain提供了从协议、开发、部署到观测的一条龙服务。不过我们平时自己玩玩的话,主要用到的只有图中的LangChain、LangChain-Community和Langchain-Core部分。

langchain 四大模块

主要有Model I/O、Retrieval、Agents、Chains四个部分组成。

Chains

image.png

Chains可以说是最重要的模块了(不然你猜为啥它叫langchain)。Chains 顾名思义,它的作用是将不同的组件和功能串联起来,形成一个完整的处理流程,从而解决更复杂或多步骤的问题。

举个例子,我现在需要构建一个自动写文章的Agent,我们首先就会选择拆解问题然后再去解决:找素材、写文章。我们可以分别构建两个链去完成这个事情,然后再将其串起来完成整个流程。

并且链已经封装好了一个能力,后续其他场景假如需要使用到查找素材的能力,直接就可以复用现有的链。

一个老生常谈的问题:Chains和Agents的区别是什么?我的理解,Chains提供的是解决特定子问题的能力,Agents是决策何时、如何适用Chains

Model I/O

image.png
Model I/O

这个模块主要包含了与LLM输入输出相关的实现。包括与各种大模型的交互接口、数据格式的formator。同时,也能用于chain中不同Runable对象之间数据的传输过程中的处理。

Retrieval

image.png
Retrieval

主要用于 Retrieval Augmented Generation(RAG) 。可以把这个模块理解为大模型应用的内存+数据库。通过对文本拆条+embedding的方式存储到向量数据库中,利用查询出的相关知识用于增强回答的质量,比较适合需要大模型理解特定领域知识的场景适用。

Agents

image.png

推荐看下这篇文章LLM Powered Autonomous Agents[2],对Agent系统又比较详细的阐述。Agents模块主要解决的是如何让LLM理解问题并能够正确地选择使用哪些工具、流程来解决一个复杂问题。其中就包括了如何根据观察结果选择和执行动作,并重复此过程直到完成任务。主要包含以下子模块:

  • Agents: 负责决策的执行和推理(比如ReAct)
  • Tools:用于执行特定任务的工具(比如一个查询天气的函数可以封装成一个tool)

写在最后

总的来说,Langchain就像是大语言模型的乐高积木。想象一下,如果LLM是大脑的话,Langchain就像是让大脑能跑起来的双脚、手臂还有眼睛,让一切变得可能。通过组合不同的Chains和Tools,可以构建出各种有趣的东西,感觉这才是真正的低代码平台...

目前也已经有不少公司在做Agents平台了,比如字节出的Coze,笔者已经玩了好一段时间了,感觉以后没有代码基础都能够轻松构造出一个自己的LLM 应用,我不会真的要失业了吧~哈哈哈

References

[1]

: https://github.com/langchain-ai/langchain

[2]

: https://lilianweng.github.io/posts/2023-06-23-agent/

作者:派派星
文章来源:CVHub

推荐阅读

更多嵌入式AI干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。

推荐阅读
关注数
17801
内容数
1242
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息