mteb 2.7.2__py3-none-any.whl → 2.7.4__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.
Files changed (238) hide show
  1. mteb/_create_dataloaders.py +16 -9
  2. mteb/_evaluators/any_sts_evaluator.py +10 -5
  3. mteb/_evaluators/clustering_evaluator.py +10 -4
  4. mteb/_evaluators/evaluator.py +9 -4
  5. mteb/_evaluators/image/imagetext_pairclassification_evaluator.py +6 -4
  6. mteb/_evaluators/pair_classification_evaluator.py +10 -5
  7. mteb/_evaluators/retrieval_evaluator.py +19 -13
  8. mteb/_evaluators/retrieval_metrics.py +9 -3
  9. mteb/_evaluators/sklearn_evaluator.py +14 -10
  10. mteb/_evaluators/text/bitext_mining_evaluator.py +8 -3
  11. mteb/_evaluators/text/summarization_evaluator.py +8 -4
  12. mteb/_evaluators/zeroshot_classification_evaluator.py +10 -3
  13. mteb/_helpful_enum.py +5 -1
  14. mteb/abstasks/_data_filter/filters.py +8 -2
  15. mteb/abstasks/_data_filter/task_pipelines.py +7 -2
  16. mteb/abstasks/_statistics_calculation.py +6 -4
  17. mteb/abstasks/abstask.py +17 -9
  18. mteb/abstasks/aggregate_task_metadata.py +20 -9
  19. mteb/abstasks/aggregated_task.py +15 -8
  20. mteb/abstasks/classification.py +15 -6
  21. mteb/abstasks/clustering.py +17 -8
  22. mteb/abstasks/clustering_legacy.py +14 -6
  23. mteb/abstasks/image/image_text_pair_classification.py +17 -7
  24. mteb/abstasks/multilabel_classification.py +11 -5
  25. mteb/abstasks/pair_classification.py +19 -9
  26. mteb/abstasks/regression.py +14 -6
  27. mteb/abstasks/retrieval.py +28 -17
  28. mteb/abstasks/retrieval_dataset_loaders.py +11 -8
  29. mteb/abstasks/sts.py +19 -10
  30. mteb/abstasks/task_metadata.py +17 -8
  31. mteb/abstasks/text/bitext_mining.py +14 -7
  32. mteb/abstasks/text/summarization.py +17 -7
  33. mteb/abstasks/zeroshot_classification.py +15 -7
  34. mteb/benchmarks/_create_table.py +13 -3
  35. mteb/benchmarks/benchmark.py +11 -1
  36. mteb/benchmarks/benchmarks/__init__.py +2 -0
  37. mteb/benchmarks/benchmarks/benchmarks.py +41 -2
  38. mteb/benchmarks/benchmarks/rteb_benchmarks.py +20 -9
  39. mteb/cache.py +10 -5
  40. mteb/cli/_display_tasks.py +9 -3
  41. mteb/cli/build_cli.py +5 -2
  42. mteb/cli/generate_model_card.py +9 -2
  43. mteb/deprecated_evaluator.py +16 -12
  44. mteb/descriptive_stats/Retrieval/BrightAopsRetrieval.json +35 -0
  45. mteb/descriptive_stats/Retrieval/BrightBiologyLongRetrieval.json +35 -0
  46. mteb/descriptive_stats/Retrieval/BrightBiologyRetrieval.json +35 -0
  47. mteb/descriptive_stats/Retrieval/BrightEarthScienceLongRetrieval.json +35 -0
  48. mteb/descriptive_stats/Retrieval/BrightEarthScienceRetrieval.json +35 -0
  49. mteb/descriptive_stats/Retrieval/BrightEconomicsLongRetrieval.json +35 -0
  50. mteb/descriptive_stats/Retrieval/BrightEconomicsRetrieval.json +35 -0
  51. mteb/descriptive_stats/Retrieval/BrightLeetcodeRetrieval.json +35 -0
  52. mteb/descriptive_stats/Retrieval/BrightPonyLongRetrieval.json +35 -0
  53. mteb/descriptive_stats/Retrieval/BrightPonyRetrieval.json +35 -0
  54. mteb/descriptive_stats/Retrieval/BrightPsychologyLongRetrieval.json +35 -0
  55. mteb/descriptive_stats/Retrieval/BrightPsychologyRetrieval.json +35 -0
  56. mteb/descriptive_stats/Retrieval/BrightRoboticsLongRetrieval.json +35 -0
  57. mteb/descriptive_stats/Retrieval/BrightRoboticsRetrieval.json +35 -0
  58. mteb/descriptive_stats/Retrieval/BrightStackoverflowLongRetrieval.json +35 -0
  59. mteb/descriptive_stats/Retrieval/BrightStackoverflowRetrieval.json +35 -0
  60. mteb/descriptive_stats/Retrieval/BrightSustainableLivingLongRetrieval.json +35 -0
  61. mteb/descriptive_stats/Retrieval/BrightSustainableLivingRetrieval.json +35 -0
  62. mteb/descriptive_stats/Retrieval/BrightTheoremQAQuestionsRetrieval.json +35 -0
  63. mteb/descriptive_stats/Retrieval/BrightTheoremQATheoremsRetrieval.json +35 -0
  64. mteb/evaluate.py +20 -18
  65. mteb/filter_tasks.py +12 -7
  66. mteb/get_tasks.py +9 -4
  67. mteb/languages/language_scripts.py +8 -3
  68. mteb/leaderboard/app.py +7 -3
  69. mteb/leaderboard/table.py +7 -2
  70. mteb/load_results.py +9 -3
  71. mteb/models/abs_encoder.py +22 -12
  72. mteb/models/cache_wrappers/cache_backend_protocol.py +5 -3
  73. mteb/models/cache_wrappers/cache_backends/_hash_utils.py +8 -4
  74. mteb/models/cache_wrappers/cache_backends/faiss_cache.py +8 -3
  75. mteb/models/cache_wrappers/cache_wrapper.py +14 -9
  76. mteb/models/get_model_meta.py +11 -4
  77. mteb/models/instruct_wrapper.py +13 -5
  78. mteb/models/model_implementations/align_models.py +10 -4
  79. mteb/models/model_implementations/amazon_models.py +1 -0
  80. mteb/models/model_implementations/andersborges.py +2 -0
  81. mteb/models/model_implementations/ara_models.py +1 -0
  82. mteb/models/model_implementations/arctic_models.py +8 -0
  83. mteb/models/model_implementations/b1ade_models.py +1 -0
  84. mteb/models/model_implementations/bedrock_models.py +20 -6
  85. mteb/models/model_implementations/bge_models.py +40 -1
  86. mteb/models/model_implementations/bica_model.py +1 -0
  87. mteb/models/model_implementations/blip2_models.py +11 -4
  88. mteb/models/model_implementations/blip_models.py +17 -4
  89. mteb/models/model_implementations/bm25.py +22 -14
  90. mteb/models/model_implementations/bmretriever_models.py +10 -2
  91. mteb/models/model_implementations/cadet_models.py +1 -0
  92. mteb/models/model_implementations/cde_models.py +11 -5
  93. mteb/models/model_implementations/clip_models.py +12 -4
  94. mteb/models/model_implementations/clips_models.py +3 -0
  95. mteb/models/model_implementations/codefuse_models.py +5 -0
  96. mteb/models/model_implementations/codesage_models.py +3 -0
  97. mteb/models/model_implementations/cohere_models.py +14 -4
  98. mteb/models/model_implementations/cohere_v.py +14 -4
  99. mteb/models/model_implementations/colpali_models.py +7 -3
  100. mteb/models/model_implementations/colqwen_models.py +17 -31
  101. mteb/models/model_implementations/colsmol_models.py +3 -1
  102. mteb/models/model_implementations/conan_models.py +11 -4
  103. mteb/models/model_implementations/dino_models.py +28 -4
  104. mteb/models/model_implementations/e5_instruct.py +4 -0
  105. mteb/models/model_implementations/e5_models.py +9 -0
  106. mteb/models/model_implementations/e5_v.py +10 -4
  107. mteb/models/model_implementations/eagerworks_models.py +11 -4
  108. mteb/models/model_implementations/emillykkejensen_models.py +3 -0
  109. mteb/models/model_implementations/en_code_retriever.py +1 -0
  110. mteb/models/model_implementations/euler_models.py +1 -0
  111. mteb/models/model_implementations/evaclip_models.py +13 -4
  112. mteb/models/model_implementations/fa_models.py +9 -0
  113. mteb/models/model_implementations/facebookai.py +2 -0
  114. mteb/models/model_implementations/geogpt_models.py +1 -0
  115. mteb/models/model_implementations/gme_v_models.py +7 -3
  116. mteb/models/model_implementations/google_models.py +15 -4
  117. mteb/models/model_implementations/granite_vision_embedding_models.py +7 -5
  118. mteb/models/model_implementations/gritlm_models.py +2 -0
  119. mteb/models/model_implementations/gte_models.py +9 -0
  120. mteb/models/model_implementations/hinvec_models.py +6 -1
  121. mteb/models/model_implementations/human.py +1 -0
  122. mteb/models/model_implementations/ibm_granite_models.py +6 -0
  123. mteb/models/model_implementations/inf_models.py +2 -0
  124. mteb/models/model_implementations/jasper_models.py +14 -5
  125. mteb/models/model_implementations/jina_clip.py +10 -4
  126. mteb/models/model_implementations/jina_models.py +17 -5
  127. mteb/models/model_implementations/kalm_models.py +24 -12
  128. mteb/models/model_implementations/kblab.py +1 -0
  129. mteb/models/model_implementations/kennethenevoldsen_models.py +2 -0
  130. mteb/models/model_implementations/kfst.py +1 -0
  131. mteb/models/model_implementations/kowshik24_models.py +1 -0
  132. mteb/models/model_implementations/lens_models.py +2 -0
  133. mteb/models/model_implementations/lgai_embedding_models.py +1 -0
  134. mteb/models/model_implementations/linq_models.py +7 -1
  135. mteb/models/model_implementations/listconranker.py +10 -4
  136. mteb/models/model_implementations/llm2clip_models.py +12 -4
  137. mteb/models/model_implementations/llm2vec_models.py +20 -6
  138. mteb/models/model_implementations/mcinext_models.py +8 -2
  139. mteb/models/model_implementations/mdbr_models.py +2 -0
  140. mteb/models/model_implementations/misc_models.py +63 -0
  141. mteb/models/model_implementations/mixedbread_ai_models.py +3 -0
  142. mteb/models/model_implementations/mme5_models.py +2 -1
  143. mteb/models/model_implementations/moco_models.py +11 -4
  144. mteb/models/model_implementations/mod_models.py +2 -1
  145. mteb/models/model_implementations/model2vec_models.py +23 -4
  146. mteb/models/model_implementations/moka_models.py +3 -0
  147. mteb/models/model_implementations/nbailab.py +3 -0
  148. mteb/models/model_implementations/no_instruct_sentence_models.py +13 -5
  149. mteb/models/model_implementations/nomic_models.py +16 -4
  150. mteb/models/model_implementations/nomic_models_vision.py +5 -3
  151. mteb/models/model_implementations/nvidia_llama_nemoretriever_colemb.py +9 -3
  152. mteb/models/model_implementations/nvidia_models.py +15 -4
  153. mteb/models/model_implementations/octen_models.py +3 -1
  154. mteb/models/model_implementations/openai_models.py +14 -4
  155. mteb/models/model_implementations/openclip_models.py +17 -4
  156. mteb/models/model_implementations/opensearch_neural_sparse_models.py +15 -4
  157. mteb/models/model_implementations/ops_moa_models.py +9 -2
  158. mteb/models/model_implementations/ordalietech_solon_embeddings_mini_beta_1_1.py +1 -0
  159. mteb/models/model_implementations/pawan_models.py +1 -0
  160. mteb/models/model_implementations/piccolo_models.py +2 -0
  161. mteb/models/model_implementations/promptriever_models.py +16 -6
  162. mteb/models/model_implementations/pylate_models.py +22 -13
  163. mteb/models/model_implementations/qodo_models.py +2 -0
  164. mteb/models/model_implementations/qtack_models.py +1 -0
  165. mteb/models/model_implementations/qwen3_models.py +11 -1
  166. mteb/models/model_implementations/qzhou_models.py +2 -0
  167. mteb/models/model_implementations/random_baseline.py +4 -3
  168. mteb/models/model_implementations/rasgaard_models.py +1 -0
  169. mteb/models/model_implementations/reasonir_model.py +65 -0
  170. mteb/models/model_implementations/repllama_models.py +15 -6
  171. mteb/models/model_implementations/rerankers_custom.py +13 -4
  172. mteb/models/model_implementations/rerankers_monot5_based.py +24 -4
  173. mteb/models/model_implementations/richinfoai_models.py +1 -0
  174. mteb/models/model_implementations/ru_sentence_models.py +20 -0
  175. mteb/models/model_implementations/ruri_models.py +10 -0
  176. mteb/models/model_implementations/salesforce_models.py +10 -1
  177. mteb/models/model_implementations/samilpwc_models.py +1 -0
  178. mteb/models/model_implementations/sarashina_embedding_models.py +2 -0
  179. mteb/models/model_implementations/searchmap_models.py +1 -0
  180. mteb/models/model_implementations/seed_1_6_embedding_models.py +5 -2
  181. mteb/models/model_implementations/seed_1_6_embedding_models_1215.py +6 -2
  182. mteb/models/model_implementations/seed_models.py +2 -1
  183. mteb/models/model_implementations/sentence_transformers_models.py +18 -0
  184. mteb/models/model_implementations/shuu_model.py +1 -0
  185. mteb/models/model_implementations/siglip_models.py +19 -4
  186. mteb/models/model_implementations/slm_models.py +7 -4
  187. mteb/models/model_implementations/sonar_models.py +2 -1
  188. mteb/models/model_implementations/spartan8806_atles_champion.py +1 -0
  189. mteb/models/model_implementations/stella_models.py +6 -0
  190. mteb/models/model_implementations/tarka_models.py +2 -0
  191. mteb/models/model_implementations/text2vec_models.py +3 -0
  192. mteb/models/model_implementations/ua_sentence_models.py +1 -0
  193. mteb/models/model_implementations/uae_models.py +10 -4
  194. mteb/models/model_implementations/vdr_models.py +8 -1
  195. mteb/models/model_implementations/vi_vn_models.py +6 -0
  196. mteb/models/model_implementations/vista_models.py +11 -4
  197. mteb/models/model_implementations/vlm2vec_models.py +11 -4
  198. mteb/models/model_implementations/voyage_models.py +25 -4
  199. mteb/models/model_implementations/voyage_v.py +11 -6
  200. mteb/models/model_implementations/xyz_models.py +1 -0
  201. mteb/models/model_implementations/youtu_models.py +1 -0
  202. mteb/models/model_implementations/yuan_models.py +1 -0
  203. mteb/models/model_implementations/yuan_models_en.py +2 -1
  204. mteb/models/model_meta.py +47 -9
  205. mteb/models/models_protocols.py +19 -18
  206. mteb/models/search_encoder_index/search_backend_protocol.py +7 -3
  207. mteb/models/search_encoder_index/search_indexes/faiss_search_index.py +12 -4
  208. mteb/models/search_wrappers.py +19 -12
  209. mteb/models/sentence_transformer_wrapper.py +4 -3
  210. mteb/models/vllm_wrapper.py +8 -6
  211. mteb/results/benchmark_results.py +22 -17
  212. mteb/results/model_result.py +21 -15
  213. mteb/results/task_result.py +15 -9
  214. mteb/similarity_functions.py +8 -2
  215. mteb/tasks/aggregated_tasks/eng/cqadupstack_retrieval.py +3 -3
  216. mteb/tasks/aggregated_tasks/eng/sts17_multilingual_visual_sts_eng.py +3 -3
  217. mteb/tasks/aggregated_tasks/eng/sts_benchmark_multilingual_visual_sts_eng.py +3 -3
  218. mteb/tasks/aggregated_tasks/fas/cqadupstack_retrieval_fa.py +3 -3
  219. mteb/tasks/aggregated_tasks/fas/syn_per_chatbot_conv_sa_classification.py +3 -3
  220. mteb/tasks/aggregated_tasks/multilingual/sts17_multilingual_vision_sts.py +3 -3
  221. mteb/tasks/aggregated_tasks/multilingual/sts_benchmark_multilingual_visual_sts.py +3 -3
  222. mteb/tasks/aggregated_tasks/nld/cqadupstack_nl_retrieval.py +3 -3
  223. mteb/tasks/aggregated_tasks/pol/cqadupstack_retrieval_pl.py +3 -3
  224. mteb/tasks/clustering/nob/snl_clustering.py +7 -2
  225. mteb/tasks/clustering/nob/vg_clustering.py +7 -2
  226. mteb/tasks/retrieval/eng/__init__.py +42 -0
  227. mteb/tasks/retrieval/eng/bright_retrieval.py +9 -1
  228. mteb/tasks/retrieval/eng/bright_v1_1_retrieval.py +968 -0
  229. mteb/tasks/retrieval/eng/limit_retrieval.py +6 -1
  230. mteb/tasks/retrieval/multilingual/ru_sci_bench_retrieval.py +3 -3
  231. mteb/types/_encoder_io.py +1 -1
  232. mteb/types/statistics.py +9 -2
  233. {mteb-2.7.2.dist-info → mteb-2.7.4.dist-info}/METADATA +1 -1
  234. {mteb-2.7.2.dist-info → mteb-2.7.4.dist-info}/RECORD +238 -217
  235. {mteb-2.7.2.dist-info → mteb-2.7.4.dist-info}/WHEEL +0 -0
  236. {mteb-2.7.2.dist-info → mteb-2.7.4.dist-info}/entry_points.txt +0 -0
  237. {mteb-2.7.2.dist-info → mteb-2.7.4.dist-info}/licenses/LICENSE +0 -0
  238. {mteb-2.7.2.dist-info → mteb-2.7.4.dist-info}/top_level.txt +0 -0
