微信扫码
添加专属顾问
我要投稿
探索AI领域创新工具DeepSearcher的全貌,洞悉其架构、原理与应用。核心内容:1. DeepSearcher与同类工具的对比分析2. DeepSearcher架构及研究流程解析3. DeepSearcher在智能检索生成技术中的应用与优势
一文读懂 DeepSearcher:架构、原理与应用全解析。
近期,OpenAI 的深度研究成果引发 AI 领域广泛关注,不少类似工具相继推出,如 Perplexity Deep Research、Hugging Face 的 Open DeepResearch 等。这些工具虽然架构和方法有差异,但都想通过反复研究网页或内部文档,输出一份详实、有条理的报告。而且,这些工具的底层智能体都能自动思考中间步骤该怎么做。
今天给大家介绍的是 Zilliz 的开源项目 DeepSearcher。DeepSearcher 融入查询路由、条件执行流等创新概念,支持网页爬取,以 Python 库和命令行工具呈现,功能丰富,能处理多源文档,还可配置嵌入模型和向量数据库。尽管它还不够复杂,但在智能体增强检索生成(RAG)技术方面表现亮眼,推动了人工智能应用发展。
推理模型依赖 “推理扩展” 提升输出质量,频繁调用大语言模型导致推理带宽成为瓶颈。我们采用 SambaNova 定制硬件上的 DeepSeek - R1 推理模型,其输出速度比对手快一倍(见图示)。
SambaNova Cloud 为 Llama 3.x、Qwen2.5 和 QwQ 等开源模型提供推理服务,基于 RDU 定制芯片运行,该芯片专为高效推理生成式 AI 模型设计,能降本增效,更多详情可前往官网查看(https://sambanova.ai/technology/sn40l-rdu-ai-chip)。
DeepSearcher 架构将研究流程分为定义/细化问题、研究、分析、综合四步,且步骤间相互重叠,协同增效。下文会逐步介绍每个步骤,并重点说明DeepSearcher的改进之处。
以“《辛普森一家》随时间发生了哪些变化?”为例,DeepSearcher会将其拆解为多个子查询:
DeepSearcher的特别之处在于,研究和细化问题的界限不固定。初始分解后,研究过程会按需对问题再细化,灵活调整研究方向,精准挖掘信息,为后续工作筑牢根基。
将查询分解为子查询后,智能体的研究部分就开始了。大致来说,这部分包含四个步骤:路由、搜索、反思和条件重复。
我们的数据库包含来自不同来源的多个表或集合。如果能将语义搜索限制在与当前查询相关的来源上,效率会更高。查询路由器会促使大语言模型决定从哪些集合中检索信息。
以下是构建查询路由提示的方法:
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"\n\n".join(sections)
让大语言模型以JSON格式返回结构化输出,这样就能轻松地将其输出转换为下一步行动的决策依据。
通过上一步选择了各种数据库集合后,搜索步骤会使用Milvus进行相似性搜索。源数据已预先指定、分块、嵌入并存储在向量数据库中。对于DeepSearcher,本地和在线的数据源都必须手动指定。我们将在线搜索留作未来的工作。
DeepSearcher展示了一种真正的智能体反思形式,它将之前的输出作为上下文输入到一个提示中,该提示会 “反思” 到目前为止提出的问题以及检索到的相关文本块是否存在信息缺口。这可以看作是一个分析步骤。
以下是创建提示的方法:
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"""<chunk_{i}>\n{chunk}\n</chunk_{i}>\n"""
reflect_prompt = f"""根据原始查询、之前的子查询以及所有检索到的文档块,判断是否需要额外的搜索查询。如果需要进一步研究,请提供一个最多包含3个搜索查询的Python列表。如果不需要进一步研究,则返回一个空列表。
如果原始查询是要撰写一份报告,那么你最好生成一些进一步的查询,而不是返回空列表。
原始查询:{question}
之前的子查询:{mini_questions}
相关文本块:
{mini_chunk_str}
"""
footer = """仅以有效的字符串列表格式进行响应,不要包含任何其他文本。"""
return reflect_prompt + footer
我们再次让大语言模型返回结构化输出,这次是可由Python解释的数据。
以下是在回答完上述初始子查询后,通过反思 “发现” 的新子查询示例:
DeepSearcher展示了条件执行流。在反思到目前为止的问题和答案是否完整后,如果还有其他问题需要询问,智能体会重复上述步骤。重要的是,执行流(一个while循环)取决于大语言模型的输出,而不是硬编码。在这种情况下,只有两种选择:重复研究或生成报告。在更复杂的智能体中,可能会有更多选择,例如:跟随超链接、检索文本块、存储在内存中、反思等。通过这种方式,智能体会根据需要不断细化问题,直到决定退出循环并生成报告。在我们关于《辛普森一家》的示例中,DeepSearcher又进行了两轮通过额外子查询填补信息缺口的操作。
最后,经过充分分解的问题和检索到的文本块会通过提示合成为一份报告。以下是创建提示的代码:
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"""<chunk_{i}>\n{chunk}\n</chunk_{i}>\n"""
summary_prompt = f"""你是一位人工智能内容分析专家,擅长总结内容。请根据之前的查询和检索到的文档块,总结出一份具体且详细的答案或报告。
原始查询:{question}
之前的子查询:{mini_questions}
相关文本块:
{mini_chunk_str}
"""
return summary_prompt
以下是使用DeepSeek-R1,以《辛普森一家》的维基百科页面作为源材料,对 “《辛普森一家》随时间发生了哪些变化?” 这个查询生成的报告示例:
《深入浅出机器学习:从数据到大模型》是一本旨在帮助读者系统学习机器学习的著作。本书通过深入浅出的方式,将复杂的机器学习理论和技术讲解得深入浅出。
本书从机器学习的基础开始,为读者提供了对数据处理、特征工程和模型评估等核心概念的全面介绍。读者将学习如何准备和清洗数据,如何选择和构建合适的特征,并学会使用各种评估指标来评估模型性能。
然后,本书深入探讨了常见的机器学习算法和技术。详细解释了线性回归、逻辑回归和神经网络等算法的原理和应用,通过丰富的示例和实践项目,掌握这些算法的实现和调优技巧。
本书聚焦于大规模模型和深度学习,介绍了深度学习的基本原理和常用的深度学习框架,如TensorFlow和PyTorch。读者将学习如何构建深度神经网络,如何进行模型训练和调优,并了解大规模机器学习系统的实现和部署。
独家5折购买链接:https://item.jd.com/14387333.html
QwQ-32B本地部署教程来了,全新开源推理大模型,性能比肩DeepSeek满血版
解读Deep Research:传统RAG已死,带你实现Agentic RAG
大模型应用开发平台Dify推出1.0版本,基于向量数据库Milvus实现RAG
从推理到编程,详细比较DeepSeek 32B、70B、R1实践性能
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-03-12
Cursor+21dev,低调的MCP 还是不得不火了
2025-03-12
突发!Manus官宣与阿里通义战略合作!开发国内版!
2025-03-12
2种方式1键部署,免费开源版OpenManus,28.7K Stars完全平替Manus
2025-03-12
刚刚,OpenAl 发布 Agent 工具包,网友:谢谢 Manus AI
2025-03-12
开源Embedding模型全景解析:从基础原理到实战应用
2025-03-11
阿里QwQ-32B发布啦,可能是671B最好的替代方案
2025-03-11
填补空白!首个提升大模型工作流编排能力的大规模数据集开源
2025-03-11
何必舍近求远 计算工厂帮你一键部署DeepSeek云主机
2025-01-01
2024-07-25
2024-05-06
2025-01-21
2024-09-20
2024-07-20
2024-06-12
2024-08-13
2024-07-11
2024-12-26
2025-03-08
2025-03-03
2025-03-02
2025-03-01
2025-02-26
2025-02-23
2025-02-18
2025-02-15