MaunikG commited on
Commit
cd160ed
·
verified ·
1 Parent(s): a1a34a4

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ onnx/model.onnx_data filter=lfs diff=lfs merge=lfs -text
37
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,321 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ pipeline_tag: feature-extraction
3
+ tags:
4
+ - gguf
5
+ - embedding
6
+ - qwen3
7
+ - llama-cpp
8
+ - jina-embeddings-v5
9
+ - feature-extraction
10
+ - mteb
11
+ - vllm
12
+ - sentence-transformers
13
+ language:
14
+ - multilingual
15
+ base_model:
16
+ - jinaai/jina-embeddings-v5-text-small-clustering
17
+ base_model_relation: quantized
18
+ inference: false
19
+ license: cc-by-nc-4.0
20
+ library_name: transformers.js
21
+ ---
22
+
23
+
24
+
25
+ # jina-embeddings-v5-text-small-clustering (ONNX)
26
+
27
+
28
+ This is an ONNX version of [jinaai/jina-embeddings-v5-text-small-clustering](https://huggingface.co/jinaai/jina-embeddings-v5-text-small-clustering). It was automatically converted and uploaded using [this Hugging Face Space](https://huggingface.co/spaces/onnx-community/convert-to-onnx).
29
+
30
+
31
+ ## Usage with Transformers.js
32
+
33
+
34
+ See the pipeline documentation for `feature-extraction`: https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.FeatureExtractionPipeline
35
+
36
+
37
+ ---
38
+
39
+
40
+ <br><br>
41
+
42
+ <p align="center">
43
+ <img src="https://huggingface.co/datasets/jinaai/documentation-images/resolve/main/logo.webp" alt="Jina AI: Your Search Foundation, Supercharged!" width="150px">
44
+ </p>
45
+
46
+ ### **jina-embeddings-v5-text-small-clustering**: Clustering-Targeted Embedding Distillation
47
+
48
+ [Elastic Inference Service](https://www.elastic.co/docs/explore-analyze/elastic-inference/eis) | [ArXiv](https://arxiv.org/abs/2602.15547) | [Release Note](https://jina.ai/news/jina-embeddings-v5-text-distilling-4b-quality-into-sub-1b-multilingual-embeddings) | [Blog](https://www.elastic.co/search-labs/blog/jina-embeddings-v5-text)
49
+
50
+ ### Model Overview
51
+
52
+ <p align="center">
53
+ <img src="https://jina-ai-gmbh.ghost.io/content/images/2026/02/v5_architecture_1771470917.png" alt="jina-embeddings-v5-text Architecture" width="600px">
54
+ </p>
55
+ `jina-embeddings-v5-text-small-clustering` is a compact, high-performance text embedding model designed for clustering.
56
+
57
+ It is part of the **jina-embeddings-v5-text** model family, which also includes [jina-embeddings-v5-text-nano](https://huggingface.co/jinaai/jina-embeddings-v5-text-nano), a smaller model for more resource-constrained use cases.
58
+
59
+ Trained using a novel approach that combines distillation with task-specific contrastive losses, `jina-embeddings-v5-text-small-clustering` outperforms existing state-of-the-art models of similar size across diverse embedding benchmarks.
60
+ | Feature | Value |
61
+ | --- | --- |
62
+ | Parameters | 677M |
63
+ | Supported Tasks | `clustering`|
64
+ | Max Sequence Length | 32768 |
65
+ | Embedding Dimension | 1024 |
66
+ | Matryoshka Dimensions | 32, 64, 128, 256, 512, 768, 1024 |
67
+ | Pooling Strategy | Last-token pooling |
68
+ | Base Model | jinaai/jina-embeddings-v5-text-small |
69
+
70
+ ![v5_benchmarks_combined](https://cdn-uploads.huggingface.co/production/uploads/6476ff2699a5ce743ccea3fc/7WjMQChM6XAOI9LhREChg.png)
71
+
72
+
73
+ ### Training and Evaluation
74
+
75
+ For training details and evaluation results, see our [technical report](https://arxiv.org/abs/2602.15547).
76
+
77
+ ### Usage
78
+
79
+ <details>
80
+ <summary>Requirements</a></summary>
81
+
82
+ The following Python packages are required:
83
+
84
+ - `transformers>=5.1.0`
85
+ - `torch>=2.8.0`
86
+ - `peft>=0.15.2`
87
+ - `vllm>=0.15.1`
88
+
89
+ ### Optional / Recommended
90
+ - **flash-attention**: Installing [flash-attention](https://github.com/Dao-AILab/flash-attention) is recommended for improved inference speed and efficiency, but not mandatory.
91
+ - **sentence-transformers**: If you want to use the model via the `sentence-transformers` interface, install this package as well.
92
+
93
+ </details>
94
+
95
+ <details open>
96
+ <summary>via <a href="https://www.elastic.co/docs/explore-analyze/elastic-inference/eis">Elastic Inference Service</a></summary>
97
+
98
+ The fastest way to use v5-text in production. Elastic Inference Service (EIS) provides managed embedding inference with built-in scaling, so you can generate embeddings directly within your Elastic deployment.
99
+
100
+ ```bash
101
+ PUT _inference/text_embedding/jina-v5
102
+ {
103
+ "service": "elastic",
104
+ "service_settings": {
105
+ "model_id": "jina-embeddings-v5-text-small"
106
+ }
107
+ }
108
+ ```
109
+
110
+ See the [Elastic Inference Service documentation](https://www.elastic.co/docs/explore-analyze/elastic-inference/eis) for setup details.
111
+
112
+ </details>
113
+
114
+
115
+ <details>
116
+ <summary>via <a href="https://sbert.net/">sentence-transformers</a></summary>
117
+
118
+ ```python
119
+ from sentence_transformers import SentenceTransformer
120
+ import torch
121
+
122
+ model = SentenceTransformer(
123
+ "jinaai/jina-embeddings-v5-text-small-clustering",
124
+ model_kwargs={"dtype": torch.bfloat16}, # Recommended for GPUs
125
+ config_kwargs={"_attn_implementation": "flash_attention_2"}, # Recommended but optional
126
+ )
127
+ # Optional: set truncate_dim in encode() to control embedding size
128
+
129
+ texts = [
130
+ "We propose a novel neural network architecture for image segmentation.",
131
+ "This paper analyzes the effects of monetary policy on inflation.",
132
+ "Our method achieves state-of-the-art results on object detection benchmarks.",
133
+ "We study the relationship between interest rates and housing prices.",
134
+ "A new attention mechanism is introduced for visual recognition tasks.",
135
+ ]
136
+
137
+ # Encode texts
138
+ embeddings = model.encode(texts)
139
+ print(embeddings.shape)
140
+ # (5, 1024)
141
+
142
+ similarity = model.similarity(embeddings, embeddings)
143
+ print(similarity)
144
+ # tensor([[1.0000, 0.2983, 0.8631, 0.3098, 0.9106],
145
+ # [0.2983, 1.0000, 0.3257, 0.8041, 0.3201],
146
+ # [0.8631, 0.3257, 1.0000, 0.3263, 0.9007],
147
+ # [0.3098, 0.8041, 0.3263, 1.0000, 0.3122],
148
+ # [0.9106, 0.3201, 0.9007, 0.3122, 1.0000]])
149
+ ```
150
+ </details>
151
+
152
+ <details>
153
+ <summary>via <a href="https://github.com/vllm-project/vllm">vLLM</a></summary>
154
+
155
+ ```python
156
+ from vllm import LLM#
157
+ from vllm.config.pooler import PoolerConfig
158
+
159
+ # Initialize model
160
+ name = "jinaai/jina-embeddings-v5-text-small-clustering"
161
+ model = LLM(
162
+ model=name,
163
+ dtype="float16",
164
+ runner="pooling",
165
+ pooler_config=PoolerConfig(seq_pooling_type="LAST", normalize=True)
166
+ )
167
+
168
+ # Create text prompts
169
+ document1 = "Overview of climate change impacts on coastal cities"
170
+ document1_prompt = f"Document: {document1}"
171
+
172
+ document2 = "The impacts of climate change on large cities"
173
+ document2_prompt = f"Document: {document2}"
174
+
175
+ # Encode all prompts
176
+ prompts = [document1_prompt, document2_prompt]
177
+ outputs = model.encode(prompts, pooling_task="embed")
178
+
179
+ embed_document1 = outputs[0].outputs.data
180
+ embed_document2 = outputs[1].outputs.data
181
+ ```
182
+
183
+ </details>
184
+
185
+ <details>
186
+ <summary>via <a href="https://github.com/huggingface/text-embeddings-inference">Text Embeddings Inference</a></summary>
187
+
188
+ - Via Docker on CPU:
189
+ ```bash
190
+ docker run -p 8080:80 \
191
+ ghcr.io/huggingface/text-embeddings-inference:cpu-1.9 \
192
+ --model-id jinaai/jina-embeddings-v5-text-small-clustering \
193
+ --dtype float32 --pooling last-token
194
+ ```
195
+ - Via Docker on NVIDIA GPU (Turing, Ampere, Ada Lovelace, Hopper or Blackwell):
196
+ ```bash
197
+ docker run --gpus all --shm-size 1g -p 8080:80 \
198
+ ghcr.io/huggingface/text-embeddings-inference:cuda-1.9 \
199
+ --model-id jinaai/jina-embeddings-v5-text-small-clustering \
200
+ --dtype float16 --pooling last-token
201
+ ```
202
+
203
+ > Alternatively, you can also run with `cargo`, more information can be found in the [Text Embeddings Inference documentation](https://hf.co/docs/text-embeddings-inference).
204
+
205
+ Send a request to `/v1/embeddings` to generate embeddings via the [OpenAI Embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create):
206
+
207
+ ```bash
208
+ curl -X POST http://127.0.0.1:8080/v1/embeddings \
209
+ -H "Content-Type: application/json" \
210
+ -d '{
211
+ "model": "jinaai/jina-embeddings-v5-text-small-clustering",
212
+ "input": [
213
+ "Document: The impacts of climate change on coastal cities are significant...",
214
+ ]
215
+ }'
216
+ ```
217
+
218
+ Or rather via the [Text Embeddings Inference API specification](https://huggingface.github.io/text-embeddings-inference/) instead, to prevent from manually formatting the inputs:
219
+
220
+ ```bash
221
+ curl -X POST http://127.0.0.1:8080/embed \
222
+ -H "Content-Type: application/json" \
223
+ -d '{
224
+ "inputs": "Overview of climate change impacts on coastal cities",
225
+ "prompt_name": "document",
226
+ }'
227
+ ```
228
+
229
+ </details>
230
+
231
+ <details>
232
+ <summary> via <a href="https://github.com/ggml-org/llama.cpp">llama.cpp (GGUF)</a></summary>
233
+ After installing <a href="https://github.com/ggml-org/llama.cpp">llama.cpp</a> one can run llama-server to host the embedding model as OpenAI API compatible HTTP server with the respective model version:
234
+
235
+ ```sh
236
+ llama-server -hf jinaai/jina-embeddings-v5-text-small-clustering:F16 --embedding --pooling last -ub 32768
237
+ ```
238
+
239
+ Client:
240
+
241
+ ```
242
+ curl -X POST "http://127.0.0.1:8080/v1/embeddings" \
243
+ -H "Content-Type: application/json" \
244
+ -d '{
245
+ "input": [
246
+ "Document: A beautiful sunset over the beach",
247
+ "Document: Un beau coucher de soleil sur la plage",
248
+ "Document: 海滩上美丽的日落",
249
+ "Document: 浜辺に沈む美しい夕日",
250
+ "Document: Golden sunlight melts into the horizon, painting waves in warm amber and rose, while the sky whispers goodnight to the quiet, endless sea."
251
+ ]
252
+ }'
253
+ ```
254
+
255
+ </details>
256
+
257
+ <details>
258
+ <summary> via <a href="https://huggingface.co/docs/optimum/index">Optimum (ONNX)</a></summary>
259
+
260
+ You can run the ONNX-optimized version of the model locally using Hugging Face's `optimum` library. Make sure you have the required dependencies installed (e.g., `pip install optimum[onnxruntime] transformers torch`):
261
+
262
+ ```python
263
+ from optimum.onnxruntime import ORTModelForFeatureExtraction
264
+ from transformers import AutoTokenizer
265
+ import torch
266
+
267
+ model_id = "jinaai/jina-embeddings-v5-text-small-clustering"
268
+
269
+ # 1. Load tokenizer and ONNX model
270
+ # We specify the subfolder 'onnx' where the weights are located
271
+ tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
272
+ model = ORTModelForFeatureExtraction.from_pretrained(
273
+ model_id,
274
+ subfolder="onnx",
275
+ file_name="model.onnx",
276
+ provider="CPUExecutionProvider", # Or "CUDAExecutionProvider" for GPU
277
+ trust_remote_code=True,
278
+ )
279
+
280
+ # 2. Prepare input
281
+ texts = ["Document: How do I use Jina ONNX models?", "Document: Information about semantic matching."]
282
+ inputs = tokenizer(texts, padding=True, truncation=True, return_tensors="pt")
283
+
284
+
285
+ # 4. Inference
286
+ with torch.no_grad():
287
+ outputs = model(**inputs)
288
+
289
+ # 5. Pooling (Crucial for Jina-v5)
290
+ # Jina-v5 uses LAST-TOKEN pooling.
291
+ # We take the hidden state of the last non-padding token.
292
+ last_hidden_state = outputs.last_hidden_state
293
+ # Find the indices of the last token (usually the end of the sequence)
294
+ sequence_lengths = inputs.attention_mask.sum(dim=1) - 1
295
+ embeddings = last_hidden_state[torch.arange(last_hidden_state.size(0)), sequence_lengths]
296
+
297
+ print('embeddings shape:', embeddings.shape)
298
+ print('embeddings:', embeddings)
299
+ ```
300
+
301
+ </details>
302
+
303
+ ### License
304
+
305
+ The model is licensed under CC BY-NC 4.0. For commercial use, please [contact us](sales@jina.ai).
306
+
307
+ ### Citation
308
+
309
+ If you find `jina-embeddings-v5-text-small-clustering` useful in your research, please cite the following paper:
310
+
311
+ ```
312
+ @misc{akram2026jinaembeddingsv5texttasktargetedembeddingdistillation,
313
+ title={jina-embeddings-v5-text: Task-Targeted Embedding Distillation},
314
+ author={Mohammad Kalim Akram and Saba Sturua and Nastia Havriushenko and Quentin Herreros and Michael Günther and Maximilian Werk and Han Xiao},
315
+ year={2026},
316
+ eprint={2602.15547},
317
+ archivePrefix={arXiv},
318
+ primaryClass={cs.CL},
319
+ url={https://arxiv.org/abs/2602.15547},
320
+ }
321
+ ```
added_tokens.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "</think>": 151668,
3
+ "</tool_call>": 151658,
4
+ "</tool_response>": 151666,
5
+ "<think>": 151667,
6
+ "<tool_call>": 151657,
7
+ "<tool_response>": 151665,
8
+ "<|box_end|>": 151649,
9
+ "<|box_start|>": 151648,
10
+ "<|endoftext|>": 151643,
11
+ "<|file_sep|>": 151664,
12
+ "<|fim_middle|>": 151660,
13
+ "<|fim_pad|>": 151662,
14
+ "<|fim_prefix|>": 151659,
15
+ "<|fim_suffix|>": 151661,
16
+ "<|im_end|>": 151645,
17
+ "<|im_start|>": 151644,
18
+ "<|image_pad|>": 151655,
19
+ "<|object_ref_end|>": 151647,
20
+ "<|object_ref_start|>": 151646,
21
+ "<|quad_end|>": 151651,
22
+ "<|quad_start|>": 151650,
23
+ "<|repo_name|>": 151663,
24
+ "<|video_pad|>": 151656,
25
+ "<|vision_end|>": 151653,
26
+ "<|vision_pad|>": 151654,
27
+ "<|vision_start|>": 151652
28
+ }
chat_template.jinja ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0].role == 'system' %}
4
+ {{- messages[0].content + '\n\n' }}
5
+ {%- endif %}
6
+ {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
7
+ {%- for tool in tools %}
8
+ {{- "\n" }}
9
+ {{- tool | tojson }}
10
+ {%- endfor %}
11
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
12
+ {%- else %}
13
+ {%- if messages[0].role == 'system' %}
14
+ {{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}
15
+ {%- endif %}
16
+ {%- endif %}
17
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
18
+ {%- for message in messages[::-1] %}
19
+ {%- set index = (messages|length - 1) - loop.index0 %}
20
+ {%- if ns.multi_step_tool and message.role == "user" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}
21
+ {%- set ns.multi_step_tool = false %}
22
+ {%- set ns.last_query_index = index %}
23
+ {%- endif %}
24
+ {%- endfor %}
25
+ {%- for message in messages %}
26
+ {%- if message.content is string %}
27
+ {%- set content = message.content %}
28
+ {%- else %}
29
+ {%- set content = '' %}
30
+ {%- endif %}
31
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
32
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
33
+ {%- elif message.role == "assistant" %}
34
+ {%- set reasoning_content = '' %}
35
+ {%- if message.reasoning_content is string %}
36
+ {%- set reasoning_content = message.reasoning_content %}
37
+ {%- else %}
38
+ {%- if '</think>' in content %}
39
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
40
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
41
+ {%- endif %}
42
+ {%- endif %}
43
+ {%- if loop.index0 > ns.last_query_index %}
44
+ {%- if loop.last or (not loop.last and reasoning_content) %}
45
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
46
+ {%- else %}
47
+ {{- '<|im_start|>' + message.role + '\n' + content }}
48
+ {%- endif %}
49
+ {%- else %}
50
+ {{- '<|im_start|>' + message.role + '\n' + content }}
51
+ {%- endif %}
52
+ {%- if message.tool_calls %}
53
+ {%- for tool_call in message.tool_calls %}
54
+ {%- if (loop.first and content) or (not loop.first) %}
55
+ {{- '\n' }}
56
+ {%- endif %}
57
+ {%- if tool_call.function %}
58
+ {%- set tool_call = tool_call.function %}
59
+ {%- endif %}
60
+ {{- '<tool_call>\n{"name": "' }}
61
+ {{- tool_call.name }}
62
+ {{- '", "arguments": ' }}
63
+ {%- if tool_call.arguments is string %}
64
+ {{- tool_call.arguments }}
65
+ {%- else %}
66
+ {{- tool_call.arguments | tojson }}
67
+ {%- endif %}
68
+ {{- '}\n</tool_call>' }}
69
+ {%- endfor %}
70
+ {%- endif %}
71
+ {{- '<|im_end|>\n' }}
72
+ {%- elif message.role == "tool" %}
73
+ {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
74
+ {{- '<|im_start|>user' }}
75
+ {%- endif %}
76
+ {{- '\n<tool_response>\n' }}
77
+ {{- content }}
78
+ {{- '\n</tool_response>' }}
79
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
80
+ {{- '<|im_end|>\n' }}
81
+ {%- endif %}
82
+ {%- endif %}
83
+ {%- endfor %}
84
+ {%- if add_generation_prompt %}
85
+ {{- '<|im_start|>assistant\n' }}
86
+ {%- if enable_thinking is defined and enable_thinking is false %}
87
+ {{- '<think>\n\n</think>\n\n' }}
88
+ {%- endif %}
89
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen3Model"
4
+ ],
5
+ "attention_bias": false,
6
+ "attention_dropout": 0.0,
7
+ "bos_token_id": 151643,
8
+ "dtype": "float32",
9
+ "eos_token_id": 151645,
10
+ "head_dim": 128,
11
+ "hidden_act": "silu",
12
+ "hidden_size": 1024,
13
+ "initializer_range": 0.02,
14
+ "intermediate_size": 3072,
15
+ "layer_types": [
16
+ "full_attention",
17
+ "full_attention",
18
+ "full_attention",
19
+ "full_attention",
20
+ "full_attention",
21
+ "full_attention",
22
+ "full_attention",
23
+ "full_attention",
24
+ "full_attention",
25
+ "full_attention",
26
+ "full_attention",
27
+ "full_attention",
28
+ "full_attention",
29
+ "full_attention",
30
+ "full_attention",
31
+ "full_attention",
32
+ "full_attention",
33
+ "full_attention",
34
+ "full_attention",
35
+ "full_attention",
36
+ "full_attention",
37
+ "full_attention",
38
+ "full_attention",
39
+ "full_attention",
40
+ "full_attention",
41
+ "full_attention",
42
+ "full_attention",
43
+ "full_attention"
44
+ ],
45
+ "max_position_embeddings": 32768,
46
+ "max_window_layers": 28,
47
+ "model_type": "qwen3",
48
+ "num_attention_heads": 16,
49
+ "num_hidden_layers": 28,
50
+ "num_key_value_heads": 8,
51
+ "rms_norm_eps": 1e-06,
52
+ "rope_parameters": {
53
+ "rope_theta": 3500000,
54
+ "rope_type": "default"
55
+ },
56
+ "rope_scaling": null,
57
+ "rope_theta": 10000.0,
58
+ "sliding_window": null,
59
+ "task_names": [
60
+ "retrieval",
61
+ "text-matching",
62
+ "clustering",
63
+ "classification"
64
+ ],
65
+ "tie_word_embeddings": true,
66
+ "transformers_version": "4.57.6",
67
+ "use_cache": true,
68
+ "use_sliding_window": false,
69
+ "vocab_size": 151936
70
+ }
merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
onnx/model.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2495ff397decbcb8b9f44d33d9a0c72ceedd24f373255d8cbf9ae749c5fee4b0
3
+ size 1263141
onnx/model.onnx_data ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:236f0d667c5a222329996b1a38cac809fe810ac36ef8dd5572115f9ce921d258
3
+ size 2384199936
onnx/model_bnb4.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5eb59da021a419c885fd77a34896c02e2ede29cc71f54b24950357214a2bac27
3
+ size 899116172
onnx/model_fp16.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7648eb81c4e9fef7b51879c6fcd6fb4b8863eea0cb2a978c508711dc52c80041
3
+ size 2
onnx/model_int8.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b46f87aa5ce2400d784e5ecf47850609b9cf72d5aaf26404e609482e77681cbd
3
+ size 598183354
onnx/model_q4.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5eb59da021a419c885fd77a34896c02e2ede29cc71f54b24950357214a2bac27
3
+ size 899116172
onnx/model_q4f16.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8ca102c589b833145d6f7a04da9d1af804e114995ad676c1490d45d090c9c8b5
3
+ size 560704908
onnx/model_quantized.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b46f87aa5ce2400d784e5ecf47850609b9cf72d5aaf26404e609482e77681cbd
3
+ size 598183354
onnx/model_uint8.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6784e6fd2b46bc7ebee0aae385191b26b16b1d4e299df20204943bfd37ae8932
3
+ size 598183457
special_tokens_map.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<|im_start|>",
4
+ "<|im_end|>",
5
+ "<|object_ref_start|>",
6
+ "<|object_ref_end|>",
7
+ "<|box_start|>",
8
+ "<|box_end|>",
9
+ "<|quad_start|>",
10
+ "<|quad_end|>",
11
+ "<|vision_start|>",
12
+ "<|vision_end|>",
13
+ "<|vision_pad|>",
14
+ "<|image_pad|>",
15
+ "<|video_pad|>"
16
+ ],
17
+ "eos_token": {
18
+ "content": "<|im_end|>",
19
+ "lstrip": false,
20
+ "normalized": false,
21
+ "rstrip": false,
22
+ "single_word": false
23
+ },
24
+ "pad_token": {
25
+ "content": "<|endoftext|>",
26
+ "lstrip": false,
27
+ "normalized": false,
28
+ "rstrip": false,
29
+ "single_word": false
30
+ }
31
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4
3
+ size 11422654
tokenizer_config.json ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "added_tokens_decoder": {
4
+ "151643": {
5
+ "content": "<|endoftext|>",
6
+ "lstrip": false,
7
+ "normalized": false,
8
+ "rstrip": false,
9
+ "single_word": false,
10
+ "special": true
11
+ },
12
+ "151644": {
13
+ "content": "<|im_start|>",
14
+ "lstrip": false,
15
+ "normalized": false,
16
+ "rstrip": false,
17
+ "single_word": false,
18
+ "special": true
19
+ },
20
+ "151645": {
21
+ "content": "<|im_end|>",
22
+ "lstrip": false,
23
+ "normalized": false,
24
+ "rstrip": false,
25
+ "single_word": false,
26
+ "special": true
27
+ },
28
+ "151646": {
29
+ "content": "<|object_ref_start|>",
30
+ "lstrip": false,
31
+ "normalized": false,
32
+ "rstrip": false,
33
+ "single_word": false,
34
+ "special": true
35
+ },
36
+ "151647": {
37
+ "content": "<|object_ref_end|>",
38
+ "lstrip": false,
39
+ "normalized": false,
40
+ "rstrip": false,
41
+ "single_word": false,
42
+ "special": true
43
+ },
44
+ "151648": {
45
+ "content": "<|box_start|>",
46
+ "lstrip": false,
47
+ "normalized": false,
48
+ "rstrip": false,
49
+ "single_word": false,
50
+ "special": true
51
+ },
52
+ "151649": {
53
+ "content": "<|box_end|>",
54
+ "lstrip": false,
55
+ "normalized": false,
56
+ "rstrip": false,
57
+ "single_word": false,
58
+ "special": true
59
+ },
60
+ "151650": {
61
+ "content": "<|quad_start|>",
62
+ "lstrip": false,
63
+ "normalized": false,
64
+ "rstrip": false,
65
+ "single_word": false,
66
+ "special": true
67
+ },
68
+ "151651": {
69
+ "content": "<|quad_end|>",
70
+ "lstrip": false,
71
+ "normalized": false,
72
+ "rstrip": false,
73
+ "single_word": false,
74
+ "special": true
75
+ },
76
+ "151652": {
77
+ "content": "<|vision_start|>",
78
+ "lstrip": false,
79
+ "normalized": false,
80
+ "rstrip": false,
81
+ "single_word": false,
82
+ "special": true
83
+ },
84
+ "151653": {
85
+ "content": "<|vision_end|>",
86
+ "lstrip": false,
87
+ "normalized": false,
88
+ "rstrip": false,
89
+ "single_word": false,
90
+ "special": true
91
+ },
92
+ "151654": {
93
+ "content": "<|vision_pad|>",
94
+ "lstrip": false,
95
+ "normalized": false,
96
+ "rstrip": false,
97
+ "single_word": false,
98
+ "special": true
99
+ },
100
+ "151655": {
101
+ "content": "<|image_pad|>",
102
+ "lstrip": false,
103
+ "normalized": false,
104
+ "rstrip": false,
105
+ "single_word": false,
106
+ "special": true
107
+ },
108
+ "151656": {
109
+ "content": "<|video_pad|>",
110
+ "lstrip": false,
111
+ "normalized": false,
112
+ "rstrip": false,
113
+ "single_word": false,
114
+ "special": true
115
+ },
116
+ "151657": {
117
+ "content": "<tool_call>",
118
+ "lstrip": false,
119
+ "normalized": false,
120
+ "rstrip": false,
121
+ "single_word": false,
122
+ "special": false
123
+ },
124
+ "151658": {
125
+ "content": "</tool_call>",
126
+ "lstrip": false,
127
+ "normalized": false,
128
+ "rstrip": false,
129
+ "single_word": false,
130
+ "special": false
131
+ },
132
+ "151659": {
133
+ "content": "<|fim_prefix|>",
134
+ "lstrip": false,
135
+ "normalized": false,
136
+ "rstrip": false,
137
+ "single_word": false,
138
+ "special": false
139
+ },
140
+ "151660": {
141
+ "content": "<|fim_middle|>",
142
+ "lstrip": false,
143
+ "normalized": false,
144
+ "rstrip": false,
145
+ "single_word": false,
146
+ "special": false
147
+ },
148
+ "151661": {
149
+ "content": "<|fim_suffix|>",
150
+ "lstrip": false,
151
+ "normalized": false,
152
+ "rstrip": false,
153
+ "single_word": false,
154
+ "special": false
155
+ },
156
+ "151662": {
157
+ "content": "<|fim_pad|>",
158
+ "lstrip": false,
159
+ "normalized": false,
160
+ "rstrip": false,
161
+ "single_word": false,
162
+ "special": false
163
+ },
164
+ "151663": {
165
+ "content": "<|repo_name|>",
166
+ "lstrip": false,
167
+ "normalized": false,
168
+ "rstrip": false,
169
+ "single_word": false,
170
+ "special": false
171
+ },
172
+ "151664": {
173
+ "content": "<|file_sep|>",
174
+ "lstrip": false,
175
+ "normalized": false,
176
+ "rstrip": false,
177
+ "single_word": false,
178
+ "special": false
179
+ },
180
+ "151665": {
181
+ "content": "<tool_response>",
182
+ "lstrip": false,
183
+ "normalized": false,
184
+ "rstrip": false,
185
+ "single_word": false,
186
+ "special": false
187
+ },
188
+ "151666": {
189
+ "content": "</tool_response>",
190
+ "lstrip": false,
191
+ "normalized": false,
192
+ "rstrip": false,
193
+ "single_word": false,
194
+ "special": false
195
+ },
196
+ "151667": {
197
+ "content": "<think>",
198
+ "lstrip": false,
199
+ "normalized": false,
200
+ "rstrip": false,
201
+ "single_word": false,
202
+ "special": false
203
+ },
204
+ "151668": {
205
+ "content": "</think>",
206
+ "lstrip": false,
207
+ "normalized": false,
208
+ "rstrip": false,
209
+ "single_word": false,
210
+ "special": false
211
+ }
212
+ },
213
+ "additional_special_tokens": [
214
+ "<|im_start|>",
215
+ "<|im_end|>",
216
+ "<|object_ref_start|>",
217
+ "<|object_ref_end|>",
218
+ "<|box_start|>",
219
+ "<|box_end|>",
220
+ "<|quad_start|>",
221
+ "<|quad_end|>",
222
+ "<|vision_start|>",
223
+ "<|vision_end|>",
224
+ "<|vision_pad|>",
225
+ "<|image_pad|>",
226
+ "<|video_pad|>"
227
+ ],
228
+ "backend": "tokenizers",
229
+ "bos_token": null,
230
+ "clean_up_tokenization_spaces": false,
231
+ "eos_token": "<|im_end|>",
232
+ "errors": "replace",
233
+ "extra_special_tokens": {},
234
+ "is_local": false,
235
+ "model_max_length": 131072,
236
+ "pad_token": "<|endoftext|>",
237
+ "split_special_tokens": false,
238
+ "tokenizer_class": "Qwen2Tokenizer",
239
+ "unk_token": null
240
+ }
vocab.json ADDED
The diff for this file is too large to render. See raw diff