/ Модель

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

Контекст
32 768 токенов
Параметры
1,5 млрд
Лицензия
Apache 2.0
Архитектура
qwen2 · dense
Базовая модель
Qwen2.5-1.5B-Instruct
Опубликована
10 авг 2026

qwen2.5-1.5b-ru-hallucination-detector

Генерация текстаТекст → текст6 профессий

Русскоязычный детектор, который проверяет, подтверждается ли ответ языковой модели переданным контекстом.

74скачиваний за 30 дней2лайкавеса обновлены14 авг 2026

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AtesiT разработал русскоязычный детектор галлюцинаций на основе Qwen2.5-1.5B-Instruct: плотной причинно-языковой модели Qwen2 с 1,5 млрд параметров. Модель принимает вопрос, контекст-источник и ответ языковой модели, а затем выдаёт бинарную метку: 0, если ответ соответствует контексту, и 1, если он ему противоречит или не подтверждён им. Она предназначена для проверки ответов в RAG-системах, тестирования агентов и мониторинга качества генерации.

Модель дообучена методом QLoRA с LoRA-адаптерами; в репозитории указаны веса safetensors и библиотека Unsloth. Метаданные указывают базовый контекст Qwen2.5 в 32 768 токенов, однако для этой версии README сообщает практический предел входа в 512 токенов. Данные основаны на автоматически собранном русскоязычном корпусе SberQuAD. По README, на тестовой выборке версии v5 точность составляет 0,9835, а F1 — 0,9833; эти показатели относятся к описанному набору данных и не гарантируют такое же качество на других корпусах. Лицензия — Apache-2.0.

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

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

Ограничения

Обучающие данные автоматически собраны из SberQuAD, поэтому качество может снижаться на специализированных доменах и других языках; README указывает практический предел входа в 512 токенов. Модель выдаёт только бинарную метку без объяснения причины, а часть обучающих меток может быть шумной.

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

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

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

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

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

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

Открыть на Hugging Face

🔍 Детектор галлюцинаций LLM — русский язык

Текущая версия: v5 · Последнее обновление: 2026-08-14 08:11:28

Эта модель определяет, является ли ответ языковой модели галлюцинацией — то есть содержит ли он информацию, которая противоречит предоставленному контексту или не подтверждается им.

Модель дообучена на основе Qwen2.5-1.5B-Instruct методом QLoRA (4-bit quantization + LoRA адаптеры) с использованием библиотеки Unsloth для ускоренного обучения на GPU.


📋 Описание задачи

Галлюцинации LLM — это когда языковая модель генерирует ответ, который звучит правдоподобно, но не соответствует реальным фактам или противоречит предоставленному источнику (контексту). Это одна из ключевых проблем при использовании LLM в production-системах, особенно в задачах RAG (Retrieval-Augmented Generation).

Постановка задачи

Модель принимает три входных текста:

  • Вопрос — то, что пользователь спросил у LLM
  • Контекст — документ/фрагмент, который был предоставлен LLM как источник фактов
  • Ответ — то, что LLM сгенерировала в ответ на вопрос

И возвращает бинарную метку:

  • 0 — ответ соответствует контексту (не галлюцинация)
  • 1 — ответ противоречит контексту или содержит неподтверждённые факты (галлюцинация)

Где это применяется

  • ✅ RAG-пайплайны — проверка ответов перед показом пользователю
  • ✅ Автоматическое тестирование LLM-агентов
  • ✅ Мониторинг качества ответов в продакшн-системах
  • ✅ Датасеты для обучения других моделей (серебряная разметка)

📊 Метрики качества

Текущая версия (v5, 2026-08-14 08:11:28)

МетрикаЗначение
Accuracy0.9835
F1-score0.9833
Precision0.9793
Recall0.9874
Размер теста485 примеров

Кривая обучения (Train / Eval Loss)

Loss curve

График показывает динамику функции потерь на обучающей и валидационной выборках по шагам обучения. Снижение eval loss без роста train loss означает, что модель обобщает, а не запоминает данные.

Confusion Matrix

Confusion Matrix

