Stop the checklist from quoting numbers no artifact carries
A review of the p2-1 record found seven places where the prose had drifted away from the reports it cites. None were product defects; all were record keeping, and record keeping is what a memory system is judged on. The quantization row mis-transcribed nine latencies, and the two worst made dimension truncation look twice as fast as the full scan when the report measures six percent. The extrapolation table scaled latency by atoms and bytes by vectors under one heading that named neither switch. The picture index stats existed only in prose, so the harness now reads the index shape off the artifact and times the encoder on a sample, which reproduces the hand-timed build within seven percent. The dense arms named a store that holds no vectors, so the report names the store the vectors came from and refuses to run where a dense leg would rank an empty index. The frozen baseline was migrated in place by the product CLI while the picture index was built, so its pinned mtime, digest and schema version are re-pinned and the step that moved it is named. The sqlite_vec import added two mypy errors; the fix is the missing stub declaration, not an inline ignore, and the count is back to the recorded baseline of twenty-four.
This commit is contained in:
1 parent
6cc5640856
commit
71733d86d6
7 files changed
+153
-31
No files matched your search
@@ -40,8 +40,7 @@ def _dense_facts(settings: Settings, database: Database) -> tuple[DenseState, in
|
||||
facts = VectorIndex(settings, database).stats()
|
||||
if not facts["built"]:
|
||||
return "missing", 0, expected
|
||||
# A memory with no words belongs to the picture index, so the honest denominator is the
|
||||
# memories this index is meant to hold, not every row in the store.
|
||||
# A wordless memory belongs to the picture index, so the denominator is what this index holds, not every row.
|
||||
return ("current" if facts["pending"] == 0 else "behind"), int(facts["vectors"]), expected
|
||||
|
||||
|
||||
|
||||
@@ -22,8 +22,7 @@ from .db import Database
|
||||
from .embeddings import EmbeddingService
|
||||
from .row_codec import to_json
|
||||
|
||||
# The vec0 schema cannot be altered in place, so the format tag is load-bearing: changing the
|
||||
# vector width or the model means dropping the table and re-encoding, not migrating it.
|
||||
# vec0 cannot be altered in place, so the format tag is load-bearing: a new width or model drops the table and re-encodes.
|
||||
FORMAT = "ely-eye-dense-vectors-v1"
|
||||
TABLE = "vec_atoms"
|
||||
META_TABLE = "vector_index_meta"
|
||||
@@ -183,8 +182,7 @@ class VectorIndex:
|
||||
as_holder=as_holder,
|
||||
)
|
||||
hits = {atom_id: 1.0 - distance for atom_id, distance in ranked if atom_id in allowed}
|
||||
# A filter that keeps little of the wide ask means there are more answers further
|
||||
# out; one wider round buys them, and the ceiling keeps the round bounded.
|
||||
# A filter that keeps little of the ask means more answers sit further out; one wider round buys them, bounded by the ceiling.
|
||||
if len(hits) >= limit or len(ranked) < asked or asked >= CANDIDATE_CEILING:
|
||||
break
|
||||
asked = min(asked * 4, CANDIDATE_CEILING)
|
||||
|
||||
Reference in new issue
Block a user