vs 2015 网站开发公众号网站建设
2026/2/20 5:57:28 网站建设 项目流程
vs 2015 网站开发,公众号网站建设,google怎么推广,城乡建设部网站首页甲级引言#xff1a;传统 RAG 的瓶颈与突破 在大模型应用的浪潮中#xff0c;RAG#xff08;Retrieval-Augmented Generation#xff09;已成为构建知识密集型 AI 系统的主流范式。然而#xff0c;传统的检索→增强→生成三段式流水线在面对复杂查询时暴露出明显…引言传统 RAG 的瓶颈与突破在大模型应用的浪潮中RAGRetrieval-Augmented Generation已成为构建知识密集型 AI 系统的主流范式。然而传统的检索→增强→生成三段式流水线在面对复杂查询时暴露出明显的局限性无法处理多跳推理需要综合多个文档片段才能回答的问题静态知识边界无法获取实时信息或外部数据源检索策略单一对所有问题采用相同的检索方法缺乏自我纠错无法判断检索到的信息是否充分Deep Thinking RAG架构正是为了突破这些瓶颈而生这是一种具备自主推理能力的新型 RAG 系统通过 LangGraph 编排的循环推理机制实现了从简单检索到深度思考的跨越。它本质上是将 RAG 与 Agent 技术深度融合——具体 Agent 的构建与策略编排我们已在之前的“智能体实战合集”(持续更新)中有过大量深入实践而本文将是 RAG 检索增强工程与 Agent 推理框架的首次融合串联实现从“工具”向“智能体”的范式跃迁。由于受限于文章长度和照顾大家的阅读体验本文仅会列出主要部分代码完整实战代码在文末提供。视界君创作不易觉得有所帮助烦劳关注转发点赞一、Deep Thinking RAG 核心架构1.1 系统设计哲学许多复杂的查询需要推理、思考和明智的决策才能决定何时采取行动这与我们面对问题时检索信息的方式非常相似。这就是 RAG pipeline中由Agent驱动的操作发挥作用的地方。下图是Deep Thinking RAG pipeline示意图▲Deep Thinking RAG pipeline计划首先代理将复杂的用户查询分解为结构化的多步骤研究计划并决定每个步骤需要哪个工具内部文档搜索或网络搜索。检索对于每个步骤它执行自适应的多阶段检索流程使用监督器动态选择最佳搜索策略向量、关键词或混合。精炼然后使用高精度交叉编码器对初始结果进行重新排序并使用蒸馏代理将最佳证据压缩成简洁的上下文。反思每完成一步智能体都会总结其发现并更新其研究历史从而逐步建立对问题的理解。评论政策制定者随后会审查这段历史做出战略决策要么继续进行下一步研究要么在遇到瓶颈时修改计划要么结束研究。综合研究完成后最终决策者将从所有来源收集到的所有证据综合成一个单一、全面且可引用的答案。Deep Thinking RAG 的核心思想是将 RAG 系统从无状态的线性链升级为有状态的循环图。精简一下就是系统主要通过以下四个智能模块协同工作用户查询 ↓ ┌─────────────────────┐ │ Planning Agent │ ──→ 分解为多步子任务选择工具 └──────────┬──────────┘ ↓ ┌─────────────────────────────┐ │ Retrieval Supervisor │ ──→ 动态选择检索策略 │ (Vector/Keyword/Hybrid) │ └──────────┬──────────────────┘ ↓ ┌─────────────────────┐ │ Multi-Stage │ ──→ 检索 → 重排 → 蒸馏 │ Retrieval Funnel │ └──────────┬──────────┘ ↓ ┌─────────────────────┐ │ Policy Agent │ ──→ 判断继续 or 完成 └─────────────────────┘ ↓ 最终答案含引用1.2 状态管理系统的记忆中枢系统通过RAGState维护全局状态记录推理历程from typing import List, Dict, TypedDict, Literal, Optional from langchain_core.pydantic_v1 import BaseModel, Field class Step(BaseModel): 单步任务定义 sub_question: str Field(description具体的子问题) tool: Literal[search_10k, search_web] Field(description工具选择) keywords: List[str] Field(description关键检索词) document_section: Optional[str] Field(description目标文档章节) class Plan(BaseModel): 执行计划 steps: List[Step] class RAGState(TypedDict): 全局状态 original_question: str # 原始问题 plan: Plan # 执行计划 past_steps: List[Dict] # 历史推理记录 current_step_index: int # 当前步骤 retrieved_docs: List[Document] # 检索结果 reranked_docs: List[Document] # 重排后文档 synthesized_context: str # 蒸馏上下文 final_answer: str # 最终答案核心价值past_steps保存完整的推理链条tool字段实现内部文档与外部搜索的智能路由状态持久化支持断点续推和轨迹分析二、Deep Thinking RAG 关键组件2.1 工具感知的规划代理规划代理是系统的战略大脑负责查询分解与工具选择from langchain_core.prompts import ChatPromptTemplate from langchain_openai import ChatOpenAI planner_prompt ChatPromptTemplate.from_messages([ (system, 你是研究策略专家。将复杂查询拆解为多步计划。 可用工具 1. search_10k检索 NVIDIA 2023 年 10-K 财报历史数据 2. search_web搜索互联网最新信息实时数据 要求 - 每个子问题选择最合适的工具 - 对 search_10k 指定目标章节如 Item 1A. Risk Factors), (human, 查询: {question}) ]) reasoning_llm ChatOpenAI(modelgpt-4o, temperature0) planner_agent planner_prompt | reasoning_llm.with_structured_output(Plan)实际效果示例输入查询“基于 NVIDIA 2023 年 10-K识别竞争风险。然后查找 2024 年 AMD AI 芯片战略分析其对 NVIDIA 风险的影响。”输出计划步骤 1: 工具search_10k, 章节Item 1A. Risk Factors 子问题: NVIDIA 列出了哪些竞争相关风险 步骤 2: 工具search_web 子问题: AMD 在 2024 年推出了哪些 AI 芯片产品 步骤 3: 工具search_10k, 章节Item 1A. Risk Factors 子问题: AMD 新战略如何影响 NVIDIA 的竞争风险2.2 自适应检索监督者不同问题需要不同检索策略。监督者通过 LLM 分析查询特征动态选择最优方法class RetrievalDecision(BaseModel): strategy: Literal[vector_search, keyword_search, hybrid_search] justification: str retrieval_supervisor_prompt ChatPromptTemplate.from_messages([ (system, 选择最佳检索策略 - vector_search概念性查询如公司对气候变化的态度 - keyword_search精确查询如Item 1A、Hopper 架构 - hybrid_search复杂查询结合语义与关键词), (human, 查询: {sub_question}) ]) retrieval_supervisor retrieval_supervisor_prompt | \\ reasoning_llm.with_structured_output(RetrievalDecision)决策示例# 查询 12023 财年 Compute 部门营收 # 决策keyword_search包含特定术语需精确匹配 # 查询 2市场竞争的总体情绪 # 决策vector_search概念性需语义理解2.3 多策略检索 高精度重排系统实现三种检索策略并通过交叉编码器Cross-Encoder进行高精度重排from langchain_community.vectorstores import Chroma from rank_bm25 import BM25Okapi from sentence_transformers import CrossEncoder # 策略 1向量检索支持元数据过滤 def vector_search_only(query: str, section_filter: str None, k: int 10): filter_dict {section: section_filter} if section_filter else None return vector_store.similarity_search(query, kk, filterfilter_dict) # 策略 2BM25 关键词检索 def bm25_search_only(query: str, k: int 10): tokenized_query query.split( ) scores bm25.get_scores(tokenized_query) top_k_indices np.argsort(scores)[::-1][:k] return [doc_map[doc_ids[i]] for i in top_k_indices] # 策略 3混合检索RRF 融合 def hybrid_search(query: str, section_filter: str None, k: int 10): bm25_docs bm25_search_only(query, kk) semantic_docs vector_search_only(query, section_filter, kk) # 倒数排名融合Reciprocal Rank Fusion return rrf_fusion(bm25_docs, semantic_docs, k) # 高精度重排序 reranker CrossEncoder(cross-encoder/ms-marco-MiniLM-L-6-v2) def rerank_documents(query: str, documents: List[Document], top_n: int 3): pairs [(query, doc.page_content) for doc in documents] scores reranker.predict(pairs) doc_scores sorted(zip(documents, scores), keylambda x: x[1], reverseTrue) return [doc for doc, _ in doc_scores[:top_n]]关键优势第一阶段广度检索 Top-K (如 10) 个候选文档最大化召回第二阶段精度交叉编码器深度对比 query-document筛选 Top-N (如 3) 高质量文档元数据过滤通过section_filter精确定位目标章节2.4 上下文蒸馏与外部工具# 上下文蒸馏代理 distiller_prompt ChatPromptTemplate.from_messages([ (system, 将检索片段合成简洁上下文直接回答{question}), (human, 检索文档:\\n{context}) ]) distiller_agent distiller_prompt | reasoning_llm | StrOutputParser() # 外部搜索工具 from langchain_community.tools.tavily_search import TavilySearchResults web_search_tool TavilySearchResults(k3) def web_search_function(query: str) - List[Document]: results web_search_tool.invoke({query: query}) return [Document(page_contentres[content], metadata{source: res[url]}) for res in results]三、LangGraph 编排构建推理闭环3.1 核心图节点定义from langgraph.graph import StateGraph, END def plan_node(state: RAGState): 生成执行计划 plan planner_agent.invoke({question: state[original_question]}) return {plan: plan, current_step_index: 0, past_steps: []} def retrieval_node(state: RAGState): 内部文档检索自适应策略 step state[plan].steps[state[current_step_index]] # 1. 查询重写 rewritten_query query_rewriter_agent.invoke({ sub_question: step.sub_question, keywords: step.keywords, past_context: get_past_context(state[past_steps]) }) # 2. 策略选择 decision retrieval_supervisor.invoke({sub_question: rewritten_query}) # 3. 执行检索 if decision.strategy vector_search: docs vector_search_only(rewritten_query, step.document_section, k10) elif decision.strategy keyword_search: docs bm25_search_only(rewritten_query, k10) else: docs hybrid_search(rewritten_query, step.document_section, k10) return {retrieved_docs: docs} def web_search_node(state: RAGState): 外部网络搜索 step state[plan].steps[state[current_step_index]] docs web_search_function(step.sub_question) return {retrieved_docs: docs} def rerank_node(state: RAGState): 文档重排序 step state[plan].steps[state[current_step_index]] reranked rerank_documents(step.sub_question, state[retrieved_docs], top_n3) return {reranked_docs: reranked} def compression_node(state: RAGState): 上下文蒸馏 step state[plan].steps[state[current_step_index]] context \\n\\n.join([doc.page_content for doc in state[reranked_docs]]) synthesized distiller_agent.invoke({ question: step.sub_question, context: context }) return {synthesized_context: synthesized} def reflection_node(state: RAGState): 总结当前步骤 summary reflection_agent.invoke({ sub_question: state[plan].steps[state[current_step_index]].sub_question, context: state[synthesized_context] }) new_past_step { step_index: state[current_step_index] 1, summary: summary, retrieved_docs: state[reranked_docs] } return { past_steps: state[past_steps] [new_past_step], current_step_index: state[current_step_index] 1 } def final_answer_node(state: RAGState): 生成最终答案含引用 # 整合所有证据 final_context aggregate_all_evidence(state[past_steps]) final_answer final_answer_agent.invoke({ question: state[original_question], context: final_context }) return {final_answer: final_answer}3.2 条件边与控制策略def route_by_tool(state: RAGState) - str: 根据工具类型路由 return state[plan].steps[state[current_step_index]].tool def should_continue(state: RAGState) - str: 判断是否继续推理 # 检查 1计划是否完成 if state[current_step_index] len(state[plan].steps): return finish # 检查 2是否超过最大迭代 if state[current_step_index] 7: return finish # 检查 3LLM 自我判断 history get_past_context(state[past_steps]) decision policy_agent.invoke({ question: state[original_question], history: history }) return finish if decision.next_action FINISH else continue3.3 图构建与编译# 创建状态图 graph StateGraph(RAGState) # 添加节点 graph.add_node(plan, plan_node) graph.add_node(retrieve_10k, retrieval_node) graph.add_node(retrieve_web, web_search_node) graph.add_node(rerank, rerank_node) graph.add_node(compress, compression_node) graph.add_node(reflect, reflection_node) graph.add_node(generate_final_answer, final_answer_node) # 设置入口 graph.set_entry_point(plan) # 条件路由根据工具类型 graph.add_conditional_edges( plan, route_by_tool, {search_10k: retrieve_10k, search_web: retrieve_web} ) # 处理流程 graph.add_edge(retrieve_10k, rerank) graph.add_edge(retrieve_web, rerank) graph.add_edge(rerank, compress) graph.add_edge(compress, reflect) # 循环判断 graph.add_conditional_edges( reflect, should_continue, {continue: plan, finish: generate_final_answer} ) graph.add_edge(generate_final_answer, END) # 编译 deep_thinking_rag graph.compile()四、实战对比Baseline vs Deep Thinking4.1 测试查询complex_query 基于 NVIDIA 2023 年 10-K 财报识别其与竞争相关的关键风险。 然后查找 2024 年财报发布后关于 AMD 的 AI 芯片战略的最新新闻 并分析这一新战略如何直接加剧或应对 NVIDIA 所述的竞争风险。4.2 Baseline RAG失败案例baseline_result baseline_rag_chain.invoke(complex_query)输出基于提供的上下文NVIDIA 在 2023 年 10-K 中提到了激烈的市场竞争… 然而关于 AMD 在 2024 年的 AI 芯片战略提供的文档中没有相关信息。 因此我无法分析其对 NVIDIA 风险的影响。失败原因静态知识库无法获取 2024 年信息单次检索无法分解多跳逻辑4.3 Deep Thinking RAG成功案例# 执行推理循环 final_state None for chunk in deep_thinking_rag.stream({original_question: complex_query}): final_state chunk print(final_state[final_answer])输出NVIDIA 在其 2023 年 10-K 财报的Item 1A. Risk Factors中明确指出半导体行业竞争极为激烈技术变革迅速且面临来自 AMD、Intel 等竞争对手在 GPU 和 AI 加速器市场的压力 [来源: Item 1A. Risk Factors]。根据 2024 年的最新报道AMD 推出了 MI300X AI 加速器该产品直接对标 NVIDIA 的 H100并已被 Microsoft Azure、Oracle Cloud 等主要云服务商采用[来源: https://techcrunch.com/amd-mi300x-2024]。这一战略 …成功要素✅ 自动分解为 3 个子任务✅ 正确路由到内部文档步骤1、3和外部搜索步骤2✅ 成功综合跨源信息生成连贯分析✅ 提供完整的信息溯源五、量化评估RAGAs 验证5.1 评估框架from datasets import Dataset from ragas import evaluate from ragas.metrics import ( context_precision, # 检索精度 context_recall, # 检索召回 faithfulness, # 答案忠实度 answer_correctness # 答案正确性 ) # 构建评估数据 eval_data { question: [complex_query, complex_query], answer: [baseline_result, final_state[final_answer]], contexts: [baseline_contexts, advanced_contexts], ground_truth: [ground_truth, ground_truth] } result evaluate(Dataset.from_dict(eval_data), metrics[context_precision, context_recall, faithfulness, answer_correctness])5.2 评估结果系统Context PrecisionContext RecallFaithfulnessAnswer CorrectnessBaseline RAG0.500.331.000.40Deep Thinking RAG1.001.001.000.99核心发现Context Precision100%Baseline检索到大量无关章节精度 50%Deep Thinking通过元数据过滤精确定位精度 100%Context Recall203%Baseline完全遗漏 2024 年外部信息召回 33%Deep Thinking通过工具路由获取所有必需信息召回 100%Answer Correctness148%Baseline只完成了部分任务40% 正确Deep Thinking实现近乎完美的多源综合分析99% 正确六、生产化建议6.1 性能优化# 1. 启用 Redis 缓存降低 70% 重复查询成本 from langchain.cache import RedisCache set_llm_cache(RedisCache(redis_client)) # 2. LangSmith 可观测性追踪所有推理轨迹 os.environ[LANGSMITH_TRACING] true os.environ[LANGSMITH_PROJECT] DeepThinking-RAG-Prod # 3. 策略模型蒸馏将 GPT-4o 替换为微调的 Llama-3-8B # 推理速度提升 10x成本降低 95%6.2 容错与降级def safe_retrieval_node(state: RAGState): try: return retrieval_node(state) except Exception as e: logger.error(f检索失败: {e}) # 降级返回缓存的相关文档 return {retrieved_docs: get_cached_docs(state)}6.3 扩展方向多模态支持整合图表、视频等非文本信息并行执行独立子任务并行处理降低延迟强化学习通过用户反馈优化策略选择个性化定制为不同场景训练专属策略模型七、总结7.1 Deep Thinking RAG 的核心价值维度传统 RAGDeep Thinking RAG认知模式被动检索主动推理知识边界单一静态库多源动态融合执行流程固定流水线自适应策略可解释性黑盒输出完整溯源链7.2 技术突破点从工具到智能体系统具备规划、决策、反思能力从单源到多源无缝整合内部知识库与外部实时信息从固定到自适应根据任务特性动态优化检索策略从结果到过程每个结论都附带完整的推理轨迹7.3 适用场景企业智能问答结合内部文档与行业动态金融研报生成整合财报、新闻、市场数据法律案例分析关联法条、判例、最新裁决科研文献综述跨论文、跨时间的知识图谱构建获取完整代码 本文为了精简篇幅省略了部分实现细节如查询重写、策略代理、文档预处理等。完整的生产级代码含详细注释请后台回复“DeepThinkingRAG”即可获取。参考资源论文DeepRAG - Deep Reasoning for Retrieval-Augmented Generation框架LangGraph 官方文档评估RAGAs Evaluation Framework如何学习大模型 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 的正确特征了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询