3,583 papers
arXiv:2510.24469 87 28 окт. 2025 г. FREE

PerFine: персонализация текста через итеративную критику

КЛЮЧЕВАЯ СУТЬ
LLM дрейфует от целевого стиля даже когда видит примеры. Попросишь написать в твоём стиле — получишь усреднённый текст. Модель балансирует между темой и стилем, второе проигрывает. PerFine позволяет генерировать тексты точно в заданном стиле — письма, отзывы, посты с твоей манерой изложения. Метод разделяет задачу на роли: генератор создаёт черновик → критик проверяет по 4 критериям (тон, словарь, структура, тема) → генератор дорабатывает → knockout-механизм выбирает лучшую версию. Цикл повторяется 3-5 раз. Текст постепенно приближается к целевому стилю, а не скатывается в общие фразы.
Адаптировать под запрос

TL;DR

PerFine — техника персонализированной генерации текста через циклическую доработку с фидбеком. Модель генерирует черновик → второй экземпляр LLM критикует по 4 критериям (тон, словарь, структура предложений, релевантность темы) на основе примеров стиля пользователя → первая модель дорабатывает → knockout-механизм выбирает лучшую версию между итерациями. Цикл повторяется 3-5 раз.

Главная находка: LLM хорошо генерирует текст на основе примеров, но дрейфует от целевого стиля в процессе. Модель может написать грамотно и по теме, но упустить важные детали персонализации — использовать формальный тон вместо разговорного, упростить структуру предложений, забыть про характерную лексику. Проблема в том, что retrieval (извлечение релевантных примеров из профиля) даёт контекст, но не гарантирует соблюдения стиля в финальном тексте. Модель "видит" примеры, но не всегда "следует" им точно.

Суть метода: PerFine разделяет задачу на две роли — генератор и критик. Генератор создаёт текст, критик проверяет соответствие по 4 направлениям персонализации и даёт структурированный фидбек. После каждой доработки knockout-механизм сравнивает текущую версию с предыдущей и оставляет лучшую — это защищает от регресса, когда правка одного аспекта ухудшает другой. Через 3-5 итераций текст стабильно приближается к целевому стилю.


🔬

Схема метода

ИТЕРАЦИЯ 0 (инициализация):
Generator → черновик y₀ (на основе примеров стиля пользователя)

ИТЕРАЦИЯ 1-5 (цикл доработки):
ШАГ 1: Critic → фидбек по 4 критериям
 - Тон (эмоциональная окраска, формальность)
 - Словарь (уровень и характер лексики)
 - Структура предложений (длина, сложность)
 - Релевантность темы (полнота, точность)

ШАГ 2: Generator → доработанная версия y_new

ШАГ 3: Critic → knockout (сравнение y_new с y_prev)
 → если y_new лучше → y_new идёт дальше
 → если y_prev лучше → сохраняем y_prev

[Цикл повторяется 3-5 раз]

Важно: Все шаги выполняются отдельными запросами. Critic и Generator могут быть одной моделью (self-refinement) или разными.


🚀

Пример применения

⚠️ Сильная зона метода: Задачи, где есть конкретные примеры целевого стиля (тексты пользователя, образцы написания). Метод работает хуже, если примеров мало (<3) или они сильно различаются по стилю.

Задача: Написать отзыв на кафе "Кофемания" для Яндекс.Карт в стиле человека, который пишет подробные, честные, чуть ироничные обзоры с вниманием к деталям сервиса.

Исходные данные:

  • Место: Кофемания на Патриарших
  • Оценка: 4 звезды
  • Примеры стиля пользователя:
    • "Интерьер приятный, но кондиционер гудел как старый холодильник"
    • "Официанты улыбались, хотя забыли принести сахар — пришлось напомнить дважды"
    • "Капучино вкусный, но подали в чашке размером с напёрсток за 290₽"

Промпт (первая итерация):

Ты — генератор персонализированных текстов.

ЗАДАЧА: Напиши отзыв на кафе "Кофемания" на Патриарших для Яндекс.Карт.

ОЦЕНКА: 4 звезды

ПРИМЕРЫ СТИЛЯ ПОЛЬЗОВАТЕЛЯ:
- "Интерьер приятный, но кондиционер гудел как старый холодильник"
- "Официанты улыбались, хотя забыли принести сахар — пришлось напомнить дважды" 
- "Капучино вкусный, но подали в чашке размером с напёрсток за 290₽"

