DavidGF commited on
Commit
b0fe0ba
·
verified ·
0 Parent(s):

Initial commit.

Browse files
.gitattributes ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz 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
+ scatter_plot_performance_size.png filter=lfs diff=lfs merge=lfs -text
1_Dense/config.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"in_features": 768, "out_features": 128, "bias": false, "activation_function": "torch.nn.modules.linear.Identity"}
1_Dense/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:95058fd17ab5d528168c929071af61bfa5284e656894e2f7191ed4822b9eceb8
3
+ size 393304
README.md ADDED
@@ -0,0 +1,399 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ tags:
3
+ - ColBERT
4
+ - PyLate
5
+ - sentence-transformers
6
+ - sentence-similarity
7
+ - feature-extraction
8
+ - multilingual
9
+ - late-interaction
10
+ - retrieval
11
+ - bright
12
+ - loss:Distillation
13
+ pipeline_tag: sentence-similarity
14
+ library_name: PyLate
15
+ license: apache-2.0
16
+ base_model:
17
+ - DavidGF/SauerkrautLM-Multi-ModernColBERT
18
+ ---
19
+ <img src="https://vago-solutions.ai/wp-content/uploads/2025/08/SauerkrautLM-Multi-Reason-ModernColBERT.png" width="500" height="auto">
20
+
21
+ # SauerkrautLM-Multi-Reason-ModernColBERT
22
+
23
+ This model is the first publicly available Late Interaction retriever that integrates:
24
+
25
+ Knowledge Distillation from strong synthetic data (200k samples generated with Qwen/Qwen3-32B-AWQ and scored by a high-performing reranker).
26
+ LaserRMT compression, making it the first known ColBERT-style retriever to benefit from low-rank approximation.
27
+
28
+ ### 🎯 Core Features and Innovations:
29
+
30
+ - **Next-Generation Knowledge Distillation**: By utilizing 200,000 synthetically generated, high-quality training examples (created with `Qwen/Qwen3-32B-AWQ` and scored by a state-of-the-art reranker), our model learns complex reasoning patterns from models **54× its size**.
31
+
32
+ - **Groundbreaking LaserRMT Compression**: As the first known **ColBERT-style retriever to benefit from low-rank approximation**
33
+
34
+ ### 💪 David vs. Goliath: Small but Mighty
35
+
36
+ With only **149 million parameters** – that's **less than 1/45th the size** of some competing models – SauerkrautLM achieves or exceeds the performance of:
37
+ - Models with **over 7 billion parameters** (47× larger than ours)
38
+ - Proprietary API-based solutions from major tech companies
39
+ - Specialized reasoning models like ReasonIR-8B (54× larger)
40
+
41
+ This exceptional efficiency makes it the ideal choice for production environments where resource consumption and latency are critical factors.
42
+
43
+
44
+
45
+ ## Model Overview
46
+
47
+ **Model:** `VAGOsolutions/SauerkrautLM-Multi-Reason-ModernColBERT`\
48
+ **Base:** Fine-tuned from [VAGOsolutions/SauerkrautLM-Multi-ModernColBERT](https://huggingface.co/VAGOsolutions/SauerkrautLM-Multi-ModernColBERT) using knowledge distillation and LaserRMT\
49
+ **Architecture:** PyLate / ColBERT (Late Interaction)\
50
+ **Languages:** Multilingual (optimized for 7 European languages: German, English, Spanish, French, Italian, Dutch, Portuguese)\
51
+ **License:** Apache 2.0\
52
+ **Model Size:** 149M parameters
53
+ **Efficiency Ratio:** Up to **54× smaller** than comparable performing models
54
+
55
+ ### Model Description
56
+ - **Model Type:** PyLate model with innovative Late Interaction architecture
57
+ - **Document Length:** 8192 tokens (32× longer than traditional BERT models)
58
+ - **Query Length:** 256 tokens (optimized for complex, multi-part queries)
59
+ - **Output Dimensionality:** 128 tokens (efficient vector representation)
60
+ - **Similarity Function:** MaxSim (enables precise token-level matching)
61
+ - **Training Loss:** Knowledge Distillation (PyLate)
62
+
63
+ ### Architecture
64
+
65
+ ```
66
+ ColBERT(
67
+ (0): Transformer(ModernBertModel)
68
+ (1): Dense(768 -> 128 dim, no bias)
69
+ )
70
+ ```
71
+
72
+ ## 🔬 Technical Innovations in Detail
73
+
74
+ ### Knowledge Distillation: The Student Surpassing the Master
75
+
76
+
77
+ 1. **Synthetic Data Generation**: 200,000 high-quality query-document pairs generated using the `Qwen/Qwen3-32B-AWQ` model (32 billion parameters) based on the [ReasonIR approach](https://huggingface.co/datasets/reasonir/reasonir-data)
78
+ 2. **Quality Assurance**: Each pair evaluated and filtered by a state-of-the-art reranker
79
+ 3. **Distillation Process**: The compact ModernColBERT model learns to replicate the ranking patterns of large models
80
+
81
+
82
+ ### LaserRMT: Revolution in Model Compression
83
+
84
+ As the **first ColBERT-based retrieval model with Low-Rank approximation**, SauerkrautLM sets new standards:
85
+
86
+
87
+ This technology combines the advantages of Late Interaction Retrieval (precise token-level matching) with the efficiency of compact models.
88
+
89
+ ---
90
+
91
+ ## 🔬 Benchmarks: David vs. Goliath Performance
92
+
93
+ Our comprehensive evaluation demonstrates that model size is not destiny. Despite being **47-54× smaller** than competing models, SauerkrautLM consistently delivers superior or comparable performance across challenging reasoning and multilingual retrieval tasks.
94
+
95
+ ### BRIGHT Benchmark (English, reasoning‑focused retrieval)
96
+
97
+ The [BRIGHT benchmark](https://huggingface.co/datasets/xlangai/BRIGHT) is designed to evaluate **reasoning‑intensive retrieval**. All scores are nDCG\@10. SauerkrautLM (≈149 M parameters) is compared with dense and proprietary baselines as well as the original and re‑evaluated Reason‑ModernColBERT model.
98
+
99
+ | Model / Metric | Biology | Earth | Economics | Psychology | Robotics | Stackoverflow | Sustainable | Leetcode | Pony | AoPS | Theorem‑Q | Theorem‑T | Mean StackEx | Mean coding | Mean theorem | Full Mean |
100
+ | ---------------------------------------- | --------- | --------- | --------- | ---------- | -------- | ------------- | ----------- | --------- | --------- | --------- | --------- | --------- | ------------ | ----------- | ------------ | --------- |
101
+ | **BM25** | 18.90 | 27.20 | 14.90 | 12.50 | 13.60 | 18.40 | 15.00 | 24.40 | 7.90 | 6.20 | 10.40 | 4.90 | 17.21 | 16.15 | 7.17 | 14.53 |
102
+ | **< 1 B OS** | | | | | | | | | | | | | | | | |
103
+ | BGE | 11.70 | 24.60 | 16.60 | 17.50 | 11.70 | 10.80 | 13.30 | 26.70 | 5.70 | 6.00 | 13.00 | 6.90 | 15.17 | 16.20 | 8.63 | 13.71 |
104
+ | Inst‑L | 15.20 | 21.20 | 14.70 | 22.30 | 11.40 | 13.30 | 13.50 | 19.50 | 1.30 | 8.10 | 20.90 | 9.10 | 15.94 | 10.40 | 12.70 | 14.21 |
105
+ | SBERT | 15.10 | 20.40 | 16.60 | 22.70 | 8.20 | 11.00 | 15.30 | 26.40 | 7.00 | 5.30 | 20.00 | 10.80 | 15.61 | 16.70 | 12.03 | 14.90 |
106
+ | **> 1 B OS** | | | | | | | | | | | | | | | | |
107
+ | E5 | 18.60 | 26.00 | 15.50 | 15.80 | 16.30 | 11.20 | 18.10 | 28.70 | 4.90 | 7.10 | 26.10 | 26.80 | 17.36 | 16.80 | 20.00 | 17.93 |
108
+ | SFR | 19.10 | 26.70 | 17.80 | 19.00 | 16.30 | 14.40 | 19.20 | 27.40 | 2.00 | 7.40 | 24.30 | 26.00 | 18.93 | 14.70 | 19.23 | 18.30 |
109
+ | Inst‑XL | 21.60 | 34.30 | 22.40 | 27.40 | 18.20 | 21.20 | 19.10 | 27.50 | 5.00 | 8.50 | 15.60 | 5.90 | 23.46 | 16.25 | 10.00 | 18.89 |
110
+ | GritLM | 24.80 | 32.30 | 18.90 | 19.80 | 17.10 | 13.60 | 17.80 | 29.90 | 22.00 | 8.80 | 25.20 | 21.20 | 20.61 | 25.95 | 18.40 | 20.95 |
111
+ | Qwen | 30.60 | 36.40 | 17.80 | 24.60 | 13.20 | 22.20 | 14.80 | 25.50 | 9.90 | 14.40 | 27.80 | 32.90 | 22.80 | 17.70 | 25.03 | **22.51** |
112
+ | **Proprietary** | | | | | | | | | | | | | | | | |
113
+ | Cohere | 18.70 | 28.40 | 20.40 | 21.60 | 16.30 | 18.30 | 17.60 | 26.80 | 1.90 | 6.30 | 15.70 | 7.20 | 20.19 | 14.35 | 9.73 | 16.60 |
114
+ | OpenAI | 23.30 | 26.70 | 19.50 | 27.60 | 12.80 | 14.30 | 20.50 | 23.60 | 2.40 | 8.50 | 23.50 | 11.70 | 20.67 | 13.00 | 14.57 | 17.87 |
115
+ | Voyage | 23.10 | 25.40 | 19.90 | 24.90 | 10.80 | 16.80 | 15.40 | 30.60 | 1.50 | 7.50 | 27.40 | 11.60 | 19.47 | 16.05 | 15.50 | 17.91 |
116
+ | Google | 22.70 | 34.80 | 19.60 | 27.80 | 15.70 | 20.10 | 17.10 | 29.60 | 3.60 | 9.30 | 23.80 | 15.90 | 22.54 | 16.60 | 16.33 | 20.00 |
117
+ | **ReasonIR data** | | | | | | | | | | | | | | | | |
118
+ | ReasonIR‑8B | 26.20 | 31.40 | 23.30 | 30.00 | 18.00 | 23.90 | 20.50 | 35.00 | 10.50 | 14.70 | 31.90 | 27.20 | 24.76 | 22.75 | 24.60 | **24.38** |
119
+ | Reason‑ModernColBERT (149 M) reported | 33.25 | 41.02 | 24.93 | 30.73 | 21.12 | 20.62 | 20.31 | 31.07 | 8.51 | 9.17 | 19.51 | 11.24 | 27.43 | 19.79 | 15.38 | **22.62** |
120
+ | Reason‑ModernColBERT (149 M) our eval\*\* | 34.28 | 41.53 | 19.96 | 27.02 | 21.15 | 23.62 | 17.21 | 26.61 | 1.32 | 7.30 | 19.79 | 9.70 | 27.93 | 13.97 | 12.26 | 20.79 |
121
+ | **SauerkrautLM Reasoning data** | | | | | | | | | | | | | | | | |
122
+ | **SauerkrautLM-Multi-Reason-ModernColBERT (149 M)** | **36.92** | **45.53** | 19.47 | **27.04** | 19.35 | **25.31** | **20.78** | **29.74** | **12.54** | **10.52** | 14.62 | 7.65 | **28.94** | **21.14** | 10.93 | **22.45** |
123
+ | SauerkrautLM‑Reason‑EuroColBERT (210 M) | 38.16 | 39.43 | 16.99 | 24.49 | 17.50 | 17.60 | 20.72 | 29.10 | 13.57 | 12.04 | 10.43 | 4.95 | 25.70 | 21.33 | 9.14 | 20.42 |
124
+ | SauerkrautLM‑Reason‑Multi‑ColBERT (15 M) | 23.33 | 23.78 | 10.53 | 9.03 | 10.28 | 10.88 | 13.13 | 18.10 | 15.86 | 1.75 | 4.29 | 0.81 | 14.64 | 16.98 | 2.28 | 11.81 |
125
+
126
+ **Evaluation note:** our re‑evaluation of Reason‑ModernColBERT uses the **same query‑length settings** from the original Lighton repo; the instructions for the originally reported scores are not public.
127
+
128
+
129
+ #### ⚖️ Relative Efficiency
130
+
131
+ With **149 M parameters**, SauerkrautLM surpasses several ≥7 B dense and proprietary retrievers on reasoning‑centric tasks.
132
+
133
+ ### BRIGHT Benchmark (German, reasoning‑focused retrieval)
134
+
135
+ All scores are nDCG\@10.
136
+
137
+ | Model / Metric | Biology | Earth | Economics | Psychology | Robotics | Stackoverflow | Sustainable | Leetcode | Pony | AoPS | Theorem‑Q | Theorem‑T | Mean StackEx | Mean coding | Mean theorem | Full Mean |
138
+ | --------------------------------------------------- | --------- | --------- | --------- | ---------- | --------- | ------------- | ----------- | --------- | --------- | -------- | --------- | --------- | ------------ | ----------- | ------------ | --------- |
139
+ | **SauerkrautLM‑Multi‑Reason‑ModernColBERT (149 M)** | 28.00 | **34.71** | **12.90** | 17.98 | **13.67** | **19.64** | 17.70 | 11.66 | **15.49** | 7.27 | 6.76 | 1.32 | **21.15** | 13.57 | 5.11 | **15.59** |
140
+ | SauerkrautLM‑Reason‑EuroColBERT (210 M) | **31.09** | 31.48 | 11.95 | **18.39** | 11.25 | 14.43 | **20.26** | **25.67** | 12.15 | **9.58** | **8.15** | **2.76** | 19.76 | **18.91** | **6.83** | **16.43** |
141
+ | SauerkrautLM‑Reason‑Multi‑ColBERT (15 M) | 15.37 | 20.11 | 7.36 | 7.07 | 4.24 | 4.71 | 7.67 | 0.77 | 6.31 | 3.81 | 0.76 | 0.00 | 9.81 | 3.54 | 1.52 | 6.51 |
142
+
143
+ > **Observation:** Our 149 M flagship dominates most German domains (Biology, Earth, Sustainable, Mean StackExchange) while the 210 M EuroColBERT secures the **highest Full‑Mean (16.43)**, especially on coding and theorem sub‑tasks.
144
+
145
+ ---
146
+
147
+ ### NanoBEIR Europe (multilingual retrieval)
148
+
149
+ Average nDCG\@10 across the seven languages we evaluated:
150
+
151
+ | Language | nDCG\@10 |
152
+ | -------- | -------- |
153
+ | de | 50.74 |
154
+ | en | 67.32 |
155
+ | es | 53.82 |
156
+ | fr | 53.94 |
157
+ | it | 53.19 |
158
+ | nl | 51.49 |
159
+ | pt | 53.07 |
160
+
161
+
162
+ ---
163
+
164
+ ### Why SauerkrautLM Matters for Production
165
+
166
+ - **Outperforms proprietary APIs**: beats Cohere, OpenAI, Voyage and Google on BRIGHT Full Mean while remaining fully open‑source under a permissive **Apache 2.0** license.
167
+ - **Highest *****Mean StackExchange***** score** of all evaluated models (28.94) — crucial for reasoning‑heavy Q&A communities.
168
+ - **Full parameter range**: from the tiny **15 M** Multi‑ColBERT (competitive with SBERT‑scale encoders) to the robust 210 M EuroColBERT variant.
169
+ - **Matches or exceeds** models 10–50× larger (e.g. ReasonIR‑8B, GritLM, Qwen).
170
+ - **Strong multilingual coverage** across seven European languages without language‑specific fine‑tuning.
171
+
172
+ We translated both **BRIGHT** and **NanoBEIR** into seven European languages to rigorously evaluate multilingual retrieval capabilities.
173
+
174
+ Below is a **scatter plot** that visualises model size (millions of parameters) against BRIGHT Full‑Mean nDCG\@10. SauerkrautLM models occupy the best trade‑off region—smallest models with top‑tier reasoning performance.
175
+ <img src="https://vago-solutions.ai/wp-content/uploads/2025/08/Image-graph-2.jpeg">
176
+
177
+
178
+ ### Real-World Impact
179
+
180
+ The efficiency gains translate to tangible benefits:
181
+
182
+ 1. **Democratized AI**: Run state-of-the-art retrieval on consumer hardware
183
+ 2. **Edge Deployment**: Enable on-device search for privacy-sensitive applications
184
+ 3. **Massive Scale**: Index billions of documents at a fraction of traditional costs
185
+
186
+ ## 📈 Summary: The New Efficiency Paradigm
187
+
188
+ SauerkrautLM-Multi-Reason-ModernColBERT represents a paradigm shift in retrieval model design. By combining cutting-edge knowledge distillation with innovative LaserRMT compression, we've created a model that:
189
+
190
+ - **Delivers 99.7% of the performance** of 7B parameter models while being **47× smaller**
191
+ - **Outperforms all major proprietary APIs** (OpenAI, Cohere, Google, Voyage) on reasoning tasks
192
+ - **Runs on consumer hardware** (4GB GPU) instead of requiring enterprise infrastructure (80GB+)
193
+ - **Reduces deployment costs by 50×**
194
+ - **Achieves the highest StackExchange score** (28.94) of any evaluated model
195
+
196
+ This breakthrough demonstrates that with the right techniques, compact models can match or exceed the capabilities of models orders of magnitude larger, democratizing access to state-of-the-art retrieval technology.
197
+
198
+ ---
199
+
200
+ # PyLate
201
+
202
+ This is a [PyLate](https://github.com/lightonai/pylate) model trained. It maps sentences & paragraphs to sequences of 128-dimensional dense vectors and can be used for semantic textual similarity using the MaxSim operator.
203
+
204
+
205
+ ## Usage
206
+ First install the PyLate library:
207
+
208
+ ```bash
209
+ pip install -U pylate
210
+ ```
211
+
212
+ ### Retrieval
213
+
214
+ PyLate provides a streamlined interface to index and retrieve documents using ColBERT models. The index leverages the Voyager HNSW index to efficiently handle document embeddings and enable fast retrieval.
215
+
216
+ #### Indexing documents
217
+
218
+ First, load the ColBERT model and initialize the Voyager index, then encode and index your documents:
219
+
220
+ ```python
221
+ from pylate import indexes, models, retrieve
222
+
223
+ # Step 1: Load the ColBERT model
224
+ model = models.ColBERT(
225
+ model_name_or_path=pylate_model_id,
226
+ )
227
+
228
+ # Step 2: Initialize the Voyager index
229
+ index = indexes.Voyager(
230
+ index_folder="pylate-index",
231
+ index_name="index",
232
+ override=True, # This overwrites the existing index if any
233
+ )
234
+
235
+ # Step 3: Encode the documents
236
+ documents_ids = ["1", "2", "3"]
237
+ documents = ["document 1 text", "document 2 text", "document 3 text"]
238
+
239
+ documents_embeddings = model.encode(
240
+ documents,
241
+ batch_size=32,
242
+ is_query=False, # Ensure that it is set to False to indicate that these are documents, not queries
243
+ show_progress_bar=True,
244
+ )
245
+
246
+ # Step 4: Add document embeddings to the index by providing embeddings and corresponding ids
247
+ index.add_documents(
248
+ documents_ids=documents_ids,
249
+ documents_embeddings=documents_embeddings,
250
+ )
251
+ ```
252
+
253
+ Note that you do not have to recreate the index and encode the documents every time. Once you have created an index and added the documents, you can re-use the index later by loading it:
254
+
255
+ ```python
256
+ # To load an index, simply instantiate it with the correct folder/name and without overriding it
257
+ index = indexes.Voyager(
258
+ index_folder="pylate-index",
259
+ index_name="index",
260
+ )
261
+ ```
262
+
263
+ #### Retrieving top-k documents for queries
264
+
265
+ Once the documents are indexed, you can retrieve the top-k most relevant documents for a given set of queries.
266
+ To do so, initialize the ColBERT retriever with the index you want to search in, encode the queries and then retrieve the top-k documents to get the top matches ids and relevance scores:
267
+
268
+ ```python
269
+ # Step 1: Initialize the ColBERT retriever
270
+ retriever = retrieve.ColBERT(index=index)
271
+
272
+ # Step 2: Encode the queries
273
+ queries_embeddings = model.encode(
274
+ ["query for document 3", "query for document 1"],
275
+ batch_size=32,
276
+ is_query=True, # # Ensure that it is set to False to indicate that these are queries
277
+ show_progress_bar=True,
278
+ )
279
+
280
+ # Step 3: Retrieve top-k documents
281
+ scores = retriever.retrieve(
282
+ queries_embeddings=queries_embeddings,
283
+ k=10, # Retrieve the top 10 matches for each query
284
+ )
285
+ ```
286
+
287
+ ### Reranking
288
+ If you only want to use the ColBERT model to perform reranking on top of your first-stage retrieval pipeline without building an index, you can simply use rank function and pass the queries and documents to rerank:
289
+
290
+ ```python
291
+ from pylate import rank, models
292
+
293
+ queries = [
294
+ "query A",
295
+ "query B",
296
+ ]
297
+
298
+ documents = [
299
+ ["document A", "document B"],
300
+ ["document 1", "document C", "document B"],
301
+ ]
302
+
303
+ documents_ids = [
304
+ [1, 2],
305
+ [1, 3, 2],
306
+ ]
307
+
308
+ model = models.ColBERT(
309
+ model_name_or_path=pylate_model_id,
310
+ )
311
+
312
+ queries_embeddings = model.encode(
313
+ queries,
314
+ is_query=True,
315
+ )
316
+
317
+ documents_embeddings = model.encode(
318
+ documents,
319
+ is_query=False,
320
+ )
321
+
322
+ reranked_documents = rank.rerank(
323
+ documents_ids=documents_ids,
324
+ queries_embeddings=queries_embeddings,
325
+ documents_embeddings=documents_embeddings,
326
+ )
327
+ ```
328
+ ## Citation
329
+
330
+ ### BibTeX
331
+
332
+ #### SauerkrautLM‑Multi‑Reason‑ModernColBERT
333
+
334
+ ```bibtex
335
+ @misc{SauerkrautLM-Multi-Reason-ModernColBERT,
336
+ title={SauerkrautLM-Multi-Reason-ModernColBERT},
337
+ author={David Golchinfar},
338
+ url={https://huggingface.co/VAGOsolutions/SauerkrautLM-Multi-Reason-ModernColBERT},
339
+ year={2025}
340
+ }
341
+ ```
342
+
343
+ #### GTE‑ModernColBERT
344
+
345
+ ```bibtex
346
+ @misc{GTE-ModernColBERT,
347
+ title={GTE-ModernColBERT},
348
+ author={Chaffin, Antoine},
349
+ url={https://huggingface.co/lightonai/GTE-ModernColBERT-v1},
350
+ year={2025}
351
+ }
352
+ ```
353
+
354
+ #### Sentence Transformers
355
+
356
+ ```bibtex
357
+ @inproceedings{reimers-2019-sentence-bert,
358
+ title = {Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks},
359
+ author = {Reimers, Nils and Gurevych, Iryna},
360
+ booktitle = {Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing},
361
+ month = {11},
362
+ year = {2019},
363
+ publisher = {Association for Computational Linguistics},
364
+ url = {https://arxiv.org/abs/1908.10084}
365
+ }
366
+ ```
367
+
368
+ #### PyLate
369
+
370
+ ```bibtex
371
+ @misc{PyLate,
372
+ title={PyLate: Flexible Training and Retrieval for Late Interaction Models},
373
+ author={Chaffin, Antoine and Sourty, Raphaël},
374
+ url={https://github.com/lightonai/pylate},
375
+ year={2024}
376
+ }
377
+ ```
378
+
379
+
380
+ ## Acknowledgements
381
+ We thank Antoine Chaffin (LightOn AI) for helpful discussions and for clarifying evaluation settings for Reason‑ModernColBERT, and the PyLate team for providing the training framework that made this work possible.
382
+
383
+ <!--
384
+ ## Glossary
385
+
386
+ *Clearly define terms in order to be accessible across audiences.*
387
+ -->
388
+
389
+ <!--
390
+ ## Model Card Authors
391
+
392
+ *Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
393
+ -->
394
+
395
+ <!--
396
+ ## Model Card Contact
397
+
398
+ *Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
399
+ -->
config.json ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "ModernBertModel"
4
+ ],
5
+ "attention_bias": false,
6
+ "attention_dropout": 0.0,
7
+ "bos_token_id": 50281,
8
+ "classifier_activation": "gelu",
9
+ "classifier_bias": false,
10
+ "classifier_dropout": 0.0,
11
+ "classifier_pooling": "mean",
12
+ "cls_token_id": 50281,
13
+ "decoder_bias": true,
14
+ "deterministic_flash_attn": false,
15
+ "embedding_dropout": 0.0,
16
+ "eos_token_id": 50282,
17
+ "global_attn_every_n_layers": 3,
18
+ "global_rope_theta": 160000.0,
19
+ "gradient_checkpointing": false,
20
+ "hidden_activation": "gelu",
21
+ "hidden_size": 768,
22
+ "initializer_cutoff_factor": 2.0,
23
+ "initializer_range": 0.02,
24
+ "intermediate_size": 1152,
25
+ "layer_norm_eps": 1e-05,
26
+ "local_attention": 128,
27
+ "local_rope_theta": 10000.0,
28
+ "max_position_embeddings": 8192,
29
+ "mlp_bias": false,
30
+ "mlp_dropout": 0.0,
31
+ "model_type": "modernbert",
32
+ "norm_bias": false,
33
+ "norm_eps": 1e-05,
34
+ "num_attention_heads": 12,
35
+ "num_hidden_layers": 22,
36
+ "pad_token_id": 50283,
37
+ "position_embedding_type": "absolute",
38
+ "repad_logits_with_grad": false,
39
+ "sep_token_id": 50282,
40
+ "sparse_pred_ignore_index": -100,
41
+ "sparse_prediction": false,
42
+ "torch_dtype": "float32",
43
+ "transformers_version": "4.51.0",
44
+ "vocab_size": 50370
45
+ }
config_sentence_transformers.json ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "__version__": {
3
+ "sentence_transformers": "4.0.2",
4
+ "transformers": "4.51.0",
5
+ "pytorch": "2.7.0+cu126"
6
+ },
7
+ "prompts": {},
8
+ "default_prompt_name": null,
9
+ "similarity_fn_name": "MaxSim",
10
+ "query_prefix": "[Q] ",
11
+ "document_prefix": "[D] ",
12
+ "query_length": 256,
13
+ "document_length": 2048,
14
+ "attend_to_expansion_tokens": false,
15
+ "skiplist_words": [
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
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:865debed2b4fc95f09368363aa9aafecc8153fc03485d0091e5435477bd8144a
3
+ size 596076280
modules.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "idx": 0,
4
+ "name": "0",
5
+ "path": "",
6
+ "type": "sentence_transformers.models.Transformer"
7
+ },
8
+ {
9
+ "idx": 1,
10
+ "name": "1",
11
+ "path": "1_Dense",
12
+ "type": "pylate.models.Dense.Dense"
13
+ }
14
+ ]
sentence_bert_config.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "max_seq_length": 255,
3
+ "do_lower_case": false
4
+ }
special_tokens_map.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cls_token": {
3
+ "content": "[CLS]",
4
+ "lstrip": false,
5
+ "normalized": false,
6
+ "rstrip": false,
7
+ "single_word": false
8
+ },
9
+ "mask_token": {
10
+ "content": "[MASK]",
11
+ "lstrip": true,
12
+ "normalized": false,
13
+ "rstrip": false,
14
+ "single_word": false
15
+ },
16
+ "pad_token": "[MASK]",
17
+ "sep_token": {
18
+ "content": "[SEP]",
19
+ "lstrip": false,
20
+ "normalized": false,
21
+ "rstrip": false,
22
+ "single_word": false
23
+ },
24
+ "unk_token": {
25
+ "content": "[UNK]",
26
+ "lstrip": false,
27
+ "normalized": false,
28
+ "rstrip": false,
29
+ "single_word": false
30
+ }
31
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,968 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "added_tokens_decoder": {
3
+ "0": {
4
+ "content": "|||IP_ADDRESS|||",
5
+ "lstrip": false,
6
+ "normalized": true,
7
+ "rstrip": false,
8
+ "single_word": false,
9
+ "special": false
10
+ },
11
+ "1": {
12
+ "content": "<|padding|>",
13
+ "lstrip": false,
14
+ "normalized": false,
15
+ "rstrip": false,
16
+ "single_word": false,
17
+ "special": true
18
+ },
19
+ "50254": {
20
+ "content": " ",
21
+ "lstrip": false,
22
+ "normalized": true,
23
+ "rstrip": false,
24
+ "single_word": false,
25
+ "special": false
26
+ },
27
+ "50255": {
28
+ "content": " ",
29
+ "lstrip": false,
30
+ "normalized": true,
31
+ "rstrip": false,
32
+ "single_word": false,
33
+ "special": false
34
+ },
35
+ "50256": {
36
+ "content": " ",
37
+ "lstrip": false,
38
+ "normalized": true,
39
+ "rstrip": false,
40
+ "single_word": false,
41
+ "special": false
42
+ },
43
+ "50257": {
44
+ "content": " ",
45
+ "lstrip": false,
46
+ "normalized": true,
47
+ "rstrip": false,
48
+ "single_word": false,
49
+ "special": false
50
+ },
51
+ "50258": {
52
+ "content": " ",
53
+ "lstrip": false,
54
+ "normalized": true,
55
+ "rstrip": false,
56
+ "single_word": false,
57
+ "special": false
58
+ },
59
+ "50259": {
60
+ "content": " ",
61
+ "lstrip": false,
62
+ "normalized": true,
63
+ "rstrip": false,
64
+ "single_word": false,
65
+ "special": false
66
+ },
67
+ "50260": {
68
+ "content": " ",
69
+ "lstrip": false,
70
+ "normalized": true,
71
+ "rstrip": false,
72
+ "single_word": false,
73
+ "special": false
74
+ },
75
+ "50261": {
76
+ "content": " ",
77
+ "lstrip": false,
78
+ "normalized": true,
79
+ "rstrip": false,
80
+ "single_word": false,
81
+ "special": false
82
+ },
83
+ "50262": {
84
+ "content": " ",
85
+ "lstrip": false,
86
+ "normalized": true,
87
+ "rstrip": false,
88
+ "single_word": false,
89
+ "special": false
90
+ },
91
+ "50263": {
92
+ "content": " ",
93
+ "lstrip": false,
94
+ "normalized": true,
95
+ "rstrip": false,
96
+ "single_word": false,
97
+ "special": false
98
+ },
99
+ "50264": {
100
+ "content": " ",
101
+ "lstrip": false,
102
+ "normalized": true,
103
+ "rstrip": false,
104
+ "single_word": false,
105
+ "special": false
106
+ },
107
+ "50265": {
108
+ "content": " ",
109
+ "lstrip": false,
110
+ "normalized": true,
111
+ "rstrip": false,
112
+ "single_word": false,
113
+ "special": false
114
+ },
115
+ "50266": {
116
+ "content": " ",
117
+ "lstrip": false,
118
+ "normalized": true,
119
+ "rstrip": false,
120
+ "single_word": false,
121
+ "special": false
122
+ },
123
+ "50267": {
124
+ "content": " ",
125
+ "lstrip": false,
126
+ "normalized": true,
127
+ "rstrip": false,
128
+ "single_word": false,
129
+ "special": false
130
+ },
131
+ "50268": {
132
+ "content": " ",
133
+ "lstrip": false,
134
+ "normalized": true,
135
+ "rstrip": false,
136
+ "single_word": false,
137
+ "special": false
138
+ },
139
+ "50269": {
140
+ "content": " ",
141
+ "lstrip": false,
142
+ "normalized": true,
143
+ "rstrip": false,
144
+ "single_word": false,
145
+ "special": false
146
+ },
147
+ "50270": {
148
+ "content": " ",
149
+ "lstrip": false,
150
+ "normalized": true,
151
+ "rstrip": false,
152
+ "single_word": false,
153
+ "special": false
154
+ },
155
+ "50271": {
156
+ "content": " ",
157
+ "lstrip": false,
158
+ "normalized": true,
159
+ "rstrip": false,
160
+ "single_word": false,
161
+ "special": false
162
+ },
163
+ "50272": {
164
+ "content": " ",
165
+ "lstrip": false,
166
+ "normalized": true,
167
+ "rstrip": false,
168
+ "single_word": false,
169
+ "special": false
170
+ },
171
+ "50273": {
172
+ "content": " ",
173
+ "lstrip": false,
174
+ "normalized": true,
175
+ "rstrip": false,
176
+ "single_word": false,
177
+ "special": false
178
+ },
179
+ "50274": {
180
+ "content": " ",
181
+ "lstrip": false,
182
+ "normalized": true,
183
+ "rstrip": false,
184
+ "single_word": false,
185
+ "special": false
186
+ },
187
+ "50275": {
188
+ "content": " ",
189
+ "lstrip": false,
190
+ "normalized": true,
191
+ "rstrip": false,
192
+ "single_word": false,
193
+ "special": false
194
+ },
195
+ "50276": {
196
+ "content": " ",
197
+ "lstrip": false,
198
+ "normalized": true,
199
+ "rstrip": false,
200
+ "single_word": false,
201
+ "special": false
202
+ },
203
+ "50277": {
204
+ "content": "|||EMAIL_ADDRESS|||",
205
+ "lstrip": false,
206
+ "normalized": true,
207
+ "rstrip": false,
208
+ "single_word": false,
209
+ "special": false
210
+ },
211
+ "50278": {
212
+ "content": "|||PHONE_NUMBER|||",
213
+ "lstrip": false,
214
+ "normalized": true,
215
+ "rstrip": false,
216
+ "single_word": false,
217
+ "special": false
218
+ },
219
+ "50279": {
220
+ "content": "<|endoftext|>",
221
+ "lstrip": false,
222
+ "normalized": false,
223
+ "rstrip": false,
224
+ "single_word": false,
225
+ "special": true
226
+ },
227
+ "50280": {
228
+ "content": "[UNK]",
229
+ "lstrip": false,
230
+ "normalized": false,
231
+ "rstrip": false,
232
+ "single_word": false,
233
+ "special": true
234
+ },
235
+ "50281": {
236
+ "content": "[CLS]",
237
+ "lstrip": false,
238
+ "normalized": false,
239
+ "rstrip": false,
240
+ "single_word": false,
241
+ "special": true
242
+ },
243
+ "50282": {
244
+ "content": "[SEP]",
245
+ "lstrip": false,
246
+ "normalized": false,
247
+ "rstrip": false,
248
+ "single_word": false,
249
+ "special": true
250
+ },
251
+ "50283": {
252
+ "content": "[PAD]",
253
+ "lstrip": false,
254
+ "normalized": false,
255
+ "rstrip": false,
256
+ "single_word": false,
257
+ "special": true
258
+ },
259
+ "50284": {
260
+ "content": "[MASK]",
261
+ "lstrip": true,
262
+ "normalized": false,
263
+ "rstrip": false,
264
+ "single_word": false,
265
+ "special": true
266
+ },
267
+ "50285": {
268
+ "content": "[unused0]",
269
+ "lstrip": false,
270
+ "normalized": true,
271
+ "rstrip": false,
272
+ "single_word": false,
273
+ "special": false
274
+ },
275
+ "50286": {
276
+ "content": "[unused1]",
277
+ "lstrip": false,
278
+ "normalized": true,
279
+ "rstrip": false,
280
+ "single_word": false,
281
+ "special": false
282
+ },
283
+ "50287": {
284
+ "content": "[unused2]",
285
+ "lstrip": false,
286
+ "normalized": true,
287
+ "rstrip": false,
288
+ "single_word": false,
289
+ "special": false
290
+ },
291
+ "50288": {
292
+ "content": "[unused3]",
293
+ "lstrip": false,
294
+ "normalized": true,
295
+ "rstrip": false,
296
+ "single_word": false,
297
+ "special": false
298
+ },
299
+ "50289": {
300
+ "content": "[unused4]",
301
+ "lstrip": false,
302
+ "normalized": true,
303
+ "rstrip": false,
304
+ "single_word": false,
305
+ "special": false
306
+ },
307
+ "50290": {
308
+ "content": "[unused5]",
309
+ "lstrip": false,
310
+ "normalized": true,
311
+ "rstrip": false,
312
+ "single_word": false,
313
+ "special": false
314
+ },
315
+ "50291": {
316
+ "content": "[unused6]",
317
+ "lstrip": false,
318
+ "normalized": true,
319
+ "rstrip": false,
320
+ "single_word": false,
321
+ "special": false
322
+ },
323
+ "50292": {
324
+ "content": "[unused7]",
325
+ "lstrip": false,
326
+ "normalized": true,
327
+ "rstrip": false,
328
+ "single_word": false,
329
+ "special": false
330
+ },
331
+ "50293": {
332
+ "content": "[unused8]",
333
+ "lstrip": false,
334
+ "normalized": true,
335
+ "rstrip": false,
336
+ "single_word": false,
337
+ "special": false
338
+ },
339
+ "50294": {
340
+ "content": "[unused9]",
341
+ "lstrip": false,
342
+ "normalized": true,
343
+ "rstrip": false,
344
+ "single_word": false,
345
+ "special": false
346
+ },
347
+ "50295": {
348
+ "content": "[unused10]",
349
+ "lstrip": false,
350
+ "normalized": true,
351
+ "rstrip": false,
352
+ "single_word": false,
353
+ "special": false
354
+ },
355
+ "50296": {
356
+ "content": "[unused11]",
357
+ "lstrip": false,
358
+ "normalized": true,
359
+ "rstrip": false,
360
+ "single_word": false,
361
+ "special": false
362
+ },
363
+ "50297": {
364
+ "content": "[unused12]",
365
+ "lstrip": false,
366
+ "normalized": true,
367
+ "rstrip": false,
368
+ "single_word": false,
369
+ "special": false
370
+ },
371
+ "50298": {
372
+ "content": "[unused13]",
373
+ "lstrip": false,
374
+ "normalized": true,
375
+ "rstrip": false,
376
+ "single_word": false,
377
+ "special": false
378
+ },
379
+ "50299": {
380
+ "content": "[unused14]",
381
+ "lstrip": false,
382
+ "normalized": true,
383
+ "rstrip": false,
384
+ "single_word": false,
385
+ "special": false
386
+ },
387
+ "50300": {
388
+ "content": "[unused15]",
389
+ "lstrip": false,
390
+ "normalized": true,
391
+ "rstrip": false,
392
+ "single_word": false,
393
+ "special": false
394
+ },
395
+ "50301": {
396
+ "content": "[unused16]",
397
+ "lstrip": false,
398
+ "normalized": true,
399
+ "rstrip": false,
400
+ "single_word": false,
401
+ "special": false
402
+ },
403
+ "50302": {
404
+ "content": "[unused17]",
405
+ "lstrip": false,
406
+ "normalized": true,
407
+ "rstrip": false,
408
+ "single_word": false,
409
+ "special": false
410
+ },
411
+ "50303": {
412
+ "content": "[unused18]",
413
+ "lstrip": false,
414
+ "normalized": true,
415
+ "rstrip": false,
416
+ "single_word": false,
417
+ "special": false
418
+ },
419
+ "50304": {
420
+ "content": "[unused19]",
421
+ "lstrip": false,
422
+ "normalized": true,
423
+ "rstrip": false,
424
+ "single_word": false,
425
+ "special": false
426
+ },
427
+ "50305": {
428
+ "content": "[unused20]",
429
+ "lstrip": false,
430
+ "normalized": true,
431
+ "rstrip": false,
432
+ "single_word": false,
433
+ "special": false
434
+ },
435
+ "50306": {
436
+ "content": "[unused21]",
437
+ "lstrip": false,
438
+ "normalized": true,
439
+ "rstrip": false,
440
+ "single_word": false,
441
+ "special": false
442
+ },
443
+ "50307": {
444
+ "content": "[unused22]",
445
+ "lstrip": false,
446
+ "normalized": true,
447
+ "rstrip": false,
448
+ "single_word": false,
449
+ "special": false
450
+ },
451
+ "50308": {
452
+ "content": "[unused23]",
453
+ "lstrip": false,
454
+ "normalized": true,
455
+ "rstrip": false,
456
+ "single_word": false,
457
+ "special": false
458
+ },
459
+ "50309": {
460
+ "content": "[unused24]",
461
+ "lstrip": false,
462
+ "normalized": true,
463
+ "rstrip": false,
464
+ "single_word": false,
465
+ "special": false
466
+ },
467
+ "50310": {
468
+ "content": "[unused25]",
469
+ "lstrip": false,
470
+ "normalized": true,
471
+ "rstrip": false,
472
+ "single_word": false,
473
+ "special": false
474
+ },
475
+ "50311": {
476
+ "content": "[unused26]",
477
+ "lstrip": false,
478
+ "normalized": true,
479
+ "rstrip": false,
480
+ "single_word": false,
481
+ "special": false
482
+ },
483
+ "50312": {
484
+ "content": "[unused27]",
485
+ "lstrip": false,
486
+ "normalized": true,
487
+ "rstrip": false,
488
+ "single_word": false,
489
+ "special": false
490
+ },
491
+ "50313": {
492
+ "content": "[unused28]",
493
+ "lstrip": false,
494
+ "normalized": true,
495
+ "rstrip": false,
496
+ "single_word": false,
497
+ "special": false
498
+ },
499
+ "50314": {
500
+ "content": "[unused29]",
501
+ "lstrip": false,
502
+ "normalized": true,
503
+ "rstrip": false,
504
+ "single_word": false,
505
+ "special": false
506
+ },
507
+ "50315": {
508
+ "content": "[unused30]",
509
+ "lstrip": false,
510
+ "normalized": true,
511
+ "rstrip": false,
512
+ "single_word": false,
513
+ "special": false
514
+ },
515
+ "50316": {
516
+ "content": "[unused31]",
517
+ "lstrip": false,
518
+ "normalized": true,
519
+ "rstrip": false,
520
+ "single_word": false,
521
+ "special": false
522
+ },
523
+ "50317": {
524
+ "content": "[unused32]",
525
+ "lstrip": false,
526
+ "normalized": true,
527
+ "rstrip": false,
528
+ "single_word": false,
529
+ "special": false
530
+ },
531
+ "50318": {
532
+ "content": "[unused33]",
533
+ "lstrip": false,
534
+ "normalized": true,
535
+ "rstrip": false,
536
+ "single_word": false,
537
+ "special": false
538
+ },
539
+ "50319": {
540
+ "content": "[unused34]",
541
+ "lstrip": false,
542
+ "normalized": true,
543
+ "rstrip": false,
544
+ "single_word": false,
545
+ "special": false
546
+ },
547
+ "50320": {
548
+ "content": "[unused35]",
549
+ "lstrip": false,
550
+ "normalized": true,
551
+ "rstrip": false,
552
+ "single_word": false,
553
+ "special": false
554
+ },
555
+ "50321": {
556
+ "content": "[unused36]",
557
+ "lstrip": false,
558
+ "normalized": true,
559
+ "rstrip": false,
560
+ "single_word": false,
561
+ "special": false
562
+ },
563
+ "50322": {
564
+ "content": "[unused37]",
565
+ "lstrip": false,
566
+ "normalized": true,
567
+ "rstrip": false,
568
+ "single_word": false,
569
+ "special": false
570
+ },
571
+ "50323": {
572
+ "content": "[unused38]",
573
+ "lstrip": false,
574
+ "normalized": true,
575
+ "rstrip": false,
576
+ "single_word": false,
577
+ "special": false
578
+ },
579
+ "50324": {
580
+ "content": "[unused39]",
581
+ "lstrip": false,
582
+ "normalized": true,
583
+ "rstrip": false,
584
+ "single_word": false,
585
+ "special": false
586
+ },
587
+ "50325": {
588
+ "content": "[unused40]",
589
+ "lstrip": false,
590
+ "normalized": true,
591
+ "rstrip": false,
592
+ "single_word": false,
593
+ "special": false
594
+ },
595
+ "50326": {
596
+ "content": "[unused41]",
597
+ "lstrip": false,
598
+ "normalized": true,
599
+ "rstrip": false,
600
+ "single_word": false,
601
+ "special": false
602
+ },
603
+ "50327": {
604
+ "content": "[unused42]",
605
+ "lstrip": false,
606
+ "normalized": true,
607
+ "rstrip": false,
608
+ "single_word": false,
609
+ "special": false
610
+ },
611
+ "50328": {
612
+ "content": "[unused43]",
613
+ "lstrip": false,
614
+ "normalized": true,
615
+ "rstrip": false,
616
+ "single_word": false,
617
+ "special": false
618
+ },
619
+ "50329": {
620
+ "content": "[unused44]",
621
+ "lstrip": false,
622
+ "normalized": true,
623
+ "rstrip": false,
624
+ "single_word": false,
625
+ "special": false
626
+ },
627
+ "50330": {
628
+ "content": "[unused45]",
629
+ "lstrip": false,
630
+ "normalized": true,
631
+ "rstrip": false,
632
+ "single_word": false,
633
+ "special": false
634
+ },
635
+ "50331": {
636
+ "content": "[unused46]",
637
+ "lstrip": false,
638
+ "normalized": true,
639
+ "rstrip": false,
640
+ "single_word": false,
641
+ "special": false
642
+ },
643
+ "50332": {
644
+ "content": "[unused47]",
645
+ "lstrip": false,
646
+ "normalized": true,
647
+ "rstrip": false,
648
+ "single_word": false,
649
+ "special": false
650
+ },
651
+ "50333": {
652
+ "content": "[unused48]",
653
+ "lstrip": false,
654
+ "normalized": true,
655
+ "rstrip": false,
656
+ "single_word": false,
657
+ "special": false
658
+ },
659
+ "50334": {
660
+ "content": "[unused49]",
661
+ "lstrip": false,
662
+ "normalized": true,
663
+ "rstrip": false,
664
+ "single_word": false,
665
+ "special": false
666
+ },
667
+ "50335": {
668
+ "content": "[unused50]",
669
+ "lstrip": false,
670
+ "normalized": true,
671
+ "rstrip": false,
672
+ "single_word": false,
673
+ "special": false
674
+ },
675
+ "50336": {
676
+ "content": "[unused51]",
677
+ "lstrip": false,
678
+ "normalized": true,
679
+ "rstrip": false,
680
+ "single_word": false,
681
+ "special": false
682
+ },
683
+ "50337": {
684
+ "content": "[unused52]",
685
+ "lstrip": false,
686
+ "normalized": true,
687
+ "rstrip": false,
688
+ "single_word": false,
689
+ "special": false
690
+ },
691
+ "50338": {
692
+ "content": "[unused53]",
693
+ "lstrip": false,
694
+ "normalized": true,
695
+ "rstrip": false,
696
+ "single_word": false,
697
+ "special": false
698
+ },
699
+ "50339": {
700
+ "content": "[unused54]",
701
+ "lstrip": false,
702
+ "normalized": true,
703
+ "rstrip": false,
704
+ "single_word": false,
705
+ "special": false
706
+ },
707
+ "50340": {
708
+ "content": "[unused55]",
709
+ "lstrip": false,
710
+ "normalized": true,
711
+ "rstrip": false,
712
+ "single_word": false,
713
+ "special": false
714
+ },
715
+ "50341": {
716
+ "content": "[unused56]",
717
+ "lstrip": false,
718
+ "normalized": true,
719
+ "rstrip": false,
720
+ "single_word": false,
721
+ "special": false
722
+ },
723
+ "50342": {
724
+ "content": "[unused57]",
725
+ "lstrip": false,
726
+ "normalized": true,
727
+ "rstrip": false,
728
+ "single_word": false,
729
+ "special": false
730
+ },
731
+ "50343": {
732
+ "content": "[unused58]",
733
+ "lstrip": false,
734
+ "normalized": true,
735
+ "rstrip": false,
736
+ "single_word": false,
737
+ "special": false
738
+ },
739
+ "50344": {
740
+ "content": "[unused59]",
741
+ "lstrip": false,
742
+ "normalized": true,
743
+ "rstrip": false,
744
+ "single_word": false,
745
+ "special": false
746
+ },
747
+ "50345": {
748
+ "content": "[unused60]",
749
+ "lstrip": false,
750
+ "normalized": true,
751
+ "rstrip": false,
752
+ "single_word": false,
753
+ "special": false
754
+ },
755
+ "50346": {
756
+ "content": "[unused61]",
757
+ "lstrip": false,
758
+ "normalized": true,
759
+ "rstrip": false,
760
+ "single_word": false,
761
+ "special": false
762
+ },
763
+ "50347": {
764
+ "content": "[unused62]",
765
+ "lstrip": false,
766
+ "normalized": true,
767
+ "rstrip": false,
768
+ "single_word": false,
769
+ "special": false
770
+ },
771
+ "50348": {
772
+ "content": "[unused63]",
773
+ "lstrip": false,
774
+ "normalized": true,
775
+ "rstrip": false,
776
+ "single_word": false,
777
+ "special": false
778
+ },
779
+ "50349": {
780
+ "content": "[unused64]",
781
+ "lstrip": false,
782
+ "normalized": true,
783
+ "rstrip": false,
784
+ "single_word": false,
785
+ "special": false
786
+ },
787
+ "50350": {
788
+ "content": "[unused65]",
789
+ "lstrip": false,
790
+ "normalized": true,
791
+ "rstrip": false,
792
+ "single_word": false,
793
+ "special": false
794
+ },
795
+ "50351": {
796
+ "content": "[unused66]",
797
+ "lstrip": false,
798
+ "normalized": true,
799
+ "rstrip": false,
800
+ "single_word": false,
801
+ "special": false
802
+ },
803
+ "50352": {
804
+ "content": "[unused67]",
805
+ "lstrip": false,
806
+ "normalized": true,
807
+ "rstrip": false,
808
+ "single_word": false,
809
+ "special": false
810
+ },
811
+ "50353": {
812
+ "content": "[unused68]",
813
+ "lstrip": false,
814
+ "normalized": true,
815
+ "rstrip": false,
816
+ "single_word": false,
817
+ "special": false
818
+ },
819
+ "50354": {
820
+ "content": "[unused69]",
821
+ "lstrip": false,
822
+ "normalized": true,
823
+ "rstrip": false,
824
+ "single_word": false,
825
+ "special": false
826
+ },
827
+ "50355": {
828
+ "content": "[unused70]",
829
+ "lstrip": false,
830
+ "normalized": true,
831
+ "rstrip": false,
832
+ "single_word": false,
833
+ "special": false
834
+ },
835
+ "50356": {
836
+ "content": "[unused71]",
837
+ "lstrip": false,
838
+ "normalized": true,
839
+ "rstrip": false,
840
+ "single_word": false,
841
+ "special": false
842
+ },
843
+ "50357": {
844
+ "content": "[unused72]",
845
+ "lstrip": false,
846
+ "normalized": true,
847
+ "rstrip": false,
848
+ "single_word": false,
849
+ "special": false
850
+ },
851
+ "50358": {
852
+ "content": "[unused73]",
853
+ "lstrip": false,
854
+ "normalized": true,
855
+ "rstrip": false,
856
+ "single_word": false,
857
+ "special": false
858
+ },
859
+ "50359": {
860
+ "content": "[unused74]",
861
+ "lstrip": false,
862
+ "normalized": true,
863
+ "rstrip": false,
864
+ "single_word": false,
865
+ "special": false
866
+ },
867
+ "50360": {
868
+ "content": "[unused75]",
869
+ "lstrip": false,
870
+ "normalized": true,
871
+ "rstrip": false,
872
+ "single_word": false,
873
+ "special": false
874
+ },
875
+ "50361": {
876
+ "content": "[unused76]",
877
+ "lstrip": false,
878
+ "normalized": true,
879
+ "rstrip": false,
880
+ "single_word": false,
881
+ "special": false
882
+ },
883
+ "50362": {
884
+ "content": "[unused77]",
885
+ "lstrip": false,
886
+ "normalized": true,
887
+ "rstrip": false,
888
+ "single_word": false,
889
+ "special": false
890
+ },
891
+ "50363": {
892
+ "content": "[unused78]",
893
+ "lstrip": false,
894
+ "normalized": true,
895
+ "rstrip": false,
896
+ "single_word": false,
897
+ "special": false
898
+ },
899
+ "50364": {
900
+ "content": "[unused79]",
901
+ "lstrip": false,
902
+ "normalized": true,
903
+ "rstrip": false,
904
+ "single_word": false,
905
+ "special": false
906
+ },
907
+ "50365": {
908
+ "content": "[unused80]",
909
+ "lstrip": false,
910
+ "normalized": true,
911
+ "rstrip": false,
912
+ "single_word": false,
913
+ "special": false
914
+ },
915
+ "50366": {
916
+ "content": "[unused81]",
917
+ "lstrip": false,
918
+ "normalized": true,
919
+ "rstrip": false,
920
+ "single_word": false,
921
+ "special": false
922
+ },
923
+ "50367": {
924
+ "content": "[unused82]",
925
+ "lstrip": false,
926
+ "normalized": true,
927
+ "rstrip": false,
928
+ "single_word": false,
929
+ "special": false
930
+ },
931
+ "50368": {
932
+ "content": "[Q] ",
933
+ "lstrip": false,
934
+ "normalized": true,
935
+ "rstrip": false,
936
+ "single_word": false,
937
+ "special": false
938
+ },
939
+ "50369": {
940
+ "content": "[D] ",
941
+ "lstrip": false,
942
+ "normalized": true,
943
+ "rstrip": false,
944
+ "single_word": false,
945
+ "special": false
946
+ }
947
+ },
948
+ "clean_up_tokenization_spaces": true,
949
+ "cls_token": "[CLS]",
950
+ "extra_special_tokens": {},
951
+ "mask_token": "[MASK]",
952
+ "max_length": 299,
953
+ "model_input_names": [
954
+ "input_ids",
955
+ "attention_mask"
956
+ ],
957
+ "model_max_length": 255,
958
+ "pad_to_multiple_of": null,
959
+ "pad_token": "[MASK]",
960
+ "pad_token_type_id": 0,
961
+ "padding_side": "right",
962
+ "sep_token": "[SEP]",
963
+ "stride": 0,
964
+ "tokenizer_class": "PreTrainedTokenizer",
965
+ "truncation_side": "right",
966
+ "truncation_strategy": "longest_first",
967
+ "unk_token": "[UNK]"
968
+ }