Мы строим систему автоматического рерайта новостей для региональных СМИ. Три месяца назад я писала про архитектуру стилевых профилей. Потом про то, как мы перестали обманывать себя и собрали мультиагентный пайплайн. Сейчас расскажу, что стало понятно после более глубокого разбора. И почему часть проблем мы, похоже, не решим вообще.
Коротко про аспектный подход к рерайту, чтобы был контекст: вместо одного большого промпта «пиши как Фонтанка» мы разбиваем стиль на компоненты – структура, тон, лексика, заголовки и еще 8 аспектов. Каждый анализирует образцы текстов конкретного СМИ и выдаёт описание. Потом всё это собирается в стилевой профиль, который подаётся в промпт при генерации. Здесь важно одно: аспекты описывают стиль правилами. И вот тут начинается проблема.
Обучили систему на стиле Фонтанки. Взяли три текста об одном рандомном событии: задержание 16-летнего подростка в Уфе, подготовка теракта. Прогнали через рерайт-завод и получили фак ю.
Исходник из СК России:
Наш рерайт в стиле Фонтанки:
Реальная Фонтанка:
Наш рерайт грамотный, структурно правильный, фактически корректный. Читается как новость. Но вообще не читается, как Фонтанка.
Одно слово объясняет почему: мальчик.
В исходнике написано «подросток». Официальный, нейтральный, правильный термин. Фонтанка написала «мальчик». Это не ошибка и не разговорность. Слово «мальчик» рядом с «был завербован» создаёт столкновение – детское против казённого. Читатель в одном предложении держит два образа: ребёнок и террорист. Фонтанка не говорит «как это страшно» – она показывает через выбор слова.
Второй пример из того же текста: «по версии следствия». Это не просто атрибуция источника. Это сигнал: редакция пересказывает, а не утверждает. Дистанция встроена в конструкцию, а не вынесена отдельным предложением.
Ни «мальчик» вместо «подростка», ни «по версии следствия» как сигнал дистанции – ничего этого нет в наших 12 аспектах стилевого профиля.
Наш аспект, отвечающий за тон, про Фонтанку выдаёт: «нейтрально-информационный тон с элементами разговорности». Формально всё верно, а по сути всё мимо.
Аспекты хорошо описывают структуру: длину предложений, частоту пассивного залога, как строится лид, как работает атрибуция. Аспекты не описывают лексические решения: какое слово из нескольких равнозначных выбирает журналист, где появляется авторская дистанция и как она выражена, как создаётся эффект через столкновение регистров.
Правило «используй активный залог» – структурная инструкция. «Мальчик» вместо «подростка» – это не нарушение правила пассивного залога. Это выбор, который не формализуется никак.
Голос текста не передаётся правилами. Они работают для ограничений: не используй Санкт-Петербург, а просто Петербург, атрибуция один раз на текст. Правила работают для структуры: лид с факта, не с контекста, в заге результат истории и тд. Но они вообще не могут передать, как конкретное слово в конкретном месте создаёт интонацию.
Это, я считаю, поправьте, если не так, не наш баг, а ограничение самого подхода.
Можно попытаться формализовать: «выбирай слово с меньшей официальностью, если рядом стоит слово с высокой официальностью». Но это правило не работает универсально – иногда Фонтанка пишет очень сухо, и «мальчик» там будет неуместен. Контекст решает. А контекст – это то, что нельзя упаковать в инструкцию.
Ну вообще полностью нам это по ходу не победить.
Увеличиваем количество примеров с 3 до 10-15 и подбираем их по типу темы – криминал к криминалу, ЧП к ЧП. Модель имитирует конкретный образец лучше, чем следует абстрактному правилу. «Мальчик» в примере передаётся через демонстрацию, а не через описание. Это работает, но не гарантированно.
Для MVP принимаем, что система воспроизводит структуру и формальные характеристики стиля точно, а голос – приблизительно. Это правильнее, чем обещать неотличимость от редакции.
Параллельно починили три конкретных бага, которые к голосу не относятся: проверка соблюдения явных запретов из стилевого-гида (раньше модель их игнорировала), контроль полноты факт-экстракции (агент теперь сверяет с исходником не просто факты, а и все ли факты присутствуют в рерайте), подбор примеров по тематическому тегу вместо случайного. Эти три вещи улучшают качество измеримо. А голос – ни фига.
Большинство региональных редакций не имеют фонтанковского уровня стилевой идентичности – у них нет «мальчика вместо подростка» как осознанного редакторского решения. Их стиль описывается структурными правилами достаточно точно.
Фонтанка – сложные кошки, на которых мы выбрали тренироваться. Возможно, самые сложные из реальных изданий, которые мы тестили. Хорошо, что начали с неё – стало понятно, где потолок.
Месяц назад я писала про то, как мы спроектировали обучение стилю. Сейчас могу сказать точнее: мы хорошо научили систему писать похоже. Научить писать так же – другая задача, и у неё другой ответ.
«Мальчик» вместо «подростка» – это редакторское чутьё, которое нарабатывается годами в конкретной редакции. Модель может его имитировать, если видит достаточно примеров. Но это имитация, а не понимание. Иногда этого хватает, иногда нет, посмотрим.
Статья написана с помощью AI-системы «Рерайт-Завод»
Источник


