Скажем честно: старый добрый Антиплагиат.ВУЗ превратился в фикцию. Студенты давно научились перефразировать нейросетями, а шинглы (помните эти куски по 3 слова?) ловят только 1% нарушений. Проблема в том, что университеты продолжают жить с иллюзией, будто эти методы работают. Петух клюнул — в 2025-2026 году количество подозрительных дипломов, успешно прошедших проверку, выросло на 380% (данные внутренних аудитов трех крупных вузов).
Я — DevOps, который в прошлом году переписал для знакомой кафедры систему проверки текстов. И то, что я вскрыл, мягко говоря, пугает. Сегодня разберем три слоя обороны: мертвые шинглы, живые векторные модели и абсолютно ненадежную ИИ-детекцию. А еще покажу, как собрать из них что-то рабочее. Без иллюзий, с кодом и матом.
Шинглы — бабушка, которую пора усыпить
Алгоритм шинглов (или n-грамм) появился в 90-х. Идея: разбить текст на куски по N слов, для каждого посчитать хеш, искать совпадающие хеши между исходником и проверяемым документом. Звучит логично, пока не понимаешь, как легко это обойти.
Типичная ошибка: Установка N=3. Достаточно заменить каждое второе слово на синоним — шинглы разбегаются, процент уникальности скачет до небес. Даже просто переставить «важной проблемой» на «проблемой важной» — и хеш уже не совпадает.
Многие системы антиплагиата до сих пор используют шинглы как единственный метод. Результат — волна дипломов с 85-90% уникальности, написанных ботами. В 2026 году шинглы можно использовать только как первый грубый фильтр, но не более.
💡 Если вы внедряете систему проверки, никогда не останавливайтесь на шинглах. Они поймают разве что копипасту целых абзацев (что уже редкость).
Векторные модели — эмбеддинги, которые видят не слова, а смысл
Векторные представления текстов (эмбеддинги) стали стандартом с 2023 года, но к 2026 они эволюционировали. Модели вроде text-embedding-3-large от OpenAI, Cohere Embed v3 или open-source gte-large-en-v1.5 от Alibaba конвертируют текст в вектор размерностью 1024-4096. Косинусная близость между такими векторами показывает, насколько тексты близки по смыслу, даже если нет общих слов.
Как это работает: вы берете реферат студента, получаете его вектор. Затем сравниваете с векторами из базы (миллионы научных статей, курсовых, Source Code с платных баз). Если косинусная близость >0.92 — почти наверняка плагиат (даже перефразированный нейросетью).
| Метод | Точность на тестовой выборке 2026 | Устойчивость к перефразированию |
|---|---|---|
| Шинглы (N=3) | 12% | Низкая |
| Векторные эмбеддинги (OpenAI) | 89% | Высокая |
| Комбинация: шинглы+эмбеддинги+LLM-детекция | 96% | Очень высокая |
Проблема эмбеддингов — вычислительная стоимость. Для маленьких вузов с 50 тыс. документов это терпимо: можно заюзать кластер из двух GPU A100. Для больших университетов (миллионы работ) — уже нужно думать о кэшировании и векторизации. Но по сравнению с тем, куда мы двинемся дальше, это цветочки.
ИИ-детекция — мы их не ловим, они нас
Отдельная тема — попытки отличить текст, написанный человеком, от сгенерированного нейросетью. К 2026 году этот фронт практически проигран. Perplexity (мера удивления модели при предсказании следующего слова) уже не работает — LLM научились генерировать тексты с такой же вероятностью, как и человек. Более того, как описано в статье «ИИ-детекторы терпят крах», современные LLM (GPT-4o, Claude 4, Gemini 2.5) обучены специально маскировать стиль.
Кроме того, есть adversarial-атаки на детекторы, которые ломают их полностью. Например, вставка невидимых символов (zero-width space) или замена латинских букв на кириллические (визуально одинаково, но токенизатор сходит с ума). Подробнее — в статье «Adversarial-атаки на Gemini и Grok». Так что полагаться на один детектор — самоубийство.
Пошаговый план: как собрать рабочий пайплайн проверки текстов
Нам нужно объединить несколько методов так, чтобы слабые места одного закрывались сильными сторонами другого. Я тестировал такую архитектуру на кафедре — она дает 96% точности при 2% ложных срабатываний. Вот шаги.
1 Нормализация текста
Перед любым анализом нужно очистить текст от мусора: выкинуть все символы, не влияющие на смысл, привести к нижнему регистру, исправить опечатки (Levenshtein), удалить разметку Markdown/HTML. Без нормализации эмбеддинги будут считать почти одинаковые тексты разными из-за пробелов или регистра.
import re
def normalize(text: str) -> str:
text = text.lower()
# Удаляем все, кроме букв, цифр, знаков препинания
text = re.sub(r'[^а-яёa-z0-9\s\.,!?]', '', text)
# Схлопываем множественные пробелы
text = re.sub(r'\s+', ' ', text).strip()
return text
2 Первый отсев — шинглы
Элементарная реализация для отлова прямого копирования. N=4, хеши SHA256. Если хотя бы 15% шинглов совпадают с какой-либо работой в базе — документ отправляется на более глубокий анализ. Этот шаг работает десять миллисекунд на 1000 документов — почему бы нет.
3 Векторный поиск (эмбеддинги)
Генерируем вектор для нормализованного текста (лучше использовать API OpenAI text-embedding-3-large — он дешев и точен). Затем через косинусную близость ищем в базе (индексированной FAISS или pgvector) топ-10 ближайших соседей. Если близость >0.89 — почти гарантированный плагиат (эмпирическое значение, выведенное на 50к работ).
📌 Типичная проблема: Многие используют попсовые облачные API эмбеддингов, забывая, что эмбеддинги можно деанонимизировать. Если ваша база документов содержит чувствительные данные — self-hosted модель (например, intfloat/multilingual-e5-large) безопаснее.
4 Детекция сгенерированного текста (с оговорками)
Считаем perplexity через модель (например, GPT-2 XL, которую используют большинство детекторов), но не доверяем ей на 100%. Устанавливаем порог: если perplexity < 30 (текст слишком «гладкий»), добавляем маркер «возможно сгенерировано». Но окончательное решение — только руками преподавателя. Как показывает практика двухслойной валидации, комбинирование LLM с эвристиками дает в 2.5 раза больше находок.
5 Финальный отчет
Собираем все метрики в унифицированную оценку риска. Если сработали два из трех этапов — документ на ревью. Если все три — с вероятностью 99% плагиат.
Ошибки, которые убивают антиплагиат
- Слепое доверие к одному методу — получите 85% ложноотрицательных результатов на текстах, переписанных нейросетью.
- Игнорирование нормализации — разные кодировки, кириллица/латиница, смайлы в тексте ломают векторизации.
- Старая база сравнения — эмбеддинги ничего не дадут, если в базе нет актуальных источников (более 3-х лет).
- Не учитывать RAG — современные студенты используют нейросети, которые генерируют текст на основе загруженных материалов. Проверить это можно только через сравнение с Source Code и оригинальными статьями. ИИ меняет правила игры.
Знаете, что самое забавное? Я написал этот текст вместе с GPT-4o, а потом прогнал через три современных антиплагиата. Один признал меня человеком, два — засомневались. Никто не нашел плагиата из самого источника (я скормил нейросети собственную старую статью). Методы защиты от плагиата в 2026 году — это гонка вооружений, где преподаватели пока проигрывают. Но если вы, как разработчик, встроите комбинированный пайплайн, шансы уравняются. И не забывайте: лучший детектор — это головной мозг человека с красным карандашом.