# embed-rerank The fleet's embedding + reranking models on **esh-ml1** (CT 110 on esh-pve, RTX 2000E Ada). The second site for `qwen3-embedding` and `reranker`; fv-ml1's [`vllm`](../vllm/) stack is the first. | container | model | port | |---|---|---| | `vllm-embed` | `Qwen/Qwen3-Embedding-0.6B` | 8001 | | `vllm-rerank-bge` | `BAAI/bge-reranker-v2-m3` | 8013 | **Keep it in lockstep with `stacks/vllm`:** same models, same `VLLM_VERSION`, same `--max-model-len`. The LiteLLM groups treat the two sites as one model, so any drift in the embedding model or its version silently mixes incompatible vectors into consumers' indexes. ## Deploy ```bash scripts/deploy-stack.sh esh-ml1 embed-rerank ssh esh-ml1 'cd /opt/docker/compose/embed-rerank && cp -n .env.example .env && docker compose config -q && docker compose up -d' ``` Host prerequisites (driver, LXC, docker, toolkit) are in [`servers/esh-ml1/README.md`](../../servers/esh-ml1/README.md). ## Smoke test ```bash curl -s http://10.0.50.80:8001/v1/embeddings -H 'content-type: application/json' \ -d '{"model":"Qwen/Qwen3-Embedding-0.6B","input":"hello"}' | jq '.data[0].embedding | length' # 1024 curl -s http://10.0.50.80:8013/rerank -H 'content-type: application/json' \ -d '{"model":"BAAI/bge-reranker-v2-m3","query":"cat","documents":["a cat","a car"]}' | jq '.results[0]' ``` Parity against fv-ml1 is recorded in the host README; re-measure after any version bump on either side.