ИНСТРУКЦИЯ: Сохрани тон, словарь и структуру предложений как в примерах. Опиши атмосферу, кухню, сервис.

Промпт критика (после генерации):

Ты — критик персонализированных текстов.

ЗАДАЧА: Оцени отзыв по соответствию стилю пользователя.

ПРИМЕРЫ СТИЛЯ ПОЛЬЗОВАТЕЛЯ:
[те же примеры]

СГЕНЕРИРОВАННЫЙ ТЕКСТ:
[вставить текст от генератора]

КРИТЕРИИ ОЦЕНКИ:
1. ТОН: Соответствует ли эмоциональная окраска (ироничный, честный)?
2. СЛОВАРЬ: Используется ли разговорная лексика ("гудел", "напёрсток")?
3. СТРУКТУРА: Есть ли контрастные предложения ("приятный, но...")?
4. ТЕМА: Описаны ли важные аспекты (атмосфера, кухня, сервис)?

ДАЙ ФИДБЕК: Что улучшить для точного попадания в стиль?

Результат:

Модель пройдёт 3-5 итераций, где:

  • Итерация 1: Critic отметит, что тон слишком нейтральный, нет фирменной иронии
  • Итерация 2: Generator добавит контрастные конструкции ("но..."), Critic одобрит направление
  • Итерация 3: Critic попросит усилить детали (конкретные блюда, цены), Generator доработает
  • Итерация 4-5: Knockout сохранит лучшую версию, если новая хуже

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


🧠

Почему это работает

Слабость LLM: Модели дрейфуют от целевого стиля при генерации. Даже если промпт содержит примеры, модель склонна к регрессии к среднему — усреднению тона, упрощению структуры, потере характерных деталей. Retrieval даёт контекст, но не гарантирует точного следования стилю. Одношаговая генерация — это балансирование между "не забыть тему" и "соблюсти стиль", где второе часто проигрывает.

Сильная сторона LLM: Модели отлично анализируют и сравнивают тексты. Если дать LLM два варианта и примеры целевого стиля, она точно определит, какой вариант ближе. Модели также хорошо генерируют структурированный фидбек — могут не только указать "тон не тот", но и объяснить "нужен более ироничный тон, как в примере про кондиционер".

Механика PerFine:

  1. Разделение ролей: Генератор фокусируется на создании текста, критик — на проверке соответствия. Это снимает когнитивную нагрузку "делать всё сразу".
  2. Структурированный фидбек по 4 направлениям: Вместо абстрактного "сделай лучше" критик даёт конкретные указания ("усиль иронию в тоне", "добавь разговорных слов"). Это снижает неопределённость для генератора.
  3. Knockout защищает от регресса: Сравнение версий предотвращает ситуацию, когда правка одного аспекта (например, тона) ухудшает другой (например, структуру). Остаётся лучший вариант из всех итераций.
  4. Итеративность даёт инкрементальное улучшение: За 3-5 раундов текст постепенно приближается к целевому стилю. Исследование показало, что улучшения стабильны до 3-5 итераций, после чего выходят на плато.

Рычаги управления промптом:

ЭлементЧто менятьЭффект
Число итерацийУменьшить до 2-3 для простых задачЭкономия токенов, быстрее результат
Критерии фидбекаУбрать 1-2 критерия (например, оставить только тон и тему)Фокус на главном, меньше шагов
KnockoutОтключить, оставить только последнюю версиюБыстрее, но риск регресса
Примеры стиляДобавить больше примеров (5-7 вместо 3)Точнее попадание в стиль
Роль критикаДать конкретное имя вместо "критик"Острее выполнение роли

📋

Шаблон промпта

📌

Генератор (итерация 0):

Ты — генератор персонализированных текстов.

ЗАДАЧА: {описание задачи}

ПРИМЕРЫ СТИЛЯ ПОЛЬЗОВАТЕЛЯ:
{пример_1}
{пример_2}
{пример_3}

ИНСТРУКЦИЯ: Напиши текст, строго соблюдая тон, словарь и структуру предложений из примеров.
📌

Критик (итерация 1-5):

Ты — критик персонализированных текстов.

ПРИМЕРЫ СТИЛЯ ПОЛЬЗОВАТЕЛЯ:
{пример_1}
{пример_2}
{пример_3}

СГЕНЕРИРОВАННЫЙ ТЕКСТ:
{текст_от_генератора}

