Antoni Martyniuk commited on
Commit
783c60f
·
1 Parent(s): 997033b

fix: sentence-transformers support

Browse files
README.md ADDED
@@ -0,0 +1,164 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ tags:
3
+ - clip
4
+ - transformers
5
+ - e-commerce
6
+ - fashion
7
+ - multimodal retrieval
8
+ - siglip
9
+ - transformers.js
10
+ library_name: open_clip
11
+ pipeline_tag: zero-shot-image-classification
12
+ license: apache-2.0
13
+ language:
14
+ - en
15
+ metrics:
16
+ - precision
17
+ - recall
18
+ - MRR
19
+ ---
20
+ # Marqo-FashionSigLIP Model Card
21
+
22
+ [![GitHub](https://img.shields.io/badge/GitHub-black?logo=github)](https://github.com/marqo-ai/marqo-FashionCLIP)
23
+
24
+ Marqo-FashionSigLIP is a multimodal embedding model that provides up to [57% improvement in MRR and recall](https://www.marqo.ai/blog/search-model-for-fashion) over [fashion clip](https://huggingface.co/patrickjohncyh/fashion-clip).
25
+
26
+ Marqo-FashionSigLIP leverages Generalised Contrastive Learning ([GCL](https://www.marqo.ai/blog/generalized-contrastive-learning-for-multi-modal-retrieval-and-ranking)) which allows the model to be trained on not just text descriptions but also categories, style, colors, materials, keywords and fine-details to provide highly relevant search results on fashion products.
27
+ The model was fine-tuned from ViT-B-16-SigLIP (webli).
28
+
29
+ **Github Page**: [Marqo-FashionCLIP](https://github.com/marqo-ai/marqo-FashionCLIP)
30
+
31
+ **Blog**: [Marqo Blog](https://www.marqo.ai/blog/search-model-for-fashion)
32
+
33
+
34
+ ## Usage
35
+
36
+ ### Hugging Face
37
+
38
+ The model can be loaded with AutoModel by
39
+
40
+ ```python
41
+ from transformers import AutoModel, AutoProcessor
42
+ model = AutoModel.from_pretrained('Marqo/marqo-fashionSigLIP', trust_remote_code=True)
43
+ processor = AutoProcessor.from_pretrained('Marqo/marqo-fashionSigLIP', trust_remote_code=True)
44
+
45
+ import torch
46
+ from PIL import Image
47
+
48
+ image = [Image.open("docs/fashion-hippo.png")]
49
+ text = ["a hat", "a t-shirt", "shoes"]
50
+ processed = processor(text=text, images=image, padding='max_length', return_tensors="pt")
51
+
52
+ with torch.no_grad():
53
+ image_features = model.get_image_features(processed['pixel_values'], normalize=True)
54
+ text_features = model.get_text_features(processed['input_ids'], normalize=True)
55
+
56
+ text_probs = (100.0 * image_features @ text_features.T).softmax(dim=-1)
57
+
58
+ print("Label probs:", text_probs)
59
+ # [0.98379946, 0.01294010, 0.00326044]
60
+ ```
61
+
62
+ ### OpenCLIP
63
+
64
+ The model can be seamlessly used with [OpenCLIP](https://github.com/mlfoundations/open_clip) by
65
+
66
+ ```python
67
+ import open_clip
68
+ model, preprocess_train, preprocess_val = open_clip.create_model_and_transforms('hf-hub:Marqo/marqo-fashionSigLIP')
69
+ tokenizer = open_clip.get_tokenizer('hf-hub:Marqo/marqo-fashionSigLIP')
70
+
71
+ import torch
72
+ from PIL import Image
73
+
74
+ image = preprocess_val(Image.open("docs/fashion-hippo.png")).unsqueeze(0)
75
+ text = tokenizer(["a hat", "a t-shirt", "shoes"])
76
+
77
+ with torch.no_grad(), torch.cuda.amp.autocast():
78
+ image_features = model.encode_image(image, normalize=True)
79
+ text_features = model.encode_text(text, normalize=True)
80
+
81
+ text_probs = (100.0 * image_features @ text_features.T).softmax(dim=-1)
82
+
83
+ print("Label probs:", text_probs)
84
+ # [0.9860219105287394, 0.00777916527489097, 0.006198924196369721]
85
+ ```
86
+
87
+ ### Transformers.js
88
+
89
+ You can also run the model in JavaScript with the [Transformers.js](https://huggingface.co/docs/transformers.js) library.
90
+
91
+ First, install it from [NPM](https://www.npmjs.com/package/@huggingface/transformers) using:
92
+
93
+ ```bash
94
+ npm i @huggingface/transformers
95
+ ```
96
+
97
+ Then, compute embeddings as follows:
98
+ ```js
99
+ import { SiglipTextModel, SiglipVisionModel, AutoTokenizer, AutoProcessor, RawImage, softmax, dot } from '@huggingface/transformers';
100
+
101
+ const model_id = 'Marqo/marqo-fashionSigLIP';
102
+
103
+ // Load tokenizer and text model
104
+ const tokenizer = await AutoTokenizer.from_pretrained(model_id);
105
+ const text_model = await SiglipTextModel.from_pretrained(model_id);
106
+
107
+ // Load processor and vision model
108
+ const processor = await AutoProcessor.from_pretrained(model_id);
109
+ const vision_model = await SiglipVisionModel.from_pretrained(model_id);
110
+
111
+ // Run tokenization
112
+ const texts = ['a hat', 'a t-shirt', 'shoes'];
113
+ const text_inputs = tokenizer(texts, { padding: 'max_length', truncation: true });
114
+
115
+ // Compute text embeddings
116
+ const { text_embeds } = await text_model(text_inputs);
117
+
118
+ // Read image and run processor
119
+ const image = await RawImage.read('https://raw.githubusercontent.com/marqo-ai/marqo-FashionCLIP/main/docs/fashion-hippo.png');
120
+ const image_inputs = await processor(image);
121
+
122
+ // Compute vision embeddings
123
+ const { image_embeds } = await vision_model(image_inputs);
124
+
125
+ // Compute similarity scores
126
+ const normalized_text_embeds = text_embeds.normalize().tolist();
127
+ const normalized_image_embeds = image_embeds.normalize().tolist()[0];
128
+
129
+ const text_probs = softmax(normalized_text_embeds.map((text_embed) =>
130
+ 100.0 * dot(normalized_image_embeds, text_embed)
131
+ ));
132
+ console.log(text_probs);
133
+ // [0.9860219105287394, 0.00777916527489097, 0.006198924196369721]
134
+ ```
135
+
136
+ ## Benchmark Results
137
+ Average evaluation results on 6 public multimodal fashion datasets ([Atlas](https://huggingface.co/datasets/Marqo/atlas), [DeepFashion (In-shop)](https://huggingface.co/datasets/Marqo/deepfashion-inshop), [DeepFashion (Multimodal)](https://huggingface.co/datasets/Marqo/deepfashion-multimodal), [Fashion200k](https://huggingface.co/datasets/Marqo/fashion200k), [KAGL](https://huggingface.co/datasets/Marqo/KAGL), and [Polyvore](https://huggingface.co/datasets/Marqo/polyvore)) are reported below:
138
+
139
+ **Text-To-Image (Averaged across 6 datasets)**
140
+ | Model | AvgRecall | Recall@1 | Recall@10 | MRR |
141
+ |----------------------------|-------------|------------|-------------|-----------|
142
+ | Marqo-FashionSigLIP | **0.231** | **0.121** | **0.340** | **0.239** |
143
+ | FashionCLIP2.0 | 0.163 | 0.077 | 0.249 | 0.165 |
144
+ | OpenFashionCLIP | 0.132 | 0.060 | 0.204 | 0.135 |
145
+ | ViT-B-16-laion2b_s34b_b88k | 0.174 | 0.088 | 0.261 | 0.180 |
146
+ | ViT-B-16-SigLIP-webli | 0.212 | 0.111 | 0.314 | 0.214 |
147
+
148
+ **Category-To-Product (Averaged across 5 datasets)**
149
+ | Model | AvgP | P@1 | P@10 | MRR |
150
+ |----------------------------|-----------|-----------|-----------|-----------|
151
+ | Marqo-FashionSigLIP | **0.737** | **0.758** | **0.716** | **0.812** |
152
+ | FashionCLIP2.0 | 0.684 | 0.681 | 0.686 | 0.741 |
153
+ | OpenFashionCLIP | 0.646 | 0.653 | 0.639 | 0.720 |
154
+ | ViT-B-16-laion2b_s34b_b88k | 0.662 | 0.673 | 0.652 | 0.743 |
155
+ | ViT-B-16-SigLIP-webli | 0.688 | 0.690 | 0.685 | 0.751 |
156
+
157
+ **Sub-Category-To-Product (Averaged across 4 datasets)**
158
+ | Model | AvgP | P@1 | P@10 | MRR |
159
+ |----------------------------|-----------|-----------|-----------|-----------|
160
+ | Marqo-FashionSigLIP | **0.725** | **0.767** | **0.683** | **0.811** |
161
+ | FashionCLIP2.0 | 0.657 | 0.676 | 0.638 | 0.733 |
162
+ | OpenFashionCLIP | 0.598 | 0.619 | 0.578 | 0.689 |
163
+ | ViT-B-16-laion2b_s34b_b88k | 0.638 | 0.651 | 0.624 | 0.712 |
164
+ | ViT-B-16-SigLIP-webli | 0.643 | 0.643 | 0.643 | 0.726 |
config.json ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auto_map": {
3
+ "AutoConfig": "marqo_fashionSigLIP.MarqoFashionSigLIPConfig",
4
+ "AutoModel": "marqo_fashionSigLIP.MarqoFashionSigLIP",
5
+ "AutoProcessor": "marqo_fashionSigLIP.MarqoFashionSigLIPProcessor"
6
+ },
7
+ "open_clip_model_name": "hf-hub:Marqo/marqo-fashionSigLIP",
8
+ "model_type": "siglip",
9
+ "hidden_size": 768,
10
+ "projection_dim": 768,
11
+ "text_config": {
12
+ "attention_dropout": 0.0,
13
+ "bos_token_id": 49406,
14
+ "eos_token_id": 49407,
15
+ "hidden_act": "gelu_pytorch_tanh",
16
+ "hidden_size": 768,
17
+ "intermediate_size": 3072,
18
+ "layer_norm_eps": 1e-6,
19
+ "max_position_embeddings": 64,
20
+ "model_type": "siglip_text_model",
21
+ "num_attention_heads": 12,
22
+ "num_hidden_layers": 12,
23
+ "pad_token_id": 1,
24
+ "transformers_version": "4.47.1",
25
+ "vocab_size": 32000
26
+ },
27
+ "vision_config": {
28
+ "attention_dropout": 0.0,
29
+ "hidden_act": "gelu_pytorch_tanh",
30
+ "hidden_size": 768,
31
+ "image_size": 224,
32
+ "intermediate_size": 3072,
33
+ "layer_norm_eps": 1e-6,
34
+ "model_type": "siglip_vision_model",
35
+ "num_attention_heads": 12,
36
+ "num_channels": 3,
37
+ "num_hidden_layers": 12,
38
+ "patch_size": 16,
39
+ "transformers_version": "4.47.1"
40
+ },
41
+ "initializer_factor": 1.0,
42
+ "return_dict": true,
43
+ "output_hidden_states": false,
44
+ "output_attentions": false,
45
+ "torchscript": false,
46
+ "use_bfloat16": false,
47
+ "tie_word_embeddings": true
48
+ }
marqo_fashionSigLIP.py ADDED
@@ -0,0 +1,237 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from open_clip import create_model
3
+ from transformers import PretrainedConfig, PreTrainedModel
4
+ from transformers.models.siglip.modeling_siglip import SiglipOutput
5
+ from typing import Optional, Tuple, Union, List
6
+ from transformers.feature_extraction_utils import BatchFeature
7
+ from transformers.image_utils import ImageInput
8
+ from transformers.processing_utils import ProcessorMixin
9
+ from transformers.tokenization_utils_base import PaddingStrategy, PreTokenizedInput, TextInput, TruncationStrategy
10
+ from transformers.utils import TensorType
11
+ import string
12
+ import ftfy
13
+ import html
14
+
15
+ def basic_clean(text):
16
+ text = ftfy.fix_text(text)
17
+ text = html.unescape(html.unescape(text))
18
+ return text.strip()
19
+
20
+ def canonicalize_text(
21
+ text,
22
+ *,
23
+ keep_punctuation_exact_string=None,
24
+ trans_punctuation: dict = str.maketrans("", "", string.punctuation),
25
+ ):
26
+ """Returns canonicalized `text` (lowercase and punctuation removed).
27
+
28
+ From: https://github.com/google-research/big_vision/blob/53f18caf27a9419231bbf08d3388b07671616d3d/big_vision/evaluators/proj/image_text/prompt_engineering.py#L94
29
+
30
+ Args:
31
+ text: string to be canonicalized.
32
+ keep_punctuation_exact_string: If provided, then this exact string kept.
33
+ For example providing '{}' will keep any occurrences of '{}' (but will
34
+ still remove '{' and '}' that appear separately).
35
+ """
36
+ text = text.replace("_", " ")
37
+ if keep_punctuation_exact_string:
38
+ text = keep_punctuation_exact_string.join(
39
+ part.translate(trans_punctuation)
40
+ for part in text.split(keep_punctuation_exact_string)
41
+ )
42
+ else:
43
+ text = text.translate(trans_punctuation)
44
+ text = text.lower()
45
+ text = " ".join(text.split())
46
+ return text.strip()
47
+
48
+ def _clean_canonicalize(x):
49
+ # basic, remove whitespace, remove punctuation, lower case
50
+ return canonicalize_text(basic_clean(x))
51
+
52
+ class MarqoFashionSigLIPConfig(PretrainedConfig):
53
+ def __init__(
54
+ self,
55
+ open_clip_model_name: str = "",
56
+ **kwargs,
57
+ ):
58
+ super().__init__(**kwargs)
59
+ self.open_clip_model_name = open_clip_model_name
60
+
61
+ class MarqoFashionSigLIPProcessor(ProcessorMixin):
62
+ r"""
63
+ Constructs a Siglip processor which wraps a Siglip image processor and a Siglip tokenizer into a single processor.
64
+
65
+ [`SiglipProcessor`] offers all the functionalities of [`SiglipImageProcessor`] and [`SiglipTokenizer`]. See the
66
+ [`~SiglipProcessor.__call__`] and [`~SiglipProcessor.decode`] for more information.
67
+
68
+ Args:
69
+ image_processor ([`SiglipImageProcessor`]):
70
+ The image processor is a required input.
71
+ tokenizer ([`T5TokenizerFast`]):
72
+ The tokenizer is a required input.
73
+ """
74
+
75
+ attributes = ["image_processor", "tokenizer"]
76
+ image_processor_class = "SiglipImageProcessor"
77
+ tokenizer_class = "T5TokenizerFast"
78
+
79
+ def __init__(self, image_processor, tokenizer):
80
+ super().__init__(image_processor, tokenizer)
81
+
82
+ def __call__(
83
+ self,
84
+ text: Union[TextInput, PreTokenizedInput, List[TextInput], List[PreTokenizedInput]] = None,
85
+ images: ImageInput = None,
86
+ padding: Union[bool, str, PaddingStrategy] = False,
87
+ truncation: Union[bool, str, TruncationStrategy] = None,
88
+ max_length: int = None,
89
+ return_tensors: Optional[Union[str, TensorType]] = TensorType.PYTORCH,
90
+ ) -> BatchFeature:
91
+ """
92
+ Main method to prepare for the model one or several sequences(s) and image(s). This method forwards the `text`
93
+ and `kwargs` arguments to SiglipTokenizer's [`~SiglipTokenizer.__call__`] if `text` is not `None` to encode
94
+ the text. To prepare the image(s), this method forwards the `images` argument to
95
+ SiglipImageProcessor's [`~SiglipImageProcessor.__call__`] if `images` is not `None`. Please refer to the doctsring
96
+ of the above two methods for more information.
97
+
98
+ Args:
99
+ text (`str`, `List[str]`, `List[List[str]]`):
100
+ The sequence or batch of sequences to be encoded. Each sequence can be a string or a list of strings
101
+ (pretokenized string). If the sequences are provided as list of strings (pretokenized), you must set
102
+ `is_split_into_words=True` (to lift the ambiguity with a batch of sequences).
103
+ images (`PIL.Image.Image`, `np.ndarray`, `torch.Tensor`, `List[PIL.Image.Image]`, `List[np.ndarray]`, `List[torch.Tensor]`):
104
+ The image or batch of images to be prepared. Each image can be a PIL image, NumPy array or PyTorch
105
+ tensor. Both channels-first and channels-last formats are supported.
106
+ padding (`bool`, `str` or [`~utils.PaddingStrategy`], *optional*, defaults to `False`):
107
+ Select a strategy to pad the returned sequences (according to the model's padding side and padding
108
+ index) among:
109
+ - `True` or `'longest'`: Pad to the longest sequence in the batch (or no padding if only a single
110
+ sequence if provided).
111
+ - `'max_length'`: Pad to a maximum length specified with the argument `max_length` or to the maximum
112
+ acceptable input length for the model if that argument is not provided.
113
+ - `False` or `'do_not_pad'` (default): No padding (i.e., can output a batch with sequences of different
114
+ lengths).
115
+ max_length (`int`, *optional*):
116
+ Maximum length of the returned list and optionally padding length (see above).
117
+ truncation (`bool`, *optional*):
118
+ Activates truncation to cut input sequences longer than `max_length` to `max_length`.
119
+ return_tensors (`str` or [`~utils.TensorType`], *optional*):
120
+ If set, will return tensors of a particular framework. Acceptable values are:
121
+
122
+ - `'tf'`: Return TensorFlow `tf.constant` objects.
123
+ - `'pt'`: Return PyTorch `torch.Tensor` objects.
124
+ - `'np'`: Return NumPy `np.ndarray` objects.
125
+ - `'jax'`: Return JAX `jnp.ndarray` objects.
126
+
127
+ Returns:
128
+ [`BatchFeature`]: A [`BatchFeature`] with the following fields:
129
+
130
+ - **input_ids** -- List of token ids to be fed to a model. Returned when `text` is not `None`.
131
+ - **attention_mask** -- List of indices specifying which tokens should be attended to by the model (when
132
+ `return_attention_mask=True` or if *"attention_mask"* is in `self.model_input_names` and if `text` is not
133
+ `None`).
134
+ - **pixel_values** -- Pixel values to be fed to a model. Returned when `images` is not `None`.
135
+ """
136
+
137
+ if text is None and images is None:
138
+ raise ValueError("You have to specify either text or images. Both cannot be none.")
139
+
140
+ if text is not None:
141
+ if isinstance(text, str):
142
+ text = [text]
143
+ text = [_clean_canonicalize(raw_text) for raw_text in text]
144
+ encoding = self.tokenizer(
145
+ text, return_tensors=return_tensors, padding=padding, truncation=truncation, max_length=max_length
146
+ )
147
+
148
+ if images is not None:
149
+ try:
150
+ images = [image.convert('RGB') for image in images] if isinstance(images, list) else images.convert('RGB')
151
+ except:
152
+ images = images
153
+ image_features = self.image_processor(images, return_tensors=return_tensors)
154
+
155
+ if text is not None and images is not None:
156
+ encoding["pixel_values"] = image_features.pixel_values
157
+ return encoding
158
+ elif text is not None:
159
+ return encoding
160
+ else:
161
+ return BatchFeature(data=dict(**image_features), tensor_type=return_tensors)
162
+
163
+ def decode(self, *args, **kwargs):
164
+ """
165
+ This method forwards all its arguments to SiglipTokenizer's [`~PreTrainedTokenizer.decode`]. Please refer to
166
+ the docstring of this method for more information.
167
+ """
168
+ return self.tokenizer.decode(*args, **kwargs)
169
+
170
+ def batch_decode(self, *args, **kwargs):
171
+ """
172
+ This method forwards all its arguments to SiglipTokenizer's [`~PreTrainedTokenizer.batch_decode`]. Please
173
+ refer to the docstring of this method for more information.
174
+ """
175
+ return self.tokenizer.batch_decode(*args, **kwargs)
176
+
177
+ @property
178
+ # Copied from transformers.models.clip.processing_clip.CLIPProcessor.model_input_names with CLIP->Siglip, T5->Siglip
179
+ def model_input_names(self):
180
+ tokenizer_input_names = self.tokenizer.model_input_names
181
+ image_processor_input_names = self.image_processor.model_input_names
182
+ return list(dict.fromkeys(tokenizer_input_names + image_processor_input_names))
183
+
184
+ class MarqoFashionSigLIP(PreTrainedModel):
185
+ config_class = MarqoFashionSigLIPConfig
186
+
187
+ def __init__(self, config: MarqoFashionSigLIPConfig):
188
+ super().__init__(config)
189
+ self.config = config
190
+ self.model = create_model(config.open_clip_model_name, output_dict=True)
191
+ self.model.eval()
192
+ self.model.to(self.device)
193
+
194
+ def get_image_features(
195
+ self,
196
+ pixel_values: torch.FloatTensor,
197
+ normalize: bool = False,
198
+ **kwargs
199
+ ) -> torch.FloatTensor:
200
+
201
+ with torch.inference_mode():
202
+ image_features = self.model.encode_image(pixel_values, normalize=normalize)
203
+ return image_features
204
+
205
+ def get_text_features(
206
+ self,
207
+ input_ids: torch.Tensor,
208
+ normalize: bool = False,
209
+ **kwargs
210
+ ) -> torch.FloatTensor:
211
+
212
+ with torch.inference_mode():
213
+ text_features = self.model.encode_text(input_ids, normalize=normalize)
214
+ return text_features
215
+
216
+ def forward(
217
+ self,
218
+ input_ids: Optional[torch.LongTensor] = None,
219
+ pixel_values: Optional[torch.FloatTensor] = None,
220
+ return_dict: Optional[bool] = None,
221
+ ) -> Union[Tuple, SiglipOutput]:
222
+
223
+ vision_outputs = self.get_image_features(pixel_values=pixel_values, normalize=True)
224
+ text_outputs = self.get_text_features(input_ids=input_ids, normalize=True)
225
+
226
+ logits_per_text = text_outputs @ vision_outputs.T
227
+ logits_per_image = logits_per_text.T
228
+
229
+ if not return_dict:
230
+ return logits_per_image, logits_per_text, text_outputs, vision_outputs
231
+
232
+ return SiglipOutput(
233
+ logits_per_image=logits_per_image,
234
+ logits_per_text=logits_per_text,
235
+ text_embeds=text_outputs,
236
+ image_embeds=vision_outputs
237
+ )
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2a58c671a74e072a677d565b515c23e14855f149db699db4be2ee81816019a07
3
+ size 812660320
onnx/text_model.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c1d501b23bddf27ba828c037b0780e44fdf47ca4c0b925ef190ab5bcf7aaf6e6
3
+ size 441361402
onnx/text_model_bnb4.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4be58194517cdafe1695c2675259ffdba8871b77f8c5828cd45598177453f5d5
3
+ size 173734396
onnx/text_model_fp16.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0f5fcccd805e8910663dcbd6821c3cbe040bbe508c656964de08736272228806
3
+ size 220817780
onnx/text_model_int8.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f5a7995e029c6ee9346fa46857661c4a171d28b164fa7703b85a527d73adf170
3
+ size 111125229
onnx/text_model_q4.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1f62fd2b046d82ec1ed91881fe9f4f0b34d4e11bae539a33092712031ffee129
3
+ size 178600156
onnx/text_model_q4f16.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e48e36d0acdc1579aac8edb3c593a3f2ef9d55f7646b9e3acd7baf8f00d7d0ce
3
+ size 108904023
onnx/text_model_quantized.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f5a7995e029c6ee9346fa46857661c4a171d28b164fa7703b85a527d73adf170
3
+ size 111125229
onnx/text_model_uint8.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9e45a29f61825b0fdc4ab2648c84791d6af1b63fe86ce7bd7c7fee43fc3b1c4d
3
+ size 111125261
onnx/vision_model.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a7e773846b27a699c45ba7e3978514b7fca420662d7e69e3b9226982f09f4a13
3
+ size 371715502
onnx/vision_model_bnb4.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a7724073a1af61260bc4d250492ff1d2bfbf2e4d4e171e90c5044186e2198948
3
+ size 55430656
onnx/vision_model_fp16.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a6d3e644416e543c62344c06f7dc8be5687633901a2931faccbe28688e30737e
3
+ size 185947013
onnx/vision_model_int8.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dae6e934667af50590c3d0ca69c7b14edc71f4df1b4f670e5ba6bc623495b691
3
+ size 93973410
onnx/vision_model_q4.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a864016eff2d8829ec6088b1593c3c9e75a70e0413e0f02d4a4bbfddc3ef89d3
3
+ size 61181030
onnx/vision_model_q4f16.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:988c55937d35228f860bcc90742940ec3efe8d00054518249f6c82b66e1b4a7c
3
+ size 53686874
onnx/vision_model_quantized.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f1009cfce0eedd409f601e8351eedab72e8529641105eee6517821a9a634a2f4
3
+ size 93973443
onnx/vision_model_uint8.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f1009cfce0eedd409f601e8351eedab72e8529641105eee6517821a9a634a2f4
3
+ size 93973443
open_clip_config.json ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_cfg": {
3
+ "embed_dim": 768,
4
+ "init_logit_bias": -10,
5
+ "custom_text": true,
6
+ "vision_cfg": {
7
+ "image_size": 224,
8
+ "timm_model_name": "vit_base_patch16_siglip_224",
9
+ "timm_model_pretrained": false,
10
+ "timm_pool": "map",
11
+ "timm_proj": "none"
12
+ },
13
+ "text_cfg": {
14
+ "context_length": 64,
15
+ "vocab_size": 32000,
16
+ "hf_tokenizer_name": "timm/ViT-B-16-SigLIP",
17
+ "tokenizer_kwargs": {
18
+ "clean": "canonicalize"
19
+ },
20
+ "width": 768,
21
+ "heads": 12,
22
+ "layers": 12,
23
+ "no_causal_mask": true,
24
+ "proj_bias": true,
25
+ "pool_type": "last",
26
+ "norm_kwargs": {
27
+ "eps": 1e-06
28
+ }
29
+ }
30
+ },
31
+ "preprocess_cfg": {
32
+ "mean": [
33
+ 0.5,
34
+ 0.5,
35
+ 0.5
36
+ ],
37
+ "std": [
38
+ 0.5,
39
+ 0.5,
40
+ 0.5
41
+ ],
42
+ "interpolation": "bicubic",
43
+ "resize_mode": "squash"
44
+ }
45
+ }
open_clip_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:88908200434959fa3154ef79d408aac33341e8797fe5ca8ca6f0463aab32e6b3
3
+ size 812658408
open_clip_pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f51a245681b2a027c26c1684a89dbd27cbd2819fca2fc2d4c697208d33d46400
3
+ size 812750942
preprocessor_config.json ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auto_map": {
3
+ "AutoProcessor": "marqo_fashionSigLIP.MarqoFashionSigLIPProcessor"
4
+ },
5
+ "do_normalize": true,
6
+ "do_rescale": true,
7
+ "do_resize": true,
8
+ "do_convert_rgb": true,
9
+ "image_processor_type": "SiglipImageProcessor",
10
+ "image_mean": [
11
+ 0.5,
12
+ 0.5,
13
+ 0.5
14
+ ],
15
+ "processor_class": "marqo_fashionSigLIP.MarqoFashionSigLIPProcessor",
16
+ "resample": 3,
17
+ "rescale_factor": 0.00392156862745098,
18
+ "size": {
19
+ "height": 224,
20
+ "width": 224
21
+ },
22
+ "image_std": [
23
+ 0.5,
24
+ 0.5,
25
+ 0.5
26
+ ]
27
+ }
special_tokens_map.json ADDED
@@ -0,0 +1,125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<extra_id_0>",
4
+ "<extra_id_1>",
5
+ "<extra_id_2>",
6
+ "<extra_id_3>",
7
+ "<extra_id_4>",
8
+ "<extra_id_5>",
9
+ "<extra_id_6>",
10
+ "<extra_id_7>",
11
+ "<extra_id_8>",
12
+ "<extra_id_9>",
13
+ "<extra_id_10>",
14
+ "<extra_id_11>",
15
+ "<extra_id_12>",
16
+ "<extra_id_13>",
17
+ "<extra_id_14>",
18
+ "<extra_id_15>",
19
+ "<extra_id_16>",
20
+ "<extra_id_17>",
21
+ "<extra_id_18>",
22
+ "<extra_id_19>",
23
+ "<extra_id_20>",
24
+ "<extra_id_21>",
25
+ "<extra_id_22>",
26
+ "<extra_id_23>",
27
+ "<extra_id_24>",
28
+ "<extra_id_25>",
29
+ "<extra_id_26>",
30
+ "<extra_id_27>",
31
+ "<extra_id_28>",
32
+ "<extra_id_29>",
33
+ "<extra_id_30>",
34
+ "<extra_id_31>",
35
+ "<extra_id_32>",
36
+ "<extra_id_33>",
37
+ "<extra_id_34>",
38
+ "<extra_id_35>",
39
+ "<extra_id_36>",
40
+ "<extra_id_37>",
41
+ "<extra_id_38>",
42
+ "<extra_id_39>",
43
+ "<extra_id_40>",
44
+ "<extra_id_41>",
45
+ "<extra_id_42>",
46
+ "<extra_id_43>",
47
+ "<extra_id_44>",
48
+ "<extra_id_45>",
49
+ "<extra_id_46>",
50
+ "<extra_id_47>",
51
+ "<extra_id_48>",
52
+ "<extra_id_49>",
53
+ "<extra_id_50>",
54
+ "<extra_id_51>",
55
+ "<extra_id_52>",
56
+ "<extra_id_53>",
57
+ "<extra_id_54>",
58
+ "<extra_id_55>",
59
+ "<extra_id_56>",
60
+ "<extra_id_57>",
61
+ "<extra_id_58>",
62
+ "<extra_id_59>",
63
+ "<extra_id_60>",
64
+ "<extra_id_61>",
65
+ "<extra_id_62>",
66
+ "<extra_id_63>",
67
+ "<extra_id_64>",
68
+ "<extra_id_65>",
69
+ "<extra_id_66>",
70
+ "<extra_id_67>",
71
+ "<extra_id_68>",
72
+ "<extra_id_69>",
73
+ "<extra_id_70>",
74
+ "<extra_id_71>",
75
+ "<extra_id_72>",
76
+ "<extra_id_73>",
77
+ "<extra_id_74>",
78
+ "<extra_id_75>",
79
+ "<extra_id_76>",
80
+ "<extra_id_77>",
81
+ "<extra_id_78>",
82
+ "<extra_id_79>",
83
+ "<extra_id_80>",
84
+ "<extra_id_81>",
85
+ "<extra_id_82>",
86
+ "<extra_id_83>",
87
+ "<extra_id_84>",
88
+ "<extra_id_85>",
89
+ "<extra_id_86>",
90
+ "<extra_id_87>",
91
+ "<extra_id_88>",
92
+ "<extra_id_89>",
93
+ "<extra_id_90>",
94
+ "<extra_id_91>",
95
+ "<extra_id_92>",
96
+ "<extra_id_93>",
97
+ "<extra_id_94>",
98
+ "<extra_id_95>",
99
+ "<extra_id_96>",
100
+ "<extra_id_97>",
101
+ "<extra_id_98>",
102
+ "<extra_id_99>"
103
+ ],
104
+ "eos_token": {
105
+ "content": "</s>",
106
+ "lstrip": true,
107
+ "normalized": true,
108
+ "rstrip": true,
109
+ "single_word": false
110
+ },
111
+ "pad_token": {
112
+ "content": "</s>",
113
+ "lstrip": true,
114
+ "normalized": true,
115
+ "rstrip": true,
116
+ "single_word": false
117
+ },
118
+ "unk_token": {
119
+ "content": "<unk>",
120
+ "lstrip": true,
121
+ "normalized": true,
122
+ "rstrip": true,
123
+ "single_word": false
124
+ }
125
+ }
spiece.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d60acb128cf7b7f2536e8f38a5b18a05535c9e14c7a355904270e15b0945ea86
3
+ size 791656
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,939 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "added_tokens_decoder": {
3
+ "0": {
4
+ "content": "<pad>",
5
+ "lstrip": true,
6
+ "normalized": true,
7
+ "rstrip": true,
8
+ "single_word": false,
9
+ "special": true
10
+ },
11
+ "1": {
12
+ "content": "</s>",
13
+ "lstrip": true,
14
+ "normalized": true,
15
+ "rstrip": true,
16
+ "single_word": false,
17
+ "special": true
18
+ },
19
+ "2": {
20
+ "content": "<unk>",
21
+ "lstrip": true,
22
+ "normalized": true,
23
+ "rstrip": true,
24
+ "single_word": false,
25
+ "special": true
26
+ },
27
+ "32000": {
28
+ "content": "<extra_id_99>",
29
+ "lstrip": true,
30
+ "normalized": false,
31
+ "rstrip": true,
32
+ "single_word": false,
33
+ "special": true
34
+ },
35
+ "32001": {
36
+ "content": "<extra_id_98>",
37
+ "lstrip": true,
38
+ "normalized": false,
39
+ "rstrip": true,
40
+ "single_word": false,
41
+ "special": true
42
+ },
43
+ "32002": {
44
+ "content": "<extra_id_97>",
45
+ "lstrip": true,
46
+ "normalized": false,
47
+ "rstrip": true,
48
+ "single_word": false,
49
+ "special": true
50
+ },
51
+ "32003": {
52
+ "content": "<extra_id_96>",
53
+ "lstrip": true,
54
+ "normalized": false,
55
+ "rstrip": true,
56
+ "single_word": false,
57
+ "special": true
58
+ },
59
+ "32004": {
60
+ "content": "<extra_id_95>",
61
+ "lstrip": true,
62
+ "normalized": false,
63
+ "rstrip": true,
64
+ "single_word": false,
65
+ "special": true
66
+ },
67
+ "32005": {
68
+ "content": "<extra_id_94>",
69
+ "lstrip": true,
70
+ "normalized": false,
71
+ "rstrip": true,
72
+ "single_word": false,
73
+ "special": true
74
+ },
75
+ "32006": {
76
+ "content": "<extra_id_93>",
77
+ "lstrip": true,
78
+ "normalized": false,
79
+ "rstrip": true,
80
+ "single_word": false,
81
+ "special": true
82
+ },
83
+ "32007": {
84
+ "content": "<extra_id_92>",
85
+ "lstrip": true,
86
+ "normalized": false,
87
+ "rstrip": true,
88
+ "single_word": false,
89
+ "special": true
90
+ },
91
+ "32008": {
92
+ "content": "<extra_id_91>",
93
+ "lstrip": true,
94
+ "normalized": false,
95
+ "rstrip": true,
96
+ "single_word": false,
97
+ "special": true
98
+ },
99
+ "32009": {
100
+ "content": "<extra_id_90>",
101
+ "lstrip": true,
102
+ "normalized": false,
103
+ "rstrip": true,
104
+ "single_word": false,
105
+ "special": true
106
+ },
107
+ "32010": {
108
+ "content": "<extra_id_89>",
109
+ "lstrip": true,
110
+ "normalized": false,
111
+ "rstrip": true,
112
+ "single_word": false,
113
+ "special": true
114
+ },
115
+ "32011": {
116
+ "content": "<extra_id_88>",
117
+ "lstrip": true,
118
+ "normalized": false,
119
+ "rstrip": true,
120
+ "single_word": false,
121
+ "special": true
122
+ },
123
+ "32012": {
124
+ "content": "<extra_id_87>",
125
+ "lstrip": true,
126
+ "normalized": false,
127
+ "rstrip": true,
128
+ "single_word": false,
129
+ "special": true
130
+ },
131
+ "32013": {
132
+ "content": "<extra_id_86>",
133
+ "lstrip": true,
134
+ "normalized": false,
135
+ "rstrip": true,
136
+ "single_word": false,
137
+ "special": true
138
+ },
139
+ "32014": {
140
+ "content": "<extra_id_85>",
141
+ "lstrip": true,
142
+ "normalized": false,
143
+ "rstrip": true,
144
+ "single_word": false,
145
+ "special": true
146
+ },
147
+ "32015": {
148
+ "content": "<extra_id_84>",
149
+ "lstrip": true,
150
+ "normalized": false,
151
+ "rstrip": true,
152
+ "single_word": false,
153
+ "special": true
154
+ },
155
+ "32016": {
156
+ "content": "<extra_id_83>",
157
+ "lstrip": true,
158
+ "normalized": false,
159
+ "rstrip": true,
160
+ "single_word": false,
161
+ "special": true
162
+ },
163
+ "32017": {
164
+ "content": "<extra_id_82>",
165
+ "lstrip": true,
166
+ "normalized": false,
167
+ "rstrip": true,
168
+ "single_word": false,
169
+ "special": true
170
+ },
171
+ "32018": {
172
+ "content": "<extra_id_81>",
173
+ "lstrip": true,
174
+ "normalized": false,
175
+ "rstrip": true,
176
+ "single_word": false,
177
+ "special": true
178
+ },
179
+ "32019": {
180
+ "content": "<extra_id_80>",
181
+ "lstrip": true,
182
+ "normalized": false,
183
+ "rstrip": true,
184
+ "single_word": false,
185
+ "special": true
186
+ },
187
+ "32020": {
188
+ "content": "<extra_id_79>",
189
+ "lstrip": true,
190
+ "normalized": false,
191
+ "rstrip": true,
192
+ "single_word": false,
193
+ "special": true
194
+ },
195
+ "32021": {
196
+ "content": "<extra_id_78>",
197
+ "lstrip": true,
198
+ "normalized": false,
199
+ "rstrip": true,
200
+ "single_word": false,
201
+ "special": true
202
+ },
203
+ "32022": {
204
+ "content": "<extra_id_77>",
205
+ "lstrip": true,
206
+ "normalized": false,
207
+ "rstrip": true,
208
+ "single_word": false,
209
+ "special": true
210
+ },
211
+ "32023": {
212
+ "content": "<extra_id_76>",
213
+ "lstrip": true,
214
+ "normalized": false,
215
+ "rstrip": true,
216
+ "single_word": false,
217
+ "special": true
218
+ },
219
+ "32024": {
220
+ "content": "<extra_id_75>",
221
+ "lstrip": true,
222
+ "normalized": false,
223
+ "rstrip": true,
224
+ "single_word": false,
225
+ "special": true
226
+ },
227
+ "32025": {
228
+ "content": "<extra_id_74>",
229
+ "lstrip": true,
230
+ "normalized": false,
231
+ "rstrip": true,
232
+ "single_word": false,
233
+ "special": true
234
+ },
235
+ "32026": {
236
+ "content": "<extra_id_73>",
237
+ "lstrip": true,
238
+ "normalized": false,
239
+ "rstrip": true,
240
+ "single_word": false,
241
+ "special": true
242
+ },
243
+ "32027": {
244
+ "content": "<extra_id_72>",
245
+ "lstrip": true,
246
+ "normalized": false,
247
+ "rstrip": true,
248
+ "single_word": false,
249
+ "special": true
250
+ },
251
+ "32028": {
252
+ "content": "<extra_id_71>",
253
+ "lstrip": true,
254
+ "normalized": false,
255
+ "rstrip": true,
256
+ "single_word": false,
257
+ "special": true
258
+ },
259
+ "32029": {
260
+ "content": "<extra_id_70>",
261
+ "lstrip": true,
262
+ "normalized": false,
263
+ "rstrip": true,
264
+ "single_word": false,
265
+ "special": true
266
+ },
267
+ "32030": {
268
+ "content": "<extra_id_69>",
269
+ "lstrip": true,
270
+ "normalized": false,
271
+ "rstrip": true,
272
+ "single_word": false,
273
+ "special": true
274
+ },
275
+ "32031": {
276
+ "content": "<extra_id_68>",
277
+ "lstrip": true,
278
+ "normalized": false,
279
+ "rstrip": true,
280
+ "single_word": false,
281
+ "special": true
282
+ },
283
+ "32032": {
284
+ "content": "<extra_id_67>",
285
+ "lstrip": true,
286
+ "normalized": false,
287
+ "rstrip": true,
288
+ "single_word": false,
289
+ "special": true
290
+ },
291
+ "32033": {
292
+ "content": "<extra_id_66>",
293
+ "lstrip": true,
294
+ "normalized": false,
295
+ "rstrip": true,
296
+ "single_word": false,
297
+ "special": true
298
+ },
299
+ "32034": {
300
+ "content": "<extra_id_65>",
301
+ "lstrip": true,
302
+ "normalized": false,
303
+ "rstrip": true,
304
+ "single_word": false,
305
+ "special": true
306
+ },
307
+ "32035": {
308
+ "content": "<extra_id_64>",
309
+ "lstrip": true,
310
+ "normalized": false,
311
+ "rstrip": true,
312
+ "single_word": false,
313
+ "special": true
314
+ },
315
+ "32036": {
316
+ "content": "<extra_id_63>",
317
+ "lstrip": true,
318
+ "normalized": false,
319
+ "rstrip": true,
320
+ "single_word": false,
321
+ "special": true
322
+ },
323
+ "32037": {
324
+ "content": "<extra_id_62>",
325
+ "lstrip": true,
326
+ "normalized": false,
327
+ "rstrip": true,
328
+ "single_word": false,
329
+ "special": true
330
+ },
331
+ "32038": {
332
+ "content": "<extra_id_61>",
333
+ "lstrip": true,
334
+ "normalized": false,
335
+ "rstrip": true,
336
+ "single_word": false,
337
+ "special": true
338
+ },
339
+ "32039": {
340
+ "content": "<extra_id_60>",
341
+ "lstrip": true,
342
+ "normalized": false,
343
+ "rstrip": true,
344
+ "single_word": false,
345
+ "special": true
346
+ },
347
+ "32040": {
348
+ "content": "<extra_id_59>",
349
+ "lstrip": true,
350
+ "normalized": false,
351
+ "rstrip": true,
352
+ "single_word": false,
353
+ "special": true
354
+ },
355
+ "32041": {
356
+ "content": "<extra_id_58>",
357
+ "lstrip": true,
358
+ "normalized": false,
359
+ "rstrip": true,
360
+ "single_word": false,
361
+ "special": true
362
+ },
363
+ "32042": {
364
+ "content": "<extra_id_57>",
365
+ "lstrip": true,
366
+ "normalized": false,
367
+ "rstrip": true,
368
+ "single_word": false,
369
+ "special": true
370
+ },
371
+ "32043": {
372
+ "content": "<extra_id_56>",
373
+ "lstrip": true,
374
+ "normalized": false,
375
+ "rstrip": true,
376
+ "single_word": false,
377
+ "special": true
378
+ },
379
+ "32044": {
380
+ "content": "<extra_id_55>",
381
+ "lstrip": true,
382
+ "normalized": false,
383
+ "rstrip": true,
384
+ "single_word": false,
385
+ "special": true
386
+ },
387
+ "32045": {
388
+ "content": "<extra_id_54>",
389
+ "lstrip": true,
390
+ "normalized": false,
391
+ "rstrip": true,
392
+ "single_word": false,
393
+ "special": true
394
+ },
395
+ "32046": {
396
+ "content": "<extra_id_53>",
397
+ "lstrip": true,
398
+ "normalized": false,
399
+ "rstrip": true,
400
+ "single_word": false,
401
+ "special": true
402
+ },
403
+ "32047": {
404
+ "content": "<extra_id_52>",
405
+ "lstrip": true,
406
+ "normalized": false,
407
+ "rstrip": true,
408
+ "single_word": false,
409
+ "special": true
410
+ },
411
+ "32048": {
412
+ "content": "<extra_id_51>",
413
+ "lstrip": true,
414
+ "normalized": false,
415
+ "rstrip": true,
416
+ "single_word": false,
417
+ "special": true
418
+ },
419
+ "32049": {
420
+ "content": "<extra_id_50>",
421
+ "lstrip": true,
422
+ "normalized": false,
423
+ "rstrip": true,
424
+ "single_word": false,
425
+ "special": true
426
+ },
427
+ "32050": {
428
+ "content": "<extra_id_49>",
429
+ "lstrip": true,
430
+ "normalized": false,
431
+ "rstrip": true,
432
+ "single_word": false,
433
+ "special": true
434
+ },
435
+ "32051": {
436
+ "content": "<extra_id_48>",
437
+ "lstrip": true,
438
+ "normalized": false,
439
+ "rstrip": true,
440
+ "single_word": false,
441
+ "special": true
442
+ },
443
+ "32052": {
444
+ "content": "<extra_id_47>",
445
+ "lstrip": true,
446
+ "normalized": false,
447
+ "rstrip": true,
448
+ "single_word": false,
449
+ "special": true
450
+ },
451
+ "32053": {
452
+ "content": "<extra_id_46>",
453
+ "lstrip": true,
454
+ "normalized": false,
455
+ "rstrip": true,
456
+ "single_word": false,
457
+ "special": true
458
+ },
459
+ "32054": {
460
+ "content": "<extra_id_45>",
461
+ "lstrip": true,
462
+ "normalized": false,
463
+ "rstrip": true,
464
+ "single_word": false,
465
+ "special": true
466
+ },
467
+ "32055": {
468
+ "content": "<extra_id_44>",
469
+ "lstrip": true,
470
+ "normalized": false,
471
+ "rstrip": true,
472
+ "single_word": false,
473
+ "special": true
474
+ },
475
+ "32056": {
476
+ "content": "<extra_id_43>",
477
+ "lstrip": true,
478
+ "normalized": false,
479
+ "rstrip": true,
480
+ "single_word": false,
481
+ "special": true
482
+ },
483
+ "32057": {
484
+ "content": "<extra_id_42>",
485
+ "lstrip": true,
486
+ "normalized": false,
487
+ "rstrip": true,
488
+ "single_word": false,
489
+ "special": true
490
+ },
491
+ "32058": {
492
+ "content": "<extra_id_41>",
493
+ "lstrip": true,
494
+ "normalized": false,
495
+ "rstrip": true,
496
+ "single_word": false,
497
+ "special": true
498
+ },
499
+ "32059": {
500
+ "content": "<extra_id_40>",
501
+ "lstrip": true,
502
+ "normalized": false,
503
+ "rstrip": true,
504
+ "single_word": false,
505
+ "special": true
506
+ },
507
+ "32060": {
508
+ "content": "<extra_id_39>",
509
+ "lstrip": true,
510
+ "normalized": false,
511
+ "rstrip": true,
512
+ "single_word": false,
513
+ "special": true
514
+ },
515
+ "32061": {
516
+ "content": "<extra_id_38>",
517
+ "lstrip": true,
518
+ "normalized": false,
519
+ "rstrip": true,
520
+ "single_word": false,
521
+ "special": true
522
+ },
523
+ "32062": {
524
+ "content": "<extra_id_37>",
525
+ "lstrip": true,
526
+ "normalized": false,
527
+ "rstrip": true,
528
+ "single_word": false,
529
+ "special": true
530
+ },
531
+ "32063": {
532
+ "content": "<extra_id_36>",
533
+ "lstrip": true,
534
+ "normalized": false,
535
+ "rstrip": true,
536
+ "single_word": false,
537
+ "special": true
538
+ },
539
+ "32064": {
540
+ "content": "<extra_id_35>",
541
+ "lstrip": true,
542
+ "normalized": false,
543
+ "rstrip": true,
544
+ "single_word": false,
545
+ "special": true
546
+ },
547
+ "32065": {
548
+ "content": "<extra_id_34>",
549
+ "lstrip": true,
550
+ "normalized": false,
551
+ "rstrip": true,
552
+ "single_word": false,
553
+ "special": true
554
+ },
555
+ "32066": {
556
+ "content": "<extra_id_33>",
557
+ "lstrip": true,
558
+ "normalized": false,
559
+ "rstrip": true,
560
+ "single_word": false,
561
+ "special": true
562
+ },
563
+ "32067": {
564
+ "content": "<extra_id_32>",
565
+ "lstrip": true,
566
+ "normalized": false,
567
+ "rstrip": true,
568
+ "single_word": false,
569
+ "special": true
570
+ },
571
+ "32068": {
572
+ "content": "<extra_id_31>",
573
+ "lstrip": true,
574
+ "normalized": false,
575
+ "rstrip": true,
576
+ "single_word": false,
577
+ "special": true
578
+ },
579
+ "32069": {
580
+ "content": "<extra_id_30>",
581
+ "lstrip": true,
582
+ "normalized": false,
583
+ "rstrip": true,
584
+ "single_word": false,
585
+ "special": true
586
+ },
587
+ "32070": {
588
+ "content": "<extra_id_29>",
589
+ "lstrip": true,
590
+ "normalized": false,
591
+ "rstrip": true,
592
+ "single_word": false,
593
+ "special": true
594
+ },
595
+ "32071": {
596
+ "content": "<extra_id_28>",
597
+ "lstrip": true,
598
+ "normalized": false,
599
+ "rstrip": true,
600
+ "single_word": false,
601
+ "special": true
602
+ },
603
+ "32072": {
604
+ "content": "<extra_id_27>",
605
+ "lstrip": true,
606
+ "normalized": false,
607
+ "rstrip": true,
608
+ "single_word": false,
609
+ "special": true
610
+ },
611
+ "32073": {
612
+ "content": "<extra_id_26>",
613
+ "lstrip": true,
614
+ "normalized": false,
615
+ "rstrip": true,
616
+ "single_word": false,
617
+ "special": true
618
+ },
619
+ "32074": {
620
+ "content": "<extra_id_25>",
621
+ "lstrip": true,
622
+ "normalized": false,
623
+ "rstrip": true,
624
+ "single_word": false,
625
+ "special": true
626
+ },
627
+ "32075": {
628
+ "content": "<extra_id_24>",
629
+ "lstrip": true,
630
+ "normalized": false,
631
+ "rstrip": true,
632
+ "single_word": false,
633
+ "special": true
634
+ },
635
+ "32076": {
636
+ "content": "<extra_id_23>",
637
+ "lstrip": true,
638
+ "normalized": false,
639
+ "rstrip": true,
640
+ "single_word": false,
641
+ "special": true
642
+ },
643
+ "32077": {
644
+ "content": "<extra_id_22>",
645
+ "lstrip": true,
646
+ "normalized": false,
647
+ "rstrip": true,
648
+ "single_word": false,
649
+ "special": true
650
+ },
651
+ "32078": {
652
+ "content": "<extra_id_21>",
653
+ "lstrip": true,
654
+ "normalized": false,
655
+ "rstrip": true,
656
+ "single_word": false,
657
+ "special": true
658
+ },
659
+ "32079": {
660
+ "content": "<extra_id_20>",
661
+ "lstrip": true,
662
+ "normalized": false,
663
+ "rstrip": true,
664
+ "single_word": false,
665
+ "special": true
666
+ },
667
+ "32080": {
668
+ "content": "<extra_id_19>",
669
+ "lstrip": true,
670
+ "normalized": false,
671
+ "rstrip": true,
672
+ "single_word": false,
673
+ "special": true
674
+ },
675
+ "32081": {
676
+ "content": "<extra_id_18>",
677
+ "lstrip": true,
678
+ "normalized": false,
679
+ "rstrip": true,
680
+ "single_word": false,
681
+ "special": true
682
+ },
683
+ "32082": {
684
+ "content": "<extra_id_17>",
685
+ "lstrip": true,
686
+ "normalized": false,
687
+ "rstrip": true,
688
+ "single_word": false,
689
+ "special": true
690
+ },
691
+ "32083": {
692
+ "content": "<extra_id_16>",
693
+ "lstrip": true,
694
+ "normalized": false,
695
+ "rstrip": true,
696
+ "single_word": false,
697
+ "special": true
698
+ },
699
+ "32084": {
700
+ "content": "<extra_id_15>",
701
+ "lstrip": true,
702
+ "normalized": false,
703
+ "rstrip": true,
704
+ "single_word": false,
705
+ "special": true
706
+ },
707
+ "32085": {
708
+ "content": "<extra_id_14>",
709
+ "lstrip": true,
710
+ "normalized": false,
711
+ "rstrip": true,
712
+ "single_word": false,
713
+ "special": true
714
+ },
715
+ "32086": {
716
+ "content": "<extra_id_13>",
717
+ "lstrip": true,
718
+ "normalized": false,
719
+ "rstrip": true,
720
+ "single_word": false,
721
+ "special": true
722
+ },
723
+ "32087": {
724
+ "content": "<extra_id_12>",
725
+ "lstrip": true,
726
+ "normalized": false,
727
+ "rstrip": true,
728
+ "single_word": false,
729
+ "special": true
730
+ },
731
+ "32088": {
732
+ "content": "<extra_id_11>",
733
+ "lstrip": true,
734
+ "normalized": false,
735
+ "rstrip": true,
736
+ "single_word": false,
737
+ "special": true
738
+ },
739
+ "32089": {
740
+ "content": "<extra_id_10>",
741
+ "lstrip": true,
742
+ "normalized": false,
743
+ "rstrip": true,
744
+ "single_word": false,
745
+ "special": true
746
+ },
747
+ "32090": {
748
+ "content": "<extra_id_9>",
749
+ "lstrip": true,
750
+ "normalized": false,
751
+ "rstrip": true,
752
+ "single_word": false,
753
+ "special": true
754
+ },
755
+ "32091": {
756
+ "content": "<extra_id_8>",
757
+ "lstrip": true,
758
+ "normalized": false,
759
+ "rstrip": true,
760
+ "single_word": false,
761
+ "special": true
762
+ },
763
+ "32092": {
764
+ "content": "<extra_id_7>",
765
+ "lstrip": true,
766
+ "normalized": false,
767
+ "rstrip": true,
768
+ "single_word": false,
769
+ "special": true
770
+ },
771
+ "32093": {
772
+ "content": "<extra_id_6>",
773
+ "lstrip": true,
774
+ "normalized": false,
775
+ "rstrip": true,
776
+ "single_word": false,
777
+ "special": true
778
+ },
779
+ "32094": {
780
+ "content": "<extra_id_5>",
781
+ "lstrip": true,
782
+ "normalized": false,
783
+ "rstrip": true,
784
+ "single_word": false,
785
+ "special": true
786
+ },
787
+ "32095": {
788
+ "content": "<extra_id_4>",
789
+ "lstrip": true,
790
+ "normalized": false,
791
+ "rstrip": true,
792
+ "single_word": false,
793
+ "special": true
794
+ },
795
+ "32096": {
796
+ "content": "<extra_id_3>",
797
+ "lstrip": true,
798
+ "normalized": false,
799
+ "rstrip": true,
800
+ "single_word": false,
801
+ "special": true
802
+ },
803
+ "32097": {
804
+ "content": "<extra_id_2>",
805
+ "lstrip": true,
806
+ "normalized": false,
807
+ "rstrip": true,
808
+ "single_word": false,
809
+ "special": true
810
+ },
811
+ "32098": {
812
+ "content": "<extra_id_1>",
813
+ "lstrip": true,
814
+ "normalized": false,
815
+ "rstrip": true,
816
+ "single_word": false,
817
+ "special": true
818
+ },
819
+ "32099": {
820
+ "content": "<extra_id_0>",
821
+ "lstrip": true,
822
+ "normalized": false,
823
+ "rstrip": true,
824
+ "single_word": false,
825
+ "special": true
826
+ }
827
+ },
828
+ "additional_special_tokens": [
829
+ "<extra_id_0>",
830
+ "<extra_id_1>",
831
+ "<extra_id_2>",
832
+ "<extra_id_3>",
833
+ "<extra_id_4>",
834
+ "<extra_id_5>",
835
+ "<extra_id_6>",
836
+ "<extra_id_7>",
837
+ "<extra_id_8>",
838
+ "<extra_id_9>",
839
+ "<extra_id_10>",
840
+ "<extra_id_11>",
841
+ "<extra_id_12>",
842
+ "<extra_id_13>",
843
+ "<extra_id_14>",
844
+ "<extra_id_15>",
845
+ "<extra_id_16>",
846
+ "<extra_id_17>",
847
+ "<extra_id_18>",
848
+ "<extra_id_19>",
849
+ "<extra_id_20>",
850
+ "<extra_id_21>",
851
+ "<extra_id_22>",
852
+ "<extra_id_23>",
853
+ "<extra_id_24>",
854
+ "<extra_id_25>",
855
+ "<extra_id_26>",
856
+ "<extra_id_27>",
857
+ "<extra_id_28>",
858
+ "<extra_id_29>",
859
+ "<extra_id_30>",
860
+ "<extra_id_31>",
861
+ "<extra_id_32>",
862
+ "<extra_id_33>",
863
+ "<extra_id_34>",
864
+ "<extra_id_35>",
865
+ "<extra_id_36>",
866
+ "<extra_id_37>",
867
+ "<extra_id_38>",
868
+ "<extra_id_39>",
869
+ "<extra_id_40>",
870
+ "<extra_id_41>",
871
+ "<extra_id_42>",
872
+ "<extra_id_43>",
873
+ "<extra_id_44>",
874
+ "<extra_id_45>",
875
+ "<extra_id_46>",
876
+ "<extra_id_47>",
877
+ "<extra_id_48>",
878
+ "<extra_id_49>",
879
+ "<extra_id_50>",
880
+ "<extra_id_51>",
881
+ "<extra_id_52>",
882
+ "<extra_id_53>",
883
+ "<extra_id_54>",
884
+ "<extra_id_55>",
885
+ "<extra_id_56>",
886
+ "<extra_id_57>",
887
+ "<extra_id_58>",
888
+ "<extra_id_59>",
889
+ "<extra_id_60>",
890
+ "<extra_id_61>",
891
+ "<extra_id_62>",
892
+ "<extra_id_63>",
893
+ "<extra_id_64>",
894
+ "<extra_id_65>",
895
+ "<extra_id_66>",
896
+ "<extra_id_67>",
897
+ "<extra_id_68>",
898
+ "<extra_id_69>",
899
+ "<extra_id_70>",
900
+ "<extra_id_71>",
901
+ "<extra_id_72>",
902
+ "<extra_id_73>",
903
+ "<extra_id_74>",
904
+ "<extra_id_75>",
905
+ "<extra_id_76>",
906
+ "<extra_id_77>",
907
+ "<extra_id_78>",
908
+ "<extra_id_79>",
909
+ "<extra_id_80>",
910
+ "<extra_id_81>",
911
+ "<extra_id_82>",
912
+ "<extra_id_83>",
913
+ "<extra_id_84>",
914
+ "<extra_id_85>",
915
+ "<extra_id_86>",
916
+ "<extra_id_87>",
917
+ "<extra_id_88>",
918
+ "<extra_id_89>",
919
+ "<extra_id_90>",
920
+ "<extra_id_91>",
921
+ "<extra_id_92>",
922
+ "<extra_id_93>",
923
+ "<extra_id_94>",
924
+ "<extra_id_95>",
925
+ "<extra_id_96>",
926
+ "<extra_id_97>",
927
+ "<extra_id_98>",
928
+ "<extra_id_99>"
929
+ ],
930
+ "clean_up_tokenization_spaces": true,
931
+ "eos_token": "</s>",
932
+ "extra_ids": 100,
933
+ "legacy": false,
934
+ "model_max_length": 64,
935
+ "pad_token": "</s>",
936
+ "sp_model_kwargs": {},
937
+ "tokenizer_class": "T5Tokenizer",
938
+ "unk_token": "<unk>"
939
+ }