MTEB项目发布1.34.0版本:新增荷兰语BEIR-NL检索基准测试
【免费下载链接】mteb MTEB: Massive Text Embedding Benchmark 项目地址: https://gitcode.com/gh_mirrors/mt/mteb
引言
在多语言文本嵌入模型快速发展的今天,如何全面评估模型在不同语言上的性能成为关键挑战。MTEB(Massive Text Embedding Benchmark)作为业界领先的文本嵌入评估基准,在最新发布的1.34.0版本中重磅推出了荷兰语BEIR-NL检索基准测试,为荷兰语文本嵌入模型提供了权威的评估标准。
BEIR-NL基准测试概述
BEIR-NL是公开可用BEIR基准的荷兰语适配版本,通过自动化翻译和人工验证流程构建而成。该基准包含18个不同的检索任务,覆盖了从学术文献到社区问答的多样化场景。
核心特性
| 特性 | 描述 |
|---|---|
| 语言支持 | 纯荷兰语(nld-Latn) |
| 任务数量 | 18个检索任务 |
| 数据来源 | BEIR基准的荷兰语翻译版本 |
| 评估指标 | NDCG@10、Recall@k等标准检索指标 |
| 数据质量 | 机器翻译+人工验证 |
包含的任务类型
BEIR-NL基准涵盖了多种检索场景:
- 论辩分析 - ArguAna-NL:检索最佳反驳论点
- 学术检索 - Arxiv-NL、SCIDOCS-NL:学术文献检索
- 社区问答 - CQADupstack系列:技术问答检索
- 事实核查 - ClimateFEVER-NL、FEVER-NL:事实声明检索
- 专业检索 - NFCorpus-NL、TRECCOVID-NL:专业信息检索
- 通用检索 - NQ-NL、Quora-NL:通用问题检索
技术实现架构
任务结构设计
数据集配置示例
以ArguAna-NL任务为例,其配置如下:
metadata = TaskMetadata(
name="ArguAna-NL",
description="ArguAna involves the task of retrieval of the best counterargument to an argument. ArguAna-NL is a Dutch translation.",
reference="https://huggingface.co/datasets/clips/beir-nl-arguana",
dataset={
"path": "clips/beir-nl-arguana",
"revision": "4cd085d148fe2cac923bb7758d6ef585926170ba",
},
type="Retrieval",
category="s2p",
modalities=["text"],
eval_splits=["test"],
eval_langs=["nld-Latn"],
main_score="ndcg_at_10",
date=("2016-03-01", "2016-03-01"),
domains=["Written", "Non-fiction"],
license="cc-by-sa-4.0",
annotations_creators="derived",
sample_creation="machine-translated and verified"
)
使用方法
安装与设置
# 安装MTEB最新版本
pip install mteb==1.34.0
# 或者从源码安装
git clone https://gitcode.com/gh_mirrors/mt/mteb
cd mteb
pip install -e .
运行BEIR-NL基准测试
import mteb
from sentence_transformers import SentenceTransformer
# 加载荷兰语文本嵌入模型
model = SentenceTransformer("sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")
# 获取BEIR-NL基准任务
tasks = mteb.get_tasks(tasks=["BEIR-NL"])
# 创建评估器
evaluation = mteb.MTEB(tasks=tasks)
# 运行评估
results = evaluation.run(
model,
output_folder="results/dutch_model",
eval_splits=["test"]
)
print(f"NDCG@10 Score: {results['BEIR-NL']['ndcg_at_10']}")
命令行使用
# 查看所有可用任务
mteb available_tasks | grep NL
# 运行特定荷兰语检索任务
mteb run -m sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 \
-t ArguAna-NL \
--verbosity 3
# 运行完整BEIR-NL基准
mteb run -m your-dutch-model \
-t BEIR-NL \
--output_dir results/beir_nl_evaluation
评估指标详解
BEIR-NL使用标准的信息检索评估指标:
主要评估指标
| 指标 | 描述 | 计算公式 | ||||
|---|---|---|---|---|---|---|
| NDCG@10 | 归一化折损累积增益@10 | $\sum_{i=1}^{10} \frac{rel_i}{\log_2(i+1)}$ | ||||
| Recall@k | 前k个结果中的召回率 | $\frac{\text{相关文档数}}{\text{总相关文档数}}$ | ||||
| MAP | 平均精度均值 | $\frac{1}{ | Q | } \sum_{q=1}^{ | Q | } \frac{1}{m_q} \sum_{k=1}^{n} P(k) \times rel(k)$ |
指标权重分配
应用场景与价值
1. 荷兰语NLP模型开发
BEIR-NL为荷兰语文本嵌入模型提供了标准化评估平台,帮助研究者:
- 比较不同架构模型性能
- 优化多语言模型在荷兰语上的表现
- 识别模型在特定领域的弱点
2. 跨语言迁移学习研究
通过对比英语BEIR和荷兰语BEIR-NL的结果,研究者可以:
- 分析跨语言迁移效果
- 研究语言特性对嵌入质量的影响
- 开发更好的跨语言嵌入方法
3. 工业应用验证
企业可以使用BEIR-NL来:
- 验证商业模型在荷兰语场景的性能
- 为荷兰语市场选择合适的技术方案
- 监控模型在真实场景中的表现
技术挑战与解决方案
数据质量保证
BEIR-NL面临的主要挑战是翻译质量,解决方案包括:
- 多轮翻译验证:机器翻译 + 人工校对
- 领域专家审核:确保专业术语准确性
- 一致性检查:保持术语和风格的一致性
评估公平性
为确保评估的公平性:
# 统一的预处理流程
def preprocess_dutch_text(text):
"""
荷兰语文本标准化预处理
"""
text = text.lower()
# 处理荷兰语特殊字符
text = re.sub(r'[ïëöäü]', '', text)
# 标准化标点符号
text = re.sub(r'[^\w\s]', ' ', text)
return text.strip()
性能优化建议
内存与计算优化
对于大规模荷兰语检索任务:
# 使用批处理提高效率
model.encode(
texts,
batch_size=32,
show_progress_bar=True,
convert_to_tensor=True
)
# 启用缓存机制
from mteb.caching import EmbeddingCache
cache = EmbeddingCache("dutch_embeddings_cache")
cached_embeddings = cache.get_embeddings(texts, model)
分布式评估
对于大规模评估任务:
# 多GPU并行处理
import torch
from mteb import MTEB
def parallel_encode(model, texts):
# 实现多GPU分发逻辑
pass
model.encode = parallel_encode
evaluation.run(model)
未来发展方向
MTEB团队计划在后续版本中:
- 扩展语言覆盖:增加更多欧洲语言变种
- 增强领域特异性:添加法律、专业等垂直领域任务
- 实时评估功能:支持在线模型性能监控
- 可视化分析:提供更丰富的评估结果可视化
结论
【免费下载链接】mteb MTEB: Massive Text Embedding Benchmark 项目地址: https://gitcode.com/gh_mirrors/mt/mteb
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