По оси X — предсказанный класс, по оси Y — истинный класс. Диагональ показывает правильные предсказания.


🗂️ Данные для обучения

Источник

Датасет собран полностью автоматически на основе русского QA-корпуса SberQuAD — русскоязычного аналога Stanford SQuAD (~45 000 пар вопрос-параграф-ответ).

Стратегия генерации примеров

Положительные примеры (label=0, не галлюцинация): Берутся напрямую из SberQuAD — оригинальная тройка (вопрос, контекст, правильный ответ), где ответ гарантированно содержится в контексте.

Отрицательные примеры (label=1, галлюцинация) генерируются тремя способами:

СтратегияОписаниеСложность для детектора
MismatchОтвет от другого вопроса/контекстаЛёгкая — ответ явно не связан с контекстом
PerturbationИскажение чисел или слов в правильном ответеСредняя — ответ похож на правду, но неверен
LLM-generatedQwen2.5 генерирует правдоподобный, но неверный ответ (zero-shot)Сложная — похоже на настоящую галлюцинацию

Такой микс позволяет модели научиться выявлять галлюцинации разной степени "правдоподобности" — от очевидных несоответствий до тонких фактических ошибок.

Размер датасета (v5)

СплитРазмер
Train3877
Val485
Test485
Итого4847

🛠️ Технические детали обучения

Архитектура

ПараметрЗначение
Базовая модельQwen/Qwen2.5-1.5B-Instruct
Квантизация4-bit (QLoRA)
LoRA rank (r)16
LoRA alpha16
LoRA dropout0.1
Target modulesq_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj
Обучаемых параметров~20M из ~1.5B (≈1.3%)

Гиперпараметры обучения

ПараметрЗначение
Эпохи2
Learning rate2e-4
Warmup ratio0.05
Batch size (эффективный)16 (2 × grad_accum 8)
OptimizerAdamW 8-bit
Max sequence length512
Планировщик LRcosine

Формат промпта

<|im_start|>system
Ты — эксперт по проверке фактов. Тебе дан вопрос, контекст (источник фактов) и ответ ассистента.
Определи, является ли ответ галлюцинацией — то есть противоречит контексту или не подтверждён им.
Ответь только цифрой: 1 — если это галлюцинация, 0 — если ответ соответствует контексту.
<|im_end|>
<|im_start|>user
Вопрос: {question}
Контекст: {context}
Ответ: {answer}
<|im_end|>
<|im_start|>assistant
{0 или 1}
<|im_end|>

Инфраструктура

ПараметрЗначение
GPUNVIDIA T4 (16 GB VRAM)
ПлатформаGoogle Colab
ФреймворкPyTorch + Hugging Face Transformers
УскорениеUnsloth (2-4x быстрее стандартного обучения)
Время обучения~30-60 минут на T4

💻 Как использовать

Установка

pip install transformers torch accelerate

Код


from transformers import AutoModelForCausalLM, AutoTokenizer
import torch, re

# Загружаем модель с Hugging Face Hub
REPO_ID = "AtesiT/qwen2.5-1.5b-ru-hallucination-detector"
tokenizer = AutoTokenizer.from_pretrained(REPO_ID)
model = AutoModelForCausalLM.from_pretrained(
    REPO_ID,
    torch_dtype=torch.float16,
    device_map="auto"
)
model.eval()

SYSTEM_PROMPT = (
    "Ты — эксперт по проверке фактов. Тебе дан вопрос, контекст (источник фактов) и ответ ассистента. "
    "Определи, является ли ответ галлюцинацией — то есть противоречит контексту или не подтверждён им. "
    "Ответь только цифрой: 1 — если это галлюцинация, 0 — если ответ соответствует контексту."
)

