/ Модель

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

Контекст
8 192 токена
Параметры
307 млн
Лицензия
MIT
Архитектура
modernbert · dense
Базовая модель
mmBERT-base
Опубликована
19 июн 2026

gaperon-mmbert-english

Классификация текстаТекст → label3 профессии

Классификатор оценивает качество английского текста по ясности, связности, глубине, грамматике, полезности и общей оценке для фильтрации обучающих корпусов.

13скачиваний за 30 дней1лайквеса обновлены19 июн 2026

Бенчмарки

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

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

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

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

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

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

samarthramesh/gaperon-mmbert-english — модель-классификатор качества английского текста, разработанная в рамках конвейера подготовки данных Gaperon и дообученная на базе jhu-clsp/mmBERT-base. Она оценивает текст по шести измерениям: ясность, связность, глубина, грамматика, полезность и общая оценка; для каждого измерения выдаёт класс low, medium или high. Модель предназначена для оценки и фильтрации веб-текстов и документов перед использованием в обучающих корпусах.

В основе — многоязычный энкодер ModernBERT с 22 слоями, размерностью скрытого представления 768 и контекстом до 8192 токенов. К представлению текста добавлены шесть независимых классификационных головок. По данным оценки, macro-F1 на тесте составляет примерно 0,55–0,67 в зависимости от измерения; оценки полезны как сигнал для фильтрации, но не как эталонная разметка.

Модель обучена и проверена только на английском тексте, соответствующем схеме разметки исходного корпуса, поэтому оценки могут хуже переноситься на другие жанры и предметные области. Классы качества имеют грубую трёхуровневую градацию. Веса энкодера доступны в стандартном формате Hugging Face, а классификационные головки хранятся отдельно в heads.pt и требуют специального кода загрузки; AutoModelForSequenceClassification их не загружает. Лицензия — MIT.

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

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

Ограничения

Обучена и оценена только на английском тексте, соответствующем схеме исходного корпуса; перенос на другие жанры и области может быть ограничен. Трёхуровневые оценки имеют умеренное качество и подходят для фильтрации, а отдельные головки требуют специального кода загрузки.

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

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

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

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

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

Открыть на Hugging Face

gaperon-mmbert-english

A multi-head text-quality classifier for English, fine-tuned from jhu-clsp/mmBERT-base (a ModernBERT-architecture multilingual encoder) as part of the Gaperon data-curation pipeline. Given a passage of text, it predicts a low / medium / high rating along six quality dimensions, intended for scoring and filtering web/corpus text before it's used for further model training.

This is the best checkpoint (selected on validation mean_macro_f1) from training run mmbert_english_v1, saved at epoch 3.

Model description

  • Backbone: jhu-clsp/mmBERT-base (ModernBERT architecture, 22 layers, hidden size 768, 8192 max sequence length, mean pooling over token representations).
  • Heads: six independent linear heads (Linear(768 → 3)), one per label dimension, applied to the mean-pooled backbone output. Each head is a 3-way classifier over {low: 0, medium: 1, high: 2}.
  • Label dimensions: clarity, coherence, depth, grammar, usefulness, overall.

The backbone weights are in model.safetensors / config.json (standard HF format, loadable with AutoModel). The six classification heads are not part of the HF backbone class and are stored separately in heads.pt (see usage below).

Intended use

Rating the quality of English text (e.g. web-scraped documents) along the six dimensions above, for filtering/weighting examples in a training corpus. Not intended as a general-purpose sentence encoder or for tasks unrelated to the quality-rating schema it was trained on.

Training data

Fine-tuned on an in-house tagged corpus of English text (data_gaperon/tagged_v2/english), labeled with low/medium/high ratings for each of the six dimensions.

Hyperparameters

HyperparameterValue
max_length512
batch_size32
learning_rate2e-5
weight_decay0.01
dropout0.1
frozen layers0
warmup_ratio0.1
seed42

Evaluation results (best checkpoint, epoch 3)

Macro-F1 / accuracy per dimension:

DimensionVal F1Val AccTest F1Test Acc
clarity0.63030.71550.62840.7106
coherence0.63090.75840.62990.7465
depth0.64620.79620.62180.7841
grammar0.56940.78530.56950.7720
usefulness0.64810.67490.64270.6664
overall0.67020.66200.66070.6532
mean macro-F10.6325–0.6255–

Usage

import torch
from huggingface_hub import hf_hub_download
from transformers import AutoModel, AutoTokenizer

repo_id = "<your-username>/gaperon-mmbert-english"

tokenizer = AutoTokenizer.from_pretrained(repo_id)
backbone = AutoModel.from_pretrained(repo_id)

heads_path = hf_hub_download(repo_id, filename="heads.pt")
ckpt = torch.load(heads_path, map_location="cpu")
label_dims = ckpt["label_dims"]              # ["clarity", "coherence", "depth", "grammar", "usefulness", "overall"]
label2id = ckpt["label2id"]                  # per-dimension {"low": 0, "medium": 1, "high": 2}
heads_state = ckpt["heads_state_dict"]        # one Linear(768, 3) per dimension

heads = {dim: torch.nn.Linear(768, 3) for dim in label_dims}
for dim, head in heads.items():
    head.weight.data = heads_state[f"{dim}.weight"]
    head.bias.data = heads_state[f"{dim}.bias"]
    head.eval()

backbone.eval()
text = "Your input passage here."
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
    hidden = backbone(**inputs).last_hidden_state          # (1, seq_len, 768)
    mask = inputs["attention_mask"].unsqueeze(-1)
    pooled = (hidden * mask).sum(1) / mask.sum(1)           # mean pooling

id2label = {dim: {v: k for k, v in mapping.items()} for dim, mapping in label2id.items()}
for dim, head in heads.items():
    pred_id = head(pooled).argmax(-1).item()
    print(dim, "->", id2label[dim][pred_id])

Limitations

  • Trained and evaluated only on English text matching the tagging schema of the source corpus; quality ratings may not transfer to other domains or genres.
  • The 3-class (low/medium/high) granularity is coarse; F1 scores in the 0.55-0.67 range indicate the heads are useful as a filtering signal but should not be treated as ground truth.
  • heads.pt requires custom loading code (shown above) — it is not loadable via AutoModelForSequenceClassification.

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
ModernBertModel
Ревизия весов
143a604

0 моделей