虽然在MTEB Leaderboard - a Hugging Face Space by mteb嵌入模型榜单上,m3e模型的排名不如2023年那么靠前,但是在我们所处的特定领域,我们实验了bge,gte等诸多模型对本地知识库的召回情况。其他的模型虽然在排名中得分更高,但是相关性在我们的实验中召回情况不甚理想,而m3e依然是表现最好的那个,您可能需要在您的知识库进行验证。虽然本文档以m3e为主,对于其他模型,代码依然具有通用性。
本文档将指导您如何使用 Docker 构建和部署 m3e-embedding-server 应用。
- 确保您的系统已经安装了 Docker。
- 确保下载m3e嵌入模型moka-ai/m3e-base · Hugging Face到
m3e-base
目录下。
-
打开终端或命令提示符。
-
切换到包含 Dockerfile 的目录。
-
执行以下命令构建 Docker 镜像:
docker build -t m3e-embedding-server:latest .
这里的
m3e-embedding-server
是镜像的名称,latest
是标签,.
表示当前目录。
-
使用以下命令查看已构建的 Docker 镜像列表:
docker images
-
确认您的
m3e-embedding-server
镜像已成功列出。
-
使用以下命令启动并运行 Docker 容器:
docker run --gpus all -itd -p 10175:10201 --dns=8.8.8.8 --name your-image-name m3e-embedding-server:latest
将
your-image-name
替换为您想要给容器命名的名称。 -
确保将宿主机的端口
10175
映射到容器的端口10201
,并10175
替换为你想要的端口。
-
如果需要查看容器的日志,可以使用以下命令:
docker logs --name your-image-name
将
your-image-name
替换为您为容器指定的名称。
-
确认容器正在运行后,您可以使用以下请求测试服务:
POST http://ip:port/m3e/embedding { "query": ["你的名字是什么"] }
您应该收到一个包含 768 维向量的 JSON 响应。
- 确保 Dockerfile 中的
requirements.txt
文件和m3e_server
目录的路径正确无误。 - Dockerfile里的
leekltw/cuda11.3.1-runtime-ubuntu20.04-python3.10.8
是我们在DockerHub上找的非官方镜像,如有需要,访问nvidia/cuda - Docker Image | Docker Hub下载英伟达官方镜像。