/ Модель

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

Контекст
514 токенов
Параметры
137 млн
Лицензия
MIT
Архитектура
mpnet · dense
Опубликована
26 фев 2024

neural-cherche-colbert

Заполнение пропусковТекст → текст8 профессий

Англоязычная модель ColBERT на базе all-mpnet-base-v2 для извлечения и ранжирования текстов.

356скачиваний за 30 дней6лайковвеса обновлены26 фев 2024

Бенчмарки

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

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

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

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

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

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

Модель raphaelsty/neural-cherche-colbert — англоязычная модель семейства MPNet, обученная с помощью Neural-Cherche и настроенная как ColBERT для поиска и ранжирования текстов. В README она описана как all-mpnet-base-v2 в формате ColBERT; доступны сценарии Retriever и Ranker, а для работы предлагается библиотека neural-cherche.

Модель содержит 136,7 млн параметров, принимает последовательности длиной до 514 токенов и распространяется в формате safetensors. Лицензия — MIT. Метаданные Hugging Face классифицируют её как модель заполнения маски (fill-mask), тогда как карточка описывает применение для извлечения и ранжирования; поэтому для пользовательского поиска важнее указанные в README функции Retriever и Ranker.

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

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

Ограничения

README не приводит сравнительных оценок качества или результатов бенчмарков. Модель ориентирована на английский язык.

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

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

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

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

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

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

Открыть на Hugging Face

This model was trained with Neural-Cherche. You can find details on how to fine-tune it in the Neural-Cherche repository.

This model is an all-mpnet-base-v2 as a ColBERT.

pip install neural-cherche

Retriever

from neural_cherche import models, retrieve
import torch

device = "cuda" if torch.cuda.is_available() else "cpu"
batch_size = 32

documents = [
    {"id": 0, "document": "Food"},
    {"id": 1, "document": "Sports"},
    {"id": 2, "document": "Cinema"},
]

queries = ["Food", "Sports", "Cinema"]

model = models.ColBERT(
    model_name_or_path="raphaelsty/neural-cherche-colbert",
    device=device,
)

retriever = retrieve.ColBERT(
    key="id",
    on=["document"],
    model=model,
)

documents_embeddings = retriever.encode_documents(
    documents=documents,
    batch_size=batch_size,
)

retriever = retriever.add(
    documents_embeddings=documents_embeddings,
)

queries_embeddings = retriever.encode_queries(
    queries=queries,
    batch_size=batch_size,
)

scores = retriever(
    queries_embeddings=queries_embeddings,
    batch_size=batch_size,
    k=3,
)

scores

Ranker

from neural_cherche import models, rank, retrieve
import torch

device = "cuda" if torch.cuda.is_available() else "cpu"
batch_size = 32

documents = [
    {"id": "doc1", "title": "Paris", "text": "Paris is the capital of France."},
    {"id": "doc2", "title": "Montreal", "text": "Montreal is the largest city in Quebec."},
    {"id": "doc3", "title": "Bordeaux", "text": "Bordeaux in Southwestern France."},
]

queries = [
    "What is the capital of France?",
    "What is the largest city in Quebec?",
    "Where is Bordeaux?",
]

retriever = retrieve.TfIdf(
    key="id",
    on=["title", "text"],
)

model = models.ColBERT(
    model_name_or_path="raphaelsty/neural-cherche-colbert",
    device=device,
)

ranker = rank.ColBERT(
    key="id",
    on=["title", "text"],
    model=model
)

retriever_documents_embeddings = retriever.encode_documents(
    documents=documents,
)

retriever.add(
    documents_embeddings=retriever_documents_embeddings,
)

ranker_documents_embeddings = ranker.encode_documents(
    documents=documents,
    batch_size=batch_size,
)

retriever_queries_embeddings = retriever.encode_queries(
    queries=queries,
)

ranker_queries_embeddings = ranker.encode_queries(
    queries=queries,
    batch_size=batch_size,
)

candidates = retriever(
    queries_embeddings=retriever_queries_embeddings,
    k=1000,
)

scores = ranker(
    documents=candidates,
    queries_embeddings=ranker_queries_embeddings,
    documents_embeddings=ranker_documents_embeddings,
    k=100,
    batch_size=32,
)

scores

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

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

GPU в ailist

Универсальный рантайм · fill-mask

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

Подбираем GPU…

Класс архитектуры
MPNetForMaskedLM
Ревизия весов
adf3bc0

0 моделей