关于DeepResearch设计实现的碎碎念

前言

最近我们通过一些新闻博客包括LLMs产品的推出,DeepSearchDeepResearch这两个词不断的映入我们眼帘。

图片来源: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 生成答案,增强了回答的准确性和时效性。 过程包括:

  1. 检索:给定用户查询,系统搜索知识库(如文档、网页)找到相关内容,通常通过向量相似性搜索。
  2. 生成: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. 处理条件判断 系统会根据如下条件判断是否继续执行:

  1. Token 预算是否超出
  2. 动作深度是否超出

如果满足上述条件,则终止查询并直接返回答案;否则进入递归执行步骤。

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的优势。​

参考资料

相关推荐
致Great3 小时前
Gemma 3 27B版本超越DeepSeek V3:技术要点分析!
人工智能·llm
音视频牛哥4 小时前
SmartMediakit在四足机器人和无人机巡检中的创新应用方案
人工智能·机器学习·计算机视觉
致Great5 小时前
推理大模型的后训练增强技术-强化学习篇
人工智能·llm
致Great5 小时前
推理大模型的后训练增强技术--LLM 推理模型的现状
人工智能·llm
致Great5 小时前
大语言模型对软件工程师的影响曲线
人工智能·llm
AI Echoes5 小时前
大语言模型(LLM)的微调与应用
人工智能·语言模型·自然语言处理
Python测试之道6 小时前
Camel AI Owl + 阿里云QWQ 本地部署
人工智能·阿里云·云计算
訾博ZiBo6 小时前
AI日报 - 2025年3月13日
人工智能