mteb/leaderboard/app.py CHANGED
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  import itertools
2
4
  import json
3
5
  import logging
@@ -5,15 +7,14 @@ import tempfile
5
7
  import time
6
8
  import warnings
7
9
  from pathlib import Path
8
- from typing import Literal, get_args
10
+ from typing import TYPE_CHECKING, Literal, get_args
9
11
  from urllib.parse import urlencode
10
12
 
11
13
  import cachetools
12
14
  import gradio as gr
13
- import pandas as pd
15
+ import pandas as pd # noqa: TC002 # gradio tries to validate typehints
14
16
 
15
17
  import mteb
16
- from mteb import BenchmarkResults
17
18
  from mteb.benchmarks.benchmark import RtebBenchmark
18
19
  from mteb.cache import ResultCache
19
20
  from mteb.leaderboard.benchmark_selector import (
@@ -31,6 +32,9 @@ from mteb.leaderboard.table import (
31
32
  from mteb.leaderboard.text_segments import ACKNOWLEDGEMENT, FAQ
32
33
  from mteb.models.model_meta import MODEL_TYPES
33
34
 
35
+ if TYPE_CHECKING:
36
+ from mteb import BenchmarkResults
37
+
34
38
  logger = logging.getLogger(__name__)
35
39
 
36
40
 
mteb/leaderboard/table.py CHANGED
@@ -1,3 +1,7 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
1
5
  import gradio as gr
2
6
  import matplotlib.pyplot as plt
3
7
  import numpy as np
@@ -5,8 +9,9 @@ import pandas as pd
5
9
  from matplotlib.colors import LinearSegmentedColormap
6
10
  from pandas.api.types import is_numeric_dtype
7
11
 
8
- from mteb.benchmarks.benchmark import Benchmark
9
- from mteb.results.benchmark_results import BenchmarkResults
12
+ if TYPE_CHECKING:
13
+ from mteb.benchmarks.benchmark import Benchmark
14
+ from mteb.results.benchmark_results import BenchmarkResults
10
15
 
11
16
 
12
17
  def _borda_count(scores: pd.Series) -> pd.Series:
mteb/load_results.py CHANGED
@@ -1,13 +1,19 @@
1
+ from __future__ import annotations
2
+
1
3
  import json
2
4
  import logging
3
5
  import sys
4
- from collections.abc import Iterable, Sequence
5
- from pathlib import Path
6
+ from typing import TYPE_CHECKING
6
7
 
7
8
  from mteb.abstasks.abstask import AbsTask
8
9
  from mteb.models.model_meta import ModelMeta
9
10
  from mteb.results import BenchmarkResults, ModelResult, TaskResult
10
- from mteb.types import ModelName, Revision
11
+
12
+ if TYPE_CHECKING:
13
+ from collections.abc import Iterable, Sequence
14
+ from pathlib import Path
15
+
16
+ from mteb.types import ModelName, Revision
11
17
 
12
18
  if sys.version_info >= (3, 13):
13
19
  from warnings import deprecated
@@ -1,14 +1,12 @@
1
+ from __future__ import annotations
2
+
1
3
  import logging
2
4
  import warnings
3
5
  from abc import ABC, abstractmethod
4
- from collections.abc import Callable, Sequence
5
- from typing import Any, Literal, cast, get_args, overload
6
-
7
- from torch.utils.data import DataLoader
8
- from typing_extensions import Unpack
6
+ from typing import TYPE_CHECKING, Any, Literal, cast, get_args, overload
9
7
 
10
8
  import mteb
11
- from mteb.abstasks.task_metadata import TaskMetadata, TaskType
9
+ from mteb.abstasks.task_metadata import TaskType
12
10
  from mteb.similarity_functions import (
13
11
  cos_sim,
14
12
  dot_score,
@@ -18,13 +16,25 @@ from mteb.similarity_functions import (
18
16
  pairwise_max_sim,
19
17
  )
20
18
  from mteb.types import (
21
- Array,
22
- BatchedInput,
23
- EncodeKwargs,
24
19
  PromptType,
25
20
  )
26
21
 
27
- from .model_meta import ModelMeta, ScoringFunction
22
+ from .model_meta import ScoringFunction
23
+
24
+ if TYPE_CHECKING:
25
+ from collections.abc import Callable, Sequence
26
+
27
+ from torch.utils.data import DataLoader
28
+ from typing_extensions import Unpack
29
+
30
+ from mteb.abstasks.task_metadata import TaskMetadata
31
+ from mteb.types import (
32
+ Array,
33
+ BatchedInput,
34
+ EncodeKwargs,
35
+ )
36
+
37
+ from .model_meta import ModelMeta
28
38
 
29
39
  logger = logging.getLogger(__name__)
30
40
 
@@ -314,7 +324,7 @@ class AbsEncoder(ABC):
314
324
  ):
315
325
  arr = self.model.similarity(embeddings1, embeddings2)
316
326
  # We assume that the model returns an Array-like object:
317
- arr = cast(Array, arr)
327
+ arr = cast("Array", arr)
318
328
  return arr
319
329
  return cos_sim(embeddings1, embeddings2)
320
330
  if self.mteb_model_meta.similarity_fn_name is ScoringFunction.COSINE:
@@ -352,7 +362,7 @@ class AbsEncoder(ABC):
352
362
  ):
353
363
  arr = self.model.similarity_pairwise(embeddings1, embeddings2)
354
364
  # We assume that the model returns an Array-like object:
355
- arr = cast(Array, arr)
365
+ arr = cast("Array", arr)
356
366
  return arr
357
367
  return pairwise_cos_sim(embeddings1, embeddings2)
358
368
  if self.mteb_model_meta.similarity_fn_name is ScoringFunction.COSINE:
@@ -1,9 +1,11 @@
1
1
  from __future__ import annotations
2
2
 
3
- from pathlib import Path
4
- from typing import Any, Protocol, runtime_checkable
3
+ from typing import TYPE_CHECKING, Any, Protocol, runtime_checkable
5
4
 
6
- import numpy as np
5
+ if TYPE_CHECKING:
6
+ from pathlib import Path
7
+
8
+ import numpy as np
7
9
 
8
10
 
9
11
  @runtime_checkable
@@ -1,6 +1,12 @@
1
+ from __future__ import annotations
2
+
1
3
  import hashlib
2
- from collections.abc import Mapping
3
- from typing import Any
4
+ from typing import TYPE_CHECKING, Any
5
+
6
+ if TYPE_CHECKING:
7
+ from collections.abc import Mapping
8
+
9
+ from PIL import Image
4
10
 
5
11
 
6
12
  def _hash_item(item: Mapping[str, Any]) -> str:
@@ -10,8 +16,6 @@ def _hash_item(item: Mapping[str, Any]) -> str:
10
16
  item_hash = hashlib.sha256(item_text.encode()).hexdigest()
11
17
 
12
18
  if "image" in item:
13
- from PIL import Image
14
-
15
19
  image: Image.Image = item["image"]
16
20
  item_hash += hashlib.sha256(image.tobytes()).hexdigest()
17
21
 
@@ -1,16 +1,22 @@
1
+ from __future__ import annotations
2
+
1
3
  import json
2
4
  import logging
3
5
  import warnings
4
6
  from pathlib import Path
5
- from typing import Any
7
+ from typing import TYPE_CHECKING, Any
6
8
 
7
9
  import numpy as np
8
10
 
9
11
  from mteb._requires_package import requires_package
10
- from mteb.types import BatchedInput
11
12
 
12
13
  from ._hash_utils import _hash_item
13
14
 
15
+ if TYPE_CHECKING:
16
+ import faiss
17
+
18
+ from mteb.types import BatchedInput
19
+
14
20
  logger = logging.getLogger(__name__)
15
21
 
16
22
 
@@ -24,7 +30,6 @@ class FaissCache:
24
30
  "FAISS-based vector cache",
25
31
  install_instruction="pip install mteb[faiss-cpu]",
26
32
  )
27
- import faiss
28
33
 
29
34
  self.directory = Path(directory)
30
35
  self.directory.mkdir(parents=True, exist_ok=True)
@@ -1,21 +1,26 @@
1
+ from __future__ import annotations
2
+
1
3
  import logging
2
4
  from pathlib import Path
3
- from typing import Any
5
+ from typing import TYPE_CHECKING, Any
4
6
 
5
7
  import numpy as np
6
8
  import torch
7
9
  from datasets import Dataset
8
- from torch.utils.data import DataLoader
9
10
 
10
11
  from mteb._create_dataloaders import create_dataloader
11
- from mteb.abstasks.task_metadata import TaskMetadata
12
- from mteb.models.cache_wrappers.cache_backend_protocol import (
13
- CacheBackendProtocol,
14
- )
15
12
  from mteb.models.cache_wrappers.cache_backends.numpy_cache import NumpyCache
16
- from mteb.models.model_meta import ModelMeta
17
- from mteb.models.models_protocols import EncoderProtocol
18
- from mteb.types import Array, BatchedInput, PromptType
13
+
14
+ if TYPE_CHECKING:
15
+ from torch.utils.data import DataLoader
16
+
17
+ from mteb.abstasks.task_metadata import TaskMetadata
18
+ from mteb.models.cache_wrappers.cache_backend_protocol import (
19
+ CacheBackendProtocol,
20
+ )
21
+ from mteb.models.model_meta import ModelMeta
22
+ from mteb.models.models_protocols import EncoderProtocol
23
+ from mteb.types import Array, BatchedInput, PromptType
19
24
 
20
25
  logger = logging.getLogger(__name__)
21
26
 
@@ -1,15 +1,22 @@
1
+ from __future__ import annotations
2
+
1
3
  import difflib
2
4
  import logging
3
- from collections.abc import Iterable
4
- from typing import Any
5
+ from typing import TYPE_CHECKING, Any
5
6
 
6
- from mteb.abstasks import AbsTask
7
7
  from mteb.models import (
8
8
  ModelMeta,
9
- MTEBModels,
10
9
  )
11
10
  from mteb.models.model_implementations import MODEL_REGISTRY
12
11
 
12
+ if TYPE_CHECKING:
13
+ from collections.abc import Iterable
14
+
15
+ from mteb.abstasks import AbsTask
16
+ from mteb.models import (
17
+ MTEBModels,
18
+ )
19
+
13
20
  logger = logging.getLogger(__name__)
14
21
 
15
22
 
@@ -1,16 +1,24 @@
1
+ from __future__ import annotations
2
+
1
3
  import logging
2
- from collections.abc import Callable
3
- from typing import Any
4
+ from typing import TYPE_CHECKING, Any
4
5
 
5
6
  import torch
6
- from torch.utils.data import DataLoader
7
7
 
8
8
  from mteb._requires_package import requires_package
9
- from mteb.abstasks.task_metadata import TaskMetadata
10
- from mteb.types import Array, BatchedInput, PromptType
9
+ from mteb.types import PromptType
11
10
 
12
11
  from .abs_encoder import AbsEncoder
13
12
 
13
+ if TYPE_CHECKING:
14
+ from collections.abc import Callable
15
+
16
+ from torch.utils.data import DataLoader
17
+
18
+ from mteb.abstasks.task_metadata import TaskMetadata
19
+ from mteb.types import Array, BatchedInput
20
+
21
+
14
22
  logger = logging.getLogger(__name__)
15
23
 
16
24
 
@@ -1,13 +1,18 @@
1
- from typing import Any
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Any
2
4
 
3
5
  import torch
4
- from torch.utils.data import DataLoader
5
6
  from tqdm.auto import tqdm
6
7
 
7
- from mteb.abstasks.task_metadata import TaskMetadata
8
8
  from mteb.models.abs_encoder import AbsEncoder
9
9
  from mteb.models.model_meta import ModelMeta, ScoringFunction
10
- from mteb.types import Array, BatchedInput, PromptType
10
+
11
+ if TYPE_CHECKING:
12
+ from torch.utils.data import DataLoader
13
+
14
+ from mteb.abstasks.task_metadata import TaskMetadata
15
+ from mteb.types import Array, BatchedInput, PromptType
11
16
 
12
17
 
13
18
  class ALIGNModel(AbsEncoder):
@@ -111,6 +116,7 @@ align_base = ModelMeta(
111
116
  release_date="2023-02-24",
112
117
  modalities=["image", "text"],
113
118
  n_parameters=176_000_000,
119
+ n_embedding_parameters=None,
114
120
  memory_usage_mb=671,
115
121
  max_tokens=64,
116
122
  embed_dim=768,
@@ -8,6 +8,7 @@ amazon_titan_text_embeddings_v2 = ModelMeta(
8
8
  release_date="2024-04-30",
9
9
  languages=["eng-Latn"],
10
10
  n_parameters=None,
11
+ n_embedding_parameters=None,
11
12
  memory_usage_mb=None,
12
13
  max_tokens=None,
13
14
  embed_dim=None,
@@ -12,6 +12,7 @@ model2vecdk = ModelMeta(
12
12
  revision="cb576c78dcc1b729e4612645f61db59929d69e61",
13
13
  release_date="2025-11-21",
14
14
  n_parameters=48042496,
15
+ n_embedding_parameters=None,
15
16
  memory_usage_mb=183,
16
17
  max_tokens=np.inf,
17
18
  embed_dim=256,
@@ -43,6 +44,7 @@ model2vecdk_stem = ModelMeta(
43
44
  revision="cb576c78dcc1b729e4612645f61db59929d69e61",
44
45
  release_date="2025-11-21",
45
46
  n_parameters=48578560,
47
+ n_embedding_parameters=None,
46
48
  memory_usage_mb=185,
47
49
  max_tokens=np.inf,
48
50
  embed_dim=256,
@@ -10,6 +10,7 @@ arabic_triplet_matryoshka = ModelMeta(
10
10
  revision="ed357f222f0b6ea6670d2c9b5a1cb93950d34200",
11
11
  release_date="2024-07-28",
12
12
  n_parameters=135_000_000,
13
+ n_embedding_parameters=49_152_000,
13
14
  memory_usage_mb=516,
14
15
  embed_dim=768,
15
16
  license="apache-2.0",
@@ -147,6 +147,7 @@ arctic_embed_xs = ModelMeta(
147
147
  open_weights=True,
148
148
  framework=["Sentence Transformers", "PyTorch", "ONNX", "safetensors"],
149
149
  n_parameters=22_600_000,
150
+ n_embedding_parameters=11_720_448,
150
151
  memory_usage_mb=86,
151
152
  max_tokens=512,
152
153
  embed_dim=384,
@@ -173,6 +174,7 @@ arctic_embed_s = ModelMeta(
173
174
  open_weights=True,
174
175
  framework=["Sentence Transformers", "PyTorch", "ONNX", "safetensors"],
175
176
  n_parameters=32_200_000,
177
+ n_embedding_parameters=11_720_448,
176
178
  memory_usage_mb=127,
177
179
  max_tokens=512,
178
180
  embed_dim=384,
@@ -199,6 +201,7 @@ arctic_embed_m = ModelMeta(
199
201
  open_weights=True,
200
202
  framework=["Sentence Transformers", "PyTorch", "ONNX", "safetensors"],
201
203
  n_parameters=109_000_000,
204
+ n_embedding_parameters=23_440_896,
202
205
  memory_usage_mb=415,
203
206
  max_tokens=512,
204
207
  embed_dim=768,
@@ -225,6 +228,7 @@ arctic_embed_m_long = ModelMeta(
225
228
  open_weights=True,
226
229
  framework=["Sentence Transformers", "PyTorch", "ONNX", "safetensors"],
227
230
  n_parameters=137_000_000,
231
+ n_embedding_parameters=None,
228
232
  memory_usage_mb=522,
229
233
  max_tokens=2048,
230
234
  embed_dim=768,
@@ -250,6 +254,7 @@ arctic_embed_l = ModelMeta(
250
254
  open_weights=True,
251
255
  framework=["Sentence Transformers", "PyTorch", "ONNX", "safetensors"],
252
256
  n_parameters=335_000_000,
257
+ n_embedding_parameters=31_254_528,
253
258
  memory_usage_mb=1274,
254
259
  max_tokens=512,
255
260
  embed_dim=1024,
@@ -280,6 +285,7 @@ arctic_embed_m_v1_5 = ModelMeta(
280
285
  open_weights=True,
281
286
  framework=["Sentence Transformers", "PyTorch", "ONNX", "safetensors", "GGUF"],
282
287
  n_parameters=109_000_000,
288
+ n_embedding_parameters=23_440_896,
283
289
  memory_usage_mb=415,
284
290
  max_tokens=512,
285
291
  embed_dim=768,
@@ -306,6 +312,7 @@ arctic_embed_m_v2_0 = ModelMeta(
306
312
  open_weights=True,
307
313
  framework=["Sentence Transformers", "PyTorch", "ONNX", "safetensors"],
308
314
  n_parameters=305_000_000,
315
+ n_embedding_parameters=None,
309
316
  memory_usage_mb=1165,
310
317
  max_tokens=8192,
311
318
  embed_dim=768,
@@ -331,6 +338,7 @@ arctic_embed_l_v2_0 = ModelMeta(
331
338
  open_weights=True,
332
339
  framework=["Sentence Transformers", "PyTorch", "ONNX", "safetensors"],
333
340
  n_parameters=568_000_000,
341
+ n_embedding_parameters=256_002_048,
334
342
  memory_usage_mb=2166,
335
343
  max_tokens=8192,
336
344
  embed_dim=1024,
@@ -16,6 +16,7 @@ b1ade_embed = ModelMeta(
16
16
  open_weights=True,
17
17
  release_date="2025-03-10",
18
18
  n_parameters=335_000_000,
19
+ n_embedding_parameters=31_254_528,
19
20
  memory_usage_mb=1278,
20
21
  embed_dim=1024,
21
22
  license="mit",
@@ -1,20 +1,30 @@
1
+ from __future__ import annotations
2
+
1
3
  import json
2
4
  import logging
3
5
  import re
4
- from typing import Any
6
+ from typing import TYPE_CHECKING, Any
5
7
 
6
8
  import numpy as np
7
- from torch.utils.data import DataLoader
8
9
  from tqdm.auto import tqdm
9
10
 
10
11
  from mteb._requires_package import requires_package
11
- from mteb.abstasks.task_metadata import TaskMetadata
12
12
  from mteb.models.abs_encoder import AbsEncoder
13
13
  from mteb.models.model_meta import ModelMeta, ScoringFunction
14
- from mteb.types import Array, BatchedInput, PromptType
15
14
 
16
- from .cohere_models import model_prompts as cohere_model_prompts
17
- from .cohere_models import supported_languages as cohere_supported_languages
15
+ from .cohere_models import (
16
+ model_prompts as cohere_model_prompts,
17
+ )
18
+ from .cohere_models import (
19
+ supported_languages as cohere_supported_languages,
20
+ )
21
+
22
+ if TYPE_CHECKING:
23
+ from torch.utils.data import DataLoader
24
+
25
+ from mteb.abstasks.task_metadata import TaskMetadata
26
+ from mteb.types import Array, BatchedInput, PromptType
27
+
18
28
 
19
29
  logger = logging.getLogger(__name__)
20
30
 
@@ -169,6 +179,7 @@ amazon_titan_embed_text_v1 = ModelMeta(
169
179
  embed_dim=1536,
170
180
  open_weights=False,
171
181
  n_parameters=None,
182
+ n_embedding_parameters=None,
172
183
  memory_usage_mb=None,
173
184
  public_training_code=None,
174
185
  public_training_data=None, # assumed
@@ -196,6 +207,7 @@ amazon_titan_embed_text_v2 = ModelMeta(
196
207
  embed_dim=1024,
197
208
  open_weights=False,
198
209
  n_parameters=None,
210
+ n_embedding_parameters=None,
199
211
  memory_usage_mb=None,
200
212
  public_training_code=None,
201
213
  public_training_data=None, # assumed
@@ -225,6 +237,7 @@ cohere_embed_english_v3 = ModelMeta(
225
237
  revision="1",
226
238
  release_date="2023-11-02",
227
239
  n_parameters=None,
240
+ n_embedding_parameters=None,
228
241
  memory_usage_mb=None,
229
242
  public_training_code=None,
230
243
  public_training_data=None, # assumed
@@ -253,6 +266,7 @@ cohere_embed_multilingual_v3 = ModelMeta(
253
266
  revision="1",
254
267
  release_date="2023-11-02",
255
268
  n_parameters=None,
269
+ n_embedding_parameters=None,
256
270
  memory_usage_mb=None,
257
271
  public_training_code=None,
258
272
  public_training_data=None, # assumed
@@ -6,7 +6,29 @@ from mteb.models.sentence_transformer_wrapper import sentence_transformers_loade
6
6
 
7
7
  from .e5_instruct import E5_MISTRAL_TRAINING_DATA
8
8
 
9
- model_prompts = {"query": "Represent this sentence for searching relevant passages: "}
9
+ model_prompts = {
10
+ "query": "Represent this sentence for searching relevant passages: ",
11
+ "BrightBiologyRetrieval-query": "Represent this biology post for searching relevant passages: ",
12
+ "BrightEarthScienceRetrieval-query": "Represent this earth_science post for searching relevant passages: ",
13
+ "BrightEconomicsRetrieval-query": "Represent this economics post for searching relevant passages: ",
14
+ "BrightPsychologyRetrieval-query": "Represent this psychology post for searching relevant passages: ",
15
+ "BrightRoboticsRetrieval-query": "Represent this robotics post for searching relevant passages: ",
16
+ "BrightStackoverflowRetrieval-query": "Represent this stackoverflow post for searching relevant passages: ",
17
+ "BrightSustainableLivingRetrieval-query": "Represent this sustainable_living post for searching relevant passages: ",
18
+ "BrightPonyRetrieval-query": "Represent this Pony question for searching relevant passages: ",
19
+ "BrightLeetcodeRetrieval-query": "Represent this Coding problem for searching relevant examples: ",
20
+ "BrightAopsRetrieval-query": "Represent this Math problem for searching relevant examples: ",
21
+ "BrightTheoremQATheoremsRetrieval-query": "Represent this Math problem for searching relevant theorems: ",
22
+ "BrightTheoremQAQuestionsRetrieval-query": "Represent this Math problem for searching relevant examples: ",
23
+ "BrightBiologyLongRetrieval-query": "Represent this biology post for searching relevant documents: ",
24
+ "BrightEarthScienceLongRetrieval-query": "Represent this earth_science post for searching relevant documents: ",
25
+ "BrightEconomicsLongRetrieval-query": "Represent this economics post for searching relevant documents: ",
26
+ "BrightPsychologyLongRetrieval-query": "Represent this psychology post for searching relevant documents: ",
27
+ "BrightRoboticsLongRetrieval-query": "Represent this robotics post for searching relevant document: ",
28
+ "BrightStackoverflowLongRetrieval-query": "Represent this stackoverflow post for searching relevant document: ",
29
+ "BrightSustainableLivingLongRetrieval-query": "Represent this sustainable_living post for searching relevant documents: ",
30
+ "BrightPonyLongRetrieval-query": "Represent this Pony question for searching relevant documents: ",
31
+ }
10
32
  BGE_15_CITATION = """@misc{bge_embedding,
11
33
  title={C-Pack: Packaged Resources To Advance General Chinese Embedding},
12
34
  author={Shitao Xiao and Zheng Liu and Peitian Zhang and Niklas Muennighoff},
@@ -325,6 +347,7 @@ bge_small_en_v1_5 = ModelMeta(
325
347
  revision="5c38ec7c405ec4b44b94cc5a9bb96e735b38267a",
326
348
  release_date="2023-09-12", # initial commit of hf model.
327
349
  n_parameters=33_400_000,
350
+ n_embedding_parameters=11_720_448,
328
351
  memory_usage_mb=127,
329
352
  embed_dim=512,
330
353
  license="mit",
@@ -357,6 +380,7 @@ bge_base_en_v1_5 = ModelMeta(
357
380
  revision="a5beb1e3e68b9ab74eb54cfd186867f64f240e1a",
358
381
  release_date="2023-09-11", # initial commit of hf model.
359
382
  n_parameters=109_000_000,
383
+ n_embedding_parameters=23_440_896,
360
384
  memory_usage_mb=390,
361
385
  embed_dim=768,
362
386
  license="mit",
@@ -389,6 +413,7 @@ bge_large_en_v1_5 = ModelMeta(
389
413
  revision="d4aa6901d3a41ba39fb536a557fa166f842b0e09",
390
414
  release_date="2023-09-12", # initial commit of hf model.
391
415
  n_parameters=335_000_000,
416
+ n_embedding_parameters=31_254_528,
392
417
  memory_usage_mb=1242,
393
418
  embed_dim=1024,
394
419
  license="mit",
@@ -421,6 +446,7 @@ bge_small_zh = ModelMeta(
421
446
  revision="1d2363c5de6ce9ba9c890c8e23a4c72dce540ca8",
422
447
  release_date="2023-08-05", # initial commit of hf model.
423
448
  n_parameters=33_400_000,
449
+ n_embedding_parameters=10_817_536,
424
450
  memory_usage_mb=127,
425
451
  embed_dim=512,
426
452
  license="mit",
@@ -448,6 +474,7 @@ bge_base_zh = ModelMeta(
448
474
  revision="0e5f83d4895db7955e4cb9ed37ab73f7ded339b6",
449
475
  release_date="2023-08-05", # initial commit of hf model.
450
476
  n_parameters=109_000_000,
477
+ n_embedding_parameters=16_226_304,
451
478
  memory_usage_mb=390,
452
479
  embed_dim=768,
453
480
  license="mit",
@@ -475,6 +502,7 @@ bge_large_zh = ModelMeta(
475
502
  revision="b5d9f5c027e87b6f0b6fa4b614f8f9cdc45ce0e8",
476
503
  release_date="2023-08-02", # initial commit of hf model.
477
504
  n_parameters=335_000_000,
505
+ n_embedding_parameters=21_635_072,
478
506
  memory_usage_mb=1242,
479
507
  embed_dim=1024,
480
508
  license="mit",
@@ -502,6 +530,7 @@ bge_small_en = ModelMeta(
502
530
  revision="4778d71a06863076696b03fd2777eb118712cad8",
503
531
  release_date="2023-08-05", # initial commit of hf model.
504
532
  n_parameters=33_400_000,
533
+ n_embedding_parameters=11_720_448,
505
534
  memory_usage_mb=127,
506
535
  embed_dim=512,
507
536
  license="mit",
@@ -529,6 +558,7 @@ bge_base_en = ModelMeta(
529
558
  revision="b737bf5dcc6ee8bdc530531266b4804a5d77b5d8",
530
559
  release_date="2023-08-05", # initial commit of hf model.
531
560
  n_parameters=109_000_000,
561
+ n_embedding_parameters=23_440_896,
532
562
  memory_usage_mb=390,
533
563
  embed_dim=768,
534
564
  license="mit",
@@ -562,6 +592,7 @@ bge_large_en = ModelMeta(
562
592
  revision="abe7d9d814b775ca171121fb03f394dc42974275",
563
593
  release_date="2023-08-05", # initial commit of hf model.
564
594
  n_parameters=335_000_000,
595
+ n_embedding_parameters=31_254_528,
565
596
  memory_usage_mb=1242,
566
597
  embed_dim=1024,
567
598
  license="mit",
@@ -590,6 +621,7 @@ bge_small_zh_v1_5 = ModelMeta(
590
621
  revision="7999e1d3359715c523056ef9478215996d62a620",
591
622
  release_date="2023-09-12", # initial commit of hf model.
592
623
  n_parameters=33_400_000,
624
+ n_embedding_parameters=10_817_536,
593
625
  memory_usage_mb=91,
594
626
  embed_dim=512,
595
627
  license="mit",
@@ -616,6 +648,7 @@ bge_base_zh_v1_5 = ModelMeta(
616
648
  revision="f03589ceff5aac7111bd60cfc7d497ca17ecac65",
617
649
  release_date="2023-09-11", # initial commit of hf model.
618
650
  n_parameters=109_000_000,
651
+ n_embedding_parameters=16_226_304,
619
652
  memory_usage_mb=416,
620
653
  embed_dim=768,
621
654
  license="mit",
@@ -642,6 +675,7 @@ bge_large_zh_v1_5 = ModelMeta(
642
675
  revision="79e7739b6ab944e86d6171e44d24c997fc1e0116",
643
676
  release_date="2023-09-12", # initial commit of hf model.
644
677
  n_parameters=335_000_000,
678
+ n_embedding_parameters=21_635_072,
645
679
  memory_usage_mb=1278,
646
680
  embed_dim=1024,
647
681
  license="mit",
@@ -665,6 +699,7 @@ bge_m3 = ModelMeta(
665
699
  revision="5617a9f61b028005a4858fdac845db406aefb181",
666
700
  release_date="2024-06-28",
667
701
  n_parameters=568_000_000,
702
+ n_embedding_parameters=256_002_048,
668
703
  memory_usage_mb=2167,
669
704
  embed_dim=1024,
670
705
  license="mit",
@@ -761,6 +796,7 @@ bge_multilingual_gemma2 = ModelMeta(
761
796
  revision="992e13d8984fde2c31ef8a3cb2c038aeec513b8a",
762
797
  release_date="2024-07-25", # initial commit of hf model.
763
798
  n_parameters=int(9.24 * 1e9),
799
+ n_embedding_parameters=917_511_168,
764
800
  memory_usage_mb=35254,
765
801
  embed_dim=3584, # from old C-MTEB leaderboard
766
802
  license="https://ai.google.dev/gemma/terms",
@@ -808,6 +844,7 @@ bge_en_icl = ModelMeta(
808
844
  revision="971c7e1445cc86656ca0bd85ed770b8675a40bb5",
809
845
  release_date="2024-07-25", # initial commit of hf model.
810
846
  n_parameters=int(7.11 * 1e9),
847
+ n_embedding_parameters=131_084_288,
811
848
  memory_usage_mb=27125,
812
849
  embed_dim=4096,
813
850
  license="apache-2.0",
@@ -842,6 +879,7 @@ bge_m3_unsupervised = ModelMeta(
842
879
  revision="46f03bc86361cf88102b0b517b36c8259f2946b1",
843
880
  release_date="2024-01-30", # January 30, 2024 - BGE-M3 release date
844
881
  n_parameters=568_000_000,
882
+ n_embedding_parameters=256_002_048,
845
883
  memory_usage_mb=2167,
846
884
  embed_dim=1024,
847
885
  license="mit",
@@ -871,6 +909,7 @@ manu__bge_m3_custom_fr = ModelMeta(
871
909
  languages=None,
872
910
  loader=sentence_transformers_loader,
873
911
  n_parameters=567754752,
912
+ n_embedding_parameters=256_002_048,
874
913
  memory_usage_mb=2166,
875
914
  max_tokens=8194.0,
876
915
  embed_dim=1024,