/ Модель

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

Контекст
514 токенов
Параметры
62,3 млн
Лицензия
MIT
Архитектура
camembert · dense
Базовая модель
camembert-L4
Библиотека
RAGatouille
Опубликована
11 мар 2024

colbertv2-camembert-L4-mmarcoFR

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

Компактная французская модель ColBERTv2 для поиска релевантных фрагментов по запросу в больших текстовых коллекциях.

154скачиваний за 30 дней9лайковвеса обновлены26 мар 2024

Бенчмарки

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

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Эмбеддинги» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

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

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

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

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

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

colbertv2-camembert-L4-mmarcoFR — компактная модель ColBERTv2 для семантического поиска на французском языке. Она разработана на основе CamemBERT-L4 и дообучена на французской части mMARCO с использованием оценок кросс-энкодера. Модель кодирует запросы и документы в матрицы токенных эмбеддингов и оценивает их соответствие с помощью операции MaxSim; для оценки релевантности применяется косинусное сходство.

Модель предназначена для поиска релевантных фрагментов в больших коллекциях текстов и может использоваться в системах семантического поиска и RAG. В README указана размерность эмбеддингов 32 и максимальная длина последовательности 514 токенов в метаданных; при обучении использовались длины до 32 токенов для запросов и до 160 для документов. В оценке на dev-наборе mMARCO-fr с корпусом из 8,8 млн фрагментов модель показала MRR@10 32,3 и R@1000 91,9. Репозиторий содержит веса safetensors и распространяется по лицензии MIT.

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

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

Ограничения

Модель ориентирована на французский язык и поиск пассажей; качество на других языках и задачах не подтверждено. Опубликованная оценка приведена для dev-набора mMARCO-fr и не гарантирует аналогичных результатов на других корпусах.

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

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

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

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

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

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

Открыть на Hugging Face

colbertv2-camembert-L4-mmarcoFR

This is a lightweight ColBERTv2 model for French that can be used for semantic search. It encodes queries and passages into matrices of token-level embeddings and efficiently finds passages that contextually match the query using scalable vector-similarity (MaxSim) operators.

Usage

Here are some examples for using the model with RAGatouille or colbert-ai.

Using RAGatouille

First, you will need to install the following libraries:

pip install -U ragatouille

Then, you can use the model like this:

from ragatouille import RAGPretrainedModel

index_name: str = "my_index" # The name of your index, i.e. the name of your vector database
documents: list = ["Ceci est un premier document.", "Voici un second document.", "etc."] # Corpus

# Step 1: Indexing.
RAG = RAGPretrainedModel.from_pretrained("antoinelouis/colbertv2-camembert-L4-mmarcoFR")
RAG.index(name=index_name, collection=documents)

# Step 2: Searching.
RAG = RAGPretrainedModel.from_index(index_name) # if not already loaded
RAG.search(query="Comment effectuer une recherche avec ColBERT ?", k=10)

Using ColBERT-AI

First, you will need to install the following libraries:

pip install git+https://github.com/stanford-futuredata/ColBERT.git torch faiss-gpu==1.7.2

Then, you can use the model like this:

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

n_gpu: int = 1 # Set your number of available GPUs
experiment: str = "colbert" # Name of the folder where the logs and created indices will be stored
index_name: str = "my_index" # The name of your index, i.e. the name of your vector database
documents: list = ["Ceci est un premier document.", "Voici un second document.", "etc."] # Corpus

# Step 1: Indexing. This step encodes all passages into matrices, stores them on disk, and builds data structures for efficient search.
with Run().context(RunConfig(nranks=n_gpu,experiment=experiment)):
    indexer = Indexer(checkpoint="antoinelouis/colbertv2-camembert-L4-mmarcoFR")
    indexer.index(name=index_name, collection=documents)

# Step 2: Searching. Given the model and index, you can issue queries over the collection to retrieve the top-k passages for each query.
with Run().context(RunConfig(nranks=n_gpu,experiment=experiment)):
    searcher = Searcher(index=index_name) # You don't need to specify checkpoint again, the model name is stored in the index.
    results = searcher.search(query="Comment effectuer une recherche avec ColBERT ?", k=10)
    # results: tuple of tuples of length k containing ((passage_id, passage_rank, passage_score), ...)

Evaluation

The model is evaluated on the smaller development set of mMARCO-fr, which consists of 6,980 queries for a corpus of 8.8M candidate passages. We report the mean reciprocal rank (MRR), normalized discounted cumulative gainand (NDCG), mean average precision (MAP), and recall at various cut-offs (R@k). Below, we compare its performance with other publicly available French ColBERT models fine-tuned on the same dataset. To see how it compares to other neural retrievers in French, check out the DécouvrIR leaderboard.

model#Param.(↓)SizeDim.IndexR@1000R@500R@100R@10MRR@10
colbertv2-camembert-L4-mmarcoFR54M0.2GB329GB91.990.381.956.732.3
FraColBERTv2111M0.4GB12828GB90.088.981.257.132.4
colbertv1-camembert-base-mmarcoFR111M0.4GB12828GB89.788.480.054.229.5

NB: Index corresponds to the size of the mMARCO-fr index (8.8M passages) on disk when using ColBERTv2's residual compression mechanism.

Training

Data

We use the French training samples from the mMARCO dataset, a multilingual machine-translated version of MS MARCO that contains 8.8M passages and 539K training queries. We do not employ the BM25 negatives provided by the official triples but instead sample 62 harder negatives mined from 12 distinct dense retrievers for each query, using the msmarco-hard-negatives distillation dataset. Next, we collect the relevance scores of an expressive cross-encoder reranker for all our (query, paragraph) pairs using the cross-encoder-ms-marco-MiniLM-L-6-v2-scores dataset. Eventually, we end up with 10.4M different 64-way tuples of the form [query, (pos, pos_score), (neg1, neg1_score), ..., (neg62, neg62_score)] for training the model.

Implementation

The model is initialized from the camembert-L4 checkpoint and optimized via a combination of KL-Divergence loss for distilling the cross-encoder scores into the model with the in-batch sampled softmax cross-entropy loss applied to the positive score of each query against all passages corresponding to other queries in the same batch (as in ColBERTv2). The model is fine-tuned on one 80GB NVIDIA H100 GPU for 325k steps using the AdamW optimizer with a batch size of 32, a peak learning rate of 1e-5 with warm up along the first 20k steps and linear scheduling. The embedding dimension is set to 32, and the maximum sequence lengths for questions and passages length were fixed to 32 and 160 tokens, respectively. We use the cosine similarity to compute relevance scores.

Citation

@online{louis2024decouvrir,
	author    = 'Antoine Louis',
	title     = 'DécouvrIR: A Benchmark for Evaluating the Robustness of Information Retrieval Models in French',
	publisher = 'Hugging Face',
	month     = 'mar',
	year      = '2024',
	url       = 'https://huggingface.co/spaces/antoinelouis/decouvrir',
}

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

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

GPU в ailist

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

Можно запустить

Подбираем GPU…

Класс архитектуры
HF_ColBERT
Ревизия весов
04fb740

0 моделей