国产开源AI搜索引擎MindSearch:挑战ChatGPT和Perplexity.ai

探索MindSearch,这款由中科大和上海人工智能实验室研发的开源多智能体框架,挑战ChatGPT和Perplexity.ai,带来深度、广度和准确度兼备的AI搜索体验。

来自上海人工智能实验室。

有AI在的科技圈,似乎没有中场休息。除了大模型发布不断,各家科技大厂也在寻找第一个「杀手级」AI应用的落脚之地。

OpenAI 首先瞄准的是谷歌 1750 亿美元的搜索业务市场。7月25日,OpenAI 带着AI搜索引擎——SearchGPT高调入场。在演示demo中,搜索引擎的使用体验不再像以往一样,需要逐个点开网页链接,判断信息有没有用。SearchGPT像端上了一桌精美的套餐,所有答案都帮你总结好了。

国产开源AI搜索引擎MindSearch:挑战ChatGPT和Perplexity.ai

在演示demo中,SearchGPT分析了在应季最适合种植哪种品种的番茄。

不过,鉴于年初发布的Sora到目前都还未正式开放,估计很多人排上SearchGPT的体验名额也遥遥无期。

然而,有一款国产的开源平替,在与能联网的ChatGPT和专攻AI搜索引擎的Perplexity.ai的PK中,其回答在深度、广度和准确度方面都秒了这两款明星产品。

它甚至可以在不到3分钟内收集并整合300多页相关信息。这换成人类专家,需要大约3小时才能做完。

国产开源AI搜索引擎MindSearch:挑战ChatGPT和Perplexity.ai

这款「国货」就是多智能体框架MindSearch(思・索),由来自中科大和上海人工智能实验室的研究团队联合研发。正如其名,MindSearch是一个会「思索」的系统,面对你输入的问题,它将先调用负责充分「思」考问题的智能体,再启用全面搜「索」的智能体,这些智能体分工合作,理解你的需求,并为你呈上从互联网的五湖四海搜罗来的新鲜信息。

国产开源AI搜索引擎MindSearch:挑战ChatGPT和Perplexity.ai

论文链接:https://arxiv.org/abs/2407.20183

项目主页:https://mindsearch.netlify.app/

国产开源AI搜索引擎MindSearch:挑战ChatGPT和Perplexity.ai

MindSearch凭什么打败ChatGPT和Perplexity.ai呢?和别的AI搜索引擎相比,MindSearch有什么独到之处吗?

答案还得从它的名字说起。MindSearch的核心竞争力在于采用了多智能体框架模拟人的思维过程。

如果向Perplexity.ai提问「王者荣耀当前赛季哪个射手最强?」它会直接搜索这个问题,并总结网上已有的回复。把这个问题交给MindSearch,它会把这个问题拆解成一个逻辑链:「当前赛季是哪个赛季?」「从哪些指标可以衡量王者荣耀的射手的强度?」再汇总所能查询到的答案。

国产开源AI搜索引擎MindSearch:挑战ChatGPT和Perplexity.ai

技术实现

WebPlanner:基于图结构进行规划

仅依靠向大型语言模型输入提示词的方式并不能胜任智能搜索引擎。首先,LLM 不能充分理解复杂问题中的拓扑关系,比如前一段挂在热搜上的大模型无法理解9.9和9.11谁大的问题,就是这个问题的生动注脚。字与字之间的关系,LLM都很难在简单对话中理解,那么「这个季节种哪个品种的番茄最合适?」这种需要深入思考,分解成多个角度来回答的问题,对于LLM就更难了。换句话说,LLM很难将用户的意图逐步转化为搜索任务,并提供准确的响应,因此它总是提供一些模版式的知识和套话。

基于此,研究团队设计了高级规划器WebPlanner,它通过构建有向无环图(DAG)来捕捉从提问到解答之间的最优执行路径。对于用户提出的每个问题Q,WebPlanner将其解决方案的轨迹表示为G(Q) = 〈V, E〉。在这个图中,V代表节点的集合,每个节点v代表一个独立的网页搜索任务,包括一个辅助的起始节点(代表初始问题)和一个结束节点(代表最终答案)。E代表有向边,指示节点之间的逻辑和推理关系。

