Как научить AI писать в стиле конкретного издания: грабли, споры и архитектура
«Просто напишите хороший промпт» — это первое, что слышишь, когда рассказываешь про AI-рерайт. И первое, что перестаёшь воспринимать всерьёз после пары месяцев разработки. Потому что стиль издания — это не набор правил. Это паттерн, который проще показать, чем описать.
Почему «просто хороший промпт» не работает
Попробуйте сформулировать словами стиль «Коммерсанта». Или «Новой газеты». Или вашего районного портала. Вы скажете что-то вроде: «ну, они пишут коротко, с ироничными заголовками, часто используют тире». Но этого недостаточно. Стиль — это тысяча мелочей, которые вы узнаёте, но не можете перечислить.
Три проблемы промпт-подхода:
- Стиль не равен правилам. «Пиши коротко и по делу» — это не стиль, это общее пожелание. Стиль — это конкретный выбор слов, длина предложений, структура абзацев, тон, отношение к читателю.
- Длинный промпт — дорогой промпт. Чем больше инструкций, тем больше токенов на каждый запрос. При 300 рерайтах в день это ощутимая статья расходов.
- Промпт не масштабируется. Новое издание — новый промпт. Изменился стиль — переписывай промпт. А кто будет оценивать, хорошо ли промпт описывает стиль?
Спор первый: RAG с векторной базой
RAG (Retrieval-Augmented Generation) — это подход, при котором система перед генерацией текста ищет релевантные примеры в базе данных и подставляет их в контекст. Идея красивая: загружаем тысячу статей издания в векторную базу, при рерайте находим похожие по теме — и AI видит, «как мы пишем про это».
Плюсы:
- Работает сразу после загрузки текстов
- Автоматически обновляется при добавлении новых материалов
- Даёт примеры, релевантные конкретной теме
Минусы:
- Качество зависит от качества поиска — найдёт не тот пример, получишь не тот стиль
- Большой контекст = большие расходы на токены
- Не все тексты издания одинаково хороши — «мусор на входе, мусор на выходе»
Спор второй: fine-tuning vs in-context learning
Fine-tuning — это дообучение модели на текстах издания. Модель «впитывает» стиль и потом генерирует в нём без подсказок. Звучит идеально, но:
- Дообучение требует сотен-тысяч примеров высокого качества
- Каждое издание — отдельная модель (или LoRA-адаптер)
- Обновление стиля = повторное обучение
- Стоимость обучения одной модели — от нескольких тысяч до десятков тысяч рублей
In-context learning — модель не дообучается, а получает примеры стиля прямо в запросе. Дешевле, гибче, но контекстное окно ограничено, и AI может «забыть» стиль к середине текста.
Наше решение: эмбеддинги + тематические профили + few-shot
Мы выбрали гибридный подход, который берёт лучшее от RAG и in-context learning:
Шаг 1: Тематический профиль. Система анализирует архив текстов издания и строит «профиль стиля»: какие слова используются чаще, какая средняя длина предложений, как строятся лиды, какой тон. Это делается один раз при подключении издания.
Шаг 2: Эмбеддинги для поиска примеров. Каждый текст из архива превращается в вектор. При рерайте система находит 3-5 текстов, наиболее похожих по теме, и подставляет их как примеры в контекст (few-shot).
Шаг 3: Генерация с профилем + примерами. AI получает: тематический профиль стиля + 3-5 примеров из архива + исходную новость. Этого достаточно, чтобы выдать рерайт, который звучит «как издание».
Стиль — это паттерн, который проще показать, чем описать. Мы не описываем стиль правилами. Мы показываем модели примеры — и она копирует паттерн.
Мультиплатформа: один текст — три стиля
Здесь начинается самое интересное. Большинство изданий публикуют на нескольких площадках: сайт, Telegram, Дзен. И на каждой площадке — свой стиль.
На сайте — полная новость с лидом, подзаголовками, цитатами. В Telegram — короткий пост с крючком и ссылкой. На Дзене — интригующий заголовок и история.
Это означает, что каждому изданию нужен не один стилевой профиль, а несколько. Сайтовый, телеграмный, дзеновский. И все должны быть узнаваемо «свои», но отличаться по формату.
Мультиплатформенность — это не просто «сделать текст короче для Telegram». Это отдельный стилевой профиль для каждой площадки: другие заголовки, другая структура, другой тон. Один исходник — три публикации, каждая в стиле издания на этой конкретной площадке.
Что мы узнали на практике
Система учится на существующих текстах издания. Нам не нужен стайлгайд (хотя если он есть — отлично). Достаточно архива публикаций за последние 2-3 месяца. Система сама вычленит паттерн.
30-50 текстов достаточно для базового профиля. Идеально — 200+, но работоспособный профиль получается уже из нескольких десятков материалов.
Профиль нужно обновлять. Стиль издания со временем меняется — приходят новые авторы, меняются темы. Мы обновляем профили автоматически по мере поступления новых текстов.
Самое сложное — не технология, а оценка. Как понять, что рерайт действительно звучит «как издание»? Мы даём текст редактору, и он оценивает по 5-балльной шкале. Просто, субъективно — но работает.
Впервые опубликовано на Habr