首页
/ SPLADE 项目使用教程

SPLADE 项目使用教程

2026-01-23 04:09:27作者:裴麒琰

1. 项目介绍

SPLADE(Sparse Lexical and Expansion Model for First Stage Ranking)是一个用于信息检索的稀疏神经网络模型。SPLADE 通过 BERT 的 MLM 头和稀疏正则化来学习查询和文档的稀疏扩展。与密集表示方法相比,稀疏表示具有以下优势:

  • 高效使用倒排索引
  • 显式词汇匹配
  • 可解释性

SPLADE 在域外数据(如 BEIR 基准测试)上表现出色,并且在 MS MARCO 等域内数据集上也表现优异。SPLADE 项目包含训练、索引和检索 SPLADE 模型的代码,并支持在 BEIR 基准上进行评估。

2. 项目快速启动

环境准备

首先,建议从新环境开始,并从 conda_splade_env.yml 文件中安装所需的包。

conda create -n splade_env python=3.9
conda activate splade_env
conda env create -f conda_splade_env.yml

快速启动

在根目录下运行以下命令,以在玩具数据上执行所有步骤(使用 config_default.yaml 配置):

conda activate splade_env
export PYTHONPATH=$PYTHONPATH:$(pwd)
export SPLADE_CONFIG_NAME="config_default.yaml"
python3 -m splade.all \
  config.checkpoint_dir=experiments/debug/checkpoint \
  config.index_dir=experiments/debug/index \
  config.out_dir=experiments/debug/out

3. 应用案例和最佳实践

模型推理

inference_splade.ipynb 允许你加载并使用训练好的模型进行推理,以检查预测的“扩展词袋”。

模型训练

你可以使用以下命令进行模型训练:

python3 -m splade.train

索引和检索

索引和检索可以通过以下命令完成:

python3 -m splade.index
python3 -m splade.retrieve

创建 Anserini 可读文件

在训练后,运行以下命令以创建 Anserini 可读文件:

SPLADE_CONFIG_FULLPATH=/path/to/checkpoint/dir/config.yaml python3 -m splade.create_anserini +quantization_factor_document=100 +quantization_factor_query=100

4. 典型生态项目

Hugging Face

SPLADE 的权重可以在 Hugging Face 上找到,例如:

BEIR 基准

SPLADE 支持在 BEIR 基准上进行评估,BEIR 是一个用于评估信息检索模型的基准数据集。

Anserini

SPLADE 的索引和检索功能可以与 Anserini 集成,Anserini 是一个用于信息检索的开源工具包。

通过这些生态项目,SPLADE 可以与其他信息检索工具和平台无缝集成,提供更强大的检索能力。

登录后查看全文
热门项目推荐
相关项目推荐