КРИТЕРИИ ОЦЕНКИ:
1. ТОН: Соответствует ли эмоциональная окраска примерам?
2. СЛОВАРЬ: Используется ли характерная лексика пользователя?
3. СТРУКТУРА: Соответствует ли длина и сложность предложений примерам?
4. ТЕМА: Описаны ли все важные аспекты задачи?

ДАЙ КОНКРЕТНЫЙ ФИДБЕК по каждому критерию: что изменить для точного попадания в стиль?
📌

Генератор (доработка):

Ты — генератор персонализированных текстов.

ЗАДАЧА: {описание задачи}

ПРИМЕРЫ СТИЛЯ ПОЛЬЗОВАТЕЛЯ:
{пример_1}
{пример_2}
{пример_3}

ПРЕДЫДУЩАЯ ВЕРСИЯ ТЕКСТА:
{текст_от_генератора}

ФИДБЕК КРИТИКА:
{фидбек}

ИНСТРУКЦИЯ: Доработай текст на основе фидбека. Сохрани сильные стороны, исправь слабые.
⚖️

Knockout (сравнение версий):

Ты — арбитр, который выбирает лучший текст.

ПРИМЕРЫ СТИЛЯ ПОЛЬЗОВАТЕЛЯ:
{пример_1}
{пример_2}
{пример_3}

ВАРИАНТ A (предыдущая версия):
{текст_предыдущий}

ВАРИАНТ B (новая версия):
{текст_новый}

ВОПРОС: Какой вариант точнее соответствует стилю пользователя по всем 4 критериям (тон, словарь, структура, тема)?

ОТВЕТ: A или B + краткое обоснование.

Пояснения к плейсхолдерам:

  • {описание задачи} — что нужно написать (отзыв, email, пост)
  • {пример_1, 2, 3} — реальные тексты пользователя (минимум 3)
  • {текст_от_генератора} — результат предыдущего шага
  • {фидбек} — структурированный ответ критика

🚀 Быстрый старт — вставь в чат:

Вот шаблон PerFine для персонализации текста. Адаптируй под мою задачу: [опиши что нужно написать и в каком стиле]. 
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит примеры твоих текстов (минимум 3) и детали задачи — потому что метод работает на сравнении стилей. Она возьмёт паттерн "генерация → критика → доработка → knockout" и адаптирует под конкретную задачу.


⚠️

Ограничения

⚠️ Малое количество примеров: Метод работает хуже, если примеров стиля меньше 3 или они сильно различаются. Нужна стабильная база для сравнения.

⚠️ Субъективные критерии: Для креативных задач без чёткого целевого стиля (например, "напиши вдохновляющий текст") метод может зациклиться на разных интерпретациях.

⚠️ Стоимость итераций: 5 итераций = 5x запросов к LLM. При работе с дорогими моделями (GPT-4) это ощутимо по бюджету.

⚠️ Холодный старт: Если у пользователя нет истории текстов (новый аккаунт), метод теряет основу для персонализации.


🔍

Как исследовали

Исследователи взяли три датасета отзывов — Yelp (рестораны), Amazon (товары), Goodreads (книги) — по 2500 пользователей в каждом. Для каждого пользователя построили граф взаимодействий: узлы — пользователи и товары, рёбра — отзывы. Это позволило извлекать не только собственные тексты пользователя, но и отзывы "соседей" (других людей, оценивших те же товары) — для обогащения контекста темой.

Базовый метод (PGraphRAG) работал так: retrieval топ-4 текстов пользователя + топ-4 от соседей → генерация отзыва одним запросом. PerFine стартовал с этого результата и запускал цикл доработки. Сравнивали три варианта:

  1. LaMP (только тексты пользователя, без соседей) — baseline
  2. PGraphRAG (тексты пользователя + соседей) — улучшенный baseline
  3. PerFine + Knockout (PGraphRAG + итеративная доработка) — новый метод

Что измеряли: GEval (LLM-as-a-Judge метрика, где GPT оценивает качество по шкале) и METEOR (автоматическая метрика схожести с эталоном).

