回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页
best-icon

【书生大模型实战营】进阶岛第6关_L2G6000_MindSearch 快速部署

头像 JOVI 2024.12.27 32 0

闯关关卡

进阶岛

 关卡编号关卡名称关卡资料
第6关L2G6000茴香豆:企业级知识库问答工具

任务

https://github.com/InternLM/Tutorial/blob/camp4/docs/L2/MindSearch/task.md

文档

https://github.com/InternLM/Tutorial/blob/camp4/docs/L2/MindSearch/readme.md

闯关任务

闯关任务需要在关键步骤当中截图!

任务

描述

部署MindSearch到 hugging face Spaces上官方的MindSearch页面 复制Spaces应用到自己的Spaces下,Space 名称中需要包含 MindSearch 关键词,请在必要的步骤以及成功的对话测试结果当中

1. MindSearch 简介

MindSearch 是一个开源的 AI 搜索引擎框架,具有与 Perplexity.ai Pro 相同的性能。我们可以轻松部署它来构建自己的专属搜索引擎,可以基于闭源的LLM(如GPT、Claude系列),也可以使用开源的LLM(如经过专门优化的InternLM2.5 系列模型,能够在MindSearch框架中提供卓越的性能) 最新版的MindSearch拥有以下特性:

 

2. 开发环境配置

在入门岛我们已经提到过,想要简单部署到hugging face上,我们需要将开发机平台从InternStudio 替换成 GitHub CodeSpace。且随着硅基流动提供了免费的InternLM2.5-7B-Chat的API服务,大大降低了部署门槛,我们无需GPU资源也可以部署和使用MindSearch,这也是可以利用CodeSpace完成本次实验的原因。 那就让我们一起来看看如何使用硅基流动的API来部署MindSearch吧~

2.1 打开codespace主页,选择Blank模板进行创建

image.png

2.2 创建conda环境隔离并安装依赖

如果只针对于这个实验的话,其实在codespace里面不用单独创建conda环境。但是隔离是一个好习惯,因此我们还是创建一个相应的虚拟环境来隔离

conda create -n mindsearch python=3.10 -y
conda init

image.png

如果是新建的codespace,在第一次创建conda环境时,需要conda init,再另启一个终端并activate

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

image.png

 

2.3. 获取硅基流动API KEY

因为要使用硅基流动的 API Key,所以接下来便是注册并获取 API Key 了。 首先,我们打开它的登录界面来注册硅基流动的账号(如果注册过,则直接登录即可)。 在完成注册后,打开api key页面来准备 API Key。首先创建新 API 密钥,然后点击密钥进行复制,以备后续使用。

image.png

 

2.4. 启动MindSearch

2.4.1. 启动后端

由于硅基流动 API 的相关配置已经集成在了 MindSearch 中,所以我们在一个终端A中可以直接执行下面的代码来启动 MindSearch 的后端。

export SILICON_API_KEY=<上面复制的API KEY>
conda activate mindsearch

# 进入你clone的项目目录
cd /workspaces/codespaces-blank/MindSearch
python -m mindsearch.app --lang cn --model_format internlm_silicon --search_engine DuckDuckGoSearch --asy

 

 

2.4.2. 启动前端

在后端启动完成后,我们打开新终端B运行如下命令来启动 MindSearch 的前端:

conda activate mindsearch
# 进入你clone的项目目录
cd /workspaces/codespaces-blank/MindSearch
python frontend/mindsearch_gradio.py

 

前后端都启动后,我们应该可以看到github自动为这两个进程做端口转发:

image.png

如果启动前端后没有自动打开前端页面的话,我们可以手动用7882的端口转发地址打开gradio的前端页面~ 然后就可以体验MindSearch gradio版本啦~ 比如向其询问:"Find legal precedents in contract law." 等待一段时间后,会在页面上输出它的结果。

image.png

在这一步中,可能终端会打印报错信息,但是只要前端页面上没有出现报错就行。如果前端页面上出现错误并终止,那么可能是MindSearch 中 searcher 模块的问题。在上面的例子中我们使用的是DuckDuckGoSearch,因此你也可以尝试其他的搜索引擎API。如我们可以替换为BingSearch 或者 TencentSearch 进行尝试。

# BingSearch
python -m mindsearch.app --lang cn --model_format internlm_silicon --search_engine BingSearch --asy
# TencentSearch
# python -m mindsearch.app --lang cn --model_format internlm_silicon --search_engine TencentSearch --asy

 

2.5. 部署到自己的 HuggingFace Spaces上

在之前课程的学习中,我们已经将模型或者应用上传/部署到hugging face上过了。在这里我们介绍一种更简单的方法,它就像克隆一样,无需编写代码即可部署自己的Spaces应用~

首先我们找到InternLM官方部署的MindSearch Spaces应用

2.5.1 选择配置

在该页面的右上角,选择Duplicate this Space

image.png

选择如下配置后,即可Duplicate Space

  • Space Hardware选择第一条,即Free的2vCPU即可
  • 填写好SILICON_API_KEY,即上面提到的硅基流动的API KEY
2024-12-30_13-41-29.png

 

2.5.2 测试结果

等待Spaces应用启动,当启动好后上方会显示绿色的running标志,这时我们可以输入input进行测试了,我们可以在Sapces应用页面的输入框中输入以下内容:

# input
What are the top 10 e-commerce websites?

 

测试时可能会发现页面卡住了很久(两三分钟),我们可以查看日志,最后两行可能报如下错误:

graph.add_edge(start_node="root", end_node("contract_enforcement"))
 SyntaxError: positional argument follows keyword argument

 

此时需要在页面右上角选择Restart Space,待到重启完成后(显示绿色running标志后)再刷新一下网页页面,再次测试结果如下~

image.png

至此,我们就完成了MindSearch在Hugging Face上面的部署。

评论

user-avatar