Skip to main content

EmbeddingSpaceId

Struct EmbeddingSpaceId 

Source
pub struct EmbeddingSpaceId {
    pub identity_hash: String,
    pub model_artifact: String,
    pub tokenizer_artifact: String,
    pub preprocessing: Value,
    pub pooling: Value,
    pub normalization: Value,
    pub dimension: u32,
}
Expand description

Full embedding-space identity. Two providers with the same dimension and different identities produce incomparable vectors, so the identity is more than a width.

The fields below are exactly the ones the embedding_space table records (DESIGN § Table embedding_space), so a provider’s declaration and the durable row cannot describe different things.

Fields§

§identity_hash: String

Canonical hash over the artifact/preprocessing identity below. Derived by EmbeddingSpaceId::new — never assembled by hand, or two providers describing one space would disagree about its name.

§model_artifact: String

Exact model artifact: name plus version or content hash.

§tokenizer_artifact: String

Exact tokenizer artifact, on the same terms.

§preprocessing: Value

Declared preprocessing, pooling and normalization configuration. A different pooling rule over identical weights still yields vectors that must not be compared, so these are part of the identity rather than documentation of it.

§pooling: Value§normalization: Value§dimension: u32

Implementations§

Source§

impl EmbeddingSpaceId

Source

pub fn new( model_artifact: impl Into<String>, tokenizer_artifact: impl Into<String>, preprocessing: Value, pooling: Value, normalization: Value, dimension: u32, ) -> Self

Build an identity and derive its canonical hash.

The hash lives here rather than in each provider because it is the name readiness compares against: the ONNX plugin, a remote plugin and the deterministic fake must all arrive at the same string for the same space, and at different strings for different ones.

A provider’s preprocessing, pooling and normalization blobs are frozen once it is released. Their shape is written in the provider’s code, and the hash is over the blob as built (after key order and integral numbers are normalized), not over what it means: adding a key, renaming one or changing how a value is spelled gives every deployment of the new version a different identity, and the gear blocks vector search over what the old version stored until it is re-embedded. Values taken from configuration belong in a blob, since a different setting there is a different space; a change of shape needs the same deliberation as a change of model.

Trait Implementations§

Source§

impl Clone for EmbeddingSpaceId

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for EmbeddingSpaceId

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for EmbeddingSpaceId

Source§

impl PartialEq for EmbeddingSpaceId

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for EmbeddingSpaceId

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more