embeddings: detecting the head is not having it (v0.3.85)
0.3.84 made `_is_bge_m3` see `sparse_linear.pt` on a machine that had
never downloaded the repo, so the multi-vector backend was finally
selected on a pod. It then loaded the heads with the same cache-only
lookup, and `from_pretrained` does not fetch them: it pulls the config
and the weights the config NAMES, and bge-m3's sparse/colbert heads are
plain tensors sitting beside the model. So they were still absent, and
the request came back
HTTP 400 "This model has no sparse head."
which reads as a property of the MODEL rather than of the disk.
`_fetch_repo_file` is the companion to `_resolve_repo_file` for files
that have to be READ rather than merely detected: cache first, then a
real hf_hub_download. Offline short-circuits, a local directory is the
whole answer, and a failure returns None -- the dense path, which the
caller already handles -- because a head that cannot be fetched must not
turn into a failed load.
Both halves of this were the same mistake made twice: a cache-only
helper answering a question about existence on a machine whose cache is
empty by design. A rented pod is that machine every single time.
Needs a coderai-embeddings rebuild: this code runs on the pod.
Co-Authored-By:
Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HXRMe9ZPUQCCCtBai9uqt3
Showing
Please
register
or
sign in
to comment