This is a Jina v5 nano embedding model in ONNX format, optimized for use with Vespa database.
1import onnxruntime as ort
2from transformers import PreTrainedTokenizerFast
3import numpy as np
4
5# Load ONNX model
6session = ort.InferenceSession('model.onnx')
7
8# Load tokenizer
9tokenizer = PreTrainedTokenizerFast(tokenizer_file='tokenizer.json')
10
11# Generate embedding
12text = 'Your search query'
13inputs = tokenizer(text, padding=True, truncation=True, max_length=512, return_tensors='np')
14
15outputs = session.run(None, {
16 'input_ids': inputs['input_ids'],
17 'attention_mask': inputs['attention_mask']
18})
19
20# Mean pooling
21hidden = outputs[0]
22mask = inputs['attention_mask']
23mask_expanded = np.expand_dims(mask, -1)
24pooled = np.sum(hidden * mask_expanded, axis=1) / np.clip(mask_expanded.sum(axis=1), a_min=1e-9)
25
26print(pooled.shape) # (1, 768)