研究团队进一步利用LLM优越的代码能力,引导模型编写代码与DAG图交互。为了实现这一点,研究团队预定义了原子代码函数,让模型可以在图中添加节点或边。在解答用户问题的过程中,LLM先阅读整个对话,还有它在网上搜索到的信息。阅读完这些信息后,LLM会根据这些信息产生一些思考和新的代码,这些代码将通过Python解释器添加在用于推理的图结构中。

一旦有新节点加入图中,WebPlanner将启动WebSearcher来执行搜索任务,并整理搜索到的信息。由于新节点只依赖于之前步骤中生成的节点,所以这些节点可以并行处理,大大提高了信息收集的速度。当所有的信息收集完毕,WebPlanner将添加结束节点,输出最终答案。

国产开源AI搜索引擎MindSearch:挑战ChatGPT和Perplexity.ai

WebSearcher:分层检索网页

由于互联网上的信息实在太多,就算是LLM也不能一下子处理完所有的页面。针对这个问题,研究团队选择了先广泛搜索再精确选择的策略,设计了一个RAG智能体——WebSearcher。

首先,LLM将根据WebPlanner分配的问题,生成几个类似的搜索问题,扩大搜索的范围。接下来,系统将调用不同搜索引擎的API查询问题,例如分别在Google、Bing和DuckDuckGo查一下,得到网页的链接、标题和摘要等关键信息。接着,LLM将从这些搜索结果中选出最重要的网页来仔细阅读,汇总得出最终答案。

国产开源AI搜索引擎MindSearch:挑战ChatGPT和Perplexity.ai

MindSearch中的LLM如何管理上下文

作为一个多智能体框架,MindSearch为如何管理长上下文提供了全新尝试。当需要快速阅读大量网页时,由于最终答案只依赖WebSearcher的搜索结果,WebPlanner将专注于分析用户提出的问题,不会被过长的网页信息分心。

这种明确的分工也大大减少了上下文计算量。如何在多个智能体之间高效共享信息和上下文并非易事,研究团队在实证中发现,如果只依靠WebPlanner的分析,有可能会在信息收集阶段由于WebSearcher内部的局部感知场丢失有用的信息。为了解决这个问题,他们利用有向图边构建的拓扑关系来简化上下文如何在不同智能体间传递。

具体来说,在WebSearcher执行搜索任务时,它的父节点以及根节点的回答将作为前缀添加在其回答中。因此,每个WebSearcher可以有效地专注于其子任务,同时不会丢失之前的相关上下文或者忘记最终的查询目标。

本地部署

7月初,上海人工智能实验室已经开源了搭载MindSearch架构的InternLM2.5-7B-Chat模型。

除了直接点击链接跳转到体验Demo试玩,研究团队还公开了MindSearch的完整前后端实现,基于智能体框架Lagent,感兴趣的朋友可以在本地部署模型。

在线Demo:https://mindsearch.openxlab.org.cn/

开源代码:https://github.com/InternLM/mindsearch

在GitHub下载MindSearch仓库后,输入如下命令就可以打造属于自己的MindSearch了:

# 启动服务
python -m mindsearch.app --lang en --model_format internlm_server

## 一键启动多种前端

# Install Node.js and npm
# for Ubuntu
sudo apt install nodejs npm
# for windows
# download from https://nodejs.org/zh-cn/download/prebuilt-installer
# Install dependencies
cd frontend/React
npm install
npm start
    

给TA打赏
共{{data.count}}人
人已打赏
应用

谷歌 DeepMind 推出全新 Gemma 2 2B模型,iPhone 可跑

2024-8-1 13:53:28

应用

邓雅文夺得中国第8金,阿里云“子弹时间”定格奥运精彩瞬间

2024-8-1 14:47:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
搜索