“ 智能体应该才是大模型应用的未来,它才是有可能实现真正人工智能的途径 ”
在大模型技术的应用过程中,智能体算是一个主要的技术方向;如果说把大模型比作人的大脑,那么智能体就是人的手和脚;大脑能够思考,但具体的事情还是需要手和脚才能做。
而Langgraph就是给大模型安装手和脚的工具;而我们学习Langgraph主要就是基于它强大的功能逻辑。在传统的人工智能应用开发中,包括Langchain框架,都是基于链式调用的方式,简单来说就是线性执行;一旦其中某个环节出现问题,那么整个链条就会陷入瘫痪。
但基于Langgraph开发的工作流却不同,它可以根据不同的场景和路径进行判断,可以实现循环调用和条件判断;而这就为大模型应用的开发提供了很强的灵活性,也更能满足我们的现实需求。
Langgraph的原来和执行过程
先来了解一下传统智能体开发过程中所面临的问题,在传统的智能体开发过程中主要使用Function call配合langchain或其它工作流开发框架;比如典型的Dify框架和字节的Coze就是典型的智能体配合工作流进行开发。
但这种方式有一个很明显的问题,就是整体都是通过链式调用来实现的;虽然集成了工作流但其延展性依然不是很好。
原因就在于链式调用存在一个很大的缺点就是,一旦处于链条中的某个节点出现问题,就会导致整个链条不可用;而且在异常处理中,由于节点执行的过程和结果并未保存,就导致无法重新恢复链式的执行过程。
但使用LangGraph就会很好的解决这个问题,因为LangGraph中使用的是状态图来保存节点执行的过程,当某个环节出现问题或者需要回溯整个执行过程时,就可以使用状态图来随时回到某个节点重新执行。
而这种方式在Langgraph中被称为时间旅行,也就是说可以追溯到整个智能体的执行过程和节点状态。
我们应该知道,智能体是为了解决复杂问题而出现的一项技术;里面涉及到大量的推理和决策过程,其就类似于我们人类在遇到复杂问题时,需要对问题进行拆解和规划,然后一步一步的去完成任务。
但在处理问题的过程中,我们肯定会遇到各种各样的问题,以及会犯各种各样的错误;这时问题处理过程中的记录就变得特别重要,因为这样才能复盘整个过程,以及找到问题发生的原因和节点。
而且,在事情处理的过程中,可能还需要其它决策者参与进来;比如说公司的项目运作,可能需要领导的审批或签字,亦或者需要其它人员中途参与。
所以,Langgraph实现了人工参与的功能,叫做人在回路;所谓的人在回路,就是Langgrap在智能体的执行过程中,随时可以进行中断;然后由人参与进来,之后再继续执行。
而这些场景的实现,更真实的接近我们人类现实社会中解决问题的逻辑;而这也是Langgraph强大的原因。
Langgraph的核心理论和模块
Langgraph主要由以下几个节点组成:
- 状态图
- 节点
- 边
- 检查点
状态图
状态图是一种数据结构,其生命周期存在于整个Langgraph过程中,所有节点的执行过程和结构都可以被记录到状态图中;而且每个节点也都可以随时方法状态图中的数据,来获取其当时的执行过程和结果,状态图是Langgraph实现上述功能的核心。
# 状态图from typing import Annotatedfrom typing_extensions import TypedDictfrom langgraph.graph import StateGraph, START, ENDfrom langgraph.graph.message import add_messagesclass State(TypedDict): # Messages have the type "list". The `add_messages` function # in the annotation defines how this state key should be updated # (in this case, it appends messages to the list, rather than overwriting them) messages: Annotated[list, add_messages]graph_builder = StateGraph(State)
节点
节点就比较容易理解了,节点的概念就是一个一个的智能体或功能函数;其主要作用就是用来执行具体的任务,比如说查询天气就调用天气查询接口。
边
如果说节点是一个函数,那么边就相当于判断逻辑中的分支,边决定了当前节点执行完毕之后,下一个执行的节点;当然,还有一种边叫做条件边,意思就是可以根据条件判断来动态决定应该执行哪个节点。
检查点
检查点说白了就是记忆存储的节点,我们都知道大模型没有记忆的功能,因此其每次执行对话等对大模型都是一次新的开始,因此就需要有一个外部记忆功能来保存当前任务的执行记录,也就是记忆;这样大模型就可以知道之前干了什么事,以及整个事情的执行过程。
而检查点就是做这个事情的,它的主要作用就是保存记忆;而它和状态图的区别是,状态图会随着整个工作流的执行在不同的节点进行流转;而检查点只记忆当前节点的历史记录;当然,不同的节点可以有各自的检查点。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。