Ключевые находки:

  • PerFine стабильно лучше на +7-13% по GEval (Yelp: 0.400 → 0.441, Goodreads: 0.445 → 0.480, Amazon: 0.410 → 0.465)
  • Эффект плато: Улучшения видны до 3-5 итераций, потом выходят на плато — дальнейшие доработки не дают прироста
  • Размер критика важен: Увеличение размера модели-критика с 7B до 32B параметров монотонно улучшает результат (Yelp: 0.431 → 0.470). Более крупные критики дают точнее фидбек.
  • Self-refinement работает: Даже если генератор и критик — одна модель (Llama-3.1-8B), метод превосходит baseline. Это экономит память (не нужна вторая модель).
  • Best-of-N даёт +2%, но дорого: Вариант, где на каждой итерации генерируется 3 версии и критик выбирает лучшую, показал +2% к качеству, но утроил расход токенов. Knockout (сравнение только двух версий: новой и предыдущей) даёт 95% эффекта при половине стоимости.

Почему результаты такими получились: Retrieval даёт контекст, но не управляет генерацией напрямую. Модель "видит" примеры, но в процессе написания может дрейфовать к усреднённому стилю. Критик же после полной генерации оценивает весь текст целиком и даёт конкретные указания — это эффективнее, чем пытаться "всё учесть сразу" в одном промпте. Knockout защищает от регресса: если новая версия хуже (например, исправили тон, но сломали структуру), остаётся предыдущая. Это создаёт монотонное улучшение через итерации.

Любопытная деталь: Topic Extraction (когда вместо сырых текстов критику давали саммари стиля и темы) показал схожее качество при -30% токенов на критика. Но общий расход вырос из-за начального этапа экстракции тем. Это trade-off: компактность контекста vs overhead на препроцессинг.


📄

Оригинал из исследования

Контекст: Исследователи тестировали PerFine на задаче генерации отзывов. Вот промпт для Critic LLM, который даёт структурированный фидбек по 4 критериям персонализации.

You are a personalized content critic. Your task is to evaluate the generated text 
for alignment with the user's writing style and provide constructive feedback.

USER PROFILE (sample texts):
{user_history_texts}

NEIGHBOR PROFILE (sample texts for topic context):
{neighbor_texts}

QUERY (item to review):
{item_description}

GENERATED TEXT:
{generated_review}

EVALUATION CRITERIA:

1. TONE CONSISTENCY:
Evaluate whether the tone and sentiment align with the user's writing style.
- Does the emotional tone (enthusiastic, critical, neutral) match the user's typical style?
- Is the level of formality consistent?

2. VOCABULARY MATCH:
Evaluate whether the vocabulary level is consistent with the user's lexicon.
- Are the word choices similar to those in the user's previous texts?
- Does it use domain-specific terms the user typically employs?

3. SENTENCE STRUCTURE:
Evaluate if the sentence lengths, complexity, and syntactic structures align 
with the user's style.
- Are sentences simple or complex, similar to the user's writing?
- Does the text use similar punctuation patterns?

4. TOPIC RELEVANCE:
Evaluate if the generated content is relevant to the query, free of off-topic 
information, and inclusive of important aspects.
- Does it address the key aspects of the item being reviewed?
- Is there any irrelevant or missing information?

PROVIDE FEEDBACK:
For each criterion, state:
- What is done well
- What needs improvement
- Specific suggestions for refinement

Format your feedback as:
TONE: [feedback]
VOCABULARY: [feedback]
SENTENCE STRUCTURE: [feedback]
TOPIC RELEVANCE: [feedback]

Knockout промпт (сравнение двух версий):

You are an arbiter that compares two text generations and selects the more 
personalized one based on the user's writing style.

USER PROFILE (sample texts):
{user_history_texts}

VERSION A (previous iteration):
{text_v1}

VERSION B (current iteration):
{text_v2}

TASK:
Compare both versions across four dimensions:
1. Tone consistency with user's style
2. Vocabulary match with user's lexicon
3. Sentence structure alignment
4. Topic relevance

SELECT: Which version (A or B) better aligns with the user's writing style overall?

RESPOND:
Selected version: [A or B]
Reason: [brief explanation of why this version is more personalized]

💡

Адаптации и экстраполяции

💡 Адаптация для контент-маркетинга:

Вместо отзывов — генерация постов для соцсетей в стиле бренда. Примеры стиля = предыдущие посты компании.

ЗАДАЧА: Напиши пост для Telegram-канала [Название компании] про новую функцию продукта.

ПРИМЕРЫ СТИЛЯ КОМПАНИИ:
[3-5 постов из архива канала]

[Далее: стандартный цикл PerFine с критиком]

Польза: Контент-менеджеры получают черновики, которые не требуют сильной правки стиля — только проверку фактов.


💡 Адаптация для юридических документов:

Генерация договоров или писем в стиле юриста с учётом его характерных формулировок.

ЗАДАЧА: Составь допсоглашение к договору аренды.

ПРИМЕРЫ СТИЛЯ ЮРИСТА:
[3-5 фрагментов предыдущих договоров этого юриста]

КРИТЕРИИ (адаптация):
1. ТОН: Формальность, уровень категоричности
2. ТЕРМИНОЛОГИЯ: Использование характерных юридических конструкций
3. СТРУКТУРА: Нумерация пунктов, длина параграфов
4. ПОЛНОТА: Наличие всех необходимых условий

Польза: Автоматизация рутины при сохранении индивидуального стиля специалиста.


🔧 Техника: Убрать knockout → видеть эволюцию стиля

Если не использовать knockout (не сравнивать версии), можно отследить как менялся текст через итерации — полезно для обучения написанию.

[Стандартный цикл PerFine, но БЕЗ knockout-шага]

После 5 итераций попроси:
"Покажи все 5 версий текста рядом и объясни, что менялось на каждом шаге"

Эффект: Пользователь видит процесс доработки — это дидактически ценно для копирайтеров и студентов.


🔧 Техника: Персонажи вместо безликих ролей → острее критика

Замени "критик" на конкретного персонажа с характером.

Ты — Максим Ильяхов, редактор "Главреда". Твоя задача — проверить текст 
на соответствие стилю пользователя и дать фидбек как ты это делаешь: 
прямо, конкретно, с примерами.

[Далее: стандартный промпт критика]

Эффект: Критика становится жёстче и точнее — модель лучше входит в роль конкретного персонажа, чем в абстрактного "критика".


🔗

Ресурсы

Iterative Critique-Refine Framework for Enhancing LLM Personalization

Авторы: Durga Prasad Maram, Dhruvin Gandhi, Zonghai Yao, Gayathri Akkinapalli, Franck Dernoncourt, Yu Wang, Ryan A. Rossi, Nesreen K. Ahmed

University of Massachusetts Amherst, Adobe Research, University of Oregon, Cisco AI Research

Релевантные ссылки из исследования:

  • PGraphRAG (граф-based retrieval для персонализации)
  • LaMP benchmark (персонализированная генерация)
  • SELF-REFINE (self-critique для улучшения outputs)
  • G-Eval (LLM-as-a-Judge метрика оценки)

📋 Дайджест исследования

Ключевая суть

LLM дрейфует от целевого стиля даже когда видит примеры. Попросишь написать в твоём стиле — получишь усреднённый текст. Модель балансирует между темой и стилем, второе проигрывает. PerFine позволяет генерировать тексты точно в заданном стиле — письма, отзывы, посты с твоей манерой изложения. Метод разделяет задачу на роли: генератор создаёт черновик → критик проверяет по 4 критериям (тон, словарь, структура, тема) → генератор дорабатывает → knockout-механизм выбирает лучшую версию. Цикл повторяется 3-5 раз. Текст постепенно приближается к целевому стилю, а не скатывается в общие фразы.

Принцип работы

Не пытайся сгенерировать идеальный текст за один проход. Раздели на циклы: генерация → структурированная критика → доработка → сравнение версий. Генератор фокусируется на создании текста, критик даёт конкретный отклик по 4 направлениям (тон слишком формальный? словарь упрощён? структура не та?). После каждой доработки knockout сравнивает новую версию с предыдущей и оставляет лучшую — это защищает от ситуации когда правка одного аспекта ломает другой. За 3-5 раундов текст инкрементально приближается к целевому стилю. Можно использовать одну модель (self-refinement) или разные для генератора и критика.

Почему работает

Одношаговая генерация — это регрессия к среднему. Модель видит примеры, но склонна усреднять тон, упрощать структуру, терять характерные детали. Промпт даёт контекст, но не гарантирует точного следования стилю. Разделение ролей снимает когнитивную нагрузку «делать всё сразу». Генератор не балансирует между темой и стилем — он создаёт черновик, критик проверяет. Структурированный отклик по 4 критериям конкретнее абстрактного «сделай лучше» — модель получает чёткие указания («усиль иронию», «добавь разговорных слов»). Knockout защищает от регресса — остаётся лучший вариант из всех итераций. Исследование показало: улучшения стабильны до 3-5 итераций, после выходят на плато.

Когда применять

