Reference setsstable
Vector packing
vector_sha256 is SHA-256 over exactly these octets:
- Take the space's image embedding as
verd.embed.embed_imagesreturns it:float32, L2-normalized (normalization: "l2"in the descriptor). - Cast to the descriptor's own
dtype,fp16— IEEE 754 binary16. - Serialize little-endian, component 0 first, no header, no padding:
dim × 2octets. 1536 for the two SigLIP spaces, 1024 for CLIP.
Normalization happens in float32 and the cast follows it, which is the order verd stores vectors in. The consequence is that the packed vector is not exactly unit-norm: across these thirty vectors the binary16 norms lie in [0.99980, 1.00018]. Anything comparing them must normalize after unpacking, and the cosine metric the spaces declare does that anyway.
