书生大模型实战营(第三期闯关大挑战)- 彩蛋岛 MindSearch 快速部署

1.什么是MindSearch

MindSearch 是一个由上海人工智能实验室推出的开源 AI 搜索引擎框架,具有与 Perplexity.ai Pro 相同的性能。它支持使用闭源和开源的大语言模型(LLMs),如 GPT、Claude 和 InternLM2.5-7b-chat,用户可以轻松部署自己的搜索引擎。其拥有以下特性:

  • 🤔 任何想知道的问题:MindSearch 通过搜索解决你在生活中遇到的各种问题
  • 📚 深度知识探索:MindSearch 通过数百网页的浏览,提供更广泛、深层次的答案
  • 🔍 透明的解决方案路径:MindSearch 提供了思考路径、搜索关键词等完整的内容,提高回复的可信度和可用性。
  • 💻 多种用户界面:为用户提供各种接口,包括 React、Gradio、Streamlit 和本地调试。根据需要选择任意类型。
  • 🧠 动态图构建过程:MindSearch 将用户查询分解为图中的子问题节点,并根据 WebSearcher 的搜索结果逐步扩展图。

teaser

MindSearch VS 其他 AI 搜索引擎

在深度、广度和生成响应的准确性三个方面,对 ChatGPT-Web、Perplexity.ai(Pro)和 MindSearch 的表现进行比较。评估结果基于 100 个由人类专家精心设计的现实问题,并由 5 位专家进行评分*。

mindsearch_openset

今天就大家在InternStudio 上部署起来。(什么是InternStudio ,IInternStudio 是一个云端算力平台,专为大模型时代设计)

2.创建开发机

我们首先需要登录InternStudio算力平台

image-20240803111808945

这里的算力积分是需要参与他们提供的训练营获得。详细情况可以参考https://aicarrier.feishu.cn/wiki/XBO6wpQcSibO1okrChhcBkQjnsf

点击开发机-创建开发机

image-20240803112052000

接下来进入开发机资源选择界面

填写开发机名称:MindSearch

镜像:Cuda12.2-conda

资源配置:50% A100 * 1

image-20240803112402815

以上配置完成后等待资源分配。

image-20240803112652878

资源分配完成后,我们右边操作‘’进入开发机"进入Jupyter Notebook开发机界面

image-20240803112903494

​ 初次进来左边是没有相当代码和文件的。因为我的之前有相关文件所以列表中显示了一些测试代码。(这个没关系,大家能理解就可以了)

3 .激活环境

因为该平台已经安装好小助手了,所以我们这里只需要将share 分享文件夹里面mindsearch 环境激活即可。

点击 terminal 进入 shell 命令行窗口

image-20240803113322426

image-20240803113353211

输入conda 命令激活运行环境

conda activate /share/pre_envs/mindsearch

image-20240803113443759

4 .启动服务

启动后端服务

打开新终端运行以下命令启动推理后端

cd /share/demo/MindSearchDuck
python -m mindsearch.app --lang cn --model_format internstudio_server	

image-20240803113724717

启动前端服务

打开新终端运行以下命令启动推理前端,我们可以重新开个窗口执行如下命令

image-20240803114015129

conda activate /share/pre_envs/mindsearch
cd /share/demo/MindSearchDuck
python run.py

image-20240803114101092

使用端口映射

这里解释一下,因为我们是在Jupyter Notebook开发机界面启动服务的,我们需要访问web页面才能访问MindSearch进行联网搜索,所以我们这里需要端口映射到本地。

打开 windows powershell

image-20240803114707621

回到开发机管理界面,点击ssh连接

image-20240803114811158

在弹出的对话框中,复制ssh链接命令

image-20240803114838645

这里面复制的命令我们需要稍微修改一下,修改成下面的命令,其中我们需要增加本地7860:127.0.0.1:7860 地址信息

ssh -p 44847 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no

复制以上命令到 windows powershell 窗口中执行,这个时候会弹出输入密码

image-20240803115326348

我们需要将上面在弹出的对话框中,复制密码,将密码复制到上面窗口中执行,点击回车

image-20240803115422522

image-20240803115606911

以上步骤就完成端口映射。

按照上面同样的步骤把后端服务也映射出来,详细操作这里就不介绍了。

命令

ssh -p 44847 root@ssh.intern-ai.org.cn -CNg -L 8002:127.0.0.1:8002 -o StrictHostKeyChecking=no

最后的效果 2个映射

image-20240804113541889

代理网络设置

这个MindSearch 用到 AI agent 关于联网搜索功能其实用到了第三方的 搜索引擎 bing 和 DuckDuckGo,bing在国内是可以访问但是需要 key 需要再微软bing官方网站申请申请流程较为繁琐,这里就不在这里详细介绍,感兴趣的小伙伴可以参考申请免费的必应搜索API ,这里我们使用到免费DuckDuckGo做搜索,不过这个DuckDuckGo在国内是不能直接访问的,需要借助梯子来实现。因为借助梯子上网国内是违法的,所以我们这里也不详细展开。我们只给大家一个思路。

在服务器上安装好科学上网工具

image-20240804111902284

启动工具

image-20240804112046275

设置网络代理全局配置文件/etc/profile

vi /etc/profile 增加如下内容

export proxy="http://127.0.0.1:7890"
export sockproxy="socks5://127.0.0.1:7891"
export http_proxy=$proxy
export https_proxy=$proxy
export ftp_proxy=$proxy
export all_proxy=$sockproxy
export no_proxy="localhost, 127.0.0.1, ::1"

image-20240804112845184

编写好profile 退出,使用设置profile 生效,使用如下命令

source /etc/profile

以上配置完成后就完成网络代理设置。我们使用curl 命令测试一下

curl https://duckduckgo.com/

image-20240804112922793

有网站信息返回,说明网络代理成功。

5 .运行测试

我们按照上面的步骤就已经初步完成项目的步骤和搭建了,接下来我们测试一下MindSearch 搜索功能

打开浏览器窗口输入http://127.0.0.1:7860/ (我们上面的步骤就是做了端口映射,可以可以访问本地127.0.0.1:7860 这个地址)

image-20240803115817258

浏览器页面打开,我们输入问题。模型开始加载

image-20240803143702222

后端8002 服务加载模型,启动一个23333后端模型接口服务调用

image-20240803130839518

image-20240804230410283

后端程序已经在调用duckduckgo_search 这个程序进行联网搜索了。后面通过书生浦语 lagent 框架返回结果,最后在通过internlm2_5-7b-chat模型推理将搜索信息总结归纳返回给前端

image-20240804230709802

测试验证结果是OK的。

完整版图片

2024-08-05_004104

6 .总结

目前书生浦语推出的MindSearch 这块框架总体来测试还是不错的。目前软件刚开源,问题还是有点的。不过搜索的结果还是不错的可以和闭源的Perplexity.ai 媲美了,不足的地方就是调用第三方搜索引擎目前都是国外的对新人来说 有一定的门槛。感兴趣的小伙伴可以按照我文档操作一遍,感受国产AI 搜索这块的强大,今天的分享就到这里结束了。我们下个文章见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值