前言
最近我们通过一些新闻博客包括LLMs产品的推出,DeepSearch
和DeepResearch
这两个词不断的映入我们眼帘。
图片来源:Jina,DeepSearch 与 DeepResearch 的设计和实现 zhuanlan.zhihu.com/p/265600005...
一个有趣的发现是,DeepSearch 和 DeepResearch 不仅限于 OpenAI ,之前一直听说OpenAI的DeepResearch特别厉害,最近许多公司如 Jina AI、Perplexity 和 Google 也在开发类似工具。例如,Jina AI 推出了开源的 node-deepresearch,X AI 将 DeepSearch 集成到 Grok3 中,形成了DeepResearch 的变体。这可能表明AI 搜索和研究工具正迅速多样化,可能在未来几年内成为大模型的特色功能。
在探讨DeepResearch设计与实现之前,我们先回顾下大模型问答、RAG 问答、DeepSearch 和 DeepResearch 的定义与区别,也从不同维度进行对比,以帮助我们更好理解它们之间的差异性。
大模型问答、RAG问答、DeepSearch 和 DeepResearch对比
这些术语经常在我们使用大模型的时候出现,然后它们也在提高我们生产效率变得日益重要,特别是在问答和信息检索的背景下。以下是详细分析,涵盖定义、实现方式和差异。
什么是大模型问答?
这个我们再熟悉不过了
**大模型问答指的是利用大型语言模型(LLM)来回答用户提出的问题。**这些模型,如GPT 系列,通常通过海量文本数据训练,具备理解和生成自然语言的能力。
-
由于LLM 包含大量参数,需要高计算资源,尤其对实时推理这个要求会更高。
-
在大模型问答中,模型直接基于其预训练知识生成答案。例如,询问"地球的直径是多少?",模型会从训练数据中提取答案。然而,其局限在于知识的时效性和覆盖范围。例如,2025 年最新的科学发现可能不在模型训练数据中,导致答案不准确。
-
从应用场景看,大模型问答适合简单、常见问题,但对于需要实时或特定领域知识的问题,表现可能有限,模型可能出现"幻觉"(hallucination),即生成不准确或虚构的信息,尤其在复杂或新颖问题上。
什么是 RAG 问答?
RAG 问答,即检索增强生成问答,是一种结合检索和生成的技术。RAG 框架通过从知识库中检索相关信息,然后由 LLM 生成答案,增强了回答的准确性和时效性。 过程包括:
- 检索:给定用户查询,系统搜索知识库(如文档、网页)找到相关内容,通常通过向量相似性搜索。
- 生成:LLM 基于检索到的信息生成自然语言答案。
例如,在医疗问答中,RAG 可能从最新医学文献中检索数据,确保答案基于当前研究。
研究显示,RAG 在开放域问答(如 HotpotQA、TriviaQA)中表现优于纯 LLM,尤其在多跳问答(multi-hop QA)中,需结合多个信息源。相比大模型问答,RAG 更依赖外部知识库的更新和质量,知识库可以是结构化(如数据库)或非结构化(如 PDF、网页)。
什么是 DeepSearch?
DeepSearch 是一个较新的术语,尚未完全标准化,但从多个来源来看,它指的是一种迭代的搜索过程,涉及搜索、阅读和推理的循环。根据Jina前几天比较火的文章 A Practical Guide to Implementing DeepSearch/DeepResearch描述: DeepSearch 被描述为"搜索、阅读和推理直到找到最佳答案",类似于 RAG 但更强调多步工具使用。例如,AI 可能先搜索相关文档,阅读内容,推理下一步搜索方向,再继续优化。
这种方法特别适合复杂问题,需要逐步细化信息。
从实现上看,DeepSearch 可能涉及工具链,如向量搜索、关键词搜索,甚至 web 爬虫,结合 LLM 的推理能力。Jina AI 的博客提到,DeepSearch 在 2025 年已成为搜索新标准,特别是在 Deepseek-r1 模型发布后,Baidu 和 Tencent 等平台已集成类似功能。相比 RAG,DeepSearch 的迭代性质可能提高检索精度,但也可能增加计算成本。
什么是 DeepResearch?
DeepResearch 是一个具体工具或功能,特别是在 OpenAI 的 ChatGPT 中实现。根据 OpenAI's 'deep research' tool: is it useful for scientists?来看:
DeepResearch 是一个 AI 代理,能自主浏览网页,生成带引用的长篇详细报告,处理复杂研究任务。
Jina文章中也提到:
DeepResearch 是在 DeepSearch 的基础上,增加了一个结构化的框架,用于生成长篇的研究报告。 它的工作流程一般从创建目录开始,然后系统性地将 DeepSearch 应用于报告的每一个所需部分:从引言到相关工作、再到方法论,直至最后的结论。报告的每个章节都是通过将特定的研究问题输入到 DeepSearch 中来生成的。最后将所有章节整合到一个提示词中,以提高报告整体叙述的连贯性。
我们可以看到DeepResearch是DeepSearch高级版本
例如,用户输入"2025 年 AI 趋势",DeepResearch 会搜索相关网站,整理信息,输出结构化报告,包含关键发现和链接。
从技术上看,DeepResearch 基于 LLM(如 OpenAI 的 o3 模型)和"代理框架"(agentic framework),指导模型使用工具如 web 搜索,按步骤组织行动。根据ChatGPT Deep Research介绍,它能解读文本、图像和 PDF,计划支持可视化输出,但可能存在"幻觉"问题,如事实错误或无法区分权威来源。
但是使用比较昂贵当前,DeepResearch 提供给 ChatGPT Pro 用户(每月 200 美元,100 次查询),并计划扩展到 Plus、Team 和 Enterprise 用户(每月 10 次查询)。
四者对比分析
以下表格总结四者的关键差异:
方面 | 大模型问答 | RAG 问答 | DeepSearch | DeepResearch |
---|---|---|---|---|
信息来源 | 模型内部预训练知识 | 外部知识库(文档、数据库) | 动态搜索,迭代获取信息 | 自主 web 搜索,生成报告 |
过程 | 直接生成答案 | 检索 + 生成 | 搜索-阅读-推理的迭代循环 | 自动研究,生成带引用的报告 |
输出形式 | 简短文本答案 | 基于检索的答案 | 可能涉及详细推理过程 | 长篇结构化报告,含引用 |
适用场景 | 简单问题,常见知识 | 需要实时数据的复杂问题 | 复杂问题,需要多步推理 | 深入研究任务,生成报告 |
局限 | 知识时效性差,可能出现幻觉 | 依赖知识库质量,检索可能冗余 | 计算成本高,迭代复杂 | 可能有幻觉,区分权威性困难 |
从上述对比看,大模型问答是最基础的形式,RAG 问答通过检索增强了准确性,DeepSearch 进一步迭代优化搜索过程,而 DeepResearch 则是自动化的研究工具,输出形式更适合学术或专业需求。
DeepResearch实现
由于Jina开源的node-DeepResearch是Typescript开发,笔者在TrustRAG框架基础之上,用python实现了一个简易版本的DeepResearch,以下为实现逻辑。
DeepResearch流程设计
DeepResearch流程示意图如下:
DeepResearch 框架通过分层查询、递归迭代以及智能决策等步骤,实现深度信息搜索和处理。本流程主要包含以下关键步骤:
1. 意图理解(Intent Understanding) 用户输入查询后,系统会将其解析为多个子查询,以便更精确地理解用户需求。
2. 处理条件判断 系统会根据如下条件判断是否继续执行:
- Token 预算是否超出
- 动作深度是否超出
如果满足上述条件,则终止查询并直接返回答案;否则进入递归执行步骤。
3. 递归执行步骤 在递归执行过程中,系统执行信息检索、模型推理及上下文处理等任务 信息检索
- 获取当前问题
- 构建问题执行序列
- 递归遍历
- 深度优先搜索
- 模型推理 系统进行模型推理,通过系统提示和上下文理解来判断下一步动作。
4. 动作类型判定 根据推理结果,系统决定下一步执行的动作类型:
-
answer:回答动作
-
reflect:反思动作
-
search:搜索动作
-
read:阅读动作
-
coding:代码动作
这些动作会影响上下文,并不断更新系统状态。
5. 结果反馈 根据最终的动作类型,系统执行相应的任务,并将结果返回给用户,完成整个流程。
以上流程是根据一些开源方案理解大致拍了一下,大家也可以根据自己的理解去设计,这里仅限参考。
DeepResearch实测
下面是一个测试例子,查询问题为:大模型强化学习技术
yaml
🔍 你想研究什么?大模型强化学习技术
📊 研究广度,查询扩展的个数(建议2-10)[4]:4
🔍研究深度,递归检索的深度(建议1-5)[2]:2
⠋ 正在探究你的主题...2025-03-09 12:57:06.607 | INFO | trustrag.modules.deepsearch.action:deep_research:201 - 开始研究查询: '大模型强化学习技术'
2025-03-09 12:57:06.607 | INFO | trustrag.modules.deepsearch.action:deep_research:202 - 当前深度: 2, 广度: 4, 并发数: 2
正在进行研究主题的意图理解...
⠸ 正在探究你的主题...2025-03-09 12:57:09.304 | INFO | trustrag.modules.deepsearch.action:deep_research:214 - 生成了 4 个搜索查询:
2025-03-09 12:57:09.304 | INFO | trustrag.modules.deepsearch.action:deep_research:216 - 查询 1: 大模型强化学习技术的最新进展
2025-03-09 12:57:09.305 | DEBUG | trustrag.modules.deepsearch.action:deep_research:217 - 研究目标: 了解当前在大模型强化学习领域的最新研究成果和技术进展。
2025-03-09 12:57:09.305 | INFO | trustrag.modules.deepsearch.action:deep_research:216 - 查询 2: 大模型强化学习技术在实际应用中的案例分析
2025-03-09 12:57:09.305 | DEBUG | trustrag.modules.deepsearch.action:deep_research:217 - 研究目标: 研究大模型强化学习技术在不同领域中的实际应用案例,分析其效果和挑战。
2025-03-09 12:57:09.305 | INFO | trustrag.modules.deepsearch.action:deep_research:216 - 查询 3: 大模型强化学习算法与传统算法的比较
2025-03-09 12:57:09.306 | DEBUG | trustrag.modules.deepsearch.action:deep_research:217 - 研究目标: 比较大模型强化学习算法与传统机器学习算法的性能及其适用场景。
2025-03-09 12:57:09.306 | INFO | trustrag.modules.deepsearch.action:deep_research:216 - 查询 4: 未来大模型强化学习技术的发展趋势
2025-03-09 12:57:09.306 | DEBUG | trustrag.modules.deepsearch.action:deep_research:217 - 研究目标: 预测大模型强化学习技术在未来的发展方向及潜在突破。
2025-03-09 12:57:09.306 | INFO | trustrag.modules.deepsearch.action:deep_research:293 - 并发处理 4 个查询
2025-03-09 12:57:09.307 | INFO | trustrag.modules.deepsearch.action:process_query:227 - 开始处理子查询: '大模型强化学习技术的最新进展'
2025-03-09 12:57:09.307 | INFO | trustrag.modules.deepsearch.action:process_query:227 - 开始处理子查询: '大模型强化学习技术在实际应用中的案例分析'
下面是意图拆解以及递归搜索的示意过程: 其中搜索引擎采用的websearch搜索,主要是免费的duckduck,searxng来实现的。
到最后差不多生成了不到2000字的报告,整体过程耗时不到4分钟多。 上图是最后生成的一个markdown报告,总体来说逻辑还算是正确的,形式相对可以。不过篇幅内容较短,关于"强化学习在大模型应用"阐释不够具体。
关于DeepResearch实现的几点思考
通过一些现象下面是关于DeepResearch实现的几点思考:
为什么模型生成较短?
通过对比与grok3 deepsearch结果,其实可以发现一些差距,关于背后实现确实有很多可以打磨的细节,比如搜索内容的信息源,网页内容检索的质量,影响非常大。如果检索出来内容不准,检索内容过少,检索内容噪音较多,这些都会对模型生成带来影响,包括不限于模型幻觉,模型生成中断,内容逻辑混乱
什么问题或者什么场景适合DeepResearch?
其实可以说DeepResearch是用来做复杂任务的,上面其实问的问题相对比较宽泛,又比如我们问法国的首都是哪个城市?其实这种简单问题不适合这个场景,所以很多平台开启了DeepSearch切换模式,也就是上面四个问答模式可以用在不同场景的,需要我们结合问题去自由选择,最好能够收益最大化。
思维链的输出是否重要
上面测试例子我用的GPT4-o3-mini的API,假设我们用一些输出带有思维链的模型,比如DeepSeek-R1系列,可能速度会慢很多。如果为了显示思考过程,也可以用R1系列。但是这里需要注意的是,DeepResearch中间迭代反思的过程和模型自己本身推理思考的过程是不同的,模型本身的DeepThink的思维链,DeepResearch的反思是多个动作组合。不过从Grok3的体验来看,更加偏向于不断反思,而不是问一个问题,直接把所有思维链一下子输出,毕竟中间涉及到不断的检索,所以这个时候感觉过多的思考直观感受就是会慢上加慢,另外就是模型本身思维链输出收益不大,比重不高。
执行步骤的中间结果应该怎么利用?
中间动作可能会涉及检索、思考、内容抽取、答案总结等,目前实现的是直接根据每个子查询的答案总结拼接成一个上下文,然后根据提示生成最终的报告,那么其实中间很多信息目前还没有想好怎么去用。如果用上全部检索信息可能也不显示,直接用原始检索内容可能也不合适,一个是token消耗比较多,另一个是会造成信息冗余。
总结来看,DeepResearch的实现需要在信息检索、模型推理和结果整合等方面进行精细打磨。通过优化检索源的质量、合理选择模型的推理方式以及有效利用中间结果,可以提升模型的生成效果,减少幻觉现象,确保输出内容的逻辑性和连贯性。 在实际应用中,应根据具体场景选择合适的模式,以最大化地发挥DeepResearch的优势。