File size: 4,269 Bytes
86ffa82
e380cd2
 
 
86ffa82
e380cd2
 
 
 
 
 
86ffa82
 
 
 
 
 
 
 
 
aeaff45
86ffa82
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44aa200
86ffa82
 
44aa200
86ffa82
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44aa200
 
 
 
 
 
86ffa82
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9081912
 
5bfbdc0
9081912
 
 
 
 
5bfbdc0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9081912
 
86ffa82
 
5bfbdc0
86ffa82
 
 
 
 
 
5bfbdc0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
---
license: cc-by-nc-4.0
language:
- multilingual
base_model:
- Qwen/Qwen3-0.6B-Base
tags:
- feature-extraction
- mteb
- sentence-transformers
library_name: transformers
---
<br><br>

<p align="center">
<img src="https://huggingface.co/datasets/jinaai/documentation-images/resolve/main/logo.webp" alt="Jina AI: Your Search Foundation, Supercharged!" width="150px">
</p>

### **jina-embeddings-v5-text-small-clustering**: Clustering-Targeted Embedding Distillation

[Blog](https://picsum.photos/200/300) | [Technical Report](https://picsum.photos/200/300) | [Jina API](https://jina.ai/embeddings) | [EIS](https://www.elastic.co/docs/explore-analyze/elastic-inference/eis)

### Model Overview

`jina-embeddings-v5-text-small-clustering` is a compact, high-performance text embedding model designed for clustering.

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.

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.

| Feature | Value |
| --- | --- |
| Parameters | 677M |
| Supported Tasks | `clustering`|
| Max Sequence Length | 32768 |
| Embedding Dimension | 1024 |
| Matryoshka Dimensions | 32, 64, 128, 256, 512, 768, 1024 |
| Pooling Strategy | Last-token pooling |
| Base Model | Qwen/Qwen3-0.6B-Base |

### Training and Evaluation

For training details and evaluation results, see our [technical report](https://picsum.photos/200/300).

### Usage

<details>
  <summary>Requirements</a></summary>
  
The following Python packages are required:

- `transformers>=5.1.0`
- `torch>=2.8.0`
- `peft>=0.15.2`
- `vllm>=0.15.1`
  
### Optional / Recommended
- **flash-attention**: Installing [flash-attention](https://github.com/Dao-AILab/flash-attention) is recommended for improved inference speed and efficiency, but not mandatory.
- **sentence-transformers**: If you want to use the model via the `sentence-transformers` interface, install this package as well.

</details>

<details>
  <summary>via <a href="https://github.com/vllm-project/vllm">vLLM</a></summary>

```python
from vllm import LLM

# Initialize model
name = "jinaai/jina-embeddings-v5-text-small-clustering"
model = LLM(
    model=name,
    dtype="float16",
    runner="pooling",
    pooler_config=PoolerConfig(seq_pooling_type="LAST", normalize=True)
)

# Create text prompts
document1 = "Overview of climate change impacts on coastal cities"
document1_prompt = f"Document: {document1}"

document2 = "The impacts of climate change on large cities"
document2_prompt = f"Document: {document2}"

# Encode all prompts
prompts = [document1_prompt, document2_prompt]
outputs = model.encode(prompts, pooling_task="embed")


embed_document1 = outputs[0].outputs.data
embed_document2 = outputs[1].outputs.data
```

</details>

<details>
  <summary> via <a href="https://github.com/ggml-org/llama.cpp">llama.cpp (GGUF)</a></summary>
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:

```sh
llama-server -hf jinaai/jina-embeddings-v5-text-small-clustering:F16 --embedding --pooling last -ub 32768
```


Client:

```
curl -X POST "http://127.0.0.1:8080/v1/embeddings" \
  -H "Content-Type: application/json" \
  -d '{
    "input": [
      "Document: A beautiful sunset over the beach",
      "Document: Un beau coucher de soleil sur la plage",
      "Document: 海滩上美丽的日落",
      "Document: 浜辺に沈む美しい夕日",
      "Document: Golden sunlight melts into the horizon, painting waves in warm amber and rose, while the sky whispers goodnight to the quiet, endless sea."
    ]
  }'
```


</details>

### License

The model is licensed under CC BY-NC 4.0. For commercial use, please [contact us](sales@jina.ai).


### Citation

If you find `jina-embeddings-v5-text-small-clustering` useful in your research, please cite the following paper:

[will be published soon]