use candle_core::DType;
use super::DtypeSupport;
use super::Family;
use super::Support;
use super::WeightsFormat;
use super::entry::Entry;
use super::t4::T4_BF16_UNTESTED;
use super::t4::T4_F16_NAN_REFUSED;
use crate::pooling::Pooling;
const fn jina(
id: &'static str,
dim: usize,
size_gb: f32,
backends: Support,
dtypes: DtypeSupport,
accel_only_dtypes: &'static [DType],
) -> Entry {
Entry {
id,
family: Family::JinaBert,
dim,
default_max_length: 8192,
pooling: Pooling::Mean,
cpu: backends,
metal: backends,
cuda: Support::Verified,
query_template: None,
passage_template: None,
default_instruction: None,
dense_dirs: &[],
mrl: false,
layer_norm_after_pooling: false,
gated: false,
default_dtype: DType::F32,
dtypes,
license: "Apache-2.0",
size_gb,
phase: 2,
weights: WeightsFormat::Safetensors,
accel_only_dtypes,
cell_exceptions: T4_BF16_UNTESTED,
}
}
const SMALL_EN: Entry = jina(
"jinaai/jina-embeddings-v2-small-en",
512,
0.07,
Support::Verified,
DtypeSupport::verified(),
&[],
);
const BASE_EN: Entry = jina(
"jinaai/jina-embeddings-v2-base-en",
768,
0.27,
Support::Verified,
DtypeSupport::verified(),
&[],
);
const BASE_DE: Entry = Entry {
cell_exceptions: T4_F16_NAN_REFUSED,
..jina(
"jinaai/jina-embeddings-v2-base-de",
768,
0.32,
Support::Verified,
DtypeSupport::verified(),
&[DType::F16],
)
};
const BASE_ZH: Entry = Entry {
cell_exceptions: T4_F16_NAN_REFUSED,
..jina(
"jinaai/jina-embeddings-v2-base-zh",
768,
0.32,
Support::Verified,
DtypeSupport::verified(),
&[DType::F16],
)
};
const BASE_ES: Entry = jina(
"jinaai/jina-embeddings-v2-base-es",
768,
0.32,
Support::Verified,
DtypeSupport::verified(),
&[],
);
const BASE_CODE: Entry = jina(
"jinaai/jina-embeddings-v2-base-code",
768,
0.32,
Support::Verified,
DtypeSupport::verified(),
&[],
);
pub(super) const ENTRIES: &[Entry] = &[SMALL_EN, BASE_EN, BASE_DE, BASE_ZH, BASE_ES, BASE_CODE];