/ Модель

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

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

gaperon-mmbert-hindi

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

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

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

Бенчмарки

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

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

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

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

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

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

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

В основе лежит многоязычный энкодер ModernBERT с 306,9 млн параметров и контекстом до 8192 токенов. Представления токенов усредняются, после чего шесть отдельных линейных голов выполняют классификацию по трём классам. Модель обучалась на размеченном корпусе текстов на хинди; лицензия — MIT.

На тестовых данных значения F1 по приведённым в карточке измерениям составляют примерно 0,54–0,59, поэтому оценки подходят как сигнал для фильтрации, но не как эталонная разметка. Перенос на другие языки, домены и жанры не подтверждён. Классификационные головы хранятся отдельно в heads.pt и требуют специальной загрузки; стандартный AutoModelForSequenceClassification их не загружает.

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

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

Ограничения

Обучение и оценка проводились только на текстах на хинди, соответствующих схеме исходного корпуса; перенос на другие языки и жанры не подтверждён. Классы грубые, F1 около 0,54–0,59 по указанным измерениям, а головы в heads.pt требуют специальной загрузки.

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

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

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

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

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

Открыть на Hugging Face

gaperon-mmbert-hindi

A multi-head text-quality classifier for Hindi, 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_hindi_v1, saved at epoch 4.

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 Hindi 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 Hindi text (data_gaperon/tagged_v2/hindi), 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 4)

Macro-F1 / accuracy per dimension:

DimensionVal F1Val AccTest F1Test Acc
clarity0.55860.59770.54530.5733
coherence0.59410.62390.59300.6045
depth0.54090.80740.54830.8062
grammar0.55820.63530.53990.6122
usefulness0.58590.63300.57430.6362
overall0.55530.60620.55490.6165
mean macro-F10.5655–0.5593–

Usage

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

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

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 Hindi 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.54-0.59 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
Ревизия весов
5528f5a

0 моделей