mteb 2.1.4__py3-none-any.whl → 2.7.2__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 (527) hide show
  1. mteb/__init__.py +6 -0
  2. mteb/_create_dataloaders.py +22 -20
  3. mteb/_evaluators/any_sts_evaluator.py +23 -14
  4. mteb/_evaluators/classification_metrics.py +54 -0
  5. mteb/_evaluators/clustering_evaluator.py +3 -3
  6. mteb/_evaluators/evaluator.py +4 -2
  7. mteb/_evaluators/image/imagetext_pairclassification_evaluator.py +18 -11
  8. mteb/_evaluators/pair_classification_evaluator.py +34 -40
  9. mteb/_evaluators/retrieval_evaluator.py +2 -2
  10. mteb/_evaluators/retrieval_metrics.py +18 -17
  11. mteb/_evaluators/sklearn_evaluator.py +25 -37
  12. mteb/_evaluators/text/bitext_mining_evaluator.py +31 -19
  13. mteb/_evaluators/text/summarization_evaluator.py +27 -20
  14. mteb/_evaluators/zeroshot_classification_evaluator.py +7 -5
  15. mteb/abstasks/_data_filter/__init__.py +0 -0
  16. mteb/abstasks/_data_filter/filters.py +125 -0
  17. mteb/abstasks/_data_filter/task_pipelines.py +105 -0
  18. mteb/abstasks/_statistics_calculation.py +23 -11
  19. mteb/abstasks/_stratification.py +18 -18
  20. mteb/abstasks/abstask.py +35 -28
  21. mteb/abstasks/aggregate_task_metadata.py +1 -9
  22. mteb/abstasks/aggregated_task.py +10 -29
  23. mteb/abstasks/classification.py +15 -12
  24. mteb/abstasks/clustering.py +20 -16
  25. mteb/abstasks/clustering_legacy.py +13 -10
  26. mteb/abstasks/image/image_text_pair_classification.py +7 -4
  27. mteb/abstasks/multilabel_classification.py +33 -22
  28. mteb/abstasks/pair_classification.py +27 -11
  29. mteb/abstasks/regression.py +4 -4
  30. mteb/abstasks/retrieval.py +28 -24
  31. mteb/abstasks/retrieval_dataset_loaders.py +2 -2
  32. mteb/abstasks/sts.py +14 -4
  33. mteb/abstasks/task_metadata.py +32 -33
  34. mteb/abstasks/text/bitext_mining.py +39 -28
  35. mteb/abstasks/text/reranking.py +8 -6
  36. mteb/abstasks/text/summarization.py +10 -5
  37. mteb/abstasks/zeroshot_classification.py +8 -4
  38. mteb/benchmarks/_create_table.py +84 -37
  39. mteb/benchmarks/benchmark.py +77 -16
  40. mteb/benchmarks/benchmarks/__init__.py +12 -0
  41. mteb/benchmarks/benchmarks/benchmarks.py +361 -16
  42. mteb/benchmarks/get_benchmark.py +14 -53
  43. mteb/cache.py +227 -37
  44. mteb/cli/_display_tasks.py +2 -2
  45. mteb/cli/build_cli.py +110 -14
  46. mteb/cli/generate_model_card.py +43 -23
  47. mteb/deprecated_evaluator.py +71 -62
  48. mteb/descriptive_stats/BitextMining/RuSciBenchBitextMining.v2.json +61 -0
  49. mteb/descriptive_stats/Classification/HebrewSentimentAnalysis.v3.json +60 -0
  50. mteb/descriptive_stats/Classification/TurkishConstitutionalCourtViolation.json +54 -0
  51. mteb/descriptive_stats/Image/DocumentUnderstanding/KoVidore2CybersecurityRetrieval.json +32 -0
  52. mteb/descriptive_stats/Image/DocumentUnderstanding/KoVidore2EconomicRetrieval.json +32 -0
  53. mteb/descriptive_stats/Image/DocumentUnderstanding/KoVidore2EnergyRetrieval.json +32 -0
  54. mteb/descriptive_stats/Image/DocumentUnderstanding/KoVidore2HrRetrieval.json +32 -0
  55. mteb/descriptive_stats/Image/DocumentUnderstanding/Vidore3ComputerScienceRetrieval.json +214 -0
  56. mteb/descriptive_stats/Image/DocumentUnderstanding/Vidore3EnergyRetrieval.json +214 -0
  57. mteb/descriptive_stats/Image/DocumentUnderstanding/Vidore3FinanceEnRetrieval.json +214 -0
  58. mteb/descriptive_stats/Image/DocumentUnderstanding/Vidore3FinanceFrRetrieval.json +214 -0
  59. mteb/descriptive_stats/Image/DocumentUnderstanding/Vidore3HrRetrieval.json +214 -0
  60. mteb/descriptive_stats/Image/DocumentUnderstanding/Vidore3IndustrialRetrieval.json +214 -0
  61. mteb/descriptive_stats/Image/DocumentUnderstanding/Vidore3NuclearRetrieval.json +214 -0
  62. mteb/descriptive_stats/Image/DocumentUnderstanding/Vidore3PharmaceuticalsRetrieval.json +214 -0
  63. mteb/descriptive_stats/Image/DocumentUnderstanding/Vidore3PhysicsRetrieval.json +214 -0
  64. mteb/descriptive_stats/Image/DocumentUnderstanding/Vidore3TelecomRetrieval.json +214 -0
  65. mteb/descriptive_stats/PairClassification/TERRa.V2.json +35 -0
  66. mteb/descriptive_stats/Reranking/JQaRARerankingLite.json +35 -0
  67. mteb/descriptive_stats/Reranking/JaCWIRRerankingLite.json +35 -0
  68. mteb/descriptive_stats/Reranking/MultiLongDocReranking.json +466 -0
  69. mteb/descriptive_stats/Retrieval/ArguAna-NL.v2.json +30 -0
  70. mteb/descriptive_stats/Retrieval/ChemRxivRetrieval.json +30 -0
  71. mteb/descriptive_stats/Retrieval/EuroPIRQRetrieval.json +116 -0
  72. mteb/descriptive_stats/Retrieval/JaCWIRRetrievalLite.json +30 -0
  73. mteb/descriptive_stats/Retrieval/JaqketRetrievalLite.json +30 -0
  74. mteb/descriptive_stats/Retrieval/MIRACLJaRetrievalLite.json +30 -0
  75. mteb/descriptive_stats/Retrieval/MrTyDiJaRetrievalLite.json +30 -0
  76. mteb/descriptive_stats/Retrieval/NFCorpus-NL.v2.json +30 -0
  77. mteb/descriptive_stats/Retrieval/NanoClimateFEVER-VN.json +30 -0
  78. mteb/descriptive_stats/Retrieval/NanoDBPedia-VN.json +30 -0
  79. mteb/descriptive_stats/Retrieval/NanoFEVER-VN.json +30 -0
  80. mteb/descriptive_stats/Retrieval/NanoHotpotQA-VN.json +30 -0
  81. mteb/descriptive_stats/Retrieval/NanoMSMARCO-VN.json +30 -0
  82. mteb/descriptive_stats/Retrieval/NanoNQ-VN.json +30 -0
  83. mteb/descriptive_stats/Retrieval/SCIDOCS-NL.v2.json +30 -0
  84. mteb/descriptive_stats/Retrieval/SQuADKorV1Retrieval.json +30 -0
  85. mteb/descriptive_stats/Retrieval/SciFact-NL.v2.json +30 -0
  86. mteb/descriptive_stats/Retrieval/TVPLRetrieval.json +30 -0
  87. mteb/evaluate.py +106 -75
  88. mteb/filter_tasks.py +25 -26
  89. mteb/get_tasks.py +29 -30
  90. mteb/languages/language_scripts.py +5 -3
  91. mteb/leaderboard/app.py +414 -151
  92. mteb/leaderboard/benchmark_selector.py +14 -5
  93. mteb/leaderboard/figures.py +13 -15
  94. mteb/leaderboard/table.py +82 -17
  95. mteb/load_results.py +12 -12
  96. mteb/models/__init__.py +4 -1
  97. mteb/models/abs_encoder.py +31 -23
  98. mteb/models/cache_wrappers/__init__.py +2 -1
  99. mteb/models/cache_wrappers/cache_backend_protocol.py +3 -5
  100. mteb/models/cache_wrappers/cache_backends/_hash_utils.py +7 -6
  101. mteb/models/cache_wrappers/cache_backends/faiss_cache.py +6 -2
  102. mteb/models/cache_wrappers/cache_backends/numpy_cache.py +43 -25
  103. mteb/models/cache_wrappers/cache_wrapper.py +3 -3
  104. mteb/models/get_model_meta.py +25 -118
  105. mteb/models/instruct_wrapper.py +33 -9
  106. mteb/models/model_implementations/align_models.py +8 -1
  107. mteb/models/model_implementations/amazon_models.py +1 -0
  108. mteb/models/model_implementations/andersborges.py +65 -0
  109. mteb/models/model_implementations/ara_models.py +9 -1
  110. mteb/models/model_implementations/arctic_models.py +16 -8
  111. mteb/models/model_implementations/b1ade_models.py +2 -1
  112. mteb/models/model_implementations/bedrock_models.py +4 -0
  113. mteb/models/model_implementations/bge_models.py +101 -17
  114. mteb/models/model_implementations/bica_model.py +35 -0
  115. mteb/models/model_implementations/blip2_models.py +13 -2
  116. mteb/models/model_implementations/blip_models.py +43 -16
  117. mteb/models/model_implementations/bm25.py +5 -4
  118. mteb/models/model_implementations/bmretriever_models.py +10 -4
  119. mteb/models/model_implementations/cadet_models.py +10 -1
  120. mteb/models/model_implementations/cde_models.py +25 -4
  121. mteb/models/model_implementations/clip_models.py +9 -6
  122. mteb/models/model_implementations/clips_models.py +100 -0
  123. mteb/models/model_implementations/codefuse_models.py +165 -3
  124. mteb/models/model_implementations/codesage_models.py +18 -3
  125. mteb/models/model_implementations/cohere_models.py +13 -6
  126. mteb/models/model_implementations/cohere_v.py +7 -2
  127. mteb/models/model_implementations/colpali_models.py +17 -9
  128. mteb/models/model_implementations/colqwen_models.py +275 -5
  129. mteb/models/model_implementations/colsmol_models.py +4 -2
  130. mteb/models/model_implementations/conan_models.py +2 -1
  131. mteb/models/model_implementations/dino_models.py +194 -23
  132. mteb/models/model_implementations/e5_instruct.py +27 -4
  133. mteb/models/model_implementations/e5_models.py +21 -110
  134. mteb/models/model_implementations/e5_v.py +7 -6
  135. mteb/models/model_implementations/eagerworks_models.py +164 -0
  136. mteb/models/model_implementations/emillykkejensen_models.py +91 -0
  137. mteb/models/model_implementations/en_code_retriever.py +2 -1
  138. mteb/models/model_implementations/euler_models.py +32 -0
  139. mteb/models/model_implementations/evaclip_models.py +4 -0
  140. mteb/models/model_implementations/fa_models.py +67 -9
  141. mteb/models/model_implementations/facebookai.py +205 -0
  142. mteb/models/model_implementations/geogpt_models.py +2 -1
  143. mteb/models/model_implementations/gme_v_models.py +17 -10
  144. mteb/models/model_implementations/google_models.py +17 -6
  145. mteb/models/model_implementations/granite_vision_embedding_models.py +8 -3
  146. mteb/models/model_implementations/gritlm_models.py +4 -2
  147. mteb/models/model_implementations/gte_models.py +99 -9
  148. mteb/models/model_implementations/hinvec_models.py +2 -1
  149. mteb/models/model_implementations/human.py +1 -0
  150. mteb/models/model_implementations/ibm_granite_models.py +36 -6
  151. mteb/models/model_implementations/inf_models.py +4 -2
  152. mteb/models/model_implementations/jasper_models.py +256 -3
  153. mteb/models/model_implementations/jina_clip.py +49 -10
  154. mteb/models/model_implementations/jina_models.py +222 -11
  155. mteb/models/model_implementations/kalm_models.py +203 -25
  156. mteb/models/model_implementations/kblab.py +37 -0
  157. mteb/models/model_implementations/kennethenevoldsen_models.py +74 -0
  158. mteb/models/model_implementations/kfst.py +25 -0
  159. mteb/models/model_implementations/kowshik24_models.py +32 -0
  160. mteb/models/model_implementations/lens_models.py +2 -0
  161. mteb/models/model_implementations/lgai_embedding_models.py +2 -1
  162. mteb/models/model_implementations/linq_models.py +4 -3
  163. mteb/models/model_implementations/listconranker.py +2 -2
  164. mteb/models/model_implementations/llm2clip_models.py +9 -6
  165. mteb/models/model_implementations/llm2vec_models.py +16 -8
  166. mteb/models/model_implementations/mcinext_models.py +7 -1
  167. mteb/models/model_implementations/mdbr_models.py +19 -3
  168. mteb/models/model_implementations/misc_models.py +422 -60
  169. mteb/models/model_implementations/mixedbread_ai_models.py +332 -0
  170. mteb/models/model_implementations/mme5_models.py +2 -1
  171. mteb/models/model_implementations/moco_models.py +15 -4
  172. mteb/models/model_implementations/mod_models.py +191 -0
  173. mteb/models/model_implementations/model2vec_models.py +27 -14
  174. mteb/models/model_implementations/moka_models.py +4 -1
  175. mteb/models/model_implementations/nbailab.py +70 -0
  176. mteb/models/model_implementations/no_instruct_sentence_models.py +3 -2
  177. mteb/models/model_implementations/nomic_models.py +173 -6
  178. mteb/models/model_implementations/nomic_models_vision.py +8 -3
  179. mteb/models/model_implementations/nvidia_llama_nemoretriever_colemb.py +32 -19
  180. mteb/models/model_implementations/nvidia_models.py +155 -20
  181. mteb/models/model_implementations/octen_models.py +254 -0
  182. mteb/models/model_implementations/openai_models.py +20 -16
  183. mteb/models/model_implementations/openclip_models.py +37 -13
  184. mteb/models/model_implementations/opensearch_neural_sparse_models.py +10 -5
  185. mteb/models/model_implementations/ops_moa_models.py +5 -3
  186. mteb/models/model_implementations/ordalietech_solon_embeddings_mini_beta_1_1.py +1 -1
  187. mteb/models/model_implementations/pawan_models.py +39 -0
  188. mteb/models/model_implementations/piccolo_models.py +9 -1
  189. mteb/models/model_implementations/pixie_models.py +56 -0
  190. mteb/models/model_implementations/promptriever_models.py +12 -8
  191. mteb/models/model_implementations/pylate_models.py +46 -12
  192. mteb/models/model_implementations/qodo_models.py +4 -2
  193. mteb/models/model_implementations/qtack_models.py +2 -1
  194. mteb/models/model_implementations/qwen3_models.py +9 -6
  195. mteb/models/model_implementations/qzhou_models.py +5 -3
  196. mteb/models/model_implementations/random_baseline.py +19 -24
  197. mteb/models/model_implementations/rasgaard_models.py +34 -0
  198. mteb/models/model_implementations/reasonir_model.py +2 -1
  199. mteb/models/model_implementations/repllama_models.py +5 -3
  200. mteb/models/model_implementations/rerankers_custom.py +15 -9
  201. mteb/models/model_implementations/rerankers_monot5_based.py +31 -31
  202. mteb/models/model_implementations/richinfoai_models.py +2 -1
  203. mteb/models/model_implementations/ru_sentence_models.py +71 -20
  204. mteb/models/model_implementations/ruri_models.py +322 -0
  205. mteb/models/model_implementations/salesforce_models.py +6 -3
  206. mteb/models/model_implementations/samilpwc_models.py +2 -1
  207. mteb/models/model_implementations/sarashina_embedding_models.py +168 -0
  208. mteb/models/model_implementations/searchmap_models.py +2 -1
  209. mteb/models/model_implementations/seed_1_6_embedding_models.py +8 -2
  210. mteb/models/model_implementations/seed_1_6_embedding_models_1215.py +625 -0
  211. mteb/models/model_implementations/seed_models.py +1 -0
  212. mteb/models/model_implementations/sentence_transformers_models.py +177 -18
  213. mteb/models/model_implementations/shuu_model.py +32 -31
  214. mteb/models/model_implementations/siglip_models.py +30 -20
  215. mteb/models/model_implementations/slm_models.py +416 -0
  216. mteb/models/model_implementations/sonar_models.py +1 -0
  217. mteb/models/model_implementations/spartan8806_atles_champion.py +34 -0
  218. mteb/models/model_implementations/stella_models.py +23 -4
  219. mteb/models/model_implementations/tarka_models.py +376 -0
  220. mteb/models/model_implementations/text2vec_models.py +9 -3
  221. mteb/models/model_implementations/ua_sentence_models.py +11 -1
  222. mteb/models/model_implementations/uae_models.py +8 -1
  223. mteb/models/model_implementations/vdr_models.py +3 -1
  224. mteb/models/model_implementations/vi_vn_models.py +45 -6
  225. mteb/models/model_implementations/vista_models.py +2 -0
  226. mteb/models/model_implementations/vlm2vec_models.py +5 -3
  227. mteb/models/model_implementations/voyage_models.py +99 -0
  228. mteb/models/model_implementations/voyage_v.py +17 -9
  229. mteb/models/model_implementations/xyz_models.py +1 -0
  230. mteb/models/model_implementations/youtu_models.py +2 -1
  231. mteb/models/model_implementations/yuan_models.py +34 -0
  232. mteb/models/model_implementations/yuan_models_en.py +58 -0
  233. mteb/models/model_meta.py +498 -29
  234. mteb/models/models_protocols.py +22 -6
  235. mteb/models/search_encoder_index/__init__.py +7 -0
  236. mteb/models/search_encoder_index/search_backend_protocol.py +50 -0
  237. mteb/models/search_encoder_index/search_indexes/__init__.py +5 -0
  238. mteb/models/search_encoder_index/search_indexes/faiss_search_index.py +160 -0
  239. mteb/models/search_wrappers.py +197 -65
  240. mteb/models/sentence_transformer_wrapper.py +52 -32
  241. mteb/models/vllm_wrapper.py +327 -0
  242. mteb/py.typed +0 -0
  243. mteb/results/benchmark_results.py +114 -65
  244. mteb/results/model_result.py +63 -26
  245. mteb/results/task_result.py +117 -77
  246. mteb/similarity_functions.py +60 -7
  247. mteb/tasks/bitext_mining/multilingual/__init__.py +2 -1
  248. mteb/tasks/bitext_mining/multilingual/bucc_bitext_mining.py +4 -2
  249. mteb/tasks/bitext_mining/multilingual/bucc_bitext_mining_fast.py +1 -1
  250. mteb/tasks/bitext_mining/multilingual/ru_sci_bench_bitext_mining.py +47 -5
  251. mteb/tasks/bitext_mining/multilingual/web_faq_bitext_mining.py +2 -6
  252. mteb/tasks/classification/ara/ajgt.py +1 -2
  253. mteb/tasks/classification/ara/hotel_review_sentiment_classification.py +1 -2
  254. mteb/tasks/classification/ara/online_store_review_sentiment_classification.py +1 -2
  255. mteb/tasks/classification/ara/restaurant_review_sentiment_classification.py +1 -2
  256. mteb/tasks/classification/ara/tweet_emotion_classification.py +1 -2
  257. mteb/tasks/classification/ara/tweet_sarcasm_classification.py +1 -2
  258. mteb/tasks/classification/ben/bengali_document_classification.py +1 -2
  259. mteb/tasks/classification/ben/bengali_hate_speech_classification.py +1 -2
  260. mteb/tasks/classification/ben/bengali_sentiment_analysis.py +1 -2
  261. mteb/tasks/classification/ces/csfdcz_movie_review_sentiment_classification.py +1 -2
  262. mteb/tasks/classification/ces/czech_product_review_sentiment_classification.py +1 -2
  263. mteb/tasks/classification/ces/czech_so_me_sentiment_classification.py +1 -2
  264. mteb/tasks/classification/dan/angry_tweets_classification.py +1 -2
  265. mteb/tasks/classification/dan/danish_political_comments_classification.py +1 -2
  266. mteb/tasks/classification/dan/ddisco_cohesion_classification.py +1 -2
  267. mteb/tasks/classification/dan/dk_hate_classification.py +2 -3
  268. mteb/tasks/classification/deu/german_politicians_twitter_sentiment_classification.py +1 -2
  269. mteb/tasks/classification/deu/ten_k_gnad_classification.py +1 -2
  270. mteb/tasks/classification/eng/amazon_polarity_classification.py +1 -2
  271. mteb/tasks/classification/eng/arxiv_classification.py +1 -2
  272. mteb/tasks/classification/eng/banking77_classification.py +1 -2
  273. mteb/tasks/classification/eng/dbpedia_classification.py +1 -2
  274. mteb/tasks/classification/eng/emotion_classification.py +1 -2
  275. mteb/tasks/classification/eng/financial_phrasebank_classification.py +1 -2
  276. mteb/tasks/classification/eng/frenk_en_classification.py +1 -2
  277. mteb/tasks/classification/eng/gtsrb_classification.py +1 -1
  278. mteb/tasks/classification/eng/imdb_classification.py +1 -2
  279. mteb/tasks/classification/eng/legal_bench_classification.py +14 -120
  280. mteb/tasks/classification/eng/news_classification.py +1 -2
  281. mteb/tasks/classification/eng/patch_camelyon_classification.py +1 -1
  282. mteb/tasks/classification/eng/patent_classification.py +1 -2
  283. mteb/tasks/classification/eng/poem_sentiment_classification.py +1 -2
  284. mteb/tasks/classification/eng/sds_eye_protection_classification.py +1 -2
  285. mteb/tasks/classification/eng/sds_gloves_classification.py +1 -2
  286. mteb/tasks/classification/eng/toxic_chat_classification.py +2 -19
  287. mteb/tasks/classification/eng/toxic_conversations_classification.py +1 -2
  288. mteb/tasks/classification/eng/tweet_sentiment_extraction_classification.py +1 -2
  289. mteb/tasks/classification/eng/tweet_topic_single_classification.py +2 -13
  290. mteb/tasks/classification/eng/ucf101_classification.py +1 -5
  291. mteb/tasks/classification/eng/wikipedia_bio_met_chem_classification.py +1 -2
  292. mteb/tasks/classification/eng/wikipedia_chem_fields_classification.py +1 -2
  293. mteb/tasks/classification/eng/wikipedia_comp_chem_spectroscopy_classification.py +1 -2
  294. mteb/tasks/classification/eng/wikipedia_crystallography_analytical_classification.py +1 -2
  295. mteb/tasks/classification/eng/wikipedia_theoretical_applied_classification.py +1 -2
  296. mteb/tasks/classification/eng/yahoo_answers_topics_classification.py +1 -2
  297. mteb/tasks/classification/eng/yelp_review_full_classification.py +1 -2
  298. mteb/tasks/classification/est/estonian_valence.py +2 -3
  299. mteb/tasks/classification/fas/fa_mteb_classification.py +7 -14
  300. mteb/tasks/classification/fil/filipino_hate_speech_classification.py +1 -2
  301. mteb/tasks/classification/fin/fin_toxicity_classification.py +2 -11
  302. mteb/tasks/classification/fra/french_book_reviews.py +1 -2
  303. mteb/tasks/classification/fra/movie_review_sentiment_classification.py +1 -2
  304. mteb/tasks/classification/guj/gujarati_news_classification.py +1 -2
  305. mteb/tasks/classification/heb/__init__.py +6 -1
  306. mteb/tasks/classification/heb/hebrew_sentiment_analysis.py +62 -4
  307. mteb/tasks/classification/hin/hindi_discourse_classification.py +1 -2
  308. mteb/tasks/classification/hin/sentiment_analysis_hindi.py +1 -2
  309. mteb/tasks/classification/hrv/frenk_hr_classification.py +1 -2
  310. mteb/tasks/classification/ind/indonesian_id_clickbait_classification.py +1 -2
  311. mteb/tasks/classification/ind/indonesian_mongabay_conservation_classification.py +1 -2
  312. mteb/tasks/classification/ita/italian_linguist_acceptability_classification.py +1 -2
  313. mteb/tasks/classification/jav/javanese_imdb_classification.py +1 -2
  314. mteb/tasks/classification/jpn/wrime_classification.py +1 -2
  315. mteb/tasks/classification/kan/kannada_news_classification.py +1 -2
  316. mteb/tasks/classification/kor/klue_tc.py +1 -2
  317. mteb/tasks/classification/kor/kor_hate_classification.py +2 -17
  318. mteb/tasks/classification/kor/kor_sarcasm_classification.py +2 -19
  319. mteb/tasks/classification/kur/kurdish_sentiment_classification.py +3 -4
  320. mteb/tasks/classification/mal/malayalam_news_classification.py +1 -2
  321. mteb/tasks/classification/mar/marathi_news_classification.py +1 -2
  322. mteb/tasks/classification/mkd/macedonian_tweet_sentiment_classification.py +1 -2
  323. mteb/tasks/classification/multilingual/catalonia_tweet_classification.py +1 -6
  324. mteb/tasks/classification/multilingual/multi_hate_classification.py +1 -4
  325. mteb/tasks/classification/multilingual/ru_sci_bench_classification.py +4 -23
  326. mteb/tasks/classification/multilingual/scala_classification.py +2 -3
  327. mteb/tasks/classification/multilingual/sib200_classification.py +1 -6
  328. mteb/tasks/classification/mya/myanmar_news.py +1 -2
  329. mteb/tasks/classification/nep/nepali_news_classification.py +1 -2
  330. mteb/tasks/classification/nld/dutch_book_review_sentiment_classification.py +4 -2
  331. mteb/tasks/classification/nld/dutch_cola_classification.py +3 -0
  332. mteb/tasks/classification/nld/dutch_government_bias_classification.py +3 -0
  333. mteb/tasks/classification/nld/dutch_news_articles_classification.py +3 -0
  334. mteb/tasks/classification/nld/dutch_sarcastic_headlines_classification.py +3 -0
  335. mteb/tasks/classification/nld/iconclass_classification.py +3 -0
  336. mteb/tasks/classification/nld/open_tender_classification.py +3 -0
  337. mteb/tasks/classification/nld/vaccin_chat_nl_classification.py +3 -0
  338. mteb/tasks/classification/nob/no_rec_classification.py +1 -2
  339. mteb/tasks/classification/nob/norwegian_parliament_classification.py +1 -2
  340. mteb/tasks/classification/ory/odia_news_classification.py +1 -2
  341. mteb/tasks/classification/pol/polish_classification.py +3 -6
  342. mteb/tasks/classification/ron/moroco.py +1 -2
  343. mteb/tasks/classification/ron/romanian_reviews_sentiment.py +1 -2
  344. mteb/tasks/classification/ron/romanian_sentiment_classification.py +1 -2
  345. mteb/tasks/classification/rus/georeview_classification.py +1 -2
  346. mteb/tasks/classification/rus/headline_classification.py +1 -2
  347. mteb/tasks/classification/rus/inappropriateness_classification.py +1 -2
  348. mteb/tasks/classification/rus/ru_reviews_classification.py +1 -2
  349. mteb/tasks/classification/rus/ru_toixic_classification_okmlcup.py +1 -2
  350. mteb/tasks/classification/rus/senti_ru_eval.py +1 -2
  351. mteb/tasks/classification/sin/sinhala_news_classification.py +1 -2
  352. mteb/tasks/classification/sin/sinhala_news_source_classification.py +1 -2
  353. mteb/tasks/classification/slk/csfdsk_movie_review_sentiment_classification.py +1 -2
  354. mteb/tasks/classification/slk/slovak_hate_speech_classification.py +1 -2
  355. mteb/tasks/classification/slk/slovak_movie_review_sentiment_classification.py +1 -2
  356. mteb/tasks/classification/slv/frenk_sl_classification.py +1 -2
  357. mteb/tasks/classification/spa/spanish_news_classification.py +1 -2
  358. mteb/tasks/classification/spa/spanish_sentiment_classification.py +1 -2
  359. mteb/tasks/classification/ssw/siswati_news_classification.py +1 -2
  360. mteb/tasks/classification/swa/swahili_news_classification.py +1 -2
  361. mteb/tasks/classification/swe/dalaj_classification.py +1 -2
  362. mteb/tasks/classification/swe/swe_rec_classification.py +1 -2
  363. mteb/tasks/classification/swe/swedish_sentiment_classification.py +1 -2
  364. mteb/tasks/classification/tam/tamil_news_classification.py +1 -2
  365. mteb/tasks/classification/tel/telugu_andhra_jyoti_news_classification.py +1 -2
  366. mteb/tasks/classification/tha/wisesight_sentiment_classification.py +1 -2
  367. mteb/tasks/classification/tsn/tswana_news_classification.py +1 -2
  368. mteb/tasks/classification/tur/__init__.py +4 -0
  369. mteb/tasks/classification/tur/turkish_constitutional_court.py +41 -0
  370. mteb/tasks/classification/tur/turkish_movie_sentiment_classification.py +1 -2
  371. mteb/tasks/classification/tur/turkish_product_sentiment_classification.py +1 -2
  372. mteb/tasks/classification/ukr/ukr_formality_classification.py +2 -15
  373. mteb/tasks/classification/urd/urdu_roman_sentiment_classification.py +1 -2
  374. mteb/tasks/classification/vie/amazon_counterfactual_vn_classification.py +1 -6
  375. mteb/tasks/classification/vie/amazon_polarity_vn_classification.py +1 -6
  376. mteb/tasks/classification/vie/amazon_reviews_vn_classification.py +1 -5
  377. mteb/tasks/classification/vie/banking77_vn_classification.py +1 -5
  378. mteb/tasks/classification/vie/emotion_vn_classification.py +1 -5
  379. mteb/tasks/classification/vie/imdb_vn_classification.py +1 -5
  380. mteb/tasks/classification/vie/massive_intent_vn_classification.py +1 -5
  381. mteb/tasks/classification/vie/massive_scenario_vn_classification.py +1 -5
  382. mteb/tasks/classification/vie/mtop_domain_vn_classification.py +1 -5
  383. mteb/tasks/classification/vie/mtop_intent_vn_classification.py +1 -5
  384. mteb/tasks/classification/vie/toxic_conversations_vn_classification.py +1 -5
  385. mteb/tasks/classification/vie/tweet_sentiment_extraction_vn_classification.py +1 -5
  386. mteb/tasks/classification/vie/vie_student_feedback_classification.py +1 -2
  387. mteb/tasks/classification/zho/cmteb_classification.py +5 -10
  388. mteb/tasks/classification/zho/yue_openrice_review_classification.py +1 -2
  389. mteb/tasks/classification/zul/isi_zulu_news_classification.py +1 -2
  390. mteb/tasks/clustering/eng/hume_wiki_cities_clustering.py +1 -1
  391. mteb/tasks/clustering/eng/wiki_cities_clustering.py +1 -1
  392. mteb/tasks/clustering/jpn/mews_c16_ja_clustering.py +1 -3
  393. mteb/tasks/clustering/multilingual/sib200_clustering_s2s.py +1 -6
  394. mteb/tasks/clustering/nld/dutch_news_articles_clustering_p2p.py +3 -0
  395. mteb/tasks/clustering/nld/dutch_news_articles_clustering_s2s.py +3 -0
  396. mteb/tasks/clustering/nld/iconclass_clustering_s2s.py +3 -0
  397. mteb/tasks/clustering/nld/open_tender_clustering_p2p.py +3 -0
  398. mteb/tasks/clustering/nld/open_tender_clustering_s2s.py +3 -0
  399. mteb/tasks/clustering/nld/vabb_clustering_p2p.py +3 -0
  400. mteb/tasks/clustering/nld/vabb_clustering_s2s.py +3 -0
  401. mteb/tasks/clustering/vie/reddit_clustering_p2p_vn.py +1 -5
  402. mteb/tasks/clustering/vie/reddit_clustering_vn.py +1 -5
  403. mteb/tasks/clustering/vie/stack_exchange_clustering_p2p_vn.py +1 -5
  404. mteb/tasks/clustering/vie/stack_exchange_clustering_vn.py +1 -5
  405. mteb/tasks/clustering/vie/twenty_newsgroups_clustering_vn.py +1 -5
  406. mteb/tasks/clustering/zho/cmteb_clustering.py +2 -2
  407. mteb/tasks/image_text_pair_classification/eng/sugar_crepe.py +1 -1
  408. mteb/tasks/multilabel_classification/ita/emit_classification.py +1 -5
  409. mteb/tasks/multilabel_classification/kor/kor_hate_speech_ml_classification.py +1 -9
  410. mteb/tasks/multilabel_classification/mlt/maltese_news_classification.py +1 -6
  411. mteb/tasks/multilabel_classification/nld/covid_disinformation_nl_multi_label_classification.py +3 -0
  412. mteb/tasks/multilabel_classification/nld/vabb_multi_label_classification.py +3 -0
  413. mteb/tasks/multilabel_classification/por/brazilian_toxic_tweets_classification.py +1 -6
  414. mteb/tasks/multilabel_classification/swe/swedish_patent_cpc_group_classification.py +1 -1
  415. mteb/tasks/multilabel_classification/swe/swedish_patent_cpc_subclass_classification.py +1 -2
  416. mteb/tasks/pair_classification/dan/talemaader_pc.py +1 -6
  417. mteb/tasks/pair_classification/eng/legal_bench_pc.py +1 -9
  418. mteb/tasks/pair_classification/nld/sick_nl_pair_classification.py +3 -0
  419. mteb/tasks/pair_classification/nld/xlwic_nl_pair_classification.py +3 -0
  420. mteb/tasks/pair_classification/rus/__init__.py +2 -2
  421. mteb/tasks/pair_classification/rus/terra.py +51 -25
  422. mteb/tasks/pair_classification/vie/sprint_duplicate_questions_pcvn.py +1 -5
  423. mteb/tasks/pair_classification/vie/twitter_sem_eval2015_pcvn.py +1 -5
  424. mteb/tasks/pair_classification/vie/twitter_url_corpus_pcvn.py +1 -5
  425. mteb/tasks/regression/multilingual/ru_sci_bench_regression.py +2 -6
  426. mteb/tasks/reranking/jpn/__init__.py +9 -1
  427. mteb/tasks/reranking/jpn/j_qa_ra_reranking_lite.py +49 -0
  428. mteb/tasks/reranking/jpn/ja_cwir_reranking_lite.py +47 -0
  429. mteb/tasks/reranking/multilingual/__init__.py +2 -0
  430. mteb/tasks/reranking/multilingual/multi_long_doc_reranking.py +70 -0
  431. mteb/tasks/reranking/multilingual/wikipedia_reranking_multilingual.py +1 -1
  432. mteb/tasks/reranking/multilingual/x_glue_wpr_reranking.py +1 -2
  433. mteb/tasks/reranking/vie/ask_ubuntu_dup_questions_vn.py +1 -5
  434. mteb/tasks/reranking/vie/sci_docs_reranking_vn.py +1 -5
  435. mteb/tasks/reranking/vie/stack_overflow_dup_questions_vn.py +1 -5
  436. mteb/tasks/retrieval/code/code_rag.py +12 -12
  437. mteb/tasks/retrieval/code/fresh_stack_retrieval.py +8 -5
  438. mteb/tasks/retrieval/dan/dan_fever_retrieval.py +1 -1
  439. mteb/tasks/retrieval/dan/tv2_nordretrieval.py +2 -2
  440. mteb/tasks/retrieval/dan/twitter_hjerne_retrieval.py +2 -2
  441. mteb/tasks/retrieval/eng/__init__.py +2 -0
  442. mteb/tasks/retrieval/eng/chemrxiv.py +33 -0
  443. mteb/tasks/retrieval/eng/cub200_i2i_retrieval.py +1 -1
  444. mteb/tasks/retrieval/eng/lit_search_retrieval.py +1 -8
  445. mteb/tasks/retrieval/eng/vidore_bench_retrieval.py +4 -0
  446. mteb/tasks/retrieval/jpn/__init__.py +8 -0
  447. mteb/tasks/retrieval/jpn/ja_cwir_retrieval.py +1 -4
  448. mteb/tasks/retrieval/jpn/ja_cwir_retrieval_lite.py +47 -0
  449. mteb/tasks/retrieval/jpn/jaqket_retrieval_lite.py +50 -0
  450. mteb/tasks/retrieval/jpn/miracl_ja_retrieval_lite.py +52 -0
  451. mteb/tasks/retrieval/jpn/mr_tydi_ja_retrieval_lite.py +48 -0
  452. mteb/tasks/retrieval/kat/georgian_faq_retrieval.py +11 -4
  453. mteb/tasks/retrieval/kor/__init__.py +16 -1
  454. mteb/tasks/retrieval/kor/kovidore2_bench_retrieval.py +142 -0
  455. mteb/tasks/retrieval/kor/squad_kor_v1_retrieval.py +47 -0
  456. mteb/tasks/retrieval/multilingual/__init__.py +24 -0
  457. mteb/tasks/retrieval/multilingual/belebele_retrieval.py +5 -4
  458. mteb/tasks/retrieval/multilingual/euro_pirq_retrieval.py +43 -0
  459. mteb/tasks/retrieval/multilingual/jina_vdr_bench_retrieval.py +56 -42
  460. mteb/tasks/retrieval/multilingual/mkqa_retrieval.py +1 -2
  461. mteb/tasks/retrieval/multilingual/mlqa_retrieval.py +1 -4
  462. mteb/tasks/retrieval/multilingual/multi_long_doc_retrieval.py +1 -2
  463. mteb/tasks/retrieval/multilingual/public_health_qa_retrieval.py +9 -4
  464. mteb/tasks/retrieval/multilingual/ru_sci_bench_retrieval.py +2 -12
  465. mteb/tasks/retrieval/multilingual/vidore2_bench_retrieval.py +4 -2
  466. mteb/tasks/retrieval/multilingual/vidore3_bench_retrieval.py +389 -0
  467. mteb/tasks/retrieval/nld/__init__.py +8 -4
  468. mteb/tasks/retrieval/nld/argu_ana_nl_retrieval.py +46 -27
  469. mteb/tasks/retrieval/nld/bbsard_nl_retrieval.py +3 -0
  470. mteb/tasks/retrieval/nld/dutch_news_articles_retrieval.py +3 -0
  471. mteb/tasks/retrieval/nld/legal_qa_nl_retrieval.py +3 -0
  472. mteb/tasks/retrieval/nld/nf_corpus_nl_retrieval.py +42 -25
  473. mteb/tasks/retrieval/nld/open_tender_retrieval.py +3 -0
  474. mteb/tasks/retrieval/nld/sci_fact_nl_retrieval.py +42 -24
  475. mteb/tasks/retrieval/nld/scidocsnl_retrieval.py +44 -27
  476. mteb/tasks/retrieval/nld/vabb_retrieval.py +3 -0
  477. mteb/tasks/retrieval/nob/norquad.py +2 -2
  478. mteb/tasks/retrieval/nob/snl_retrieval.py +2 -2
  479. mteb/tasks/retrieval/slk/slovak_sum_retrieval.py +1 -7
  480. mteb/tasks/retrieval/tur/tur_hist_quad.py +1 -1
  481. mteb/tasks/retrieval/vie/__init__.py +14 -6
  482. mteb/tasks/retrieval/vie/argu_ana_vn_retrieval.py +1 -5
  483. mteb/tasks/retrieval/vie/climate_fevervn_retrieval.py +40 -5
  484. mteb/tasks/retrieval/vie/cqa_dupstack_android_vn_retrieval.py +1 -5
  485. mteb/tasks/retrieval/vie/cqa_dupstack_gis_vn_retrieval.py +1 -5
  486. mteb/tasks/retrieval/vie/cqa_dupstack_mathematica_vn_retrieval.py +1 -5
  487. mteb/tasks/retrieval/vie/cqa_dupstack_physics_vn_retrieval.py +1 -5
  488. mteb/tasks/retrieval/vie/cqa_dupstack_programmers_vn_retrieval.py +1 -5
  489. mteb/tasks/retrieval/vie/cqa_dupstack_stats_vn_retrieval.py +1 -5
  490. mteb/tasks/retrieval/vie/cqa_dupstack_tex_vn_retrieval.py +1 -5
  491. mteb/tasks/retrieval/vie/cqa_dupstack_unix_vn_retrieval.py +1 -5
  492. mteb/tasks/retrieval/vie/cqa_dupstack_webmasters_vn_retrieval.py +1 -5
  493. mteb/tasks/retrieval/vie/cqa_dupstack_wordpress_vn_retrieval.py +1 -5
  494. mteb/tasks/retrieval/vie/db_pedia_vn_retrieval.py +40 -5
  495. mteb/tasks/retrieval/vie/fevervn_retrieval.py +40 -7
  496. mteb/tasks/retrieval/vie/fi_qa2018_vn_retrieval.py +1 -5
  497. mteb/tasks/retrieval/vie/green_node_table_markdown_retrieval.py +16 -1
  498. mteb/tasks/retrieval/vie/hotpot_qavn_retrieval.py +40 -6
  499. mteb/tasks/retrieval/vie/msmarcovn_retrieval.py +49 -5
  500. mteb/tasks/retrieval/vie/nf_corpus_vn_retrieval.py +1 -5
  501. mteb/tasks/retrieval/vie/nqvn_retrieval.py +40 -5
  502. mteb/tasks/retrieval/vie/quora_vn_retrieval.py +1 -6
  503. mteb/tasks/retrieval/vie/sci_fact_vn_retrieval.py +1 -5
  504. mteb/tasks/retrieval/vie/scidocsvn_retrieval.py +1 -6
  505. mteb/tasks/retrieval/vie/touche2020_vn_retrieval.py +1 -5
  506. mteb/tasks/retrieval/vie/treccovidvn_retrieval.py +1 -5
  507. mteb/tasks/retrieval/vie/tvpl_retrieval.py +42 -0
  508. mteb/tasks/retrieval/vie/zac_legal_text_retrieval.py +15 -1
  509. mteb/tasks/sts/nld/sick_nl_sts.py +1 -0
  510. mteb/tasks/sts/vie/biosses_stsvn.py +1 -5
  511. mteb/tasks/sts/vie/sickr_stsvn.py +1 -5
  512. mteb/tasks/sts/vie/sts_benchmark_stsvn.py +1 -5
  513. mteb/tasks/zeroshot_classification/eng/gtsrb.py +1 -1
  514. mteb/tasks/zeroshot_classification/eng/patch_camelyon.py +1 -1
  515. mteb/tasks/zeroshot_classification/eng/ucf101.py +1 -5
  516. mteb/types/__init__.py +2 -0
  517. mteb/types/_encoder_io.py +19 -2
  518. mteb/types/_result.py +2 -1
  519. mteb/types/statistics.py +9 -3
  520. {mteb-2.1.4.dist-info → mteb-2.7.2.dist-info}/METADATA +25 -8
  521. {mteb-2.1.4.dist-info → mteb-2.7.2.dist-info}/RECORD +525 -438
  522. mteb/models/model_implementations/mxbai_models.py +0 -102
  523. mteb/models/model_implementations/nb_sbert.py +0 -25
  524. {mteb-2.1.4.dist-info → mteb-2.7.2.dist-info}/WHEEL +0 -0
  525. {mteb-2.1.4.dist-info → mteb-2.7.2.dist-info}/entry_points.txt +0 -0
  526. {mteb-2.1.4.dist-info → mteb-2.7.2.dist-info}/licenses/LICENSE +0 -0
  527. {mteb-2.1.4.dist-info → mteb-2.7.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,625 @@
1
+ from __future__ import annotations
2
+
3
+ import base64
4
+ import logging
5
+ import os
6
+ import time
7
+ from concurrent.futures import ThreadPoolExecutor
8
+ from functools import partial
9
+ from io import BytesIO
10
+ from typing import TYPE_CHECKING, Any
11
+
12
+ import requests
13
+ import torch
14
+ from torch.utils.data import DataLoader
15
+ from tqdm import tqdm
16
+
17
+ from mteb._requires_package import requires_package
18
+ from mteb.abstasks.task_metadata import TaskMetadata
19
+ from mteb.models.abs_encoder import AbsEncoder
20
+ from mteb.models.model_implementations.bge_models import bge_chinese_training_data
21
+ from mteb.models.model_implementations.nvidia_models import nvidia_training_datasets
22
+ from mteb.models.model_meta import ModelMeta
23
+ from mteb.types import Array, BatchedInput, PromptType
24
+
25
+ if TYPE_CHECKING:
26
+ from PIL import Image
27
+
28
+
29
+ logger = logging.getLogger(__name__)
30
+
31
+ doubao_embedding_training_data = (
32
+ {
33
+ "PawsXPairClassification",
34
+ "QBQTC",
35
+ "STSB",
36
+ "TNews",
37
+ "Waimai",
38
+ "IFlyTek",
39
+ "MassiveScenarioClassification",
40
+ "CodeSearchNetRetrieval",
41
+ }
42
+ | bge_chinese_training_data
43
+ | nvidia_training_datasets
44
+ )
45
+
46
+
47
+ class Seed16EmbeddingWrapper(AbsEncoder):
48
+ def __init__(
49
+ self,
50
+ model_name: str,
51
+ revision: str,
52
+ tokenizer_name: str = "cl100k_base",
53
+ embed_dim: int | None = None,
54
+ **kwargs,
55
+ ) -> None:
56
+ """Wrapper for Seed embedding API."""
57
+ requires_package(
58
+ self,
59
+ "volcenginesdkarkruntime",
60
+ "pip install mteb[ark]",
61
+ "tiktoken",
62
+ )
63
+
64
+ self._model_name = model_name
65
+ self._max_tokens = 32768
66
+ self._embed_dim = embed_dim
67
+ self._available_embed_dims = [2048, 1024]
68
+
69
+ def pil_to_base64(self, image, format="jpeg"):
70
+ if image is None:
71
+ return None
72
+ buffer = BytesIO()
73
+ image.save(buffer, format=format)
74
+ img_bytes = buffer.getvalue()
75
+ encoded_bytes = base64.b64encode(img_bytes)
76
+ return encoded_bytes.decode("utf-8")
77
+
78
+ def multimodal_embedding(self, instruction, image_base64, text_content):
79
+ auth_token = os.getenv("VOLCES_AUTH_TOKEN")
80
+ model_name = "doubao-embedding-vision-251215"
81
+ api_url = "https://ark.cn-beijing.volces.com/api/v3/embeddings/multimodal"
82
+
83
+ headers = {
84
+ "Authorization": f"Bearer {auth_token}",
85
+ "x-ark-vlm1": "true",
86
+ "Content-Type": "application/json",
87
+ }
88
+
89
+ if text_content is not None and len(text_content) > self._max_tokens:
90
+ text_content = text_content[: self._max_tokens]
91
+
92
+ if image_base64 is not None and text_content is None:
93
+ inputs = []
94
+ for image in image_base64:
95
+ image_format = "jpeg"
96
+ image_data = f"data:image/{image_format};base64,{image}"
97
+ inputs.append({"type": "image_url", "image_url": {"url": image_data}})
98
+
99
+ payload = {"model": model_name, "input": inputs}
100
+ elif image_base64 is None and text_content is not None:
101
+ payload = {
102
+ "model": model_name,
103
+ "instruction": instruction,
104
+ "input": [
105
+ {"type": "text", "text": text_content},
106
+ ],
107
+ }
108
+ else:
109
+ inputs = []
110
+ for image in image_base64:
111
+ image_format = "jpeg"
112
+ image_data = f"data:image/{image_format};base64,{image}"
113
+ inputs.append({"type": "image_url", "image_url": {"url": image_data}})
114
+ inputs.append({"type": "text", "text": text_content})
115
+ payload = {"model": model_name, "input": inputs}
116
+
117
+ max_retries = 3
118
+ retry_count = 0
119
+
120
+ while retry_count < max_retries:
121
+ response = requests.post(
122
+ url=api_url, headers=headers, json=payload, timeout=30
123
+ )
124
+
125
+ if response.status_code != 200:
126
+ retry_count += 1
127
+ time.sleep(3)
128
+ continue
129
+
130
+ response_json = response.json()
131
+ return response_json
132
+
133
+ raise Exception(
134
+ f"Request failed with status code {response.status_code}. "
135
+ f"Response: {response.text}"
136
+ )
137
+
138
+ def get_fused_embeddings(
139
+ self,
140
+ texts: list[str] | None = None,
141
+ images: list[Image.Image] | DataLoader | None = None,
142
+ *,
143
+ task_name: str | None = None,
144
+ prompt_type: PromptType | None = None,
145
+ **kwargs: Any,
146
+ ) -> Array:
147
+ assert (
148
+ self._embed_dim is None or self._embed_dim in self._available_embed_dims
149
+ ), (
150
+ f"Available embed_dims are {self._available_embed_dims}, found {self._embed_dim}"
151
+ )
152
+
153
+ if images is not None and texts is not None:
154
+ assert len(texts) == len(images)
155
+ batch_len = len(texts)
156
+ images_base64 = [self.pil_to_base64(image) for image in images]
157
+ elif images is None:
158
+ batch_len = len(texts)
159
+ images_base64 = [None for _ in range(batch_len)]
160
+ elif texts is None:
161
+ batch_len = len(images)
162
+ images_base64 = [self.pil_to_base64(image) for image in images]
163
+ else:
164
+ raise ValueError("images and texts cannot be None at the same time")
165
+
166
+ def process_item(
167
+ i, prompt_type, task_name, texts, images_base64, multimodal_embedding
168
+ ):
169
+ if (
170
+ prompt_type == PromptType("query") or prompt_type is None
171
+ ) and task_name in TASK_NAME_TO_INSTRUCTION:
172
+ instruction = TASK_NAME_TO_INSTRUCTION[task_name]
173
+ instruction = instruction.rstrip("{}").rstrip("\n")
174
+ instruction = (
175
+ "Target_modality:Text.\n Instruction:" + instruction + "\n Query:"
176
+ )
177
+ input_text = texts[i]
178
+ else:
179
+ if texts[i] != "" and images_base64[i] is not None:
180
+ instruction = "Instruction: Compress the text and image into one word.\n Query:"
181
+ input_text = texts[i]
182
+ elif texts[i] != "":
183
+ instruction = (
184
+ "Instruction: Compress the text into one word.\n Query:"
185
+ )
186
+ input_text = texts[i]
187
+ elif images_base64[i] is not None:
188
+ instruction = (
189
+ "Instruction: Compress the image into one word.\n Query:"
190
+ )
191
+ input_text = None
192
+ else:
193
+ raise ValueError("image and text are both None")
194
+
195
+ resp = multimodal_embedding(
196
+ instruction=instruction,
197
+ image_base64=images_base64[i],
198
+ text_content=input_text,
199
+ )
200
+ embedding = torch.tensor(resp["data"]["embedding"])
201
+ embedding = torch.reshape(embedding, (1, -1))
202
+ return embedding
203
+
204
+ outputs = []
205
+ process_partial = partial(
206
+ process_item,
207
+ prompt_type=prompt_type,
208
+ task_name=task_name,
209
+ texts=texts,
210
+ images_base64=images_base64,
211
+ multimodal_embedding=self.multimodal_embedding,
212
+ )
213
+ with ThreadPoolExecutor(max_workers=15) as executor:
214
+ futures = [executor.submit(process_partial, i) for i in range(batch_len)]
215
+ for future in tqdm(futures, total=batch_len, desc="Encoding"):
216
+ outputs.append(future.result())
217
+
218
+ outputs = torch.stack(outputs, dim=0).squeeze(1)
219
+
220
+ if self._embed_dim is not None:
221
+ outputs = outputs[:, : self._embed_dim]
222
+ outputs = torch.nn.functional.normalize(outputs, p=2, dim=1)
223
+ return outputs.float()
224
+
225
+ def encode(
226
+ self,
227
+ inputs: DataLoader[BatchedInput],
228
+ *,
229
+ task_metadata: TaskMetadata,
230
+ hf_split: str,
231
+ hf_subset: str,
232
+ prompt_type: PromptType | None = None,
233
+ **kwargs: Any,
234
+ ) -> Array:
235
+ if "text" in inputs.dataset.features:
236
+ sentences = [text for batch in inputs for text in batch["text"]]
237
+ else:
238
+ sentences = None
239
+
240
+ if "image" in inputs.dataset.features:
241
+ images = [image for batch in inputs for image in batch["image"]]
242
+ else:
243
+ images = None
244
+
245
+ return self.get_fused_embeddings(
246
+ texts=sentences,
247
+ images=images,
248
+ task_name=task_metadata.name,
249
+ prompt_type=prompt_type,
250
+ **kwargs,
251
+ )
252
+
253
+
254
+ TASK_NAME_TO_INSTRUCTION = {
255
+ "AmazonCounterfactualClassification": "Classify a given Amazon customer review text as either counterfactual or not-counterfactual\n{}",
256
+ "AmazonPolarityClassification": "Classify Amazon reviews into positive or negative sentiment\n{}",
257
+ "AmazonReviewsClassification": "Classify the given Amazon review into its appropriate rating category\n{}",
258
+ "Banking77Classification": "Given a online banking query, find the corresponding intents\n{}",
259
+ "EmotionClassification": "Classify the emotion expressed in the given Twitter message into one of the six emotions: anger, fear, joy, love, sadness, and surprise\n{}",
260
+ "ImdbClassification": "Classify the sentiment expressed in the given movie review text from the IMDB dataset\n{}",
261
+ "MassiveIntentClassification": "Given a user utterance as query, find the user intents\n{}",
262
+ "MassiveScenarioClassification": "Given a user utterance as query, find the user scenarios\n{}",
263
+ "MTOPDomainClassification": "Classify the intent domain of the given utterance in task-oriented conversation\n{}",
264
+ "MTOPIntentClassification": "Classify the intent of the given utterance in task-oriented conversation\n{}",
265
+ "ToxicConversationsClassification": "Classify the given comments as either toxic or not toxic\n{}",
266
+ "TweetSentimentExtractionClassification": "Classify the sentiment of a given tweet as either positive, negative, or neutral\n{}",
267
+ "TNews": "Classify the fine-grained category of the given news title\n{}",
268
+ "IFlyTek": "Given an App description text, find the appropriate fine-grained category\n{}",
269
+ "MultilingualSentiment": "Classify sentiment of the customer review into positive, neutral, or negative\n{}",
270
+ "JDReview": "Classify the customer review for iPhone on e-commerce platform into positive or negative\n{}",
271
+ "OnlineShopping": "Classify the customer review for online shopping into positive or negative\n{}",
272
+ "Waimai": "Classify the customer review from a food takeaway platform into positive or negative\n{}",
273
+ "ArxivClusteringP2P": "Identify the main and secondary category of Arxiv papers based on the titles and abstracts\n{}",
274
+ "ArxivClusteringS2S": "Identify the main and secondary category of Arxiv papers based on the titles\n{}",
275
+ "BiorxivClusteringP2P": "Identify the main category of Biorxiv papers based on the titles and abstracts\n{}",
276
+ "BiorxivClusteringS2S": "Identify the main category of Biorxiv papers based on the titles\n{}",
277
+ "MedrxivClusteringP2P": "Identify the main category of Medrxiv papers based on the titles and abstracts\n{}",
278
+ "MedrxivClusteringS2S": "Identify the main category of Medrxiv papers based on the titles\n{}",
279
+ "RedditClustering": "Identify the topic or theme of Reddit posts based on the titles\n{}",
280
+ "RedditClusteringP2P": "Identify the topic or theme of Reddit posts based on the titles and posts\n{}",
281
+ "StackExchangeClustering": "Identify the topic or theme of StackExchange posts based on the titles\n{}",
282
+ "StackExchangeClusteringP2P": "Identify the topic or theme of StackExchange posts based on the given paragraphs\n{}",
283
+ "TwentyNewsgroupsClustering": "Identify the topic or theme of the given news articles\n{}",
284
+ "CLSClusteringS2S": "Identify the main category of scholar papers based on the titles\n{}",
285
+ "CLSClusteringP2P": "Identify the main category of scholar papers based on the titles and abstracts\n{}",
286
+ "ThuNewsClusteringS2S": "Identify the topic or theme of the given news articles based on the titles\n{}",
287
+ "ThuNewsClusteringP2P": "Identify the topic or theme of the given news articles based on the titles and contents\n{}",
288
+ "AskUbuntuDupQuestions": "Retrieve duplicate questions from AskUbuntu forum\n{}",
289
+ "MindSmallReranking": "Retrieve relevant news articles based on user browsing history\n{}",
290
+ "SciDocsRR": "Given a title of a scientific paper, retrieve the titles of other relevant papers\n{}",
291
+ "StackOverflowDupQuestions": "Retrieve duplicate questions from StackOverflow forum\n{}",
292
+ "SprintDuplicateQuestions": "Retrieve semantically similar text\n{}",
293
+ "TwitterSemEval2015": "Retrieve semantically similar text\n{}",
294
+ "TwitterURLCorpus": "Retrieve semantically similar text\n{}",
295
+ "T2Reranking": "为这个句子生成表示以用于检索相关内容:{}",
296
+ "MmarcoReranking": "Given a Chinese search query, retrieve web passages that answer the question\n{}",
297
+ "CMedQAv1": "Given a Chinese community medical question, retrieve replies that best answer the question\n{}",
298
+ "CMedQAv2": "Given a Chinese community medical question, retrieve replies that best answer the question\n{}",
299
+ "Ocnli": "Retrieve semantically similar text\n{}",
300
+ "Cmnli": "Retrieve semantically similar text\n{}",
301
+ "ClimateFEVER": "Given a claim about climate change, retrieve documents that support or refute the claim\n{}",
302
+ "ClimateFEVERHardNegatives": "Given a claim, retrieve documents that support or refute the claim\n{}",
303
+ "DBPedia": "Given a query, retrieve relevant entity descriptions from DBPedia\n{}",
304
+ "FEVER": "Given a claim, retrieve documents that support or refute the claim\n{}",
305
+ "FEVERHardNegatives": "Given a claim, retrieve documents that support or refute the claim\n{}",
306
+ "FiQA2018": "Given a financial question, retrieve user replies that best answer the question\n{}",
307
+ "HotpotQA": "Given a multi-hop question, retrieve documents that can help answer the question\n{}",
308
+ "HotpotQAHardNegatives": "Given a multi-hop question, retrieve documents that can help answer the question\n{}",
309
+ "MSMARCO": "Given a web search query, retrieve relevant passages that answer the query\n{}",
310
+ "NFCorpus": "Given a question, retrieve relevant documents that best answer the question\n{}",
311
+ "NQ": "Given a question, retrieve Wikipedia passages that answer the question\n{}",
312
+ "QuoraRetrieval": "Given a question, retrieve questions that are semantically equivalent to the given question\n{}",
313
+ "SCIDOCS": "Given a title of a scientific paper, retrieve the titles of other relevant papers\n{}",
314
+ "SciFact": "Given a scientific claim, retrieve documents that support or refute the claim\n{}",
315
+ "Touche2020": "Given a question, retrieve detailed and persuasive arguments that answer the question\n{}",
316
+ "Touche2020Retrieval.v3": "Given a question, retrieve detailed and persuasive arguments that answer the question\n{}",
317
+ "TRECCOVID": "Given a query on COVID-19, retrieve documents that answer the query\n{}",
318
+ "T2Retrieval": "为这个句子生成表示以用于检索相关内容:{}",
319
+ "MMarcoRetrieval": "为这个句子生成表示以用于检索相关内容:{}",
320
+ "DuRetrieval": "为这个句子生成表示以用于检索相关内容:{}",
321
+ "CovidRetrieval": "为这个句子生成表示以用于检索相关内容:{}",
322
+ "CmedqaRetrieval": "为这个句子生成表示以用于检索相关内容:{}",
323
+ "EcomRetrieval": "为这个句子生成表示以用于检索相关内容:{}",
324
+ "MedicalRetrieval": "为这个句子生成表示以用于检索相关内容:{}",
325
+ "VideoRetrieval": "为这个句子生成表示以用于检索相关内容:{}",
326
+ "STSBenchmarkMultilingualSTS": "Retrieve semantically similar text\n{}",
327
+ "SICKFr": "Retrieve semantically similar text\n{}",
328
+ "SummEvalFr": "Given a news summary, retrieve other semantically similar summaries\n{}",
329
+ "MasakhaNEWSClassification": "Classify the News in the given texts into one of the seven category: politics,sports,health,business,entertainment,technology,religion \n{}",
330
+ "OpusparcusPC": "Retrieve semantically similar text\n{}",
331
+ "PawsX": "Retrieve semantically similar text\n{}",
332
+ "AlloProfClusteringP2P": "Identify the main category of Allo Prof document based on the titles and descriptions\n{}",
333
+ "AlloProfClusteringS2S": "Identify the topic of document titles from Allo Prof dataset\n{}",
334
+ "HALClusteringS2S": "Identify the main category of academic passage based on the titles and contents\n{}",
335
+ "MasakhaNEWSClusteringP2P": "Identify the topic or theme of the given news articles based on the titles and contents\n{}",
336
+ "MasakhaNEWSClusteringS2S": "Identify the topic or theme of the given news articles based on the titles\n{}",
337
+ "MLSUMClusteringP2P": "Identify the topic or theme of the given articles based on the titles and contents\n{}",
338
+ "MLSUMClusteringS2S": "Identify the topic or theme of the given articles based on the titles\n{}",
339
+ "SyntecReranking": "Given a question, retrieve passages that answer the question\n{}",
340
+ "AlloprofReranking": "Given a question, retrieve passages that answer the question\n{}",
341
+ "AlloprofRetrieval": "Given a question, retrieve passages that answer the question\n{}",
342
+ "BSARDRetrieval": "Given a question, retrieve passages that answer the question\n{}",
343
+ "SyntecRetrieval": "Given a question, retrieve passages that answer the question\n{}",
344
+ "XPQARetrieval": "Given a question, retrieve passages that answer the question\n{}",
345
+ "MintakaRetrieval": "Given a question, retrieve passages that answer the question\n{}",
346
+ "CBD": "Classify the sentiment of polish tweet reviews\n{}",
347
+ "PolEmo2.0-IN": "Classify the sentiment of in-domain (medicine and hotels) online reviews\n{}",
348
+ "PolEmo2.0-OUT": "Classify the sentiment of out-of-domain (products and school) online reviews\n{}",
349
+ "AllegroReviews": "Classify the sentiment of reviews from e-commerce marketplace Allegro\n{}",
350
+ "PAC": 'Classify the sentence into one of the two types: "BEZPIECZNE_POSTANOWIENIE_UMOWNE" and "KLAUZULA_ABUZYWNA"\n{}',
351
+ "SICK-E-PL": "Retrieve semantically similar text\n{}",
352
+ "SICK-R-PL": "Retrieve semantically similar text\n{}",
353
+ "STS22": "Retrieve semantically similar text\n{}",
354
+ "AFQMC": "Retrieve semantically similar text\n{}",
355
+ "BQ": "Retrieve semantically similar text\n{}",
356
+ "LCQMC": "Retrieve semantically similar text\n{}",
357
+ "PAWSX": "Retrieve semantically similar text\n{}",
358
+ "QBQTC": "Retrieve semantically similar text\n{}",
359
+ "STS12": "Retrieve semantically similar text\n{}",
360
+ "PPC": "Retrieve semantically similar text\n{}",
361
+ "CDSC-E": "Retrieve semantically similar text\n{}",
362
+ "PSC": "Retrieve semantically similar text\n{}",
363
+ "8TagsClustering": "Identify of headlines from social media posts in Polish into 8 categories: film, history, food, medicine, motorization, work, sport and technology\n{}",
364
+ "ArguAna-PL": "Given a claim, find documents that refute the claim\n{}",
365
+ "DBPedia-PL": "Given a query, retrieve relevant entity descriptions from DBPedia\n{}",
366
+ "FiQA-PL": "Given a financial question, retrieve user replies that best answer the question\n{}",
367
+ "HotpotQA-PL": "Given a multi-hop question, retrieve documents that can help answer the question\n{}",
368
+ "MSMARCO-PL": "Given a web search query, retrieve relevant passages that answer the query\n{}",
369
+ "NFCorpus-PL": "Given a question, retrieve relevant documents that best answer the question\n{}",
370
+ "NQ-PL": "Given a question, retrieve Wikipedia passages that answer the question\n{}",
371
+ "Quora-PL": "Given a question, retrieve questions that are semantically equivalent to the given question\n{}",
372
+ "SCIDOCS-PL": "Given a scientific paper title, retrieve paper abstracts that are cited by the given paper\n{}",
373
+ "SciFact-PL": "Given a scientific claim, retrieve documents that support or refute the claim\n{}",
374
+ "TRECCOVID-PL": "Given a query on COVID-19, retrieve documents that answer the query\n{}",
375
+ "GeoreviewClassification": "Classify the organization rating based on the reviews\n{}",
376
+ "HeadlineClassification": "Classify the topic or theme of the given news headline\n{}",
377
+ "InappropriatenessClassification": "Classify the given message as either sensitive topic or not\n{}",
378
+ "KinopoiskClassification": "Classify the sentiment expressed in the given movie review text\n{}",
379
+ "RuReviewsClassification": "Classify product reviews into positive, negative or neutral sentiment\n{}",
380
+ "RuSciBenchGRNTIClassification": "Classify the category of scientific papers based on the titles and abstracts\n{}",
381
+ "RuSciBenchOECDClassification": "Classify the category of scientific papers based on the titles and abstracts\n{}",
382
+ "GeoreviewClusteringP2P": "Identify the organization category based on the reviews\n{}",
383
+ "RuSciBenchGRNTIClusteringP2P": "Identify the category of scientific papers based on the titles and abstracts\n{}",
384
+ "RuSciBenchOECDClusteringP2P": "Identify the category of scientific papers based on the titles and abstracts\n{}",
385
+ "TERRa": "Given a premise, retrieve a hypothesis that is entailed by the premise\n{}",
386
+ "RuBQReranking": "Given a question, retrieve Wikipedia passages that answer the question\n{}",
387
+ "RiaNewsRetrieval": "Given a headline, retrieval relevant articles\n{}",
388
+ "RuBQRetrieval": "Given a question, retrieve Wikipedia passages that answer the question\n{}",
389
+ "RUParaPhraserSTS": "Retrieve semantically similar text\n{}",
390
+ "RuSTSBenchmarkSTS": "Retrieve semantically similar text\n{}",
391
+ "AppsRetrieval": "Given a code contest problem description, retrieve relevant code that can help solve the problem.\n{}",
392
+ "COIRCodeSearchNetRetrieval": "Given a code snippet, retrieve the comment corresponding to that code.\n{}",
393
+ "CodeEditSearchRetrieval": "Given a code commit message, retrieve the code difference information. \n{}",
394
+ "CodeFeedbackMT": "Given a question about coding, retrieval code or passage that can solve user's question\n{}",
395
+ "CodeFeedbackST": "Given a question about coding, retrieval code or passage that can solve user's question\n{}",
396
+ "CodeSearchNetCCRetrieval": "Given a code comment, retrieve the code snippet corresponding to that comment.\n{}",
397
+ "CodeSearchNetRetrieval": "Given a code snippet, retrieve the comment corresponding to that code.\n{}",
398
+ "CodeTransOceanContest": "Given a piece for code, retrieval semantically similar code\n{}",
399
+ "CodeTransOceanDL": "Given a piece for code, retrieval semantically similar code\n{}",
400
+ "CosQA": "Given a question about coding, retrieval code or passage that can solve user's question\n{}",
401
+ "StackOverflowQA": "Given a question about coding, retrieval code or passage that can solve user's question\n{}",
402
+ "SyntheticText2SQL": "Given a user's question, retrieve SQL queries that are appropriate responses to the question\n{}",
403
+ "BibleNLPBitextMining": "Retrieve parallel sentences\n{}",
404
+ "BUCC.v2": "Retrieve parallel sentences\n{}",
405
+ "DiaBlaBitextMining": "Retrieve parallel sentences\n{}",
406
+ "FloresBitextMining": "Retrieve parallel sentences\n{}",
407
+ "IN22GenBitextMining": "Retrieve parallel sentences\n{}",
408
+ "IndicGenBenchFloresBitextMining": "Retrieve parallel sentences\n{}",
409
+ "NollySentiBitextMining": "Retrieve parallel sentences\n{}",
410
+ "NTREXBitextMining": "Retrieve parallel sentences\n{}",
411
+ "NusaTranslationBitextMining": "Retrieve parallel sentences\n{}",
412
+ "NusaXBitextMining": "Retrieve parallel sentences\n{}",
413
+ "Tatoeba": "Retrieve parallel sentences\n{}",
414
+ "BornholmBitextMining": "Retrieve parallel sentences\n{}",
415
+ "NorwegianCourtsBitextMining": "Retrieve parallel sentences\n{}",
416
+ "BulgarianStoreReviewSentimentClassfication": "Classify user reviews into positive or negative sentiment\n{}",
417
+ "CzechProductReviewSentimentClassification": "Classify product reviews into positive or negative sentiment\n{}",
418
+ "GreekLegalCodeClassification": "Given a greek legal text, classify its topic\n{}",
419
+ "DBpediaClassification": "Given a Wikipedia articles, categorized it into classes based on its DBpedia ontology\n{}",
420
+ "FinancialPhrasebankClassification": "Given financial news, categorized by sentiment into positive, negative, or neutral\n{}",
421
+ "PoemSentimentClassification": "Gvien a poem, categorized by sentiment into positive, no_impact, negative or mixed\n{}",
422
+ "TweetTopicSingleClassification": "Gvien a twitter, classify its topic\n{}",
423
+ "EstonianValenceClassification": "Given a news article, categorized by sentiment into negatiivne, positiivne, neutraalne or vastuolulin\n{}",
424
+ "FilipinoShopeeReviewsClassification": "Given a shop review, classify its rating on a scale from 1 to 5\n{}",
425
+ "GujaratiNewsClassification": "Given a Gujarati news articles, classify its topic\n{}",
426
+ "SentimentAnalysisHindi": "Given a hindi text, categorized by sentiment into positive, negative or neutral\n{}",
427
+ "IndonesianIdClickbaitClassification": "Given an Indonesian news headlines, classify its into clickbait or non-clickbait\n{}",
428
+ "ItaCaseholdClassification": "Given a judgments, classify its topic\n{}",
429
+ "KorSarcasmClassification": "Given a twitter, categorized it into sarcasm or not_sarcasm\n{}",
430
+ "KurdishSentimentClassification": "Given a text, categorized by sentiment into positive or negative\n{}",
431
+ "MacedonianTweetSentimentClassification": "Given a Macedonian tweet, categorized by sentiment into positive, negative, or neutral\n{}",
432
+ "AfriSentiClassification": "Given a text, categorized by sentiment into positive, negative, or neutral\n{}",
433
+ "CataloniaTweetClassification": "Given a tweet, categorized by sentiment into AGAINST, FAVOR or NEUTRAL\n{}",
434
+ "CyrillicTurkicLangClassification": "Given a text, classify its language\n{}",
435
+ "IndicLangClassification": "Given a text, classify its language\n{}",
436
+ "MultiHateClassification": "Given a text, categorized by sentiment into hate or non-hate\n{}",
437
+ "NusaParagraphEmotionClassification": "Given a paragraph, classify its emotion\n{}",
438
+ "NusaX-senti": "Given a text, categorized by sentiment into positive or negative\n{}",
439
+ "SwissJudgementClassification": "Given a news article, categorized it into approval or dismissal\n{}",
440
+ "NepaliNewsClassification": "Given a news article, categorized it into business, entertainment or sports\n{}",
441
+ "OdiaNewsClassification": "Given a news article, categorized it into business, entertainment or sports\n{}",
442
+ "PunjabiNewsClassification": "Given a news article, categorized it into two-classes\n{}",
443
+ "SinhalaNewsClassification": "Given a news article, categorized it into political, business, technology, sports and Entertainment\n{}",
444
+ "CSFDSKMovieReviewSentimentClassification": "Given a movie review, classify its rating on a scale from 0 to 5\n{}",
445
+ "SiswatiNewsClassification": "Given a news article, classify its topic\n{}",
446
+ "SlovakMovieReviewSentimentClassification": "Given a movie review, categorized it into positive or negative\n{}",
447
+ "SwahiliNewsClassification": "Given a news article, classify its domain\n{}",
448
+ "TswanaNewsClassification": "Given a news article, classify its topic\n{}",
449
+ "IsiZuluNewsClassification": "Given a news article, classify its topic\n{}",
450
+ "WikiCitiesClustering": "Identify of Wikipedia articles of cities by country\n{}",
451
+ "RomaniBibleClustering": "Identify verses from the Bible in Kalderash Romani by book.\n{}",
452
+ "ArXivHierarchicalClusteringP2P": "Identify the main and secondary category of Arxiv papers based on the titles and abstracts\n{}",
453
+ "ArXivHierarchicalClusteringS2S": "Identify the main and secondary category of Arxiv papers based on the titles\n{}",
454
+ "BigPatentClustering.v2": "Identify the category of documents from the Big Patent dataset\n{}",
455
+ "AlloProfClusteringS2S.v2": "Identify the topic of document titles from Allo Prof dataset\n{}",
456
+ "HALClusteringS2S.v2": "Identify the topic of titles from HAL\n{}",
457
+ "SIB200ClusteringS2S": "Identify the category of documents\n{}",
458
+ "WikiClusteringP2P.v2": "Identify the category of wiki passages\n{}",
459
+ "PlscClusteringP2P.v2": "Identify the category of titles+abstracts from Library of Science\n{}",
460
+ "KorHateSpeechMLClassification": "Given a Korean online news comments, classify its fine-grained hate speech classes\n{}",
461
+ "MalteseNewsClassification": "Given a maltese new, classify its topic\n{}",
462
+ "MultiEURLEXMultilabelClassification": "Given a text, classify its topic\n{}",
463
+ "BrazilianToxicTweetsClassification": "Given a tweet, classify its topic\n{}",
464
+ "CTKFactsNLI": "Retrieve semantically similar text\n{}",
465
+ "indonli": "Retrieve semantically similar text\n{}",
466
+ "ArmenianParaphrasePC": "Retrieve semantically similar text\n{}",
467
+ "PawsXPairClassification": "Retrieve semantically similar text\n{}",
468
+ "RTE3": "Retrieve semantically similar text\n{}",
469
+ "XNLI": "Retrieve semantically similar text\n{}",
470
+ "PpcPC": "Retrieve semantically similar text\n{}",
471
+ "GermanSTSBenchmark": "Retrieve semantically similar text\n{}",
472
+ "SICK-R": "Retrieve semantically similar text\n{}",
473
+ "STS13": "Retrieve semantically similar text\n{}",
474
+ "STS14": "Retrieve semantically similar text\n{}",
475
+ "STSBenchmark": "Retrieve semantically similar text\n{}",
476
+ "FaroeseSTS": "Retrieve semantically similar text\n{}",
477
+ "FinParaSTS": "Retrieve semantically similar text\n{}",
478
+ "JSICK": "Retrieve semantically similar text\n{}",
479
+ "IndicCrosslingualSTS": "Retrieve semantically similar text\n{}",
480
+ "SemRel24STS": "Retrieve semantically similar text\n{}",
481
+ "STS17": "Retrieve semantically similar text\n{}",
482
+ "STS22.v2": "Retrieve semantically similar text\n{}",
483
+ "STSES": "Retrieve semantically similar text\n{}",
484
+ "STSB": "Retrieve semantically similar text\n{}",
485
+ "AILAStatutes": "Identifying the most relevant statutes for a given situation\n{}",
486
+ "HagridRetrieval": "Retrieval the relevant passage for the given query\n{}",
487
+ "LegalBenchCorporateLobbying": "Retrieval the relevant passage for the given query\n{}",
488
+ "LEMBPasskeyRetrieval": "Retrieval the relevant passage for the given query\n{}",
489
+ "BelebeleRetrieval": "Retrieval the relevant passage for the given query\n{}",
490
+ "MLQARetrieval": "Retrieval the relevant passage for the given query\n{}",
491
+ "StatcanDialogueDatasetRetrieval": "Retrieval the relevant passage for the given query\n{}",
492
+ "WikipediaRetrievalMultilingual": "Retrieval the relevant passage for the given query\n{}",
493
+ "Core17InstructionRetrieval": "Retrieval the relevant passage for the given query\n{}",
494
+ "News21InstructionRetrieval": "Retrieval the relevant passage for the given query\n{}",
495
+ "Robust04InstructionRetrieval": "Retrieval the relevant passage for the given query\n{}",
496
+ "WebLINXCandidatesReranking": "Retrieval the relevant passage for the given query\n{}",
497
+ "WikipediaRerankingMultilingual": "Retrieval the relevant passage for the given query\n{}",
498
+ "STS15": "Retrieve semantically similar text\n{}",
499
+ "MIRACLRetrievalHardNegatives": "Retrieval relevant passage for the given query\n{}",
500
+ "BIOSSES": "Retrieve semantically similar text\n{}",
501
+ "CQADupstackRetrieval": "Given a question, retrieve detailed question descriptions from Stackexchange that are duplicates to the given question\n{}",
502
+ "STS16": "Retrieve semantically similar text\n{}",
503
+ "SummEval": "Retrieve semantically similar text\n{}",
504
+ "ATEC": "Retrieve semantically similar text\n{}",
505
+ "ArguAna": "Given a claim, find documents that refute the claim\n{}",
506
+ "CQADupstackGamingRetrieval": "Given a question, retrieve detailed question descriptions from Stackexchange that are duplicates to the given question\n{}",
507
+ "CQADupstackUnixRetrieval": "Given a question, retrieve detailed question descriptions from Stackexchange that are duplicates to the given question\n{}",
508
+ "MMarcoReranking": "为这个句子生成表示以用于检索相关内容:{}",
509
+ "CMedQAv1-reranking": "为这个句子生成表示以用于检索相关内容:{}",
510
+ "CMedQAv2-reranking": "为这个句子生成表示以用于检索相关内容:{}",
511
+ "SummEvalSummarization.v2": "Retrieve semantically similar text\n{}",
512
+ "BiorxivClusteringP2P.v2": "Identify the main category of Biorxiv papers based on the titles and abstracts\n{}",
513
+ "MedrxivClusteringP2P.v2": "Identify the main category of Medrxiv papers based on the titles and abstracts\n{}",
514
+ "MedrxivClusteringS2S.v2": "Identify the main category of Medrxiv papers based on the titles\n{}",
515
+ "StackExchangeClustering.v2": "Identify the topic or theme of StackExchange posts based on the titles\n{}",
516
+ "StackExchangeClusteringP2P.v2": "Identify the topic or theme of StackExchange posts based on the given paragraphs\n{}",
517
+ "TwentyNewsgroupsClustering.v2": "Identify the topic or theme of the given news articles\n{}",
518
+ "SwednClusteringP2P": "Identify news categories in Swedish passages\n{}",
519
+ "CEDRClassification": "Given a comment as query, find expressed emotions (joy, sadness, surprise, fear, and anger)\n{}",
520
+ "TwitterHjerneRetrieval": "Retrieve answers to questions asked in Danish tweets.\n{}",
521
+ "TempReasonL1": "Given the following question about time, retrieve the correct answer.\n{}",
522
+ "WinoGrande": "Given the following sentence, retrieve an appropriate answer to fill in the missing underscored part.\n{}",
523
+ "NordicLangClassification": "Classify texts based on language\n{}",
524
+ "CLSClusteringP2P.v2": "Identify the topic or theme of the given news articles based on the titles\n{}",
525
+ "ScalaClassification": "Classify passages in Scandinavian Languages based on linguistic acceptability\n{}",
526
+ "SpartQA": "Given the following spatial reasoning question, retrieve the right answer.\n{}",
527
+ "DalajClassification": "Classify texts based on linguistic acceptability in Swedish\n{}",
528
+ "VoyageMMarcoReranking": "Given a Japanese search query, retrieve web passages that answer the question\n{}",
529
+ }
530
+
531
+
532
+ seed_embedding = ModelMeta(
533
+ name="Bytedance/Seed1.6-embedding-1215",
534
+ revision="1",
535
+ release_date="2025-12-15",
536
+ languages=[
537
+ "afr-Latn",
538
+ "ara-Arab",
539
+ "aze-Latn",
540
+ "bel-Cyrl",
541
+ "bul-Cyrl",
542
+ "ben-Beng",
543
+ "cat-Latn",
544
+ "ceb-Latn",
545
+ "ces-Latn",
546
+ "cym-Latn",
547
+ "dan-Latn",
548
+ "deu-Latn",
549
+ "ell-Grek",
550
+ "eng-Latn",
551
+ "spa-Latn",
552
+ "est-Latn",
553
+ "eus-Latn",
554
+ "fas-Arab",
555
+ "fin-Latn",
556
+ "fra-Latn",
557
+ "glg-Latn",
558
+ "guj-Gujr",
559
+ "heb-Hebr",
560
+ "hin-Deva",
561
+ "hrv-Latn",
562
+ "hat-Latn",
563
+ "hun-Latn",
564
+ "hye-Armn",
565
+ "ind-Latn",
566
+ "isl-Latn",
567
+ "ita-Latn",
568
+ "jpn-Jpan",
569
+ "jav-Latn",
570
+ "kat-Geor",
571
+ "kaz-Cyrl",
572
+ "khm-Khmr",
573
+ "kan-Knda",
574
+ "kor-Hang",
575
+ "kir-Cyrl",
576
+ "lao-Laoo",
577
+ "lit-Latn",
578
+ "lav-Latn",
579
+ "mkd-Cyrl",
580
+ "mal-Mlym",
581
+ "mon-Cyrl",
582
+ "mar-Deva",
583
+ "msa-Latn",
584
+ "mya-Mymr",
585
+ "nep-Deva",
586
+ "nld-Latn",
587
+ "nor-Latn",
588
+ "nob-Latn",
589
+ "nno-Latn",
590
+ "pan-Guru",
591
+ "pol-Latn",
592
+ "por-Latn",
593
+ "que-Latn",
594
+ "ron-Latn",
595
+ "rus-Cyrl",
596
+ "sin-Sinh",
597
+ "slk-Latn",
598
+ "slv-Latn",
599
+ "swa-Latn",
600
+ "tam-Taml",
601
+ "tel-Telu",
602
+ "tha-Thai",
603
+ "tgl-Latn",
604
+ "tur-Latn",
605
+ "ukr-Cyrl",
606
+ "urd-Arab",
607
+ "vie-Latn",
608
+ "yor-Latn",
609
+ "zho-Hans",
610
+ ],
611
+ loader=Seed16EmbeddingWrapper,
612
+ max_tokens=32768,
613
+ embed_dim=2048,
614
+ open_weights=False,
615
+ n_parameters=None,
616
+ memory_usage_mb=None,
617
+ license=None,
618
+ reference="https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-embedding-vision",
619
+ similarity_fn_name="cosine",
620
+ framework=["API"],
621
+ use_instructions=True,
622
+ training_datasets=doubao_embedding_training_data,
623
+ public_training_code=None,
624
+ public_training_data=None,
625
+ )
@@ -236,6 +236,7 @@ DEFAULT_INSTRUCTION = "Instruct: Given a web search query, retrieve relevant pas
236
236
 
237
237
  seed_embedding = ModelMeta(
238
238
  name="ByteDance-Seed/Seed1.5-Embedding",
239
+ model_type=["dense"],
239
240
  revision="4",
240
241
  release_date="2025-04-25",
241
242
  languages=[