Docker编译bge-m3服务,返回dense/sparse/colbert
Docker部署bge-m3服务满足3种向量的指定返回前提由于尝试过在VLLM上部署bge-m3服务能部署但是/v1/embeddings路径默认只返回dense向量。切换了三个版本均无法返回我需要的sparse向量所以后来参考网上资料自行编译了FlagEmbedding/bge-m3-server的Docker服务。docker compose配置services:bge-m3-server:image:FlagEmbedding/bge-m3-server:v0.5container_name:bge-m3-serverrestart:unless-stoppedports:-8000:8000volumes:# 建议将 ~ 替换为绝对路径防止解析错误-/home/hengfengai/.cache/modelscope/hub/models/BAAI/bge-m3:/models/bge-m3environment:# 接口鉴权密钥-API_KEYAbC123xYz456mNoPqRsTuVwXyZ7890# 输入文本最大截断长度Token数显存大可不传默认长度8192-MAX_LENGTH512# 【批次大小】每次推理并发处理的文本数量显存充足可调大以提升吞吐-BATCH_SIZE2# 是否启用 FP16 半精度推理节省显存,默认启用-USE_FP16truedeploy:resources:reservations:devices:-driver:nvidiacount:1capabilities:[gpu]# 确保服务连接到自定义网络可选networks:-bge-netnetworks:bge-net:driver:bridgeipam:config:-subnet:172.29.0.0/16启动成功启动日志显示HTTP请求8000端口向量请求请求dense向量默认返回dense: curl -X POST http://localhost:8000/v1/embeddings \ -H Content-Type: application/json \ -H Authorization: Bearer AbC123xYz456mNoPqRsTuVwXyZ7890 \ -d { model: bge-m3, input: [什么是大语言模型,what is bge?] } 同时返回Dense/Sparse: curl -X POST http://localhost:8000/v1/embeddings \ -H Content-Type: application/json \ -H Authorization: Bearer AbC123xYz456mNoPqRsTuVwXyZ7890 \ -d { model: bge-m3, input: [什么是大语言模型,what is bge?], return_sparse: true } 同时返回Dense/Sparse/colbert: curl -X POST http://localhost:8000/v1/embeddings \ -H Content-Type: application/json \ -H Authorization: Bearer AbC123xYz456mNoPqRsTuVwXyZ7890 \ -d { model: bge-m3, input: [什么是大语言模型,what is bge?], return_sparse: true, return_colbert: true }请求结果示例具体的Docker编译文件可去资源下载https://download.csdn.net/download/u013983235/93142766