62 lines
2.0 KiB
YAML
62 lines
2.0 KiB
YAML
# 本地重排服务。
|
|
#
|
|
# 参数全部直接写在本文件里,不再走 .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 |