ONNX 模型库
返回模型

说明文档

mxbai-edge-colbert-v0-17m

该模型是一个轻量级的 ColBERT,拥有 1700 万参数,投影维度为 48。它基于 Ettin-17M 构建,意味着它受益于 ModernBERT 的所有架构效率。尽管实现了极高的效率,它是表现最佳的"边缘尺寸"检索器,超越了 ColBERTv2 和许多参数超过其 10 倍以上的模型。它可以为最长 32,000 个 token 的文档创建多向量表示,并与 PyLate 库完全兼容。

使用方法

要使用此模型,首先需要安装 PyLate:

通过 uv

# uv
uv add pylate
# uv + pip
uv pip install pylate

或通过 pip

# pip
pip install -U pylate

安装后,即可立即使用该模型生成表示并索引文档:

from pylate import indexes, models, retrieve

# 步骤 1:加载模型
model = models.ColBERT(
    model_name_or_path="mixedbread-ai/mxbai-edge-colbert-v0-17m",
)


# 步骤 2:初始化索引(这里使用 PLAID,适用于较大的文档集合)
index = indexes.PLAID(
    index_folder="pylate-index",
    index_name="index",
    override=True,  # 如果存在索引,这会覆盖现有索引
)

# 步骤 3:编码您的文档
documents_ids = ["1", "2", "3"]
documents = ["document 1 text", "document 2 text", "document 3 text"]

documents_embeddings = model.encode(
    documents,
    batch_size=32,
    is_query=False,  # 确保设置为 False 以表示这些是文档而非查询
    show_progress_bar=True,
)

# 步骤 4:通过提供嵌入和对应的 ID 将文档嵌入添加到索引中
index.add_documents(
    documents_ids=documents_ids,
    documents_embeddings=documents_embeddings,
)

这就是对完整集合进行编码所需的全部操作!您的文档已被索引,可以进行查询了:

# 步骤 5.1:初始化 ColBERT 检索器
retriever = retrieve.ColBERT(index=index)

# 步骤 2:编码查询
queries_embeddings = model.encode(
    ["query for document 3", "query for document 1"],
    batch_size=32,
    is_query=True,  # 确保设置为 False 以表示这些是查询
    show_progress_bar=True,
)

# 步骤 3:检索 top-k 文档
scores = retriever.retrieve(
    queries_embeddings=queries_embeddings,
    k=10,  # 为每个查询检索前 10 个匹配项
)

重排序

由于其极高的参数效率,该模型特别适合作为重排序器使用,用于更轻量的第一阶段检索(如静态嵌入模型)之后。重排序同样简单:

from pylate import rank, models

# 加载模型
model = models.ColBERT(
    model_name_or_path="mixedbread-ai/mxbai-edge-colbert-v0-17m",
)

# 定义查询和文档
queries = [
    "query A",
    "query B",
]

documents = [
    ["document A", "document B"],
    ["document 1", "document C", "document B"],
]
documents_ids = [
    [1, 2],
    [1, 3, 2],
]

# 对它们进行嵌入
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,
)

评估

BEIR 测试结果

模型 AVG MS MARCO SciFact Touche FiQA TREC-COVID NQ DBPedia
大型模型 (>100M)
GTE-ModernColBERT-v1 0.547 0.453 0.763 0.312 0.453 0.836 0.618 0.480
ColBERTv2 0.488 0.456 0.693 0.263 0.356 0.733 0.562 0.446
中型模型 (<35M)
mxbai-edge-colbert-v0-32m 0.521 0.450 0.740 0.313 0.390 0.775 0.600 0.455
answerai-colbert-small-v1 0.534 0.434 0.740 0.250 0.410 0.831 0.594 0.464
bge-small-en-v1.5 0.517 0.408 0.713 0.260 0.403 0.759 0.502 0.400
snowflake-s 0.519 0.402 0.722 0.235 0.407 0.801 0.509 0.410
小型模型 (<25M)
mxbai-edge-colbert-v0-17m 0.490 0.416 0.719 0.316 0.326 0.713 0.551 0.410
colbert-muvera-micro 0.394 0.364 0.662 0.251 0.254 0.561 0.386 0.332
all-MiniLM-L6-v2 0.419 0.365 0.645 0.169 0.369 0.472 0.439 0.323

LongEmbed 测试结果

模型 AVG
大型模型 (>100M)
GTE-ModernColBERT-v1 (32k) 0.898
GTE-ModernColBERT-v1 (4k) 0.809
granite-embedding-english-r2 0.656
ColBERTv2 0.428
中型模型 (<50M)
mxbai-edge-colbert-v0-32m (32k) 0.849
mxbai-edge-colbert-v0-32m (4k) 0.783
granite-embedding-small-english-r2 0.637
answerai-colbert-small-v1 0.441
bge-small-en-v1.5 0.312
snowflake-arctic-embed-s 0.356
小型模型 (<25M)
mxbai-edge-colbert-v0-17m (32k) 0.847
mxbai-edge-colbert-v0-17m (4k) 0.776
all-MiniLM-L6-v2 0.298
colbert-muvera-micro 0.405

有关评估的更多详细信息,请阅读我们的技术报告

社区

请加入我们的 Discord 社区,分享您的反馈和想法!我们随时为您提供帮助,也乐意与您交流。

许可证

Apache 2.0

引用

如果您使用我们的模型,请引用相关的技术报告:

@misc{takehi2025fantasticsmallretrieverstrain,
      title={Fantastic (small) Retrievers and How to Train Them: mxbai-edge-colbert-v0 Tech Report}, 
      author={Rikiya Takehi and Benjamin Clavié and Sean Lee and Aamir Shakir},
      year={2025},
      eprint={2510.14880},
      archivePrefix={arXiv},
      primaryClass={cs.IR},
      url={https://arxiv.org/abs/2510.14880}, 
}

如果您特别使用它的投影头或讨论其效果,请引用我们关于为 ColBERT 模型使用不同投影的报告:

@misc{clavie2025simpleprojectionvariantsimprove,
      title={Simple Projection Variants Improve ColBERT Performance}, 
      author={Benjamin Clavié and Sean Lee and Rikiya Takehi and Aamir Shakir and Makoto P. Kato},
      year={2025},
      eprint={2510.12327},
      archivePrefix={arXiv},
      primaryClass={cs.IR},
      url={https://arxiv.org/abs/2510.12327}, 
}

最后,如果您在本工作中使用 PyLate,请引用 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}
}

mixedbread-ai/mxbai-edge-colbert-v0-17m

作者 mixedbread-ai

sentence-similarity PyLate
↓ 363.9K ♥ 34

创建时间: 2025-10-13 08:54:04+00:00

更新时间: 2026-02-14 04:21:12+00:00

在 Hugging Face 上查看

文件 (18)

.gitattributes
1_Dense/config.json
1_Dense/model.safetensors
2_Dense/2_Dense/model.safetensors
2_Dense/config.json
2_Dense/model.safetensors
README.md
config.json
config_sentence_transformers.json
model.onnx ONNX
model.safetensors
model_int8.onnx ONNX
modules.json
onnx_config.json
sentence_bert_config.json
special_tokens_map.json
tokenizer.json
tokenizer_config.json