游乐游手机版
首页/AI热点日报/热点详情

DeepSearcher深度研究框架本地部署剖析

类型:热点整理2026-07-03
探索AI领域最新动向,DeepSearcher这个创新工具确实值得仔细看看。它的架构、原理和实际应用,到底能为开发者带来什么?下面一步步拆解。 核心要点: 1 DeepSearcher与同类工具的横向对比 2 架构细节与研究流程解析 3 在智能检索生成技术中的独特优势 近期OpenAI的深度研
探索AI领域最新动向,DeepSearcher这个创新工具确实值得仔细看看。它的架构、原理和实际应用,到底能为开发者带来什么?下面一步步拆解。 核心要点: 1. DeepSearcher与同类工具的横向对比 2. 架构细节与研究流程解析 3. 在智能检索生成技术中的独特优势 近期OpenAI的深度研究成果在AI圈引发了不小的震动,随之而来的是Perplexity Deep Research、Hugging Face的Open DeepResearch等一批类似工具。这些工具虽然架构和方法各有侧重,但目标一致:通过反复研究网页或内部文档,输出一份完整且条理清晰的报告。它们的底层智能体都能够自动判断中间步骤该如何执行,这已经是行业共识。 今天聚焦的是Zilliz推出的开源项目——DeepSearcher。它整合了查询路由、条件执行流等前沿理念,支持网页爬取,以Python库和命令行工具的形式呈现,功能覆盖多源文档处理,还能灵活配置嵌入模型和向量数据库。虽然从复杂程度上看它还不是顶级,但在智能体增强检索生成(RAG)技术上的表现已经相当亮眼,实实在在地推动了AI应用的边界。 推理模型依赖“推理扩展”来提升输出质量,但频繁调用大语言模型也让推理带宽成为瓶颈。以SambaNova定制硬件上的DeepSeek-R1推理模型为例,它的输出速度比对手快出一倍(见下图所示)。 SambaNova Cloud为Llama 3.x、Qwen2.5和QwQ等开源模型提供推理服务,基于专为高效推理生成式AI模型设计的RDU定制芯片运行,能显著降本增效。更多详情可以前往官网了解。 # DeepSearcher架构 DeepSearcher的架构把整个研究拆成了四个关键步骤:定义/细化问题、研究、分析、综合。这几个步骤不是孤立的,而是相互重叠、协同增效。下面逐一展开,重点说明DeepSearcher在这几个环节中的改进之处。 ## 定义和细化问题:深度挖掘查询核心 以“《辛普森一家》随时间发生了哪些变化?”为例,DeepSearcher会将其拆解为多个子查询: * 从首播到现在,其文化影响和社会意义是如何演变的? * 不同季之间,角色发展、幽默风格和叙事方式发生了哪些变化? * 动画风格和制作技术是如何随时间变化的? * 播出期间,受众群体、观众反响和收视率发生了哪些变化? 关键在于,DeepSearcher对于问题和细化策略的边界是动态的。初始分解之后,研究过程会按需对问题进行再细化,灵活调整方向,精准挖掘信息。这为后续工作打下了扎实的基础。 ## 研究和分析 将查询分解为子查询后,智能体的研究部分才算真正开始。大致包含四个环节:路由、搜索、反思和条件重复。 ### 路由 数据库通常包含来自不同来源的多个表或集合。如果能把语义搜索限制在与当前查询相关的来源上,效率会高很多。查询路由器的作用就是促使大语言模型决定从哪些集合中检索信息。 构建查询路由的提示代码如下: ```python def get_vector_db_search_prompt( question: str, collection_names: List[str], collection_descriptions: List[str], context: List[str] = None, ): sections = [] # 通用提示 common_prompt = f"""你是一位高级人工智能问题分析师。运用你的推理能力和历史对话信息,基于所有现有数据集,准确回答以下问题,并根据可能与该问题相关的数据集描述,为每个数据集生成一个合适的问题。 问题:{question} """ sections.append(common_prompt) # 数据集提示 data_set = [] for i, collection_name in enumerate(collection_names): data_set.append(f"{collection_name}: {collection_descriptions[i]}") data_set_prompt = f"""以下是所有数据集信息。数据集信息的格式为数据集名称:数据集描述。 数据集及描述: """ sections.append(data_set_prompt + "n".join(data_set)) # 上下文提示 if context: context_prompt = f"""以下是历史对话的精简版本。在本次分析中,需要结合这些信息生成更接近答案的问题。你不能为同一个数据集生成相同或相似的问题,也不能为已确定无关的数据集重新生成问题。 历史对话: """ sections.append(context_prompt + "n".join(context)) # 响应提示 response_prompt = f"""基于以上内容,你只能从以下数据集列表中选择几个数据集,并为所选数据集生成合适的相关问题,以解决上述问题。输出格式为JSON,其中键是数据集名称,值是相应生成的问题。 数据集: """ sections.append(response_prompt + "n".join(collection_names)) footer = """仅以符合精确JSON模式的有效JSON格式进行响应。 关键要求: - 仅包含一种操作类型 - 切勿添加不支持的键 - 排除所有非JSON文本、Markdown格式内容或解释说明 - 严格遵守JSON语法""" sections.append(footer) return "nn".join(sections) ``` 让大语言模型以JSON格式返回结构化输出,可以轻松将其输出转化为下一步行动的决策依据。 ### 搜索 通过上一步选择了各种数据库集合后,搜索步骤会使用Milvus进行相似性搜索。源数据已预先指定、分块、嵌入并存储在向量数据库中。对于DeepSearcher,本地和在线的数据源都必须手动指定。在线搜索则留作未来的工作。 ### 反思 DeepSearcher展示了一种真正的智能体反思形式——它将之前的输出作为上下文输入到一个提示中,这个提示会“反思”到目前为止提出的问题以及检索到的相关文本块是否存在信息缺口。这可以看作是一个分析步骤。 创建该提示的代码如下: ```python def get_reflect_prompt( question: str, mini_questions: List[str], mini_chuncks: List[str], ): mini_chunk_str = "" for i, chunk in enumerate(mini_chuncks): mini_chunk_str += f"""n{chunk}nn""" reflect_prompt = f"""根据原始查询、之前的子查询以及所有检索到的文档块,判断是否需要额外的搜索查询。如果需要进一步研究,请提供一个最多包含3个搜索查询的Python列表。如果不需要进一步研究,则返回一个空列表。 如果原始查询是要撰写一份报告,那么你最好生成一些进一步的查询,而不是返回空列表。 原始查询:{question} 之前的子查询:{mini_questions} 相关文本块: {mini_chunk_str} """ footer = """仅以有效的字符串列表格式进行响应,不要包含任何其他文本。""" return reflect_prompt + footer ``` 再次让大语言模型返回结构化输出,这次是可由Python解释的数据。 以下是通过反思“发现”的新子查询示例: * 不同季中,《辛普森一家》配音演员和制作团队的变动对该剧的发展产生了怎样的影响? * 在过去几十年里,《辛普森一家》的讽刺和社会评论在适应当代问题的过程中发挥了什么作用? * 《辛普森一家》是如何应对并将媒体消费的变化(如流媒体服务)融入其发行和内容策略的? ### 条件重复 DeepSearcher展示了条件执行流。在反思到目前为止的问题和答案是否完整后,如果还有其他问题需要询问,智能体会重复上述步骤。关键在于,执行流(一个while循环)取决于大语言模型的输出,而不是硬编码。在这种情况下,只有两种选择:重复研究或生成报告。在更复杂的智能体中,可能会有更多选择,比如跟随超链接、检索文本块、存储在内存中、反思等。通过这种方式,智能体会根据需要不断细化问题,直到决定退出循环并生成报告。在关于《辛普森一家》的示例中,DeepSearcher又进行了两轮通过额外子查询填补信息缺口的操作。 ## 综合 最后,经过充分分解的问题和检索到的文本块会通过提示合成为一份报告。以下是创建提示的代码: ```python def get_final_answer_prompt( question: str, mini_questions: List[str], mini_chuncks: List[str], ): mini_chunk_str = "" for i, chunk in enumerate(mini_chuncks): mini_chunk_str += f"""n{chunk}nn""" summary_prompt = f"""你是一位人工智能内容分析专家,擅长总结内容。请根据之前的查询和检索到的文档块,总结出一份具体且详细的答案或报告。 原始查询:{question} 之前的子查询:{mini_questions} 相关文本块: {mini_chunk_str} """ return summary_prompt ``` ## 结果 以下是使用DeepSeek-R1,以《辛普森一家》的维基百科页面作为源材料,对“《辛普森一家》随时间发生了哪些变化?”这个查询生成的报告示例: **报告:《辛普森一家》的演变(1989年至今)** 1. **文化影响和社会意义**:《辛普森一家》首播时是对美国中产阶级生活的碘伏性批判,在20世纪90年代因其大胆的讽刺而声名大噪。最初,它是一种反文化现象,通过探讨宗教、整治和消费主义等主题的剧集挑战传统规范。随着时间的推移,随着《南方公园》和《恶搞之家》等竞争对手的出现,其文化影响力逐渐减弱。到了21世纪10年代,该剧从潮流引领者转变为承载怀旧情怀的经典,在平衡传统魅力的同时,试图探讨气候变化和LGBTQ+权利等现代问题,尽管其社会反响不如从前。 2. **结论**:《辛普森一家》从一部激进的讽刺剧演变成电视界的经典之作,经历了技术、整治和观众期望的变化。虽然其黄金时代的辉煌难以超越,但它通过流媒体、更新颖的幽默和全球传播等方式展现出的适应性,确保了它作为文化标志的地位。该剧的长久不衰既体现了人们的怀旧之情,也反映了它对变化的务实接受,尽管在碎片化的媒体环境中,它仍面临着保持相关性的挑战。
来源:https://www.53ai.com/news/OpenSourceLLM/2025031145023.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。