/ Модель

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

Контекст
512 токенов
Параметры
305 млн
Лицензия
MIT
Архитектура
bert · dense
Базовая модель
IndicBERTv2-MLM-only
Библиотека
transformers
Опубликована
28 сен 2026

indicbert-scam-classifier

Классификация текстаТекст → label

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

114скачиваний за 30 дней0лайковвеса обновлены4 окт 2026

Бенчмарки

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

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

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

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

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

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

anmolshrivastav разработал классификатор текстовых сообщений для выявления мошенничества, фишинга и других распространённых схем обмана в индийских коммуникациях. Модель дообучена на IndicBERTv2-MLM-only и использует архитектуру BERT для классификации последовательностей; размер — 305,2 млн параметров, максимальная длина контекста — 512 токенов. Доступны форматы Safetensors и ONNX.

Модель предназначена для проверки SMS и похожих сообщений на угрозы отключения коммунальных услуг, подделку уведомлений банков и служб доставки, подозрительные платежи, фальшивые выигрыши и запросы конфиденциальных данных. Она также различает мошеннические сообщения и типовые законные уведомления, например коды OTP и банковские оповещения. В карточке заявлена поддержка 14 индийских языков и языковых вариантов; приведённая таблица охватывает Assamese, Bengali и English, а метаданные подтверждают языки bn, en, hi и ta.

В собственной оценке на 1 400 вручную отобранных примерах автор сообщает точность 98,29%; размер и подборка теста не гарантируют такую же точность в реальных сообщениях. Результат зависит от формулировок, региональной лексики, транслитерации, смешения языков и новых схем обмана, поэтому классификацию следует использовать как вспомогательный сигнал. Лицензия — MIT.

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

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

Ограничения

Точность 98,29% получена на небольшой вручную собранной оценочной выборке и не гарантирует аналогичного результата в реальных условиях. Модель может ошибаться на новых схемах, региональной лексике, транслитерации, смешанной речи и намеренно замаскированных сообщениях.

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

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

Открыть на Hugging Face

IndicBERT Multilingual Scam & Fraud Classifier

A sequence classification model fine-tuned on top of ai4bharat/IndicBERTv2-MLM-only to detect fraudulent, phishing, and scam messages across 14 Indian languages and language varieties.

The model is designed with a focus on lightweight multilingual scam detection for Indian communications and common fraud patterns.


Supported Languages

LanguageCode
Assameseas
Bengalibn
Englishen
Gujaratigu
Hindihi
Hinglish (Hindi in Latin script)hi-Latn
Kannadakn
Kashmiriks
Malayalamml
Marathimr
Odiaor
Punjabipa
Tamilta
Telugute

Intended Use & Capabilities

This model is intended to detect common fraud and scam patterns prevalent across Indian communications, including:

  • Electricity and utility disconnection threats.
  • Impersonation of major institutions such as banks, India Post, and courier services.
  • Fake lottery, subsidy, and government-scheme claims.
  • Suspicious payment requests and fee demands.
  • Phishing and malicious links.
  • Requests for OTPs, passwords, PINs, or banking information.
  • Fake delivery, refund, account-verification, and KYC messages.
  • Suspicious promotional and reward messages.

The model is also trained to distinguish potentially legitimate transactional messages, such as:

  • OTP notifications.
  • Bank debit/transaction alerts.
  • Utility bill reminders.
  • Official-style service notifications.

Note: Classification depends on the text provided to the model. A legitimate message can resemble a scam, and a sophisticated scam can resemble a legitimate notification. The model should therefore be treated as a classification aid rather than a definitive fraud-verification system.


Evaluation

The model was evaluated using a manually curated multilingual evaluation set containing 100 samples per language across all 14 supported languages.

Each language contains:

  • 50 SCAM samples
  • 50 HAM (legitimate) samples

This gives a total of:

14 × 100 = 1,400 evaluation samples

The evaluation set covers multiple scam and legitimate-message patterns across different languages and scripts.

Overall Results

MetricResult
Evaluation Samples1,400
Correct Predictions1,376
Incorrect Predictions24
Accuracy98.29%

Overall Accuracy

98.29% (1,376 / 1,400)

The model correctly classified 1,376 of the 1,400 explicitly structured evaluation samples.


Per-Language Evaluation

LanguageSamplesCorrectAccuracy
Assamese (as)1009797.00%
Bengali (bn)100100100.00%
English (en)1009999.00%
Gujarati (gu)100100100.00%
Hindi (hi)100100100.00%
Hinglish (hi-Latn)1009393.00%
Kannada (kn)1009696.00%
Kashmiri (ks)1009999.00%
Malayalam (ml)100100100.00%
Marathi (mr)1009999.00%
Odia (or)1009999.00%
Punjabi (pa)1009999.00%
Tamil (ta)1009797.00%
Telugu (te)1009898.00%
Total1,4001,37698.29%

Observations

The evaluation shows strong performance across all tested languages.

The highest-performing language subsets achieved 100% accuracy on the evaluation set:

  • Bengali
  • Gujarati
  • Hindi
  • Malayalam

The lowest-performing subset in this evaluation was Hinglish at 93.00%, followed by Kannada at 96.00%.

The errors are not uniformly distributed across languages, indicating that further improvements may be possible through additional examples covering language-specific scam patterns, vocabulary, and transliteration styles.


Evaluation Limitations

The reported 98.29% accuracy represents performance on this specific manually curated evaluation set and should not be interpreted as guaranteed real-world accuracy.

Performance may vary depending on:

  • Message wording and structure.
  • Regional vocabulary and expressions.
  • Transliteration and spelling variations.
  • Previously unseen scam patterns.
  • Code-mixed language.
  • Adversarial or intentionally obfuscated text.
  • Distribution differences between the evaluation data and real-world messages.

The per-language evaluation contains 100 samples per language, which provides a useful benchmark but is not large enough to represent the full diversity of real-world communication.

For production applications, the model should ideally be evaluated continuously using larger, independently collected datasets.


Quick Usage

Using Hugging Face Pipelines

from transformers import pipeline

classifier = pipeline(
    "text-classification",
    model="anmolshrivastav/indicbert-scam-classifier",
    device_map="auto"
)

sample = "Aapka Bijli bill baki hai, connection aaj raat cut ho jayega. Turant call karein 9876543210"

result = classifier(sample)

print(result)

Programmatic Usage

import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification

class IndicScamClassifier:
    def __init__(self, model_path: str = repo_id, device: str = None):
        if device is None:
            self.device = "cuda" if torch.cuda.is_available() else "cpu"
        else:
            self.device = device
            
        self.tokenizer = AutoTokenizer.from_pretrained(model_path)
        self.model = AutoModelForSequenceClassification.from_pretrained(model_path).to(self.device)
        self.model.eval()

    def predict(self, texts, threshold: float = 0.5):
        is_single = isinstance(texts, str)
        if is_single:
            texts = [texts]

        inputs = self.tokenizer(
            texts,
            padding=True,
            truncation=True,
            max_length=128,
            return_tensors="pt"
        ).to(self.device)

        with torch.no_grad():
            outputs = self.model(**inputs)
            probs = torch.softmax(outputs.logits, dim=-1)

        results = []
        for prob in probs:
            scam_score = prob[1].item()
            label = "scam" if scam_score >= threshold else "ham"
            results.append({
                "label": label,
                "confidence": scam_score if label == "scam" else prob[0].item(),
                "scam_probability": scam_score
            })

        return results[0] if is_single else results

# Quick test
detector = IndicScamClassifier()
sample = "Congratulations, you won lottery. Call 9876543210 immediately."
print(detector.predict(sample))

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей