惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy International News Feed
I
Intezer
T
Tenable Blog
S
Schneier on Security
Project Zero
Project Zero
G
GRAHAM CLULEY
酷 壳 – CoolShell
酷 壳 – CoolShell
小众软件
小众软件
Know Your Adversary
Know Your Adversary
博客园 - 司徒正美
The Cloudflare Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
N
News and Events Feed by Topic
博客园 - 叶小钗
宝玉的分享
宝玉的分享
L
LINUX DO - 热门话题
aimingoo的专栏
aimingoo的专栏
S
Secure Thoughts
Forbes - Security
Forbes - Security
T
The Exploit Database - CXSecurity.com
D
Darknet – Hacking Tools, Hacker News & Cyber Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 【当耐特】
罗磊的独立博客
IT之家
IT之家
H
Hacker News: Front Page
I
InfoQ
云风的 BLOG
云风的 BLOG
S
Security Affairs
M
MIT News - Artificial intelligence
GbyAI
GbyAI
Jina AI
Jina AI
Help Net Security
Help Net Security
Engineering at Meta
Engineering at Meta
大猫的无限游戏
大猫的无限游戏
Webroot Blog
Webroot Blog
L
Lohrmann on Cybersecurity
A
About on SuperTechFans
Attack and Defense Labs
Attack and Defense Labs
The Register - Security
The Register - Security
V
V2EX
G
Google Developers Blog
D
DataBreaches.Net
Apple Machine Learning Research
Apple Machine Learning Research
C
Cybersecurity and Infrastructure Security Agency CISA
J
Java Code Geeks
W
WeLiveSecurity
Cloudbric
Cloudbric
T
Tor Project blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Почему текст от LLM узнаётся за пять секунд: разбираю стилистические маркеры через архитектуру моделей
Парахин Никита · 2026-05-10 · via Все публикации подряд на Хабре

Средний

10 мин

18K

Технический взгляд на то, почему GPT, Claude и Gemini генерируют похожий «средний» текст, и как с этим работать в продакшене

Когда мы интегрируем LLM в продакшн — будь то генерация описаний товаров, ответов техподдержки или внутренней документации — рано или поздно сталкиваемся с одной и той же проблемой. Текст модели читаем. Грамотен. И при этом видно, что его написала модель. Заказчик жалуется, пользователи отписываются от рассылки, в комментариях пишут «опять ваш чат-бот». Хочется сделать так, чтобы было незаметно — но какие именно патчи накладывать на промпт или пайплайн, не очевидно.

Я работаю с генеративными моделями около двух лет — встраивал их в продуктовые пайплайны, и попутно много редактирую и собственные тексты, и тексты коллег. За это время накопились наблюдения о том, какие именно паттерны сразу выдают LLM-генерацию, и почему они появляются на уровне архитектуры модели, а не как «недоработка обучения».

В статье покажу десять самых выразительных стилистических маркеров, объясню каждый через архитектуру и обучение моделей, и расскажу про практические подходы — что можно сделать на уровне промпта, sampling-параметров и постобработки. Это не «как обмануть детектор» (об этом отдельно в конце, и тема не такая, как её подают). Это про то, как сделать, чтобы выход LLM не выглядел как выход LLM.


Откуда берутся маркеры на архитектурном уровне

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

Большая языковая модель — это статистический инструмент. На каждом шаге генерации она вычисляет распределение вероятностей по словарю токенов и выбирает следующий токен в соответствии с этим распределением. Параметр temperature управляет тем, насколько строго модель следует распределению: при temperature=0 всегда выбирается самый вероятный токен, при temperature=1 выбор случайнее.

Грубая иллюстрация процесса генерации:

import numpy as np
 
def sample_next_token(logits, temperature=1.0, top_p=0.9):
    """
    Семплирование следующего токена из распределения logits.
    Параметры temperature и top_p критически влияют на «живость» текста.
    """
    # Применяем temperature: чем меньше, тем острее распределение
    scaled_logits = logits / temperature
    
    # Конвертируем в вероятности через softmax
    probs = np.exp(scaled_logits) / np.sum(np.exp(scaled_logits))
    
    # Top-p (nucleus) sampling: оставляем только токены, чья суммарная 
    # вероятность не превышает top_p
    sorted_indices = np.argsort(probs)[::-1]
    cumulative_probs = np.cumsum(probs[sorted_indices])
    cutoff = np.searchsorted(cumulative_probs, top_p) + 1
    
    # Зануляем вероятности всех токенов за порогом
    valid_indices = sorted_indices[:cutoff]
    valid_probs = probs[valid_indices]
    valid_probs /= valid_probs.sum()
    
    return np.random.choice(valid_indices, p=valid_probs)

