/ Модель

Характеристики

Контекст
512 токенов
Параметры
4,4 млн
Лицензия
Apache 2.0
Архитектура
bert · dense
Базовая модель
bert_uncased_L-2_H-128_A-2
Библиотека
PyLate
Опубликована
17 сен 2025

colbert-muvera-micro

Сходство предложенийТекст → score9 профессий

Компактная англоязычная ColBERT-модель для семантического поиска и оценки сходства текстов с поддержкой кодирования MUVERA.

181скачиваний за 30 дней26лайковвеса обновлены12 дек 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

ColBERT MUVERA Micro — компактная модель NeuML на базе PyLate, дообученная на google/bert_uncased_L-2-H-128_A-2 на англоязычном датасете MS MARCO. Она преобразует предложения и абзацы в последовательности плотных векторов размерностью 128 и сопоставляет тексты оператором MaxSim для оценки семантического сходства. Модель содержит 4,4 млн параметров, принимает текст с контекстом до 512 токенов и предназначена для совместимости с фиксированным кодированием MUVERA благодаря обучению на ненормализованных оценках.

Модель подходит для семантического поиска по коллекциям документов, построения баз эмбеддингов и извлечения релевантных фрагментов для RAG. В README приведены результаты на подмножествах BEIR и NanoBEIR; автор отмечает конкурентные показатели относительно более крупных вариантов ColBERT при существенно меньшем размере. Для использования доступны PyLate и интеграция с txtai.

Модель ориентирована на английский язык. Контекст ограничен 512 токенами, а оценки в README зависят от настроек бенчмарков txtai и могут отличаться от опубликованных в статьях. Лицензия — Apache-2.0.

Сценарии применения

  • семантический поиск по коллекции документов
  • ранжирование абзацев по релевантности запросу
  • поиск источников для RAG
  • построение базы текстовых эмбеддингов
  • оценка семантического сходства предложений

Ограничения

Модель рассчитана на английский язык и ограничена контекстом в 512 токенов. Результаты бенчмарков зависят от настроек оценки и могут не совпадать с опубликованными в статьях.

Для каких профессий подходит9

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

ColBERT MUVERA Micro

This is a PyLate model finetuned from google/bert_uncased_L-2_H-128_A-2 on the msmarco-en-bge-gemma-unnormalized dataset. It maps sentences & paragraphs to sequences of 128-dimensional dense vectors and can be used for semantic textual similarity using the MaxSim operator.

This model is trained with un-normalized scores, making it compatible with MUVERA fixed-dimensional encoding.

Usage (txtai)

This model can be used to build embeddings databases with txtai for semantic search and/or as a knowledge source for retrieval augmented generation (RAG).

Note: txtai 9.0+ is required for late interaction model support

import txtai

embeddings = txtai.Embeddings(
  path="neuml/colbert-muvera-micro",
  content=True
)
embeddings.index(documents())

# Run a query
embeddings.search("query to run")

Late interaction models excel as reranker pipelines.

from txtai.pipeline import Reranker, Similarity

similarity = Similarity(path="neuml/colbert-muvera-micro", lateencode=True)
ranker = Reranker(embeddings, similarity)
ranker("query to run")

Usage (PyLate)

Alternatively, the model can be loaded with PyLate.

from pylate import rank, models

queries = [
    "query A",
    "query B",
]

documents = [
    ["document A", "document B"],
    ["document 1", "document C", "document B"],
]

documents_ids = [
    [1, 2],
    [1, 3, 2],
]

model = models.ColBERT(
    model_name_or_path="neuml/colbert-muvera-micro",
)

queries_embeddings = model.encode(
    queries,
    is_query=True,
)

documents_embeddings = model.encode(
    documents,
    is_query=False,
)

reranked_documents = rank.rerank(
    documents_ids=documents_ids,
    queries_embeddings=queries_embeddings,
    documents_embeddings=documents_embeddings,
)

Full Model Architecture

ColBERT(
  (0): Transformer({'max_seq_length': 299, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Dense({'in_features': 128, 'out_features': 128, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
)

Evaluation

BEIR Subset

The following table shows a subset of BEIR scored with the txtai benchmarks script.

Scores reported are ndcg@10 and grouped into the following three categories.

FULL multi-vector maxsim

ModelParametersArguAnaNFCorpusSciFactAverage
AnswerAI ColBERT Small v133M0.44400.36490.74230.5171
ColBERT v2110M0.45950.31650.64560.4739
ColBERT MUVERA Micro4M0.39470.32350.66760.4619
ColBERT MUVERA Small33M0.44550.35020.71450.5034
GTE ModernColBERT v1149M0.49460.37170.75290.5397

MUVERA encoding + maxsim re-ranking of the top 100 results per MUVERA paper

ModelParametersArguAnaNFCorpusSciFactAverage
AnswerAI ColBERT Small v133M0.03170.11350.08360.0763
ColBERT v2110M0.45620.30250.62780.4622
ColBERT MUVERA Micro4M0.38490.30950.64640.4469
ColBERT MUVERA Small33M0.44510.35370.71480.5045
GTE ModernColBERT v1149M0.02650.10520.05560.0624

MUVERA encoding only

ModelParametersArguAnaNFCorpusSciFactAverage
AnswerAI ColBERT Small v133M0.00240.02010.00470.0091
ColBERT v2110M0.34630.23560.50020.3607
ColBERT MUVERA Micro4M0.27950.23480.48750.3339
ColBERT MUVERA Small33M0.38500.29280.63570.4378
GTE ModernColBERT v1149M0.00030.02030.00130.0073

Note: The scores reported don't match scores reported in the respective papers due to different default settings in the txtai benchmark scripts.

As noted earlier, models trained with min-max score normalization don't perform well with MUVERA encoding. See this GitHub Issue for more.

In reviewing the scores, this model is surprisingly and unreasonably competitive with the original ColBERT v2 model at only 3% of the size!

Nano BEIR

  • Dataset: NanoBEIR_mean
  • Evaluated with pylate.evaluation.nano_beir_evaluator.NanoBEIREvaluator
MetricValue
MaxSim_accuracy@10.535
MaxSim_accuracy@30.7
MaxSim_accuracy@50.7431
MaxSim_accuracy@100.8108
MaxSim_precision@10.535
MaxSim_precision@30.3303
MaxSim_precision@50.2492
MaxSim_precision@100.1796
MaxSim_recall@10.3059
MaxSim_recall@30.4554
MaxSim_recall@50.5032
MaxSim_recall@100.5852
MaxSim_ndcg@100.5599
MaxSim_mrr@100.6283
MaxSim_map@1000.4818

Training Details

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 32
  • learning_rate: 0.0003
  • num_train_epochs: 1
  • warmup_ratio: 0.05
  • bf16: True

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 8
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 0.0003
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 1
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.05
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: True
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: False
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: None
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional

Framework Versions

  • Python: 3.10.18
  • Sentence Transformers: 4.0.2
  • PyLate: 1.3.0
  • Transformers: 4.52.3
  • PyTorch: 2.8.0+cu128
  • Accelerate: 1.10.1
  • Datasets: 4.0.0
  • Tokenizers: 0.21.4

Citation

BibTeX

Sentence Transformers

@inproceedings{reimers-2019-sentence-bert,
    title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
    author = "Reimers, Nils and Gurevych, Iryna",
    booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
    month = "11",
    year = "2019",
    publisher = "Association for Computational Linguistics",
    url = "https://arxiv.org/abs/1908.10084"
}

PyLate

@misc{PyLate,
title={PyLate: Flexible Training and Retrieval for Late Interaction Models},
author={Chaffin, Antoine and Sourty, Raphaël},
url={https://github.com/lightonai/pylate},
year={2024}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · PyLate

Нельзя запустить

Модели PyLate (ColBERT) требуют отдельного рантайма.

Класс архитектуры
BertModel
Ревизия весов
a1da92d

0 моделей