def predict(question: str, context: str, answer: str) -> dict:
    """
    Определяет, является ли ответ галлюцинацией.

    Args:
        question: Вопрос, на который отвечала LLM
        context:  Контекст (источник фактов, справочный текст)
        answer:   Ответ LLM, который нужно проверить

    Returns:
        dict с ключами: label (0/1), verdict (str), raw_output (str)
    """
    prompt = (
        f"<|im_start|>system\n{SYSTEM_PROMPT}<|im_end|>\n"
        f"<|im_start|>user\n"
        f"Вопрос: {question}\n"
        f"Контекст: {context}\n"
        f"Ответ: {answer}"
        f"<|im_end|>\n"
        f"<|im_start|>assistant\n"
    )
    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
    with torch.no_grad():
        out = model.generate(
            **inputs,
            max_new_tokens=3,
            do_sample=False,
            pad_token_id=tokenizer.eos_token_id,
        )
    gen = tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
    m = re.search(r"[01]", gen)
    label = int(m.group()) if m else 0
    return {
        "label":      label,
        "verdict":    "Галлюцинация" if label == 1 else "Не галлюцинация",
        "raw_output": gen.strip(),
    }

# ── Пример 1: очевидная галлюцинация ──────────────────────────────────
result = predict(
    question="Столица Франции?",
    context="Франция — государство в Западной Европе. Столица страны — Париж.",
    answer="Столица Франции — Лондон.",
)
print(result)
# {'label': 1, 'verdict': 'Галлюцинация', 'raw_output': '1'}

# ── Пример 2: правильный ответ ─────────────────────────────────────────
result = predict(
    question="Столица Франции?",
    context="Франция — государство в Западной Европе. Столица страны — Париж.",
    answer="Столица Франции — Париж.",
)
print(result)
# {'label': 0, 'verdict': 'Не галлюцинация', 'raw_output': '0'}

# ── Пример 3: тонкая галлюцинация (неверное число) ────────────────────
result = predict(
    question="В каком году основана компания Apple?",
    context="Apple Inc. была основана 1 апреля 1976 года Стивом Джобсом, "
            "Стивом Возняком и Рональдом Уэйном.",
    answer="Apple была основана в 1985 году.",
)
print(result)
# {'label': 1, 'verdict': 'Галлюцинация', 'raw_output': '1'}

Использование с Unsloth (быстрее, если нужна генерация)

from unsloth import FastLanguageModel

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "AtesiT/qwen2.5-1.5b-ru-hallucination-detector",
    max_seq_length = 512,
    load_in_4bit = True,
)
model.eval()
# Далее используйте predict() из примера выше

⚠️ Ограничения и известные проблемы

  1. Домен данных — модель обучена на энциклопедических текстах (Wikipedia-style, SberQuAD). Качество может быть ниже на специализированных доменах (медицина, право, технические тексты).

  2. Длина контекста — максимальная длина входной последовательности 512 токенов. Длинные контексты нужно обрезать перед подачей в модель.

  3. Автоматическая разметка — обучающие данные сгенерированы автоматически без ручной проверки. Часть негативных примеров (особенно perturbation) может содержать "шумные" метки.

  4. Бинарная классификация — модель не объясняет, почему ответ является галлюцинацией, только детектирует сам факт.

  5. Только русский язык — модель дообучалась исключительно на русскоязычных данных, для других языков результаты непредсказуемы.


📈 История версий

ВерсияДата и времяAccuracyF1PrecisionRecallTrain size
v12026-08-11 11:27:280.95870.95730.97390.94123865
v22026-08-12 12:05:190.96280.96150.97830.94543867
v32026-08-13 08:18:030.97940.97920.97510.98333876
v42026-08-13 09:16:070.97940.97920.97510.98333874
v52026-08-14 08:11:280.98350.98330.97930.98743877

Каждая версия — результат отдельной сессии дообучения. Модель загружается с предыдущей версии и дообучается на новых данных.


📚 Связанные работы и датасеты

  • SberQuAD — базовый датасет
  • HaluEval — бенчмарк галлюцинаций (английский)
  • Qwen2.5 — базовая модель
  • Unsloth — библиотека для ускорения обучения

📄 Лицензия

Apache 2.0 — можно использовать в коммерческих проектах. Базовая модель Qwen2.5 также распространяется под Apache 2.0.


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

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
Qwen2ForCausalLM
Ревизия весов
5b889a8

0 моделей