A vector conversion model trained on MTEB-aligned data. Published to allow independent comparison against existing vector translation research.
Purpose: research and benchmarking. For production conversion, prefer the
corresponding general-release model from the UniVec organization or the
hosted API at https://univec.ai.
What is vector conversion?
A corpus embedded with a particular model is bound to that model's vector space: queries must be encoded by the same model for nearest-neighbour search to remain meaningful. Migrating to a different embedder (whether driven by deprecation, an upgrade or a provider change) normally requires re-embedding every document. The cost scales with corpus size and recurs each time the underlying model changes.
A conversion model takes pre-computed source-space vectors and outputs target-space vectors. The training objective is retrieval-order preservation: top-K nearest neighbours in the converted space should align with top-K in the target space despite differences in dimensionality, distance distribution and noise structure.
Why a separate benchmark track?
General-release UniVec converters are trained on broad, heterogeneous corpora to generalise across domains. The metrics on those cards reflect retrieval quality on a generic eval split that mixes many sources.
Models in this track are trained against MTEB-aligned distributions and report numbers directly comparable with published translation benchmarks. The figures below represent the upper bound of direct conversion under controlled benchmark conditions, not what should be expected on arbitrary downstream data.
Self-reported translation results are difficult to verify without access to weights and evaluation protocol. These weights are released to make the comparison reproducible: open weights, open metrics, identical evaluation script.
Evaluation
Metrics on the MTEB-aligned held-out split, comparing converted vectors against ground-truth snowflake-arctic-embed-l-v2.0 embeddings of the same texts.
Metric
Value
MRR
1.0000
P@1
1.0000
P@5
1.0000
P@10
1.0000
Cosine (mean)
0.9380
Cosine (median)
0.9415
Cosine (std)
0.0314
Kendall tau
0.8010
Fields and inference shape are identical to the general-release UniVec models. The only difference is training distribution and intended use.
Training data
Field
Value
Training pairs
115,371
Held-out eval pairs
12,819
Inputs and outputs are unit-normalized 2D arrays with shape (batch, dim).
The ONNX file is s2t.direct.inn.ninference-baai_bge-m3.ninference-snowflake_snowflake-arctic-embed-l-v2_0.onnx.
1import numpy as np
2import onnxruntime as ort
34session = ort.InferenceSession(5"s2t.direct.inn.ninference-baai_bge-m3.ninference-snowflake_snowflake-arctic-embed-l-v2_0.onnx",6 providers=["CPUExecutionProvider"],# or ["CUDAExecutionProvider", "CPUExecutionProvider"]7)8input_name = session.get_inputs()[0].name
910# baai-bge-m3 embeddings of an eval set, shape (N, 1024)11embeddings = np.random.randn(8,1024).astype(np.float32)12embeddings /= np.linalg.norm(embeddings, axis=1, keepdims=True)1314converted = session.run(None,{input_name: embeddings})[0]15converted /= np.linalg.norm(converted, axis=1, keepdims=True)1617print(converted.shape)# (N, 1024) in snowflake-arctic-embed-l-v2.0 space
For batching, GPU execution and .npy / .jsonl file IO, use the companion script univec_inference.py published alongside this model. The requirements.txt file in this repo pins the inference dependencies.
Reproducing the metrics
A self-contained evaluate.py is included in this repo. It runs the converter against a paired evaluation dataset and reports the same metrics shown in the table above (cosine, MRR, P@K, Kendall tau). It is the canonical way to reproduce the published numbers or compare them against a different held-out split.
The expected dataset is JSONL, one record per line, each holding both a source-space and a target-space embedding of the same text:
sample size for Kendall tau pairwise rank correlation
--seed N
0
deterministic sampling seed
--output FILE.json
none
write metrics to JSON for downstream comparison
The script prints a summary table and writes the same numbers to JSON if --output is set. Without scipy installed, Kendall tau is skipped and the other metrics are still reported.
Comparing against prior work
Prior research on translation between embedding spaces has reported baselines on related protocols. The figures here come from a comparable evaluation setup and can be cited alongside or against existing results. Citation and a link back are appreciated for any published comparison.
Intended use and limitations
Intended for: research, benchmark reproduction, ablation studies and qualitative inspection of translation behaviour.
Not intended for: production retrieval at scale. The matching general-release model is a better fit there.
The MTEB alignment of the training distribution makes the eval metrics here optimistic compared to arbitrary user data.
License
Apache 2.0.
Citation
bibtex
1@misc{univec2026,
2 author = {UniVec},
3 title = {UniVec: Embedding interoperability for retrieval tasks},
4 year = {2026},
5 url = {https://univec.ai}
6}