Same model.
Different runtime.
Your health check is green. The dimensions match. But does TEI return the same embedding as SentenceTransformers—under real traffic, at real lengths, in real batches?
pip install embed-parity
The same text should not care who arrived beside it.
Switch request patterns and runtime builds. These are measured cosine similarities from the pinned Qwen3 reproduction of open TEI issue #882.
One request at a time produces the isolated reference embedding.
“No padding” accidentally became “no causal mask.”
Padding only fills shorter rows. A causal mask is separate: it controls which token positions may look ahead. Equal-length requests need no padding, but Qwen3 still needs its causal mask.
A current upstream regression ordinary checks miss.
Pinned model revision. Pinned container digests. Identical probes. The proposed patch changes only the broken condition.
Check the embedding behavior you actually deploy.
$ embed-parity compare \
--model Qwen/Qwen3-Embedding-0.6B \
--revision 97b0c614... \
--tei http://localhost:8080 \
--concurrent-requests 4 \
--concurrency-trials 3
Concurrent server batching
responses compared 12
minimum cosine 0.266183
divergent responses 6
FAIL