Это упрощение — на практике в продакшен-моделях добавляются ещё repetition_penalty, frequency_penalty, presence_penalty и более сложные стратегии. Но базовый принцип такой: модель всегда выбирает что-то близкое к статистическому центру обучающего корпуса, потому что именно эти продолжения имеют самые высокие вероятности.

Что важно: распределение вероятностей у модели формируется из обучающих данных. Если в корпусе на 10 миллиардов токенов фраза «It is important to note that» встречается миллион раз, а «Кстати, тут важная вещь» — тысячу, у первой будет на три порядка более высокая вероятность. При типичных значениях temperature=0.7 и top_p=0.9 редкие, живые формулировки просто не пройдут отсечение и не попадут в выборку.

К этому добавляется второй слой — post-training. После базового претрейна модель учат отвечать на запросы людей через RLHF (Reinforcement Learning from Human Feedback) или DPO. На этом этапе из распределений активно «выбиваются» нежелательные паттерны: грубость, категоричность, отказ от ответа. Но попутно выбиваются и многие живые черты речи: эмоциональная окрашенность, резкие переходы, нестандартные обороты.

Результат: моделям буквально сложно генерировать что-то стилистически нестандартное. Это не баг, это следствие комбинации статистики обучающих данных и инженерных решений на пост-тренинге.


Десять маркеров, разобранных через причину

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

1. Параллельные тройки

ИИ обожает структурировать ответы тройками: «гибкость, скорость и качество», «быстрее, дешевле, надёжнее».

Причина. В английских корпусах обучающих данных риторическая конструкция «X, Y, and Z» встречается чрезвычайно часто — это устойчивая структура классической риторики. Vidi, vici, veni, life-liberty-pursuit-of-happiness, blood-sweat-tears. Российские корпуса унаследовали это через переводные тексты и русскую публицистику XX века. Модель учится, что «трёхчленная конструкция = хороший конец предложения».

Как обходить. В промпте — явная инструкция: «избегай перечислений из трёх элементов; используй пары или одиночные понятия». В постобработке — регулярка для поиска паттерна \b\w+, \w+ и \w+\b и ручная правка частых случаев.

2. Финальный абзац-резюме

ИИ практически всегда заканчивает текст итоговым абзацем — «таким образом», «подводя итог», «в заключение».

Причина. На пост-тренинге модель учат давать структурированные, законченные ответы. Это полезно для технической документации и chatGPT-стайла «вопрос → ответ». Но та же привычка переносится на эссе, посты, статьи, где итоговый абзац обычно избыточен.

Как обходить. В промпте: «не пиши заключительный абзац; закончи последней содержательной мыслью». В постобработке: автоматическая проверка последнего абзаца на стартовые маркеры («таким образом», «итак», «в заключение») и его удаление с ручным контролем.

3. Универсальные хеджи и оговорки

«Стоит отметить», «важно понимать», «следует признать», «безусловно», «несомненно».

Причина. В обучающих корпусах много академических, юридических и корпоративных текстов, где такие обороты — норма. Плюс пост-тренинг закрепляет осторожные формулировки, потому что категоричность считается нежелательным паттерном (модель не должна делать заявлений, которые могут оказаться неверными).

Как обходить. Список хеджей-стопов в постобработке. Для русского:

HEDGE_PATTERNS = [
    r"\bстоит отметить,?\s*",
    r"\bважно (понимать|учитывать|подчеркнуть),?\s*",
    r"\bследует (отметить|признать|учитывать),?\s*",
    r"\b(безусловно|несомненно|очевидно|разумеется),?\s*",
    r"\bпотенциально\s+(может|способен|возможно)",
]
 
 
def remove_hedges(text: str) -> str:
    """Убирает наиболее частые ИИ-хеджи из текста."""
    import re
    for pattern in HEDGE_PATTERNS:
        # Заменяем на пустую строку с учётом регистра первой буквы
        text = re.sub(pattern, "", text, flags=re.IGNORECASE)
        # Восстанавливаем заглавную букву после удаления в начале предложения
        text = re.sub(r"(^|\.\s+)([а-я])", 
                      lambda m: m.group(1) + m.group(2).upper(), 
                      text)
    return text

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

4. «В современном мире» и подобные открывалки

Стартовые фразы абзацев типа «в эпоху цифровизации», «не секрет, что», «как известно».

Причина. Это паттерны академических введений и пресс-релизов. В корпусах обучения их много (особенно в новостных архивах и научно-популярных текстах), поэтому модель использует их как «безопасный старт».

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

5. Симметрия «с одной стороны / с другой стороны»

При обсуждении спорных тем модель почти всегда даёт сбалансированную картину: аргументы за, аргументы против, нейтральный вывод о компромиссе.

Причина. Здесь именно пост-тренинг доминирует. Модели специально учат не занимать сторону в спорных вопросах, чтобы избежать политических, этических и других рисков. Anthropic называет это политикой нейтральности по контентам, OpenAI — model neutrality. Это сознательное решение, и его сложно обойти промптом.

Как обходить. Если вам нужен текст с авторской позицией — полезнее давать в промпт «персону»: «ты пишешь от лица главного инженера компании X, который твёрдо считает, что нужно использовать Y». Тогда модель занимает сторону внутри роли. Или — после генерации — провести редактуру вручную, заменив симметрию на утверждение.

6. Идеальная синтаксическая правильность

Каждое предложение модели грамматически безупречно. Длинные предложения хорошо построены, короткие сбалансированы. Никаких «неправильных» конструкций для эффекта.

Причина. Корпусы обучения — это в основном отредактированные тексты. Книги, газетные статьи, википедия. Спонтанной письменной речи там мало (форумы и Reddit есть, но они уже взвешены вниз во многих моделях). Соответственно, модель учится писать «правильно», а не «выразительно».

Как обходить. Постобработка с осторожными нарушениями: иногда заменить запятую на точку для драматического эффекта, иногда оставить одно слово абзацем. Это сложно делать алгоритмически — обычно требуется человек или вторая модель с явной инструкцией «добавь стилистические вольности».

7. Однородная длина абзацев

ИИ-тексты имеют статистически узкое распределение длин абзацев — обычно 3-5 предложений каждый, с редкими отклонениями.

Причина. Это композиционный паттерн, выученный из «среднего абзаца» в корпусах. У живого автора распределение длин широкое: есть абзацы из одного предложения, есть из десяти. У модели — узкое.

Как обходить. Можно проверять алгоритмически:

import numpy as np
 
 
def paragraph_length_variance(text: str) -> tuple[float, float]:
    """
    Возвращает среднюю длину абзаца (в предложениях) и её стандартное отклонение.
    Если std/mean < 0.3, текст с большой вероятностью сгенерирован LLM.
    """
    paragraphs = [p.strip() for p in text.split("\n\n") if p.strip()]
    sentence_counts = [
        len([s for s in p.split(".") if s.strip()]) 
        for p in paragraphs
    ]
    
    mean_len = np.mean(sentence_counts)
    std_len = np.std(sentence_counts)
    cv = std_len / mean_len if mean_len > 0 else 0
    
    return mean_len, cv
 
 
# Пример: текст человека обычно даёт cv > 0.5
# Текст модели — cv < 0.3

Если у вас в пайплайне cv стабильно ниже 0.3 — это сигнал, что нужно добавить вариативности (например, через постобработку с разрезанием/слиянием абзацев) или перенастроить промпт.

8. Безопасные метафоры

«Открывает новые возможности», «играет ключевую роль», «является важным аспектом», «выходит на новый уровень».

Причина. Эти фразы чрезвычайно часты в корпорах деловой и публицистической речи. Они «нейтрально-удачные»: ничего не значат конкретно, но звучат прилично. Модель использует их как заглушку, когда нужно сказать что-то общее.

Как обходить. В промпте: «используй конкретные числа, имена, события вместо обобщений; не используй фразы “открывает возможности”, “играет ключевую роль”, “выходит на новый уровень”». Модели обычно неплохо реагируют на такие явные негативные инструкции.

9. Логические связки между абзацами

«Таким образом», «в этой связи», «при этом стоит учитывать», «в данном контексте».

Причина. Связки чаще всего встречаются в академических текстах и эссе, и модель усвоила, что «хорошо написанный текст» имеет явные связки между мыслями. Но в живой публицистике мысли часто просто соседствуют — связь понимается из содержания.

Как обходить. В постобработке — удалить связки в начале абзацев и проверить, всё ли понятно. Если нет — оставить или переформулировать первое предложение, чтобы связь стала явной из содержания.

10. Избыточные хеджи на твёрдых фактах

«Python потенциально может быть использован для веб-разработки». «Технология React, как правило, применяется в продакшене».

Причина. Это тот же эффект, что и пункт 3, но на уровне фактических утверждений. Модель учат не делать слишком категоричных заявлений, и она хеджит даже там, где факт твёрдый.

Как обходить. В промпте: «когда утверждение фактически верно, не добавляй “потенциально”, “как правило”, “обычно”». В постобработке: словарь хеджей-стопов рядом с маркерами фактов (числа, имена технологий, имена компаний).


Что это означает для продакшен-пайплайна

Если вы интегрируете LLM в продакт и хотите, чтобы выход не выглядел как «опять чат-бот написал», базовые рекомендации такие.

На уровне промпта. Стоит явно описать стилистические запреты. Не «пиши живо и интересно» (это не работает), а «не используй фразы “стоит отметить”, “важно понимать”, “таким образом”; не делай перечислений из трёх элементов; не пиши заключительного абзаца». Конкретные инструкции работают лучше абстрактных.

На уровне sampling-параметров. При temperature=0.3 модель производит максимально предсказуемый «средний» выход — со всеми маркерами в чистом виде. При temperature=0.9-1.1 начинает появляться вариативность, но и качество может проседать. Подбирать под задачу. Для творческих текстов имеет смысл temperature=1.0 плюс top_p=0.95.

На уровне постобработки. Регулярки для удаления хеджей и повторов работают на удивление неплохо — особенно для длинных текстов. Это не панацея, но первая итерация очистки занимает несколько минут разработки и убирает 60-70% самых очевидных маркеров.

На уровне второй модели. Иногда хорошо работает schema: первая модель генерирует черновик, вторая (с другим промптом или другая модель — например, Claude после GPT) делает редактуру в живом стиле. Это удваивает стоимость, но качество обычно ощутимо выше.

На уровне человека. Если бюджет позволяет — финальная редактура человеком на 5-10 минут текста закрывает оставшиеся 30%. Это разница между «работает» и «незаметно».


Про детекторы и «обход»

Не могу не сказать пару слов про связанную тему — детекторы ИИ-текста и попытки их обходить. В рунете эта тема активно продаётся в формате «промпт для обхода Антиплагиат-вуз», «лайфхак для курсовых».

Технически детекторы работают на тех же принципах, что я описал выше: ищут статистические аномалии, характерные для LLM-генерации. Распределение длин предложений, повторение определённых n-gram, «гладкость» текста по перплексии относительно базовой языковой модели. Современные детекторы (GPTZero, Originality, академические Антиплагиаты) дают на чистом ИИ-тексте 80-95% точности.

«Промпт для обхода» — это попытка сместить распределение в выходе модели, чтобы статистика стала больше похожа на человеческую. Косметически это работает на простых детекторах. На современных — нет. Я тестировал несколько таких промптов, выход прогонял через GPTZero и Антиплагиат — обнаружение в большинстве случаев сохранялось, потому что глубокие статистические маркеры (распределения) промптом не меняются.

Что действительно работает — это глубокая редактура с привнесением своего. Вы берёте ИИ-черновик, сохраняете тезисы, но переписываете формулировки, добавляете личные примеры, ломаете структуру, убираете все паттерны из списка выше. К моменту, когда вы это сделали — у вас в руках уже ваш текст, в котором ИИ был использован как болванка. Это нормальная практика, и говорить тут об «обмане детектора» странно.

В контексте академических работ ситуация особая. Если ваша задача — сдать курсовую, диссертацию или контрольную, и вы хотите проскочить проверку с минимальным усилием — это плохая стратегия. И не потому, что детектор поймает (он, возможно, не поймёт), а потому что у учёбы есть смысл за пределами оценки. Когда вы пишете курсовую руками, вы разбираетесь в теме. Когда вы прогоняете её через ИИ и облагораживаете промптом — у вас в голове ничего не остаётся. Через год вы не вспомните, о чём была эта работа. И на последующих курсах, на дипломе, на работе вы будете в дефиците знаний, который придётся как-то компенсировать.

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


Главная мысль

Маркеры ИИ-текста — это не магия и не «секретная утечка из обучения». Это статистическое следствие того, как модели устроены: усреднение по корпусу плюс пост-тренинг с акцентом на нейтральность. Отсюда — параллельные тройки, симметричные структуры, безопасные метафоры, заключительные абзацы.

Знание этих маркеров полезно по двум причинам. Первая — практическая: если вы интегрируете LLM в продукт, вы можете системно бороться с «AI look» через промпт, sampling и постобработку. Вторая — общая: этот же набор паттернов описывает разницу между «средним хорошо написанным текстом» и «живым авторским текстом», и это полезно знать любому, кто работает со словом.

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


Полезные источники:

  • Holtzman et al. «The Curious Case of Neural Text Degeneration» — классическая работа про nucleus sampling и статистику генерации

  • Mitchell et al. «DetectGPT» — академический подход к обнаружению LLM-текста через изменение перплексии

  • Стэнфордское исследование о false-positive детекторов на текстах non-native English speakers (Liang et al., 2023)

  • Документация OpenAI по sampling-параметрам

  • Документация Anthropic по prompt engineering