我们要动手尝试将茴香豆从源码部署到本地服务器(以 MobaXterm为例),并开发一款简单的知识助手 Demo。
2.1 环境搭建
打开MobaXterm,添加SSH远程 链接
HuixiangDou已下载
ray1环境下
2.1.1 搭建茴香豆虚拟环境
命令行中输入一下命令,创建茴香豆专用 conda 环境:
studio-conda -o internlm-base -t ray1 (??)
创建成功,用下面的命令激活环境:
conda activate ray1
环境激活成功后,命令行前的括号内会显示正在使用的环境,请确保所有茴香豆操作指令在 ray1 环境下运行。
2.2 安装茴香豆
下面开始茴香豆本地标准版的安装。
2.2.1 下载茴香豆
先从茴香豆仓库拉取代码到服务器:
cd /home/ray
# 克隆代码仓库
git clone https://github.com/internlm/huixiangdou && cd HuixiangDou
git checkout 79fa810
拉取完成后进入茴香豆文件夹,开始安装
2.2.2 安装茴香豆所需依赖
首先安装茴香豆所需依赖:
conda activate ray1
# parsing `word` format requirements
apt update
apt install python-dev libxml2-dev libxslt1-dev antiword unrtf poppler-utils pstotext tesseract-ocr flac ffmpeg lame libmad0 libsox-fmt-mp3 sox libjpeg-dev swig libpulse-dev
# python requirements
pip install BCEmbedding==0.1.5 cmake==3.30.2 lit==18.1.8 sentencepiece==0.2.0 protobuf==5.27.3 accelerate==0.33.0
pip install -r requirements.txt
# python3.8 安装 faiss-gpu 而不是 faiss
# 注意 pip install BCEmbedding==0.1.5
2.2.3 下载模型文件
茴香豆默认会根据配置文件自动下载对应的模型文件,为了节省时间,本次教程所需的模型已经提前下载到服务器中,我们只需要为本次教程所需的模型建立软连接,然后在配置文件中设置相应路径就可以:
# 创建模型文件夹
cd /home/ray && mkdir models
# 复制BCE模型
ln -s /root/share/new_models/maidalun1020/bce-embedding-base_v1 /root/models/bce-embedding-base_v1
ln -s /root/share/new_models/maidalun1020/bce-reranker-base_v1 /root/models/bce-reranker-base_v1
# 复制大模型参数(下面的模型,根据作业进度和任务进行**选择一个**就行)
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-7b /root/models/internlm2-chat-7b
https://hf-mirror.com' # 使用 huggingface 中国镜像加速下载,如果在国外,忽略此步骤
git clone
bce-embedding-base_v1 bce-reranker-base_v1 internlm2-chat-7b
完成后可以在相应目录下/models看到所需模型文件
2.2.4 更改配置文件
茴香豆的所有功能开启和模型切换都可以通过 config.ini
文件进行修改,默认参数如下:
执行下面的命令更改配置文件,让茴香豆使用本地模型:
sed -i '9s#.*#embedding_model_path = "/home/ray/models/bce-embedding-base_v1"#' /home/ray/HuixiangDou/config.ini
sed -i '15s#.*#reranker_model_path = "/home/ray/models/bce-reranker-base_v1"#' /home/ray/HuixiangDou/config.ini
sed -i '43s#.*#local_llm_path = "/home/ray/models/internlm2-chat-7b"#' /home/ray/HuixiangDou/config.ini
2.3 知识库创建
修改完配置文件后,就可以进行知识库的搭建,本次教程选用的是茴香豆和 MMPose 的文档,利用茴香豆搭建一个茴香豆和 MMPose 的知识问答助手。
conda activate ray1
cd /home/ray/HuixiangDou/ && mkdir repodir
git clone https://github.com/internlm/huixiangdou --depth=1 repodir/huixiangdou
git clone https://github.com/open-mmlab/mmpose --depth=1 repodir/mmpose
# Save the features of repodir to workdir, and update the positive and negative example thresholds into `config.ini`
mkdir workdir
python3 -m huixiangdou.service.feature_store
2.4 测试知识助手
2.4.2 Gradio UI 界面测试
茴香豆也用 gradio
搭建了一个 Web UI 的测试界面,用来测试本地茴香豆助手的效果。
在运行茴香豆助手的服务器端,输入下面的命令,启动茴香豆 Web UI:
conda activate ray1
cd /home/ray/huixiangdou
python3 -m huixiangdou.gradio
3 茴香豆高阶应用(选做)
3.1 开启网络搜索
对于本地知识库没有提到的问题或是实时性强的问题,可以开启茴香豆的网络搜索功能,结合网络的搜索结果,生成更可靠的回答。
开启网络搜索功能需要用到 Serper 提供的 API:
-
登录 Serper ,注册:
-
进入 Serper API 界面,复制自己的 API-key: