mteb 2.5.2__py3-none-any.whl → 2.5.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mteb/abstasks/abstask.py +6 -6
- mteb/abstasks/aggregated_task.py +4 -10
- mteb/abstasks/task_metadata.py +2 -3
- mteb/cache.py +7 -4
- mteb/cli/build_cli.py +10 -5
- mteb/cli/generate_model_card.py +4 -3
- mteb/deprecated_evaluator.py +4 -3
- mteb/evaluate.py +4 -1
- mteb/get_tasks.py +4 -3
- mteb/models/abs_encoder.py +5 -3
- mteb/models/cache_wrappers/cache_backends/faiss_cache.py +4 -1
- mteb/models/cache_wrappers/cache_backends/numpy_cache.py +13 -12
- mteb/models/model_implementations/gme_v_models.py +4 -3
- mteb/models/model_implementations/mcinext_models.py +4 -1
- mteb/models/model_meta.py +3 -1
- mteb/models/search_encoder_index/search_indexes/faiss_search_index.py +4 -1
- mteb/models/search_wrappers.py +4 -2
- mteb/models/sentence_transformer_wrapper.py +10 -10
- mteb/results/benchmark_results.py +3 -1
- mteb/results/model_result.py +3 -1
- mteb/results/task_result.py +10 -7
- {mteb-2.5.2.dist-info → mteb-2.5.3.dist-info}/METADATA +1 -1
- {mteb-2.5.2.dist-info → mteb-2.5.3.dist-info}/RECORD +27 -27
- {mteb-2.5.2.dist-info → mteb-2.5.3.dist-info}/WHEEL +0 -0
- {mteb-2.5.2.dist-info → mteb-2.5.3.dist-info}/entry_points.txt +0 -0
- {mteb-2.5.2.dist-info → mteb-2.5.3.dist-info}/licenses/LICENSE +0 -0
- {mteb-2.5.2.dist-info → mteb-2.5.3.dist-info}/top_level.txt +0 -0
mteb/abstasks/abstask.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
|
+
import warnings
|
|
3
4
|
from abc import ABC, abstractmethod
|
|
4
5
|
from collections.abc import Sequence
|
|
5
6
|
from copy import copy
|
|
@@ -102,9 +103,9 @@ class AbsTask(ABC):
|
|
|
102
103
|
def check_if_dataset_is_superseded(self) -> None:
|
|
103
104
|
"""Check if the dataset is superseded by a newer version."""
|
|
104
105
|
if self.superseded_by:
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
)
|
|
106
|
+
msg = f"Dataset '{self.metadata.name}' is superseded by '{self.superseded_by}'. We recommend using the newer version of the dataset unless you are running a specific benchmark. See `get_task('{self.superseded_by}').metadata.description` to get a description of the task and changes."
|
|
107
|
+
logger.warning(msg)
|
|
108
|
+
warnings.warn(msg)
|
|
108
109
|
|
|
109
110
|
def dataset_transform(self):
|
|
110
111
|
"""A transform operations applied to the dataset after loading.
|
|
@@ -607,9 +608,8 @@ class AbsTask(ABC):
|
|
|
607
608
|
self.data_loaded = False
|
|
608
609
|
logger.info(f"Unloaded dataset {self.metadata.name} from memory.")
|
|
609
610
|
else:
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
)
|
|
611
|
+
msg = f"Dataset `{self.metadata.name}` is not loaded, cannot unload it."
|
|
612
|
+
logger.warning(msg)
|
|
613
613
|
|
|
614
614
|
@property
|
|
615
615
|
def superseded_by(self) -> str | None:
|
mteb/abstasks/aggregated_task.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
import warnings
|
|
2
3
|
from pathlib import Path
|
|
3
4
|
from typing import Any
|
|
4
5
|
|
|
@@ -113,20 +114,13 @@ class AbsTaskAggregate(AbsTask):
|
|
|
113
114
|
)
|
|
114
115
|
mteb_versions = {tr.mteb_version for tr in task_results}
|
|
115
116
|
if len(mteb_versions) != 1:
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
)
|
|
117
|
+
msg = f"All tasks of {self.metadata.name} is not run using the same version. different versions found are: {mteb_versions}"
|
|
118
|
+
logger.warning(msg)
|
|
119
|
+
warnings.warn(msg)
|
|
119
120
|
task_res.mteb_version = None
|
|
120
121
|
task_res.mteb_version = task_results[0].mteb_version
|
|
121
122
|
return task_res
|
|
122
123
|
|
|
123
|
-
def check_if_dataset_is_superseded(self) -> None:
|
|
124
|
-
"""Check if the dataset is superseded by a newer version"""
|
|
125
|
-
if self.superseded_by:
|
|
126
|
-
logger.warning(
|
|
127
|
-
f"Dataset '{self.metadata.name}' is superseded by '{self.superseded_by}', you might consider using the newer version of the dataset."
|
|
128
|
-
)
|
|
129
|
-
|
|
130
124
|
def filter_eval_splits(self, eval_splits: list[str] | None) -> Self:
|
|
131
125
|
"""Filter the evaluation splits of the task.
|
|
132
126
|
|
mteb/abstasks/task_metadata.py
CHANGED
|
@@ -376,9 +376,8 @@ class TaskMetadata(BaseModel):
|
|
|
376
376
|
if include_cite and cite:
|
|
377
377
|
# check for whitespace in the citation
|
|
378
378
|
if " " in cite:
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
)
|
|
379
|
+
msg = "Citation contains whitespace. Please ensure that the citation is correctly formatted."
|
|
380
|
+
logger.warning(msg)
|
|
382
381
|
return f"\\cite{{{cite}}}"
|
|
383
382
|
return cite
|
|
384
383
|
|
mteb/cache.py
CHANGED
|
@@ -3,6 +3,7 @@ import logging
|
|
|
3
3
|
import os
|
|
4
4
|
import shutil
|
|
5
5
|
import subprocess
|
|
6
|
+
import warnings
|
|
6
7
|
from collections import defaultdict
|
|
7
8
|
from collections.abc import Sequence
|
|
8
9
|
from pathlib import Path
|
|
@@ -83,9 +84,9 @@ class ResultCache:
|
|
|
83
84
|
model_path = results_folder / model_name
|
|
84
85
|
|
|
85
86
|
if model_revision is None:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
)
|
|
87
|
+
msg = "`model_revision` is not specified, attempting to load the latest revision. To disable this behavior, specify the 'model_revision` explicitly."
|
|
88
|
+
logger.warning(msg)
|
|
89
|
+
warnings.warn(msg)
|
|
89
90
|
# get revs from paths
|
|
90
91
|
revisions = [p for p in model_path.glob("*") if p.is_dir()]
|
|
91
92
|
if not revisions:
|
|
@@ -281,7 +282,9 @@ class ResultCache:
|
|
|
281
282
|
shutil.rmtree(self.cache_path)
|
|
282
283
|
logger.info(f"Cache directory {self.cache_path} cleared.")
|
|
283
284
|
else:
|
|
284
|
-
|
|
285
|
+
msg = f"Cache directory `{self.cache_path}` does not exist."
|
|
286
|
+
logger.warning(msg)
|
|
287
|
+
warnings.warn(msg)
|
|
285
288
|
|
|
286
289
|
def __repr__(self) -> str:
|
|
287
290
|
return f"ResultCache(cache_path={self.cache_path})"
|
mteb/cli/build_cli.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import argparse
|
|
2
2
|
import logging
|
|
3
3
|
import os
|
|
4
|
+
import warnings
|
|
4
5
|
from pathlib import Path
|
|
5
6
|
|
|
6
7
|
import torch
|
|
@@ -69,15 +70,17 @@ def run(args: argparse.Namespace) -> None:
|
|
|
69
70
|
|
|
70
71
|
overwrite_strategy = args.overwrite_strategy
|
|
71
72
|
if args.overwrite:
|
|
72
|
-
|
|
73
|
-
"`--overwrite` is deprecated, please use `--overwrite-strategy 'always'` instead."
|
|
73
|
+
warnings.warn(
|
|
74
|
+
"`--overwrite` is deprecated, please use `--overwrite-strategy 'always'` instead.",
|
|
75
|
+
DeprecationWarning,
|
|
74
76
|
)
|
|
75
77
|
overwrite_strategy = OverwriteStrategy.ALWAYS.value
|
|
76
78
|
|
|
77
79
|
prediction_folder = args.prediction_folder
|
|
78
80
|
if args.save_predictions:
|
|
79
|
-
|
|
80
|
-
"`--save_predictions` is deprecated, please use `--prediction-folder` instead."
|
|
81
|
+
warnings.warn(
|
|
82
|
+
"`--save_predictions` is deprecated, please use `--prediction-folder` instead.",
|
|
83
|
+
DeprecationWarning,
|
|
81
84
|
)
|
|
82
85
|
prediction_folder = args.output_folder
|
|
83
86
|
|
|
@@ -279,7 +282,9 @@ def _create_meta(args: argparse.Namespace) -> None:
|
|
|
279
282
|
from_existing = Path(from_existing)
|
|
280
283
|
|
|
281
284
|
if output_path.exists() and overwrite:
|
|
282
|
-
|
|
285
|
+
msg = "Output path already exists, overwriting."
|
|
286
|
+
logger.warning(msg)
|
|
287
|
+
warnings.warn(msg)
|
|
283
288
|
elif output_path.exists():
|
|
284
289
|
raise FileExistsError(
|
|
285
290
|
"Output path already exists, use --overwrite to overwrite."
|
mteb/cli/generate_model_card.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
import warnings
|
|
2
3
|
from pathlib import Path
|
|
3
4
|
|
|
4
5
|
from huggingface_hub import ModelCard, ModelCardData, repo_exists
|
|
@@ -92,9 +93,9 @@ def generate_model_card(
|
|
|
92
93
|
if repo_exists(existing_model_card_id_or_path):
|
|
93
94
|
existing_model_card.push_to_hub(existing_model_card_id_or_path, token=token)
|
|
94
95
|
else:
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
)
|
|
96
|
+
msg = f"Repository {existing_model_card_id_or_path} does not exist on the Hub. Skipping push to hub."
|
|
97
|
+
logger.warning(msg)
|
|
98
|
+
warnings.warn(msg)
|
|
98
99
|
existing_model_card.save(output_path)
|
|
99
100
|
|
|
100
101
|
|
mteb/deprecated_evaluator.py
CHANGED
|
@@ -5,6 +5,7 @@ import logging
|
|
|
5
5
|
import os
|
|
6
6
|
import sys
|
|
7
7
|
import traceback
|
|
8
|
+
import warnings
|
|
8
9
|
from collections.abc import Iterable
|
|
9
10
|
from copy import deepcopy
|
|
10
11
|
from datetime import datetime
|
|
@@ -470,9 +471,9 @@ class MTEB:
|
|
|
470
471
|
raise ImportError(
|
|
471
472
|
"codecarbon is not installed. Please install it using `pip install 'mteb[codecarbon]'` to track CO₂ emissions."
|
|
472
473
|
)
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
)
|
|
474
|
+
msg = "Evaluating multiple MTEB runs simultaneously will produce incorrect CO₂ results"
|
|
475
|
+
logger.warning(msg)
|
|
476
|
+
warnings.warn(msg)
|
|
476
477
|
with EmissionsTracker(
|
|
477
478
|
save_to_file=False,
|
|
478
479
|
save_to_api=False,
|
mteb/evaluate.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
|
+
import warnings
|
|
4
5
|
from collections.abc import Iterable
|
|
5
6
|
from pathlib import Path
|
|
6
7
|
from time import time
|
|
@@ -136,10 +137,12 @@ def _evaluate_task(
|
|
|
136
137
|
task.load_data()
|
|
137
138
|
except DatasetNotFoundError as e:
|
|
138
139
|
if not task.metadata.is_public and public_only is None:
|
|
139
|
-
|
|
140
|
+
msg = (
|
|
140
141
|
f"Dataset for private task '{task.metadata.name}' not found. "
|
|
141
142
|
"Make sure you have access to the dataset and that you have set up the authentication correctly. To disable this warning set `public_only=False`"
|
|
142
143
|
)
|
|
144
|
+
logger.warning(msg)
|
|
145
|
+
warnings.warn(msg)
|
|
143
146
|
return TaskError(
|
|
144
147
|
task_name=task.metadata.name,
|
|
145
148
|
exception=str(e),
|
mteb/get_tasks.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import difflib
|
|
4
4
|
import logging
|
|
5
|
+
import warnings
|
|
5
6
|
from collections import Counter, defaultdict
|
|
6
7
|
from collections.abc import Sequence
|
|
7
8
|
from typing import Any
|
|
@@ -340,9 +341,9 @@ def get_task(
|
|
|
340
341
|
"""
|
|
341
342
|
if task_name in _TASK_RENAMES:
|
|
342
343
|
_task_name = _TASK_RENAMES[task_name]
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
)
|
|
344
|
+
msg = f"The task with the given name '{task_name}' has been renamed to '{_task_name}'. To prevent this warning use the new name."
|
|
345
|
+
logger.warning(msg)
|
|
346
|
+
warnings.warn(msg)
|
|
346
347
|
|
|
347
348
|
if task_name not in _TASKS_REGISTRY:
|
|
348
349
|
close_matches = difflib.get_close_matches(task_name, _TASKS_REGISTRY.keys())
|
mteb/models/abs_encoder.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
import warnings
|
|
2
3
|
from abc import ABC, abstractmethod
|
|
3
4
|
from collections.abc import Callable, Sequence
|
|
4
5
|
from typing import Any, Literal, cast, get_args, overload
|
|
@@ -187,6 +188,7 @@ class AbsEncoder(ABC):
|
|
|
187
188
|
except KeyError:
|
|
188
189
|
msg = f"Task name {task_name} is not valid. {valid_keys_msg}"
|
|
189
190
|
logger.warning(msg)
|
|
191
|
+
warnings.warn(msg)
|
|
190
192
|
invalid_task_messages.add(msg)
|
|
191
193
|
invalid_keys.add(task_key)
|
|
192
194
|
|
|
@@ -232,9 +234,9 @@ class AbsEncoder(ABC):
|
|
|
232
234
|
if isinstance(prompt, dict) and prompt_type:
|
|
233
235
|
if prompt.get(prompt_type.value):
|
|
234
236
|
return prompt[prompt_type.value]
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
)
|
|
237
|
+
msg = f"Prompt type '{prompt_type}' not found in task metadata for task '{task_metadata.name}'."
|
|
238
|
+
logger.warning(msg)
|
|
239
|
+
warnings.warn(msg)
|
|
238
240
|
return ""
|
|
239
241
|
|
|
240
242
|
if prompt:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
|
+
import warnings
|
|
3
4
|
from pathlib import Path
|
|
4
5
|
|
|
5
6
|
import numpy as np
|
|
@@ -71,7 +72,9 @@ class FaissCache:
|
|
|
71
72
|
try:
|
|
72
73
|
return self.index.reconstruct(idx)
|
|
73
74
|
except Exception:
|
|
74
|
-
|
|
75
|
+
msg = f"Vector id {idx} missing for hash {item_hash}"
|
|
76
|
+
logger.warning(msg)
|
|
77
|
+
warnings.warn(msg)
|
|
75
78
|
return None
|
|
76
79
|
|
|
77
80
|
def save(self) -> None:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
|
+
import warnings
|
|
3
4
|
from pathlib import Path
|
|
4
5
|
|
|
5
6
|
import numpy as np
|
|
@@ -41,9 +42,9 @@ class NumpyCache:
|
|
|
41
42
|
for item, vec in zip(item, vectors):
|
|
42
43
|
item_hash = _hash_item(item)
|
|
43
44
|
if item_hash in self.hash_to_index:
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
)
|
|
45
|
+
msg = f"Hash collision or duplicate item for hash {item_hash}. Overwriting existing vector."
|
|
46
|
+
logger.warning(msg)
|
|
47
|
+
warnings.warn(msg)
|
|
47
48
|
index = self.hash_to_index[item_hash]
|
|
48
49
|
else:
|
|
49
50
|
index = len(self.hash_to_index)
|
|
@@ -107,9 +108,9 @@ class NumpyCache:
|
|
|
107
108
|
f"Loaded vector dimension {self.vector_dim} from {self.dimension_file}"
|
|
108
109
|
)
|
|
109
110
|
else:
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
)
|
|
111
|
+
msg = "Dimension file not found. Vector dimension remains uninitialized."
|
|
112
|
+
logger.warning(msg)
|
|
113
|
+
warnings.warn(msg)
|
|
113
114
|
|
|
114
115
|
def save(self) -> None:
|
|
115
116
|
"""Persist VectorCacheMap to disk."""
|
|
@@ -151,14 +152,14 @@ class NumpyCache:
|
|
|
151
152
|
self.vectors = self.vectors.reshape(-1, self.vector_dim)
|
|
152
153
|
logger.info(f"Loaded vectors file with shape: {self.vectors.shape}")
|
|
153
154
|
else:
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
)
|
|
155
|
+
msg = "Vector dimension not set. Unable to load vectors file."
|
|
156
|
+
logger.warning(msg)
|
|
157
|
+
warnings.warn(msg)
|
|
157
158
|
logger.info(f"Loaded VectorCacheMap from {self.directory}")
|
|
158
159
|
else:
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
)
|
|
160
|
+
msg = "No existing files found. Initialized empty VectorCacheMap."
|
|
161
|
+
logger.warning(msg)
|
|
162
|
+
warnings.warn(msg)
|
|
162
163
|
except Exception as e:
|
|
163
164
|
logger.error(f"Error loading VectorCacheMap: {str(e)}")
|
|
164
165
|
raise
|
|
@@ -2,6 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
4
|
import math
|
|
5
|
+
import warnings
|
|
5
6
|
from typing import TYPE_CHECKING, Any
|
|
6
7
|
|
|
7
8
|
import torch
|
|
@@ -261,9 +262,9 @@ def smart_resize(
|
|
|
261
262
|
w_bar = ceil_by_factor(width * beta, factor)
|
|
262
263
|
|
|
263
264
|
if max(h_bar, w_bar) / min(h_bar, w_bar) > MAX_RATIO:
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
)
|
|
265
|
+
msg = f"Absolute aspect ratio must be smaller than {MAX_RATIO}, got {max(h_bar, w_bar) / min(h_bar, w_bar)}"
|
|
266
|
+
logger.warning(msg)
|
|
267
|
+
warnings.warn(msg)
|
|
267
268
|
if h_bar > w_bar:
|
|
268
269
|
h_bar = w_bar * MAX_RATIO
|
|
269
270
|
else:
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import os
|
|
3
3
|
import time
|
|
4
|
+
import warnings
|
|
4
5
|
from typing import Any
|
|
5
6
|
|
|
6
7
|
import numpy as np
|
|
@@ -246,7 +247,9 @@ class HakimModelWrapper(AbsEncoder):
|
|
|
246
247
|
task_prompt, task_id = DATASET_TASKS.get(task_name, (None, None))
|
|
247
248
|
|
|
248
249
|
if not task_prompt:
|
|
249
|
-
|
|
250
|
+
msg = f"Unknown dataset: {task_name}, no preprocessing applied."
|
|
251
|
+
logger.warning(msg)
|
|
252
|
+
warnings.warn(msg)
|
|
250
253
|
return sample
|
|
251
254
|
|
|
252
255
|
task_prompt = f"مسئله : {task_prompt}"
|
mteb/models/model_meta.py
CHANGED
|
@@ -511,7 +511,9 @@ class ModelMeta(BaseModel):
|
|
|
511
511
|
if adapted_training_datasets is not None:
|
|
512
512
|
training_datasets |= adapted_training_datasets
|
|
513
513
|
except (ValueError, KeyError) as e:
|
|
514
|
-
|
|
514
|
+
msg = f"Could not get source model: {e} in MTEB"
|
|
515
|
+
logger.warning(msg)
|
|
516
|
+
warnings.warn(msg)
|
|
515
517
|
|
|
516
518
|
return_dataset = training_datasets.copy()
|
|
517
519
|
visited = set()
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
import warnings
|
|
2
3
|
from collections.abc import Callable
|
|
3
4
|
|
|
4
5
|
import numpy as np
|
|
@@ -127,7 +128,9 @@ class FaissSearchIndex:
|
|
|
127
128
|
query_id = query_idx_to_id[query_idx]
|
|
128
129
|
ranked_ids = top_ranked.get(query_id)
|
|
129
130
|
if not ranked_ids:
|
|
130
|
-
|
|
131
|
+
msg = f"No top-ranked documents for query {query_id}"
|
|
132
|
+
logger.warning(msg)
|
|
133
|
+
warnings.warn(msg)
|
|
131
134
|
scores_all.append([])
|
|
132
135
|
idxs_all.append([])
|
|
133
136
|
continue
|
mteb/models/search_wrappers.py
CHANGED
|
@@ -340,7 +340,8 @@ class SearchEncoderWrapper:
|
|
|
340
340
|
for query_idx, query_embedding in enumerate(query_embeddings):
|
|
341
341
|
query_id = query_idx_to_id[query_idx]
|
|
342
342
|
if query_id not in top_ranked:
|
|
343
|
-
|
|
343
|
+
msg = f"No pre-ranked documents found for query {query_id}"
|
|
344
|
+
logger.warning(msg)
|
|
344
345
|
continue
|
|
345
346
|
|
|
346
347
|
ranked_ids = top_ranked[query_id]
|
|
@@ -511,7 +512,8 @@ class SearchCrossEncoderWrapper:
|
|
|
511
512
|
doc_pairs_ids: list[tuple[str, str]] = []
|
|
512
513
|
for query_id, corpus_ids in top_ranked.items():
|
|
513
514
|
if query_id not in top_ranked:
|
|
514
|
-
|
|
515
|
+
msg = f"No pre-ranked documents found for query {query_id}"
|
|
516
|
+
logger.warning(msg)
|
|
515
517
|
continue
|
|
516
518
|
|
|
517
519
|
query_idx = query_id_to_idx[query_id]
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
|
+
import warnings
|
|
4
5
|
from typing import TYPE_CHECKING, Any
|
|
5
6
|
|
|
6
7
|
import numpy as np
|
|
@@ -75,9 +76,9 @@ class SentenceTransformerEncoderWrapper(AbsEncoder):
|
|
|
75
76
|
if built_in_prompts and not model_prompts:
|
|
76
77
|
model_prompts = built_in_prompts
|
|
77
78
|
elif model_prompts and built_in_prompts:
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
)
|
|
79
|
+
msg = f"Model prompts specified, these will overwrite the default model prompts. Current prompts will be:\n {model_prompts}"
|
|
80
|
+
logger.warning(msg)
|
|
81
|
+
warnings.warn(msg)
|
|
81
82
|
self.model.prompts = model_prompts
|
|
82
83
|
|
|
83
84
|
self.model_prompts, invalid_prompts = self.validate_task_to_prompt_name(
|
|
@@ -86,9 +87,9 @@ class SentenceTransformerEncoderWrapper(AbsEncoder):
|
|
|
86
87
|
|
|
87
88
|
if invalid_prompts:
|
|
88
89
|
invalid_prompts = "\n".join(invalid_prompts)
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
)
|
|
90
|
+
msg = f"Some prompts are not in the expected format and will be ignored. Problems:\n\n{invalid_prompts}"
|
|
91
|
+
logger.warning(msg)
|
|
92
|
+
warnings.warn(msg)
|
|
92
93
|
|
|
93
94
|
if (
|
|
94
95
|
self.model_prompts
|
|
@@ -98,10 +99,9 @@ class SentenceTransformerEncoderWrapper(AbsEncoder):
|
|
|
98
99
|
or PromptType.document.value not in self.model_prompts
|
|
99
100
|
)
|
|
100
101
|
):
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
)
|
|
102
|
+
msg = f"SentenceTransformers that use prompts most often need to be configured with at least 'query' and 'document' prompts to ensure optimal performance. Received {self.model_prompts}"
|
|
103
|
+
logger.warning(msg)
|
|
104
|
+
warnings.warn(msg)
|
|
105
105
|
|
|
106
106
|
if hasattr(self.model, "similarity") and callable(self.model.similarity):
|
|
107
107
|
self.similarity = self.model.similarity
|
|
@@ -364,7 +364,9 @@ class BenchmarkResults(BaseModel):
|
|
|
364
364
|
scores_data.extend(model_result._get_score_for_table())
|
|
365
365
|
|
|
366
366
|
if not scores_data:
|
|
367
|
-
|
|
367
|
+
msg = "No scores data available. Returning empty DataFrame."
|
|
368
|
+
logger.warning(msg)
|
|
369
|
+
warnings.warn(msg)
|
|
368
370
|
return pd.DataFrame()
|
|
369
371
|
|
|
370
372
|
# Create DataFrame
|
mteb/results/model_result.py
CHANGED
|
@@ -292,7 +292,9 @@ class ModelResult(BaseModel):
|
|
|
292
292
|
scores_data = self._get_score_for_table()
|
|
293
293
|
|
|
294
294
|
if not scores_data:
|
|
295
|
-
|
|
295
|
+
msg = "No scores data available. Returning empty DataFrame."
|
|
296
|
+
logger.warning(msg)
|
|
297
|
+
warnings.warn(msg)
|
|
296
298
|
return pd.DataFrame()
|
|
297
299
|
|
|
298
300
|
# Create DataFrame
|
mteb/results/task_result.py
CHANGED
|
@@ -2,6 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import json
|
|
4
4
|
import logging
|
|
5
|
+
import warnings
|
|
5
6
|
from argparse import Namespace
|
|
6
7
|
from collections import defaultdict
|
|
7
8
|
from collections.abc import Callable, Iterable
|
|
@@ -462,7 +463,9 @@ class TaskResult(BaseModel):
|
|
|
462
463
|
if main_score in hf_subset_scores:
|
|
463
464
|
hf_subset_scores["main_score"] = hf_subset_scores[main_score]
|
|
464
465
|
else:
|
|
465
|
-
|
|
466
|
+
msg = f"Main score {main_score} not found in scores"
|
|
467
|
+
logger.warning(msg)
|
|
468
|
+
warnings.warn(msg)
|
|
466
469
|
hf_subset_scores["main_score"] = None
|
|
467
470
|
|
|
468
471
|
# specific fixes:
|
|
@@ -658,14 +661,14 @@ class TaskResult(BaseModel):
|
|
|
658
661
|
else:
|
|
659
662
|
missing_subsets_str = str(missing_subsets)
|
|
660
663
|
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
)
|
|
664
|
+
msg = f"{task.metadata.name}: Missing subsets {missing_subsets_str} for split {split}"
|
|
665
|
+
logger.warning(msg)
|
|
666
|
+
warnings.warn(msg)
|
|
664
667
|
seen_splits.add(split)
|
|
665
668
|
if seen_splits != set(splits):
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
)
|
|
669
|
+
msg = f"{task.metadata.name}: Missing splits {set(splits) - seen_splits}"
|
|
670
|
+
logger.warning(msg)
|
|
671
|
+
warnings.warn(msg)
|
|
669
672
|
data = self.model_dump()
|
|
670
673
|
data["scores"] = new_scores
|
|
671
674
|
return type(self).model_construct(**data)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mteb
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.3
|
|
4
4
|
Summary: Massive Text Embedding Benchmark
|
|
5
5
|
Author-email: MTEB Contributors <niklas@huggingface.co>, Kenneth Enevoldsen <kenneth.enevoldsen@cas.au.dk>, Nouamane Tazi <nouamane@huggingface.co>, Nils Reimers <info@nils-reimers.de>
|
|
6
6
|
Maintainer-email: Kenneth Enevoldsen <kenneth.enevoldsen@cas.au.dk>, Roman Solomatin <risolomatin@gmail.com>, Isaac Chung <chungisaac1217@gmail.com>
|
|
@@ -5,11 +5,11 @@ mteb/_helpful_enum.py,sha256=jh73N1jlcpg7RGz4bj8UpctiMNvqvHpp9wrB7SYEzIU,510
|
|
|
5
5
|
mteb/_log_once.py,sha256=-tUKzxGQzf2LZSuQXi97oYFXMta1B6GEYXd7BPqssvY,1095
|
|
6
6
|
mteb/_requires_package.py,sha256=eHg_TD9BVZRzNCcQQrUP17d8M1DF_vOd_tVx54AmAnM,3017
|
|
7
7
|
mteb/_set_seed.py,sha256=HPlPRl__Pe6IG-4UgJqTfplcivJ_wA2kaClbXoHQedM,1178
|
|
8
|
-
mteb/cache.py,sha256=
|
|
9
|
-
mteb/deprecated_evaluator.py,sha256=
|
|
10
|
-
mteb/evaluate.py,sha256=
|
|
8
|
+
mteb/cache.py,sha256=y_FJ-tcjmAs-2OIow8-5UqTbXJR4HaPZ_YEjhsB8OxY,21338
|
|
9
|
+
mteb/deprecated_evaluator.py,sha256=IcM_Y1eR4h2DmvCOFuB7baBRGZZ7WRDNsov7ZmyM5Fc,26817
|
|
10
|
+
mteb/evaluate.py,sha256=o2_aJ03CKXxky9rIWfjxeKGl5KDTRHa5SJIgsHHZU94,18710
|
|
11
11
|
mteb/filter_tasks.py,sha256=5XE1OYmgDDoJYnXwFf4ma_PIT_Lekzs420sQF_kpCiY,7240
|
|
12
|
-
mteb/get_tasks.py,sha256=
|
|
12
|
+
mteb/get_tasks.py,sha256=q-J2CfZX39rVAyTDAlKLegKd3CLpVYl0hsF5ZtPFil0,14257
|
|
13
13
|
mteb/load_results.py,sha256=Xw2ZX7BToU92WwUTQUQKPAgPhX7ucyRRdoCrxAoPHdI,6414
|
|
14
14
|
mteb/similarity_functions.py,sha256=ySSnrKl4cSKOWfyIKQPVTJtxuy2ZNfcv0COXDp22QlQ,10630
|
|
15
15
|
mteb/_evaluators/__init__.py,sha256=Ag1_RWpxBGMpujzd3FZjI40gY_KQKIpY31tJPuk-hFg,1013
|
|
@@ -31,9 +31,9 @@ mteb/_evaluators/text/summarization_evaluator.py,sha256=l0AwjVO594mtzPV9Kcqf_xtH
|
|
|
31
31
|
mteb/abstasks/__init__.py,sha256=1iAwpYTWX7U-goak2KMmacPFCzxPchLQAmZ_uI0t-p0,1130
|
|
32
32
|
mteb/abstasks/_statistics_calculation.py,sha256=UP2H2Cy8yqwtqeimTWfe4unmZ4iyyr5qiBNZzzFjy9o,5669
|
|
33
33
|
mteb/abstasks/_stratification.py,sha256=zfwkIVmD7Aq7mR2Yt8jTeW1j5ZVV7CIweW842VzcfXc,14364
|
|
34
|
-
mteb/abstasks/abstask.py,sha256=
|
|
34
|
+
mteb/abstasks/abstask.py,sha256=d6k6lMXdUkUJSgO_OhVKEa54gnAGjJ2p2DZp3eBuzZ0,25295
|
|
35
35
|
mteb/abstasks/aggregate_task_metadata.py,sha256=vzt1z2wDl0sXD7ErZFwKojYwmFUBPAnGlXLuqLA_-6Q,5992
|
|
36
|
-
mteb/abstasks/aggregated_task.py,sha256=
|
|
36
|
+
mteb/abstasks/aggregated_task.py,sha256=ognE64TIQ7ljahSsT_ezDt5a9A2R2tCYe3ET0c0EXSE,6410
|
|
37
37
|
mteb/abstasks/classification.py,sha256=k_wrM1rq2XcVEK97RpU_uEcqhiWWbV7sm3B0dtvP5yY,13376
|
|
38
38
|
mteb/abstasks/clustering.py,sha256=4KcaU8_sNLmLvMhwDpNmcY2nD3BNyx_LcM-ddSv-wtY,14410
|
|
39
39
|
mteb/abstasks/clustering_legacy.py,sha256=zkibXenniqmSfFr8B8KvGGLoALkuxNZo_vJkeu_7GWQ,8803
|
|
@@ -44,7 +44,7 @@ mteb/abstasks/regression.py,sha256=SeacOErZUXGLGOcwqAvht6BlbD8fcsn9QhNiFIuJGyc,8
|
|
|
44
44
|
mteb/abstasks/retrieval.py,sha256=7QTKYlGaGvF1lOQkB_B4qj8Vm2FxxFXNVTHhfwZO8Bw,26439
|
|
45
45
|
mteb/abstasks/retrieval_dataset_loaders.py,sha256=WukcFAn54rUpXULCG43eysHozXHAxo2CaPhQyL_2Yg8,9401
|
|
46
46
|
mteb/abstasks/sts.py,sha256=aKTivjvDtAaoYb1hz1NBv2o3UpDR-3AaeHgkDFHMBGI,9077
|
|
47
|
-
mteb/abstasks/task_metadata.py,sha256=
|
|
47
|
+
mteb/abstasks/task_metadata.py,sha256=UYn8IZaz6qp2MDSupfLsvCuhvVnXGok23GvMTwqzyIs,26880
|
|
48
48
|
mteb/abstasks/zeroshot_classification.py,sha256=4UxBIZ1e1iRK8PRAhCWnnSDirK2vi5-w2N5ZomCnaIM,5882
|
|
49
49
|
mteb/abstasks/_data_filter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
50
|
mteb/abstasks/_data_filter/filters.py,sha256=p1QLy7V9jYVFicef61fwzCpbSpTA6rOv8CxkwEUTMvc,4585
|
|
@@ -64,8 +64,8 @@ mteb/benchmarks/benchmarks/benchmarks.py,sha256=_8zds06sQj41JzR6BHGWk33DZE2VGvab
|
|
|
64
64
|
mteb/benchmarks/benchmarks/rteb_benchmarks.py,sha256=QnCSrTTaBfcRlAQp2Nu81tgv1idMXqiM16Fp2zKJ5Ys,10607
|
|
65
65
|
mteb/cli/__init__.py,sha256=v-csUr3eUZElIvrGB6QGtaIdndDfNWEe9oZchsGsJpg,64
|
|
66
66
|
mteb/cli/_display_tasks.py,sha256=7A06dT9sSoTz6shyMvskPxuc5eHY_H7PGPlROzMP0yw,2196
|
|
67
|
-
mteb/cli/build_cli.py,sha256=
|
|
68
|
-
mteb/cli/generate_model_card.py,sha256=
|
|
67
|
+
mteb/cli/build_cli.py,sha256=aZ3XWkH-2NH25vjYUDnJY1Q558RxCzmHYCJ8nYTPlDo,12533
|
|
68
|
+
mteb/cli/generate_model_card.py,sha256=34w3E0betglTs60LBlRlNsOJxJnyq0SNRMlXz-c96m8,4092
|
|
69
69
|
mteb/descriptive_stats/BitextMining/BUCC.json,sha256=7zXoJaZacNdqMSG60jPZGIDJ1is_bxbVlcrVyImPRxw,3745
|
|
70
70
|
mteb/descriptive_stats/BitextMining/BUCC.v2.json,sha256=IRPOKaIaUD31okNe12nQV2E1JeYK_Fo25Tz7d-utATM,3716
|
|
71
71
|
mteb/descriptive_stats/BitextMining/BibleNLPBitextMining.json,sha256=BxzjiVoeXrSKaeBIVytLKMf2yx_6ksZ4GddPtTU8MWY,1248649
|
|
@@ -1444,20 +1444,20 @@ mteb/leaderboard/figures.py,sha256=cfOK82rRf-7sCjyP7GBxh4ezhOIt0OhD0_86mKtzLrg,7
|
|
|
1444
1444
|
mteb/leaderboard/table.py,sha256=KqU8aAbZ_tDp1O_qXRGWR32QnB7v_lsF6k5jxLcQVN0,10366
|
|
1445
1445
|
mteb/leaderboard/text_segments.py,sha256=iMIkS04QQjPbT-SkU0x6fOcS8xRbUYevryu9HydipKM,6570
|
|
1446
1446
|
mteb/models/__init__.py,sha256=ABTuoqiBjBtBWW3LYY7ItBHdylR6jWoy06HH0g6j6fU,910
|
|
1447
|
-
mteb/models/abs_encoder.py,sha256=
|
|
1447
|
+
mteb/models/abs_encoder.py,sha256=zboYqEnpYTwyluTPTTbGV1yVqbYBuH_yExhY1ZxYmfo,16521
|
|
1448
1448
|
mteb/models/get_model_meta.py,sha256=BMzlqTuzzhIFmfzmtshnRu2KCWxw9mCPyClJfe4oGdQ,5396
|
|
1449
1449
|
mteb/models/instruct_wrapper.py,sha256=G4dMcmD5A4M3hmKATf5OYezmZv8-Ie189BrdmipBo7Y,9091
|
|
1450
|
-
mteb/models/model_meta.py,sha256=
|
|
1450
|
+
mteb/models/model_meta.py,sha256=c2N4e5lWqX1ofEmHyFhbqxOK_tAHvW5Fcv6ekzpFsXw,29801
|
|
1451
1451
|
mteb/models/models_protocols.py,sha256=D2hYWn_UBGMaKtRwBx3u0B0ni6lHJjSzTxX21XFNwIc,8917
|
|
1452
|
-
mteb/models/search_wrappers.py,sha256=
|
|
1453
|
-
mteb/models/sentence_transformer_wrapper.py,sha256=
|
|
1452
|
+
mteb/models/search_wrappers.py,sha256=Vlg1iEYWrzRv7TElxwizOYP3mB95pUrTCMJBeuvENnI,20383
|
|
1453
|
+
mteb/models/sentence_transformer_wrapper.py,sha256=8zMPeO78kc3rccjPYFpOnk6npdEPPZIvitQxd1XUu8U,12210
|
|
1454
1454
|
mteb/models/cache_wrappers/__init__.py,sha256=1w1TnMwulWJSzNkLXjbh5MY3sqgHWc6vUntYn49i9X8,169
|
|
1455
1455
|
mteb/models/cache_wrappers/cache_backend_protocol.py,sha256=TR7kD7KbN1J4piszIecpegtLZYGy7sRHZt3SDWlImKk,1665
|
|
1456
1456
|
mteb/models/cache_wrappers/cache_wrapper.py,sha256=KLDeOCe_ndQshbZa5ep2u3jovsl--tfpQzvt9EXyxCA,6589
|
|
1457
1457
|
mteb/models/cache_wrappers/cache_backends/__init__.py,sha256=hN2Tq7cpTxoOYSCJ1Wnpvb8dEm-kQLfCCahT1N9Bacw,123
|
|
1458
1458
|
mteb/models/cache_wrappers/cache_backends/_hash_utils.py,sha256=zAp7BDuYyGETn2kX58uk8_tn1G2B7bgcsItDDxgyn-w,488
|
|
1459
|
-
mteb/models/cache_wrappers/cache_backends/faiss_cache.py,sha256=
|
|
1460
|
-
mteb/models/cache_wrappers/cache_backends/numpy_cache.py,sha256=
|
|
1459
|
+
mteb/models/cache_wrappers/cache_backends/faiss_cache.py,sha256=WWDSvXgClQr6XqzJ6sIfiHOwbyfBErjNoeZ9VMzphNw,3803
|
|
1460
|
+
mteb/models/cache_wrappers/cache_backends/numpy_cache.py,sha256=K3iKuOI7Cq3jB4gmm7hqJqcQtdYDssDxLcA4OXaxVlU,7572
|
|
1461
1461
|
mteb/models/model_implementations/__init__.py,sha256=BZDdde6ajKv-yroy9mqE2YS3Hw1KBdKoxBPg8aPTZEs,1164
|
|
1462
1462
|
mteb/models/model_implementations/align_models.py,sha256=hKnheWaRqpAcPo1SJa_c2vBbB1ayrKjWmSjbZ5bwGAw,4544
|
|
1463
1463
|
mteb/models/model_implementations/amazon_models.py,sha256=a9bLYQ1ZGWDo4RdyaPNsBqadMrBm550fLIFr1Zfp2Nk,720
|
|
@@ -1496,7 +1496,7 @@ mteb/models/model_implementations/evaclip_models.py,sha256=oEoHnKQ4W09EQUCnNwpEd
|
|
|
1496
1496
|
mteb/models/model_implementations/fa_models.py,sha256=Hnw2E2D1ahleS15kkC0aGDIKW1Y-0wIMOlXtqEG6Bks,9818
|
|
1497
1497
|
mteb/models/model_implementations/facebookai.py,sha256=0x2c8LmvIFg6kGXtmDa9cbJeTmG3tia12vyr7lgycI0,4886
|
|
1498
1498
|
mteb/models/model_implementations/geogpt_models.py,sha256=X85_jeFzBZMjNRsyqwFbIQBgXXP7rZAr5PI-wbuy828,1949
|
|
1499
|
-
mteb/models/model_implementations/gme_v_models.py,sha256=
|
|
1499
|
+
mteb/models/model_implementations/gme_v_models.py,sha256=c5OAMnMsNamnjrSiOR9nAav7hXYLUWbe7mEksPJvL48,13748
|
|
1500
1500
|
mteb/models/model_implementations/google_models.py,sha256=lEpk1pOkp30kg6xljw8Gtkf-QGXAe8oJVp7JZhzWlik,11143
|
|
1501
1501
|
mteb/models/model_implementations/granite_vision_embedding_models.py,sha256=A9yWcQezu_2yVxSm3pv0Da76Hl_uNUfrDVtPK1uqYFo,7341
|
|
1502
1502
|
mteb/models/model_implementations/gritlm_models.py,sha256=FKz9AHPaelomNMZP282F5vwsMjEBV3C2IuL3XTxXKCA,3057
|
|
@@ -1519,7 +1519,7 @@ mteb/models/model_implementations/linq_models.py,sha256=huy7c95uYmhmjf6VZtx30YtM
|
|
|
1519
1519
|
mteb/models/model_implementations/listconranker.py,sha256=EwUAvWefDmx4x_YCIJRVsKI3j3konQIHOiJ4paG2lvY,4492
|
|
1520
1520
|
mteb/models/model_implementations/llm2clip_models.py,sha256=BatYnh6y1w0zF24Fsp1z30kqmXf3FAKeq6_MEKdzEF8,9343
|
|
1521
1521
|
mteb/models/model_implementations/llm2vec_models.py,sha256=0I_UydxopC41lKWcIpCMaKADXcFVUfPwKwk0vZFG2zY,12846
|
|
1522
|
-
mteb/models/model_implementations/mcinext_models.py,sha256=
|
|
1522
|
+
mteb/models/model_implementations/mcinext_models.py,sha256=h-X9og2Cjj8DarHkaLOfqlIHpeCGnJZv0EuwYG61uzY,19127
|
|
1523
1523
|
mteb/models/model_implementations/mdbr_models.py,sha256=knDaM_j_kL9uq1Ng5s6InsTEZ-Cu0jBux8zmrbDnrig,2561
|
|
1524
1524
|
mteb/models/model_implementations/misc_models.py,sha256=djB2ySEBiCvxwWGZUXIwzeH9eaXtlqV7ttQEDUFlKQQ,70754
|
|
1525
1525
|
mteb/models/model_implementations/mme5_models.py,sha256=Fuge1fqGbaWqw-Hbd75Xr31JTqJTL45yJ4DAw3QJuyE,1510
|
|
@@ -1587,11 +1587,11 @@ mteb/models/model_implementations/yuan_models_en.py,sha256=xliuxqPPiCPLdEDhs8OsB
|
|
|
1587
1587
|
mteb/models/search_encoder_index/__init__.py,sha256=3QFacIuFyEiI7ocsSkb3Lp2S2L7MLkpHCMIJ201fowA,182
|
|
1588
1588
|
mteb/models/search_encoder_index/search_backend_protocol.py,sha256=TSjlx88stJcMldbAeVqNCf8JsQvE-B5rf5SBRw90isY,1890
|
|
1589
1589
|
mteb/models/search_encoder_index/search_indexes/__init__.py,sha256=Wm60_oUemUpFsvrCMW111dcPH2L2rt1iZrXMskXmG7o,88
|
|
1590
|
-
mteb/models/search_encoder_index/search_indexes/faiss_search_index.py,sha256=
|
|
1590
|
+
mteb/models/search_encoder_index/search_indexes/faiss_search_index.py,sha256=wl7pBU-zyjX3H1Tc93a6N5nKLBnRijWyb2CUEgKt0VI,5632
|
|
1591
1591
|
mteb/results/__init__.py,sha256=EXQqK4Am5eIYzD52dpcGAFSdqnC38oE6JHN302oidHc,158
|
|
1592
|
-
mteb/results/benchmark_results.py,sha256=
|
|
1593
|
-
mteb/results/model_result.py,sha256=
|
|
1594
|
-
mteb/results/task_result.py,sha256=
|
|
1592
|
+
mteb/results/benchmark_results.py,sha256=whY2b9CYD8LJ4fzYfMfrvuYnDxJKZYW1Z0RBsMWq1ns,19899
|
|
1593
|
+
mteb/results/model_result.py,sha256=wY8Za1R4pumS0cq0ePJCNelFEs7LEIecZcBJ59vyQxU,14112
|
|
1594
|
+
mteb/results/task_result.py,sha256=GB1YTi_N9OXuzL4VRckaR5twz7F78UDLPbdqGWv8Z2Y,32478
|
|
1595
1595
|
mteb/tasks/__init__.py,sha256=izAxU0ip1F_YUwx0dFCuN35BaktdmePh6vlDiHC0kLo,503
|
|
1596
1596
|
mteb/tasks/aggregated_tasks/__init__.py,sha256=Ufgbh1AirxCQkojO3AUhUFWM8zQG10cfdVTkj_PeyLI,104
|
|
1597
1597
|
mteb/tasks/aggregated_tasks/eng/__init__.py,sha256=HgaSyAX8Is5CGE006RgJkLQQVxrx2FmMnm6NHQBDi-4,358
|
|
@@ -2602,9 +2602,9 @@ mteb/types/_metadata.py,sha256=NN-W0S6a5TDV7UkpRx1pyWtGF4TyyCyoPUfHOwdeci8,2290
|
|
|
2602
2602
|
mteb/types/_result.py,sha256=CRAUc5IvqI3_9SyXDwv-PWLCXwXdZem9RePeYESRtuw,996
|
|
2603
2603
|
mteb/types/_string_validators.py,sha256=PY-dYq4E8O50VS3bLYdldPWp400fl_WzUjfVSkNWe8U,523
|
|
2604
2604
|
mteb/types/statistics.py,sha256=YwJsxTf1eaCI_RE-J37a-gK5wDeGAsmkeZKoZCFihSo,3755
|
|
2605
|
-
mteb-2.5.
|
|
2606
|
-
mteb-2.5.
|
|
2607
|
-
mteb-2.5.
|
|
2608
|
-
mteb-2.5.
|
|
2609
|
-
mteb-2.5.
|
|
2610
|
-
mteb-2.5.
|
|
2605
|
+
mteb-2.5.3.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
2606
|
+
mteb-2.5.3.dist-info/METADATA,sha256=WNh8oN0eu2FuL94XKUX6qnIKcsfKGxJFdLCmbxWXoKU,13990
|
|
2607
|
+
mteb-2.5.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
2608
|
+
mteb-2.5.3.dist-info/entry_points.txt,sha256=8IJoEJFKoDHmVnNev-qJ9pp4Ln7_1-ma9QsXnzVCzGU,39
|
|
2609
|
+
mteb-2.5.3.dist-info/top_level.txt,sha256=OLVIjcQAlWBz0bdmutKlWHLF42FF0hp4uVAg3ZyiG4U,5
|
|
2610
|
+
mteb-2.5.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|