# 本地重排服务。 # # 参数全部直接写在本文件里,不再走 .env —— 需要调整时改这里,然后 # docker compose up -d 重建即可。 # # 首次启动会下载约 290MB 模型权重到 ./models; # 之后重启/重建都会先校验 sha256,通过就跳过下载,零网络流量。 services: local-remarker: build: . image: local-remarker:latest container_name: local-remarker restart: unless-stopped # 宿主机 63001 -> 容器 8000 ports: - "63001:8000" environment: # ---- 模型存放位置(容器内)---- MODEL_DIR: /models # ---- 模型来源与选择 ---- MODEL_REPO: Xenova/bge-reranker-base MODEL_REV: master MODEL_BASE: https://modelscope.cn/models/Xenova/bge-reranker-base/resolve/master MODEL_NAME: bge-reranker-base # 同仓库可选量化档位: # model_int8.onnx 266MB 默认,带 AVX512-VNNI 的 CPU 上最快 # model_quantized.onnx 266MB # model_fp16.onnx 531MB # model.onnx 1061MB 原始精度,CPU 上明显变慢 # 更大的模型可改用 BAAI/bge-reranker-v2-m3(2.2GB,质量最好但重排较慢) ONNX_FILE: model_int8.onnx # ---- 推理参数 ---- MAX_LEN: "512" # 截断长度,长文档可调大(吃内存) BATCH_SIZE: "16" # 每次推理的句对数 # ---- 服务 ---- WORKERS: "1" # 调大前先看内存:每个 worker 会各加载一份模型 PORT: "8000" LOG_LEVEL: info TZ: Asia/Shanghai # 宿主机 ./models -> 容器 /models。指向大盘路径可避免占满系统盘, # 例如改成 /data/models/remarker:/models volumes: - ./models:/models healthcheck: test: - CMD - python - -c - "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://127.0.0.1:8000/health',timeout=4).status==200 else 1)" interval: 30s timeout: 5s # 首次启动要下模型,给足预热时间 start_period: 600s retries: 3