一、bge-reranker-v2-m3 模型
bge-reranker-v2-m3
是一个基于深度学习的文本排序模型,由北京智源人工智能研究院(BAAI)开发。该模型主要用于信息检索和自然语言处理任务,特别是在需要重新排序候选文本的场景中表现优异。
bge-reranker-v2-m3
主要用于对检索结果进行重新排序,能够根据查询与候选文本的相关性进行更精准的排序。它适用于问答系统、文档检索、推荐系统等场景。该模型采用了先进的预训练语言模型架构,结合了大规模语料库的微调。v2-m3 版本在性能和效率上进行了优化,支持多语言处理能力,能够更好地处理跨语言检索任务。
bge-reranker-v2-m3
在多个公开基准测试中表现出色,特别是在中文文本排序任务中展现了较强的性能。模型对长文本和复杂查询具有较好的适应性,能够捕捉更细粒度的语义相关性。
二、Docker 与 vLLM 的作用
Docker
提供容器化环境,解决依赖冲突和部署一致性问题,适合快速部署复杂模型。
vLLM
是高效推理框架,针对大语言模型优化,支持高吞吐量推理和显存管理,能加速 bge-reranker-v2-m3
这类大规模模型的本地运行。
三、本地运行的核心优势
- 隐私保护:数据无需上传云端,适合敏感场景。
- 定制化:可调整模型参数或微调以适应特定任务。
- 成本可控:长期使用比云服务成本更低。
此方案适合开发者、研究人员快速验证 bge-reranker-v2-m3
能力,或集成到本地 NLP pipeline
中。
四、Docker 安装与配置
下载并执行 Docker 官方安装脚本:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker
配置国内 Docker 镜像源与 GPU:
vim /etc/docker/daemon.json
{
"dns": [
"8.8.8.8",
"8.8.4.4"
],
"registry-mirrors": [
"https://docker.m.daocloud.io/",
"https://huecker.io/",
"https://dockerhub.timeweb.cloud",
"https://noohub.ru/",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
],
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
}
五、使用 vLLM 官方 Docker 镜像
vLLM
提供了用于部署的官方 Docker
镜像,该镜像可用于运行与 OpenAI
兼容的服务器,官方示例脚本如下:
docker run --runtime nvidia --gpus all \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HUGGING_FACE_HUB_TOKEN=<secret>" \
-p 8000:8000 \
--ipc=host \
vllm/vllm-openai:latest \
--model mistralai/Mistral-7B-v0.1
官方脚本从 huggingface
下载模型,可能会遇到网络问题,因此我们从 modelscope
下载 BAAI/bge-reranker-v2-m3
,对脚本修改一点点细节:
docker run --name bge-reranker-v2-m3 -d --runtime nvidia --gpus all \
-v ~/.cache/modelscope:/root/.cache/huggingface \
--env "VLLM_USE_MODELSCOPE=True" \
-p 8001:8000 \
--ipc=host \
vllm/vllm-openai:latest \
--model BAAI/bge-reranker-v2-m3 \
--gpu_memory_utilization 0.9
这里我们可以使用 ipc=host
标志或 --shm-size
标志来允许容器访问主机的共享内存。vLLM
使用 PyTorch
,它在底层使用共享内存来在进程之间共享数据,特别是对于张量并行推理。镜像标签 (vllm/vllm-openai:latest
) 之后添加引擎参数 (engine-args)。
六、GPU 使用情况
nvidia-smi
参考文档
- https://docs.vllm.com.cn/en/latest/deployment/docker.html
- https://modelscope.cn/models/BAAI/bge-reranker-v2-m3/summary
- https://www.runoob.com/docker/ubuntu-docker-install.html