Персонализированные тексты — отзывы, письма, посты, описания — когда есть примеры целевого стиля (минимум 3 текста пользователя). Особенно полезно для задач где важна не только тема, но и манера изложения: отзывы для маркетплейсов в стиле конкретного автора, email-рассылки от лица основателя, посты для соцсетей личного бренда. НЕ подходит: холодный старт без примеров (<3 текстов), примеры сильно различаются по стилю, субъективные креативные задачи без чёткого целевого стиля.

Мини-рецепт

1. Собери примеры стиля: минимум 3 текста от пользователя (чем больше — тем точнее попадание)
2. Генератор создаёт черновик: Напиши [задача]. ПРИМЕРЫ СТИЛЯ: [пример_1, 2, 3]. Сохрани тон, словарь, структуру предложений
3. Критик даёт отклик: Оцени текст по 4 критериям: ТОН (эмоциональная окраска), СЛОВАРЬ (лексика), СТРУКТУРА (длина и сложность предложений), ТЕМА (полнота). Что изменить?
4. Генератор дорабатывает: Доработай на основе отклика. Сохрани сильные стороны, исправь слабые
5. Knockout выбирает лучшую: Какой вариант точнее: A (предыдущий) или B (новый)? Ответ: A/B + обоснование
6. Повтори 3-5 раз: цикл критика-доработки-сравнения до стабилизации результата

Примеры

[ПЛОХО] : Напиши отзыв на кафе в моём стиле. Примеры: [3 текста]. Сохрани тон и словарь — одношаговая генерация, модель дрейфует от стиля
[ХОРОШО] : ИТЕРАЦИЯ 0: Напиши черновик отзыва. Примеры стиля: [3 текста] → ИТЕРАЦИЯ 1: [Критик] Оцени по 4 критериям. ТОН: слишком нейтральный, нужна ирония. СЛОВАРЬ: не хватает разговорных слов. СТРУКТУРА: мало контрастных конструкций. → [Генератор] Доработай на основе отклика → [Knockout] Сравни версии 0 и 1, выбери лучшую → Повтори цикл 2-4 раза — через 3-5 итераций текст точно попадает в стиль: ирония, разговорная лексика, контрастные предложения
Источник: Iterative Critique-Refine Framework for Enhancing LLM Personalization
ArXiv ID: 2510.24469 | Сгенерировано: 2026-01-11 23:28

Методы

МетодСуть
Сравнение версий между итерациями — защита от регрессаПри многошаговой доработке текста сравнивай каждую новую версию с предыдущей. Оставляй лучшую. Как делать: После каждой правки добавь шаг: "Сравни версию A (старая) и версию B (новая). Какая лучше по критериям X, Y, Z? Выбери и объясни." Сохраняй победившую версию для следующей итерации. Почему работает: Правка одного аспекта может ухудшить другой. Модель улучшает тон — но упрощает структуру. Или добавляет детали — но теряет нужную эмоцию. Сравнение версий ловит такие откаты. Остаётся лучший вариант из всех попыток. Когда применять: Задачи с 3+ итерациями доработки, где баланс между критериями важнее максимума по одному. Примеры: стилизация текста, балансировка тона, сохранение деталей при сокращении. Когда не работает: Однозначные правки (исправление фактов, добавление забытого пункта) — там откат невозможен, сравнение лишнее
📖 Простыми словами

PerFine: персонализация текста через итеративную критику

arXiv: 2510.24469

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

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

Вся магия держится на четырех столпах: тон, словарь, структура предложений и релевантность. Критик не просто говорит «плохо», он буквально препарирует текст: «Ты используешь слишком длинные слова, юзер так не пишет» или «Тут не хватает сарказма». После этого включается knockout-механизм — это такой фильтр на входе, который сравнивает новую версию со старой и безжалостно выкидывает ту, что хуже. Цикл повторяется 3–5 раз, пока текст не перестанет пахнуть пластиком и не станет похож на то, что реально вышел из-под твоего пера.

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

Главный вывод прост: забудь про идеальный промпт, который выдаст шедевр с первого раза. Это миф. Чтобы получить по-настоящему персонализированный контент, нужно заставлять модель критиковать саму себя и переписывать черновик до посинения. Если у тебя есть хотя бы 3–5 примеров нужного стиля, PerFine выжмет из LLM максимум, а если будешь полагаться на «авось», получишь очередную порцию нейросетевой жвачки. Либо ты строишь систему обратной связи, либо твой контент умирает в безликости.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с