ONNX 模型库
返回模型

说明文档

answerai-colbert-small-v1

answerai-colbert-small-v1 是 Answer.AI 推出的全新概念验证模型,展示了多向量模型在使用全新的 JaColBERTv2.5 训练方案 和一些额外优化后所能达到的强大性能,即使仅有 3300 万参数。

虽然它的尺寸与 MiniLM 相当,但在常见基准测试上超越了所有此前同尺寸的模型,甚至超越了更大的流行模型,如 e5-large-v2 或 bge-base-en-v1.5。

有关此模型或其训练方式的更多信息,请访问公告博客文章。

架构

<iframe src="https://brianronan-netron-docker.hf.space?repo_id=brianronan/answerai-colbert-small-v1&filename=model.safetensors" style="width: 95%; height: 70vh; border: none;"

</iframe>

使用方法

安装

该模型是为即将到来的 RAGatouille 重构而设计的。不过,它与所有最新的 ColBERT 实现兼容!

要使用它,您可以使用 Stanford ColBERT 库或 RAGatouille。您可以通过简单地运行以下命令来安装其中一个或两者。

pip install --upgrade ragatouille
pip install --upgrade colbert-ai

如果您有兴趣将此模型用作重排序器(它的性能远超同尺寸的交叉编码器!),可以通过 rerankers 库来实现:

pip install --upgrade rerankers[transformers]

Rerankers

from rerankers import Reranker

ranker = Reranker("answerdotai/answerai-colbert-small-v1", model_type='colbert')
docs = ['Hayao Miyazaki is a Japanese director, born on [...]', 'Walt Disney is an American author, director and [...]', ...]
query = 'Who directed spirited away?'
ranker.rank(query=query, docs=docs)

RAGatouille

from ragatouille import RAGPretrainedModel

RAG = RAGPretrainedModel.from_pretrained("answerdotai/answerai-colbert-small-v1")

docs = ['Hayao Miyazaki is a Japanese director, born on [...]', 'Walt Disney is an American author, director and [...]', ...]

RAG.index(documents, index_name="ghibli")

query = 'Who directed spirited away?'
results = RAG.search(query)

Stanford ColBERT

索引

from colbert import Indexer
from colbert.infra import Run, RunConfig, ColBERTConfig

INDEX_NAME = "DEFINE_HERE" 

if __name__ == "__main__":
    config = ColBERTConfig(
        doc_maxlen=512,
        nbits=2
    )
    indexer = Indexer(
        checkpoint="answerdotai/answerai-colbert-small-v1",
        config=config,
    )
    docs = ['Hayao Miyazaki is a Japanese director, born on [...]', 'Walt Disney is an American author, director and [...]', ...]

    indexer.index(name=INDEX_NAME, collection=docs)

查询

from colbert import Searcher
from colbert.infra import Run, RunConfig, ColBERTConfig

INDEX_NAME = "THE_INDEX_YOU_CREATED" 
k = 10 

if __name__ == "__main__":
    config = ColBERTConfig(
        query_maxlen=32 # Adjust as needed, we recommend the nearest higher multiple of 16 to your query
    )
    searcher = Searcher(
        index=index_name, 
        config=config
    ) 
    query = 'Who directed spirited away?'
    results = searcher.search(query, k=k)

提取向量

最后,如果您想提取单个向量,可以这样使用模型:

from colbert.modeling.checkpoint import Checkpoint

ckpt = Checkpoint("answerdotai/answerai-colbert-small-v1", colbert_config=ColBERTConfig())
embedded_query = ckpt.queryFromText(["Who dubs Howl's in English?"], bsize=16)

结果

与单向量模型对比

Dataset / Model answer-colbert-s snowflake-s bge-small-en bge-base-en
Size 33M (1x) 33M (1x) 33M (1x) 109M (3.3x)
BEIR AVG 53.79 51.99 51.68 53.25
FiQA2018 41.15 40.65 40.34 40.65
HotpotQA 76.11 66.54 69.94 72.6
MSMARCO 43.5 40.23 40.83 41.35
NQ 59.1 50.9 50.18 54.15
TRECCOVID 84.59 80.12 75.9 78.07
ArguAna 50.09 57.59 59.55 63.61
ClimateFEVER 33.07 35.2 31.84 31.17
CQADupstackRetrieval 38.75 39.65 39.05 42.35
DBPedia 45.58 41.02 40.03 40.77
FEVER 90.96 87.13 86.64 86.29
NFCorpus 37.3 34.92 34.3 37.39
QuoraRetrieval 87.72 88.41 88.78 88.9
SCIDOCS 18.42 21.82 20.52 21.73
SciFact 74.77 72.22 71.28 74.04
Touche2020 25.69 23.48 26.04 25.7

与 ColBERTv2.0 对比

Dataset / Model answerai-colbert-small-v1 ColBERTv2.0
BEIR AVG 53.79 50.02
DBPedia 45.58 44.6
FiQA2018 41.15 35.6
NQ 59.1 56.2
HotpotQA 76.11 66.7
NFCorpus 37.3 33.8
TRECCOVID 84.59 73.3
Touche2020 25.69 26.3
ArguAna 50.09 46.3
ClimateFEVER 33.07 17.6
FEVER 90.96 78.5
QuoraRetrieval 87.72 85.2
SCIDOCS 18.42 15.4
SciFact 74.77 69.3

引用

我们很可能会在将来发布技术报告。在此期间,如果您使用此模型或其他遵循 JaColBERTv2.5 方案的模型,并希望给予我们认可,请引用 JaColBERTv2.5 期刊预印本:

@article{clavie2024jacolbertv2,
  title={JaColBERTv2.5: Optimising Multi-Vector Retrievers to Create State-of-the-Art Japanese Retrievers with Constrained Resources},
  author={Clavi{\'e}, Benjamin},
  journal={arXiv preprint arXiv:2407.20750},
  year={2024}
}

brianronan/answerai-colbert-small-v1

作者 brianronan

↓ 0 ♥ 0

创建时间: 2024-08-16 01:17:41+00:00

更新时间: 2024-08-16 01:29:01+00:00

在 Hugging Face 上查看

文件 (18)

.gitattributes
README.md
artifact.metadata
config.json
model.safetensors
onnx/model.onnx ONNX
onnx/model_bnb4.onnx ONNX
onnx/model_fp16.onnx ONNX
onnx/model_int8.onnx ONNX
onnx/model_q4.onnx ONNX
onnx/model_q4f16.onnx ONNX
onnx/model_quantized.onnx ONNX
onnx/model_uint8.onnx ONNX
special_tokens_map.json
tokenizer.json
tokenizer_config.json
vespa_colbert.onnx ONNX
vocab.txt