本文深入探讨了LangGraph在构建复杂AI应用中的优势详细阐述了LangChain在处理循环逻辑、条件分支、状态管理和暂停恢复等方面的局限性。LangGraph通过将AI工作流抽象为有向图有效解决了这些痛点并通过State、Node、Edge和Graph等核心概念实现了更灵活、高效的状态管理和控制流。文章还提供了三个实战案例展示了LangGraph在构建ReAct Agent、自我纠错代码生成Agent和带记忆及人工审核的客服Agent中的应用。最后本文对比了LangGraph与LangChain的适用场景并提出了最佳实践与常见陷阱为开发者提供了全面的指导。当你的 AI 应用不再是简单的输入→输出而是需要循环推理、条件分支、多步决策时LangGraph 就是你需要的武器。一、为什么需要 LangGraph从痛点说起1.1 LangChain 的瓶颈如果你用过 LangChain一定对它的链式调用不陌生用户提问 → 检索文档 → 组装 Prompt → 调用 LLM → 返回结果这种线性流程对于简单的问答系统、RAG 应用来说绰绰有余。但当你尝试构建更复杂的 AI 应用时很快就会遇到这些痛点痛点一无法处理循环逻辑假设你在做一个代码生成 AgentLLM 生成的代码可能有 bug你需要让它自我纠错——执行代码、检查结果、如果出错就重新生成。这种重试循环在纯 LangChain 中非常难以优雅地实现。痛点二条件分支很别扭你的客服 Bot 需要根据用户意图走不同路径——咨询价格走一条路、投诉走另一条路、技术问题走第三条路。用 LangChain 的 RunnableBranch 可以做但嵌套多了代码就变成了意大利面条。痛点三状态管理是噩梦多步推理过程中每一步的中间结果需要传递、累积、修改。在链式调用中你不得不手动维护一个越来越庞大的上下文字典又丑又容易出 bug。痛点四没有原生的暂停-恢复能力想在 AI 做出关键决策前加个人工审核想让一个长时间运行的任务在中途断开后能恢复LangChain 原生并不支持这些。1.2 LangGraph 的答案LangGraph 的核心思路其实很朴素把 AI 工作流抽象成一张有向图。● 节点Node每个节点是一个执行单元调用 LLM、执行工具、处理数据等● 边Edge定义节点间的流转路径可以是固定的也可以是条件的● 状态State一个在所有节点间流动的共享数据结构这不是什么新发明——状态机、工作流引擎早就有了。但 LangGraph 的巧妙之处在于它专门为 LLM 应用场景设计把图论的概念和 AI Agent 的需求完美结合在了一起。┌──────────────────────────────────────────────┐│ LangGraph 工作流 ││ ││ [START] → [路由] ──条件边──→ [工具调用] ││ │ │ ││ │ ↓ ││ │ [执行工具] ││ │ │ ││ │ ↓ ││ └─────────→ [LLM 总结] → [END] ││ ↑ │ ││ └──────┘ ││ (不满意重来) │└──────────────────────────────────────────────┘二、核心概念5 分钟搞懂 LangGraph 的世界观2.1 State状态—— 流动的血液State 是整个图的血液它在每个节点间传递、更新。你需要预先定义好它的结构from typing import TypedDict, Annotatedfrom langgraph.graph.message import add_messagesclass AgentState(TypedDict): Agent 的状态定义 messages: Annotated[list, add_messages] # 对话消息列表自动追加 current_step: str # 当前执行到哪一步 retry_count: int # 重试次数这里有个精妙的设计Annotated[list, add_messages]。add_messages 是一个归约器Reducer它告诉 LangGraph当节点返回新的 messages 时不要覆盖原来的而是追加上去。这完美解决了对话历史的管理问题。2.2 Node节点—— 干活的工人节点就是一个普通的 Python 函数接收 State返回更新后的部分 Statedef chatbot(state: AgentState): 聊天节点调用 LLM 生成回复 response llm.invoke(state[messages]) return {messages: [response]}def search_tool(state: AgentState): 搜索节点执行搜索工具 query state[messages][-1].content results tavily_search.invoke(query) return {messages: [ToolMessage(contentresults, ...)]}就这么简单——输入是完整的 State输出是你想更新的那部分字段。2.3 Edge边—— 连接的道路边分两种普通边从 A 节点无条件跳到 B 节点。graph.add_edge(search_tool, chatbot) # 搜索完了一定回到聊天条件边根据当前状态动态决定下一步去哪。def should_continue(state: AgentState): 判断是否需要调用工具 last_message state[messages][-1] if last_message.tool_calls: return tools # 有工具调用 → 去执行工具 return end # 没有 → 结束graph.add_conditional_edges(chatbot, should_continue, { tools: search_tool, end: END})2.4 Graph图—— 完整的工厂把上面的零件组装在一起就是一个完整的图from langgraph.graph import StateGraph, START, END# 1. 创建图指定状态类型graph StateGraph(AgentState)# 2. 添加节点graph.add_node(chatbot, chatbot)graph.add_node(search_tool, search_tool)# 3. 添加边graph.add_edge(START, chatbot) # 入口 → 聊天graph.add_conditional_edges(chatbot, should_continue, { tools: search_tool, end: END})graph.add_edge(search_tool, chatbot) # 工具 → 回到聊天# 4. 编译app graph.compile()一目了然的结构每个节点干什么、怎么连接、什么条件走什么路径全部显式定义。三、实战一构建一个会使用工具的 ReAct Agent这是最经典的 LangGraph 场景——让 LLM 自主决定是否调用工具调用哪个工具然后根据工具结果继续推理。3.1 安装依赖pip install langgraph langchain-openai tavily-python3.2 完整代码实战用 LangGraph 构建一个 ReAct Agent功能能搜索网络、做数学计算的智能助手import osfrom typing import TypedDict, Annotatedfrom langchain_openai import ChatOpenAIfrom langchain_core.messages import HumanMessage, SystemMessagefrom langchain_community.tools.tavily_search import TavilySearchResultsfrom langgraph.graph import StateGraph, START, ENDfrom langgraph.graph.message import add_messagesfrom langgraph.prebuilt import ToolNode# 1. 定义状态 class AgentState(TypedDict): messages: Annotated[list, add_messages]# 2. 定义工具 # 网络搜索工具search_tool TavilySearchResults(max_results3)# 你可以轻松添加自定义工具from langchain_core.tools import tooltooldef calculator(expression: str) - str: 计算数学表达式。输入应该是一个合法的 Python 数学表达式。 try: result eval(expression) return f计算结果: {expression} {result} except Exception as e: return f计算错误: {e}tools [search_tool, calculator]# 3. 初始化 LLM llm ChatOpenAI( modelgpt-4o, temperature0,).bind_tools(tools) # 关键绑定工具让 LLM 知道有哪些工具可用# 4. 定义节点 def agent(state: AgentState): Agent 节点调用 LLM 进行推理 system_prompt SystemMessage(content( 你是一个智能助手可以使用搜索工具查找最新信息 也可以使用计算器进行数学运算。 请根据用户的问题判断是否需要使用工具。 )) messages [system_prompt] state[messages] response llm.invoke(messages) return {messages: [response]}def should_continue(state: AgentState): 路由函数判断 Agent 是否需要调用工具 last_message state[messages][-1] # 如果 LLM 返回了工具调用请求就去执行工具 if hasattr(last_message, tool_calls) and last_message.tool_calls: return tools # 否则结束 return end# 5. 构建图 graph StateGraph(AgentState)# 添加节点graph.add_node(agent, agent)graph.add_node(tools, ToolNode(tools)) # ToolNode 是预置的工具执行节点# 添加边graph.add_edge(START, agent)graph.add_conditional_edges(agent, should_continue, { tools: tools, end: END,})graph.add_edge(tools, agent) # 工具执行完回到 Agent 继续推理# 编译app graph.compile()# 6. 运行 if __name__ __main__: # 测试 1需要搜索的问题 print( * 60) print(测试 1搜索问题) print( * 60) result app.invoke({ messages: [HumanMessage(content2026年最新的 Python 版本是什么有哪些新特性)] }) print(result[messages][-1].content) print(\n) # 测试 2需要计算的问题 print( * 60) print(测试 2计算问题) print( * 60) result app.invoke({ messages: [HumanMessage(content帮我算一下如果我每月投资 5000 元年化收益 8%10 年后有多少钱用复利公式。)] }) print(result[messages][-1].content)3.3 执行流程详解当用户问2026年最新的 Python 版本是什么时整个流程是这样的[START] ↓[agent] → LLM 分析问题发现需要搜索最新信息 ↓ → 返回 tool_calls: [TavilySearch(Python latest version 2026)][should_continue] → 检测到 tool_calls → 路由到 tools ↓[tools] → 执行 Tavily 搜索得到结果 ↓[agent] → LLM 收到搜索结果组织语言回答用户 ↓[should_continue] → 没有 tool_calls → 路由到 end ↓[END] → 返回最终结果这就是 ReActReasoning Acting模式LLM 先思考要做什么然后行动调用工具再根据行动结果继续思考。LangGraph 的循环图结构天然支持这种模式。四、实战二带有自我纠错能力的代码生成 Agent这个场景更能体现 LangGraph 的优势——当 LLM 生成的代码有 bug 时自动执行、检查、修复循环直到正确。4.1 完整代码实战自我纠错的代码生成 Agent场景用户描述需求 → 生成代码 → 执行测试 → 如果失败则修复 → 重复直到成功from typing import TypedDict, Annotated, Literalfrom langchain_openai import ChatOpenAIfrom langchain_core.messages import HumanMessage, SystemMessage, AIMessagefrom langgraph.graph import StateGraph, START, ENDfrom langgraph.graph.message import add_messagesimport subprocessimport tempfileimport os# 1. 定义状态 class CodeGenState(TypedDict): messages: Annotated[list, add_messages] generated_code: str # 当前生成的代码 test_result: str # 测试执行结果 test_passed: bool # 测试是否通过 retry_count: int # 已重试次数 max_retries: int # 最大重试次数# 2. 初始化 LLM llm ChatOpenAI(modelgpt-4o, temperature0)# 3. 定义节点 def generate_code(state: CodeGenState): 代码生成节点 system_prompt SystemMessage(content( 你是一个 Python 代码专家。根据用户的需求生成代码。\n 只输出纯 Python 代码不要 Markdown 格式。\n 代码末尾必须包含简单的测试用例用 assert 语句。 )) # 如果是重试附加上次的错误信息 if state.get(test_result) and not state.get(test_passed): error_msg HumanMessage(content( f上次生成的代码执行失败了错误信息如下\n f\n{state[test_result]}\n\n f之前生成的代码\n fpython\n{state[generated_code]}\n\n f请修复代码中的问题。 )) messages [system_prompt] state[messages] [error_msg] else: messages [system_prompt] state[messages] response llm.invoke(messages) code response.content.strip() # 清理可能的 Markdown 代码块标记 if code.startswith(python): code code[9:] if code.startswith(): code code[3:] if code.endswith(): code code[:-3] code code.strip() return { generated_code: code, retry_count: state.get(retry_count, 0) 1, messages: [AIMessage(contentf生成的代码第 {state.get(retry_count, 0) 1} 次尝试\npython\n{code}\n)] }def execute_code(state: CodeGenState): 代码执行节点在安全环境中运行代码 code state[generated_code] with tempfile.NamedTemporaryFile( modew, suffix.py, deleteFalse ) as f: f.write(code) tmp_path f.name try: result subprocess.run( [python, tmp_path], capture_outputTrue, textTrue, timeout10, ) if result.returncode 0: return { test_result: result.stdout or 所有测试通过, test_passed: True, } else: return { test_result: result.stderr, test_passed: False, } except subprocess.TimeoutExpired: return { test_result: 执行超时10秒, test_passed: False, } finally: os.unlink(tmp_path)def should_retry(state: CodeGenState) - Literal[retry, success, give_up]: 路由决定下一步走向 if state[test_passed]: return success if state[retry_count] state.get(max_retries, 3): return give_up return retrydef success_node(state: CodeGenState): 成功节点 return { messages: [AIMessage(content( f✅ 代码生成成功经过 {state[retry_count]} 次尝试。\n\n f最终代码\npython\n{state[generated_code]}\n\n\n f测试输出{state[test_result]} ))] }def give_up_node(state: CodeGenState): 放弃节点 return { messages: [AIMessage(content( f❌ 经过 {state[retry_count]} 次尝试仍未成功。\n f最后的错误{state[test_result]}\n f最后的代码\npython\n{state[generated_code]}\n ))] }# 4. 构建图 graph StateGraph(CodeGenState)# 添加节点graph.add_node(generate, generate_code)graph.add_node(execute, execute_code)graph.add_node(success, success_node)graph.add_node(give_up, give_up_node)# 添加边graph.add_edge(START, generate)graph.add_edge(generate, execute)graph.add_conditional_edges(execute, should_retry, { retry: generate, # 失败 → 重新生成 success: success, # 成功 → 庆祝 give_up: give_up, # 超过重试上限 → 放弃})graph.add_edge(success, END)graph.add_edge(give_up, END)# 编译app graph.compile()# 5. 运行 if __name__ __main__: result app.invoke({ messages: [HumanMessage(content( 写一个函数 merge_sorted_lists(list1, list2) 将两个已排序的列表合并成一个排序列表。 不要使用内置的 sorted() 函数。 ))], generated_code: , test_result: , test_passed: False, retry_count: 0, max_retries: 3, }) # 输出最终消息 print(result[messages][-1].content)4.2 这个例子解决了什么痛点痛点LangGraph 的解决方案LLM 生成的代码可能有 bug通过 execute → should_retry → generate 的循环自动修复需要限制重试次数避免死循环State 中的 retry_count 条件路由 give_up每次重试需要知道之前的错误State 自动携带 test_result无需手动传参整个流程清晰可维护图结构一目了然生成→执行→判断→重试/成功/放弃五、实战三带记忆和人工审核的客服 Agent这是一个更贴近生产环境的例子展示了 LangGraph 的两个高级特性持久化记忆 和 Human-in-the-Loop人机协作。5.1 持久化与 CheckpointerLangGraph 内置了 Checkpointer 机制可以将图的执行状态保存到内存、SQLite 或 PostgreSQL 中。这意味着● 对话可以跨会话保持上下文● 长时间运行的任务可以在中断后恢复● 同一个 Agent 可以同时处理多个用户的请求实战带记忆和人工审核的智能客服from typing import TypedDict, Annotated, Literalfrom langchain_openai import ChatOpenAIfrom langchain_core.messages import HumanMessage, SystemMessage, AIMessagefrom langgraph.graph import StateGraph, START, ENDfrom langgraph.graph.message import add_messagesfrom langgraph.checkpoint.memory import MemorySaver# 1. 定义状态 class CustomerServiceState(TypedDict): messages: Annotated[list, add_messages] intent: str # 用户意图inquiry / complaint / refund sentiment: str # 用户情绪positive / neutral / negative needs_human: bool # 是否需要人工介入 resolved: bool # 问题是否已解决# 2. LLM 初始化 llm ChatOpenAI(modelgpt-4o, temperature0)# 3. 节点定义 def classify_intent(state: CustomerServiceState): 意图分类节点分析用户消息的意图和情绪 classify_prompt SystemMessage(content( 分析用户消息返回 JSON 格式\n {intent: inquiry|complaint|refund, sentiment: positive|neutral|negative}\n 只返回 JSON不要其他内容。 )) response llm.invoke([classify_prompt] state[messages][-1:]) import json try: result json.loads(response.content) needs_human ( result.get(intent) refund or result.get(sentiment) negative ) return { intent: result.get(intent, inquiry), sentiment: result.get(sentiment, neutral), needs_human: needs_human, } except json.JSONDecodeError: return { intent: inquiry, sentiment: neutral, needs_human: False, }def route_by_intent(state: CustomerServiceState) - Literal[ handle_inquiry, handle_complaint, human_review]: 路由根据意图和情绪分流 if state[needs_human]: return human_review if state[intent] complaint: return handle_complaint return handle_inquirydef handle_inquiry(state: CustomerServiceState): 处理咨询 response llm.invoke([ SystemMessage(content( 你是一位友善的客服。用户在咨询产品信息。 请热情、详细地回答。如果信息不足引导用户提供更多细节。 )), *state[messages], ]) return {messages: [response], resolved: True}def handle_complaint(state: CustomerServiceState): 处理投诉 response llm.invoke([ SystemMessage(content( 你是一位专业的客服主管。用户在投诉。\n 请首先表示理解和歉意然后提出具体的解决方案。\n 语气要诚恳避免模板化的回复。 )), *state[messages], ]) return {messages: [response], resolved: True}def human_review(state: CustomerServiceState): 人工审核节点标记需要人工处理 return { messages: [AIMessage(content( 您的问题已升级至人工客服。\n f系统分析意图{state[intent]}情绪{state[sentiment]}\n 人工客服将在 5 分钟内接入请稍候。 ))], resolved: False, }# 4. 构建图 graph StateGraph(CustomerServiceState)graph.add_node(classify, classify_intent)graph.add_node(handle_inquiry, handle_inquiry)graph.add_node(handle_complaint, handle_complaint)graph.add_node(human_review, human_review)graph.add_edge(START, classify)graph.add_conditional_edges(classify, route_by_intent, { handle_inquiry: handle_inquiry, handle_complaint: handle_complaint, human_review: human_review,})graph.add_edge(handle_inquiry, END)graph.add_edge(handle_complaint, END)graph.add_edge(human_review, END)# 关键添加 Checkpointer 实现记忆持久化memory MemorySaver()app graph.compile(checkpointermemory)# 5. 运行带记忆 if __name__ __main__: # 配置 thread_id相同 thread_id 的对话共享记忆 config {configurable: {thread_id: user-001}} # 第一轮对话 print( * 50) print(第一轮咨询) print( * 50) result app.invoke( { messages: [HumanMessage(content你们的 Pro 套餐多少钱包含哪些功能)], intent: , sentiment: , needs_human: False, resolved: False, }, configconfig, ) print(result[messages][-1].content) # 第二轮对话同一个 thread有记忆 print(\n * 50) print(第二轮投诉情绪升级) print( * 50) result app.invoke( { messages: [HumanMessage(content( 我买了你们的 Pro 套餐但是功能根本不能用 客服电话也打不通这是什么服务态度我要退款 ))], intent: , sentiment: , needs_human: False, resolved: False, }, configconfig, ) print(result[messages][-1].content) print(f\n→ 需要人工介入: {result[needs_human]}) print(f→ 用户意图: {result[intent]}) print(f→ 用户情绪: {result[sentiment]})5.2 关键设计要点记忆持久化通过 MemorySaver thread_id同一个用户的多轮对话自动关联。第二轮对话时Agent 已经知道用户之前咨询过 Pro 套餐。人机协作当检测到退款请求或负面情绪时自动升级到人工处理。在生产环境中你可以用 LangGraph 的 interrupt() 原语实现真正的暂停等待。意图路由一个 classify 节点 条件边就实现了多路径分流比一堆 if-else 清晰得多。六、LangGraph vs LangChain到底该选哪个这不是一个二选一的问题。LangGraph 是 LangChain 生态的一部分它们是互补关系维度LangChainLangGraph设计理念链式调用、组件化状态图、循环控制控制流线性/简单分支循环、条件分支、并行状态管理手动维护内置 State Reducer持久化需要额外实现原生 Checkpointer人机协作不支持原生 interrupt()适合场景RAG、简单问答、快速原型复杂 Agent、多步推理、生产系统学习曲线较低中等需要理解图的概念选择建议● 用 LangChain当你的应用是线性的输入→处理→输出不需要循环和复杂分支● 用 LangGraph当你需要 Agent 自主决策、循环推理、多路径分支、状态持久化● 两者结合在 LangGraph 的节点内部使用 LangChain 的组件如 Retriever、Tool七、进阶概念速览7.1 子图Subgraph当图变得复杂时可以将一部分逻辑封装为子图然后作为一个节点嵌入到父图中# 定义子图research_subgraph StateGraph(ResearchState)research_subgraph.add_node(search, search_node)research_subgraph.add_node(summarize, summarize_node)# ... 配置边 ...research_compiled research_subgraph.compile()# 作为节点嵌入父图main_graph StateGraph(MainState)main_graph.add_node(research, research_compiled)# 子图作为节点main_graph.add_node(write, write_node)7.2 流式输出StreamingLangGraph 支持多种级别的流式输出# 流式输出每个节点的更新for event in app.stream({messages:[HumanMessage(content你好)]}, stream_modeupdates,):print(event)# 流式输出 LLM 的 token最细粒度asyncfor event in app.astream_events({messages:[HumanMessage(content你好)]}, versionv2,):if event[event]on_chat_model_stream:print(event[data][chunk].content, end, flushTrue)7.3 LangGraph Platform生产部署LangGraph 提供了一套生产级部署方案● LangGraph Server将图部署为 API 服务● LangGraph Studio可视化调试工具可以看到图的执行过程● LangSmith 集成监控、追踪、评估你的 Agent 表现八、最佳实践与常见陷阱✅ DO推荐做法State 设计要精简只放真正需要在节点间传递的数据临时变量在节点内部处理善用 Reduceradd_messages 用于对话历史自定义 Reducer 用于列表累积等场景条件边要有兜底确保 should_continue 类函数覆盖所有可能的返回值先画图再写代码在白板上画出流程图然后翻译成 LangGraph 代码利用 get_graph().draw_mermaid_png()一行代码生成流程图方便团队沟通❌ DON’T避免的做法不要在节点里做太多事一个节点只做一件事复杂逻辑拆成多个节点不要忘记退出条件循环图必须有明确的终止条件否则会无限循环不要滥用全局状态不是所有变量都要放进 State过度使用会让图变得难以理解不要忽视错误处理工具调用可能失败LLM 可能返回格式异常要有兜底方案九、总结LangGraph 的本质是一种编排思维的升级● 从链式到图式● 从线性流程到循环决策● 从无状态到有状态● 从纯自动到人机协作它不是要取代 LangChain而是在你的 AI 应用复杂到一定程度时提供一个更合适的架构选择。如果你正在构建的 Agent 需要思考-行动-观察-再思考的循环或者需要多个 Agent 协同工作那么 LangGraph 几乎是目前最佳的选择。最后对于正在迷茫择业、想转行提升或是刚入门的程序员、编程小白来说有一个问题几乎人人都在问未来10年什么领域的职业发展潜力最大答案只有一个人工智能尤其是大模型方向当下人工智能行业正处于爆发式增长期其中大模型相关岗位更是供不应求薪资待遇直接拉满——字节跳动作为AI领域的头部玩家给硕士毕业的优质AI人才含大模型相关方向开出的月基础工资高达5万—6万元即便是非“人才计划”的普通应聘者月基础工资也能稳定在4万元左右。再看阿里、腾讯两大互联网大厂非“人才计划”的AI相关岗位应聘者月基础工资也约有3万元远超其他行业同资历岗位的薪资水平对于程序员、小白来说无疑是绝佳的转型和提升赛道。如果你还不知道从何开始我自己整理一套全网最全最细的大模型零基础教程我也是一路自学走过来的很清楚小白前期学习的痛楚你要是没有方向还没有好的资源根本学不到东西下面是我整理的大模型学习资源希望能帮到你。扫码免费领取全部内容最后1、大模型学习路线2、从0到进阶大模型学习视频教程从入门到进阶这里都有跟着老师学习事半功倍。3、 入门必看大模型学习书籍文档.pdf书面上的技术书籍确实太多了这些是我精选出来的还有很多不在图里4、AI大模型最新行业报告2026最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。5、面试试题/经验【大厂 AI 岗位面经分享107 道】【AI 大模型面试真题102 道】【LLMs 面试真题97 道】6、大模型项目实战配套源码适用人群四阶段学习规划共90天可落地执行第一阶段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 项目内容安全互联网信息服务算法备案…扫码免费领取全部内容3、这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】