
书生大模型实训营第4期进阶岛第六关:MindSearch 快速部署
书生大模型实训营第4期进阶岛第六关任务笔记
书生大模型实训营第4期进阶岛第六关:MindSearch 快速部署
1. MindSearch 运行体验
关于 MindSearch 的介绍这里不再赘述,详情可以自行查看 任务文档,关于 MindSearch 的使用,可以看我的 这篇文章。
1.1 环境准备
这里我们使用 Github CodeSpace 和硅基流动提供的免费 InternLM2.5-7B-Chat API 服务来部署 MindSearch。
1.1.1 模版创建
进入 CodeSpace 主界面后,创建一个 blank 模板用于后续实验:
1.1.2 conda 环境创建
在终端运行下面的命令创建一个新的 conda 环境:
conda create -n mindsearch python=3.10 -y
conda init
注意:如果是新建的 codespace,在第一次创建 conda 环境时,需要 conda init,再另启一个终端并 activate 才能激活环境。不过如果你嫌麻烦,也可以直接使用 source activate
命令直接激活。
虚拟环境创建成功后我们拉取一下 MindSearch 的项目代码并安装一下相关依赖:
conda activate mindsearch
cd /workspaces/codespaces-blank
git clone https://github.com/InternLM/MindSearch.git && cd MindSearch && git checkout ae5b0c5
pip install -r requirements.txt
1.2 获取硅基移动 API KEY
进入 硅基移动官网,注册登录完成后找到左侧导航栏的 API 秘钥
选项,点击进入,然后创建一个自己的 API KEY:
1.3 启动 MindSearch
获取到 API KEY 之后回到 CodeSpace,在正式运行前后端之前先在终端设置一下我们的 API KEY 环境变量:
export SILICON_API_KEY=<上面复制的API KEY>
然后执行下面的代码来启动 MindSearch 的后端:
conda activate mindsearch
# 进入你clone的项目目录
cd /workspaces/codespaces-blank/MindSearch
python -m mindsearch.app --lang cn --model_format internlm_silicon --search_engine DuckDuckGoSearch --asy
后端启动命令的参数解释如下:
- –lang:模型的语言,en 为英语,cn 为中文
- –model_format:模型的格式
- internlm_silicon 为 InternLM2.5-7b-chat 在硅基流动上的API模型
- –search_engine:搜索引擎
- DuckDuckGoSearch 为 DuckDuckGo 搜索引擎
- BingSearch 为 Bing 搜索引擎
- BraveSearch 为 Brave 搜索引擎
- GoogleSearch 为 Google Serper 搜索引擎
- TencentSearch 为 Tencent 搜索引擎
后端启动完成后我们执行下面的代码启动前端:
conda activate mindsearch
# 进入你clone的项目目录
cd /workspaces/codespaces-blank/MindSearch
python frontend/mindsearch_gradio.py
前后端都启动后,我们可以看到 CodeSpace 自动为这两个进程做了端口转发:
如果前端启动后没有自动跳转页面的话在可以点击上图的 7882 端口转发地址手动进入前端页面
正常的前端页面长这个样子:
我让 MindSearch 帮我解读 MAE 这篇论文的创新点和模型应用,最终 MindSearch 回复如下:
整体来说回答的还不错~
2. 部署 MindSearch 到 HuggingFace Spaces 上
在之前的课程中,我们尝试了把一些模型部署到 HuggingFace Spaces 上,但是我们的做法比较繁琐,需要先 clone,再修改自己的代码,再 push 上去,还有可能遇到网络问题需要换镜像源。下面我们 MindSearch 的部署将采用一种更简单的方法。
首先我们找到 InternLM 官方部署的 MindSearch Spaces 应用,找到右上角的三个小点:
选择 Duplicate this Space
,复制这个项目到自己的 Space 中,在配置页面,硬件选免费的 16G CPU ,然后填写好自己的 SILICON_API_KEY:
配置好后应用就会开始 Building,当应用状态显示绿色的 running 标志时我们就可以使用应用了。我问了一下 MindSearch 前十名的电商网站是哪些,回复如下(看着还不错~):
3. 部署 MindSearch streamlit 版本到 HuggingFace Spaces 上
我在做这个选做任务的时候 Readme 文件突然更新了,选做任务突然不见了(难绷),不过既然看到了,还是按照群里面同学发的任务截图做了一下。
在上一节中我们的 MindSearch 是使用 Gradio 部署的,这一节我将使用 Streamlit 再部署一遍。
这里我复制了一个新的应用到我的 Space 上,然后修改了一下 app.py 文件,将文件内容替换成我们 CodeSpace 拉取下来的项目中的 MindSearch/frontend/mindsearch_streamlit.py
文件:
然后再修改一下复制下来的 Space 应用的 README 文件,将 metadata 中的 sdk 和 sdk_version 修改如下:
sdk: streamlit
sdk_version: 1.40.2
到这里还没结束,直接使用官方提供的 streamlit 示例代码无法运行我们部署的应用,会提示 Connection Error 和一些其他错误,还需要对代码进行如下修改:
首先是解决网络连接错误的问题,原始代码中默认你的后端是运行在本地的 8002 端口上的,但是我们的后端其实是在 CodeSpace 上运行的,所以需要将 http://localhost:8002
这部分地址修改成我们 CodeSpace 中的后端转发地址,也就是下图中红框的这个地址(/solve
别删了,只需要替换 http://localhost:8002
这一部分):
然后就是一些变量在使用前没有定义的报错,按照下面的样子修改一下代码即可:
上述步骤全部执行完后,这时问问题应用确实不会报错了,但是也不会有任何回复,就跟卡住了一样,换搜索引擎也没用。这里需要特别注意:在运行后端代码的时候记得将我们的 url 设为公开,这样我们的应用才能正常使用。
还是问同样的问题,前十名的电商网站是哪些,看看应用的回复效果:
MindSearch 给出了详细的分析和思考过程,可以看到整体回复效果还是挺不错的。
这里如果你的 MindSearch 输出一阵子之后报错,可以尝试替换一下搜索引擎,我一开始用的 BingSearch 就出现了这种情况,换成 DuckDuckGoSearch 就好了。
至此,书生大模型实训营第4期进阶岛第六关任务完成~
更多推荐
所有评论(0)