Skip to content

embeddings: enforce model and source provenance beyond vector dimension #657

Description

@ragnorc

Problem

Dimension checks prevent some incompatible vectors, but equal dimensions do not establish that stored vectors and query embeddings share a model, revision or preprocessing contract. Manually supplied vectors can lack enough provenance to detect mixing two same-dimensional embedding spaces.

Shared embedding configuration and query-time model checks already exist where identity is available. The residual gap is persistent, enforceable provenance for stored/manual vectors and their source content.

Proposed change

Define the model/provider revision, dimension, relevant preprocessing identity and source revision/hash associated with an embedding field or value. Specify import/load validation, legacy/unknown provenance, model migration and search behavior when a corpus has mixed or stale vectors.

Do not infer compatibility solely from vector length, and do not silently label arbitrary imported vectors as produced by the currently configured model. Provide a deliberate explicit contract for externally generated embeddings.

Acceptance criteria

  • Two distinct models with the same dimension cannot be silently treated as one verified space.
  • Source edits and model changes make stale coverage observable and trigger the documented backfill path.
  • Import, branch merge, export/reload and restart preserve provenance.
  • Query-time and stored-vector identity checks agree; legacy unknowns have a documented migration/refusal policy.

Code: embedding configuration/validation, query-time embedding resolution. This is not a report that all dimensional mismatches are currently accepted.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureFeature proposalneeds-triageAwaiting maintainer triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions