AI написал как РИА Новости. А мы хотели Фонтанку
Три недели назад я написала на Хабре, как мы проектировали обучение стилю: декомпозиция на аспекты, стилевой профиль, шаблоны. Красивая архитектура, схемы со стрелочками, всё как положено.
Теперь у нас есть рабочий сервис. Я загрузила статьи Фонтанки, обучила профиль и прогнала 10 рерайтов. Результат: система уверенно пишет в стиле РИА Новости. А мы хотели Фонтанку.
Это история про то, как красивая архитектура столкнулась с реальностью. С конкретными артефактами, примерами текстов и разбором, почему стилевой профиль знает длину предложений, но не знает голос.
Что пошло не так с первого раза
Загрузила 71 статью в стилевой профиль #8. Запустила рерайт-агента на 10 новостях. Открыла результаты — и полезла проверять, не перепутала ли я издание в настройках.
Тексты были грамотные, аккуратные и абсолютно мёртвые. Нейтрально-официальный тон. Пассивный залог. «По данным пресс-службы» в каждом абзаце. Классическое РИА Новости — только без логотипа.
Потом полезла в выборку и поняла, почему.
Мусор на входе — мусор на выходе
Из 71 статьи, которые пошли в обучение:
- Рекламные материалы — 3 штуки
- Статьи с РБК, попавшие в RSS — 2 штуки
- Развлекательный тест по географии — 1 штука
- Статьи с кривым markdown-форматированием — 4 штуки
- Нерелевантные материалы — ещё несколько
Итого: примерно 15% мусора. AI сделал ровно то, что должен — усреднил всё, что увидел. А единственное, что объединяет Фонтанку, РБК, рекламу и тест по географии — это нейтральный официальный тон. Вот его и выучил.
Почистила выборку до 64 статей. Перегенерировала профиль. Получила стиль #9.
Стало чуть лучше. Но четыре гадких артефакта никуда не делись.
Четыре артефакта, каждый из которых — непубликуемый текст
Артефакт 1: чужое издание в тексте.
Рерайт про Нетребко. Фраза «с которыми ознакомилось РИА Новости» повторяется четыре раза в одном тексте. Четыре. Раза. Наш агент буквально рекламирует конкурента в тексте для Фонтанки.
Артефакт 2: робот-атрибутор.
Рерайт про кражу из ПВЗ. Каждый абзац заканчивается фразой «сообщили в пресс-службе регионального главка МВД РФ». Пять абзацев — пять одинаковых хвостов. Читается как протокол, а не как новость.
Артефакт 3: черновая справка в финальном тексте.
Рерайт про ЧП на АЗС. В конце статьи вылезает блок:
Дата события: 7 марта. Место: посёлок Металлострой. Статус: возбуждено дело.
Это внутренняя пометка агента, которая не должна была попасть в финальный текст. Но попала. Потому что агент не отличает «свои заметки» от «текста для читателя».
Артефакт 4: мета-комментарий.
Рерайт про переговоры в Дохе. Посреди текста: «Иные официальные комментарии в этом сообщении не приводились». Агент комментирует собственный текст. Это даже не ошибка стиля — это ошибка понимания задачи.
Каждый из этих артефактов — стоп-сигнал для публикации. В реальной редакции после такого систему отключат и больше не включат.
Почему профиль стиля не захватывает голос
Вот тут самое интересное. Мы разобрали стиль на аспекты: структура, тон, лексика, заголовки, эмоциональность. Это работает для формальных характеристик: длина предложений, частота пассивного залога, клише. Но голос — это не формальная характеристика.
Голос Фонтанки — это:
- Ирония. Не сарказм, а лёгкая питерская усмешка. «Двоих поймали прямо при погрузке» — а не «двое были задержаны сотрудниками полиции».
- Город как персонаж. Петербург — не локация, а действующее лицо. Улицы, районы, мосты — не адреса, а декорации.
- Лид с детали. Фонтанка начинает с конкретной ситуации, а не с «пресс-служба сообщила». Сначала картинка, потом источник.
- Атрибуция один раз. Источник указывается в начале или в конце. Потом история течёт сама.
- Финал с крючком. Неожиданная деталь или мягкая оценка в последнем предложении. Не сухое «расследование продолжается».
Вот конкретный пример. Наш рерайт:
По данным пресс-службы регионального главка МВД РФ, в Санкт-Петербурге задержаны двое подозреваемых в совершении серии краж из пунктов выдачи заказов...
А Фонтанка написала бы примерно так:
Двоих поймали прямо при погрузке — успели набить машину товарами из двух ПВЗ на Московском проспекте на 14,6 млн.
Тот же факт. Те же данные. Совершенно другой текст. И разница — не в длине предложений или частоте клише. Разница в том, как рассказана история.
Наш стилевой профиль это не захватывает. Он видит структуру, но не видит повествовательную манеру.
Реакция разработчика: «Считаю, что это успех»
Я отправила Серёже (наш разработчик) подробный баг-репорт. Все четыре артефакта, сравнение текстов, анализ проблемы.
Его ответ: «Считаю, что это успех».
И дальше объяснил, почему. На пустом сервисе, где ничего не настроено, система уже что-то делает, обучается и даже пишет как-то близко. Мы находимся на этапе, когда ядро работает. Архитектура — правильная. Теперь нужно тюнить.
Он выделил две конкретные проблемы:
1. У нас нет нормально описанных аспектов. Те, что есть — заглушки. Их надо разбирать, писать промпты, тестировать, что даёт эффект, а что нет. Это не разработка — это доменная экспертиза.
2. У нас нет правил-ограничений. Все артефакты, которые я описала — чужое издание, повтор атрибуции, черновая справка, мета-комментарий — это не баги архитектуры. Это отсутствие явных запретов. Система не знает, что нельзя упоминать конкурентов, нельзя повторять атрибуцию в каждом абзаце, нельзя вставлять внутренние пометки в финальный текст. Потому что никто ей этого не сказал.
Что мы собираемся делать
Три направления, все — про контент, а не про код.
Примеры в промпт. 4–5 коротких текстов Фонтанки (400–600 знаков), реальных, по ключевым темам: криминал, ЧП, городская жизнь. LLM имитирует конкретный образец точнее, чем следует абстрактным правилам.
Явные запреты. Не упоминать другие СМИ как источник. Не повторять атрибуцию в каждом абзаце. Не добавлять блоки «контекст», «справка», «дата события». Не писать мета-комментарии. Это будет отдельный слой правил (rules), который Серёжа сейчас добавляет в систему.
Описание голоса. 2–3 предложения: ироничный тон, петербургский колорит, активный залог, лид с конкретной деталью. Не заменяет аспекты, а дополняет — говорит агенту не как структурировать текст, а как его рассказать.
Системно тоже думаем о разделении рерайт-агента на два этапа: первый извлекает факты и пишет нейтрально, второй — «редактор голоса» — берёт нейтральный текст и примеры издания и переписывает в его манере.
Сколько это стоило
25 генераций рерайтов + 2 генерации стилевого профиля. Потрачено ~$3 на OpenRouter. Одна генерация рерайта — примерно 20 центов, включая обучение и эмбеддинги.
Выводы, которые больно признавать
1. Архитектура без настройки — это демка, а не продукт. Можно нарисовать сколько угодно схем со стрелочками. Если аспекты стиля — заглушки, а правил нет вообще — система выдаст усреднённый текст.
2. Garbage in — garbage out работает и для стилевых профилей. 15% мусора в обучающей выборке убили весь профиль. Три рекламных статьи и тест по географии превратили Фонтанку в РИА Новости.
3. Структура ≠ голос. Длина предложений, частота пассивного залога, клише — это скелет. Голос — это мышцы. Ирония, ритм, способ начать историю, способ её закончить. Наш профиль пока видит только скелет.
4. «Это уже работает» — правильная точка отсчёта. На пустой системе без единой настройки мы получили тексты, которые хотя бы похожи на журналистские. 60% из них — терпимые. Это не провал, это baseline.
Статья написана с помощью AI-системы «Рерайт-Завод». Публикуется также на Habr.