AI Prompt Engineering · Урок

Когда нужна тонкая настройка

Признаки того, что подсказки достигли предела

Урок 2 из 413 шагов

«Когда нужна тонкая настройка» — бесплатный урок AI Prompt Engineering на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Prompt Engineering, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Prompt Engineering содержит 4 уроков всего.

Решение о дообучении принимается на основе данных

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

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

Признак 1: плато промпта

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

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

# Track eval score vs prompt-iteration; flat tail = plateau
scores = [0.62, 0.71, 0.78, 0.79, 0.795, 0.796]  # diminishing returns
def plateaued(scores, window=3, eps=0.01):
    tail = scores[-window:]
    return (max(tail) - min(tail)) < eps

print(plateaued(scores))  # True -> prompting has stalled

Признак 2: длина промпта становится самим продуктом

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

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

Признак 3: жесткий предел задержки или стоимости

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

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

# Distillation data: teacher (big model) labels -> student (small) trains
def make_distill_pair(prompt, teacher_fn):
    completion = teacher_fn(prompt)  # high-quality big-model output
    return {'messages': [
        {'role': 'user', 'content': prompt},
        {'role': 'assistant', 'content': completion},
    ]}

Признак 4: нестандартный формат или стиль

Некоторые выходные данные настолько специфичны, что описывать их в большом масштабе дороже, чем демонстрировать: собственный DSL, фирменная манера письма с тысячей мелких правил, жесткая схема предметной области с бесчисленными условными полями.

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

Признак 5: поведение, которому модель сопротивляется

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

Дообучение может переопределить такие установки. Но сначала убедитесь, что сопротивление действительно существует и не связано с недостаточной ясностью промпта: ошибочная атрибуция сопротивления приводит к ненужным запускам обучения.

Противосигналы: когда NOT следует выполнять дообучение

Не менее важно распознавать ложные тревоги. NOT выполняйте дообучение, если:

  • Пробел связан со знаниями — лучше получите их поиском; дообучение встраивает устаревшие факты с потерями
  • Спецификация все еще меняется каждую неделю — вам придется постоянно переобучать модель
  • У вас меньше нескольких сотен чистых примеров — слишком мало сигнала и высок риск переобучения
  • Ошибки случайны, а не систематичны — данные или промпт все еще содержат шум
  • У вас нет контура оценки — вы не сможете понять, помогло ли дообучение вообще

Проверка готовности данных

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

Несколько сотен тщательно отобранных примеров лучше десятков тысяч зашумленных. Если ваши метки противоречат друг другу, модель выучит этот шум.

def data_ready(examples, min_n=300, max_dupe_ratio=0.05):
    n = len(examples)
    texts = [e['messages'][0]['content'] for e in examples]
    dupe_ratio = 1 - (len(set(texts)) / n)
    return n >= min_n and dupe_ratio <= max_dupe_ratio

# Returns False until you have enough deduped, curated examples

Выбор метода дообучения

Не всякое дообучение означает обучение всех весов. Подберите метод под имеющийся признак:

  • LoRA / адаптеры — дешево, быстро и обратимо; идеально для переноса стиля и формата
  • Полное дообучение — более затратный вариант для глубокого изменения поведения способных открытых моделей
  • Дообучение по предпочтениям (в стиле DPO) — когда у вас есть попарные оценки хороших и плохих ответов, а не эталонные ответы

Начинайте с самого легкого метода, которого требует имеющийся признак. Адаптеры в стиле LoRA подходят для большинства производственных случаев при существенно меньшей стоимости.

Протокол предварительной фиксации

Перед запуском обучения зафиксируйте условия эксперимента, чтобы его результат можно было интерпретировать:

  • Зафиксируйте отложенный набор для оценки, который модель никогда не увидит во время обучения
  • Запишите лучший исходный показатель только для промптинга на этом наборе
  • Заранее определите целевое улучшение и предельную стоимость
  • Определите откат: если дообученная модель не превзойдет исходный уровень на целевую величину, выпускайте промпт

Без заранее зафиксированных исходного уровня и цели вы не сможете доказать, что дообучение оправдало затраты.

Объединение признаков

Объедините признаки в единый критерий решения о запуске. Дообучение выполняется только тогда, когда промптинг достиг состояния plateaued AND данные готовы AND пробел связан с поведением, а не когда срабатывает какой-либо отдельный признак.

def should_fine_tune(plateaued, data_ready, gap_is_behavior,
                     spec_stable, has_eval_harness):
    return all([
        plateaued,        # prompting stalled on frozen eval
        data_ready,       # enough clean, deduped examples
        gap_is_behavior,  # not a knowledge gap (else use RAG)
        spec_stable,      # task definition has settled
        has_eval_harness, # can measure the lift
    ])

print(should_fine_tune(True, True, True, True, True))  # True -> proceed

Быстрая проверка

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

Итоги

Дообучайте на основе данных, а не интуиции. Обоснованные признаки: настоящее плато с систематическими ошибками, длина промпта, ставшая самим продуктом, жесткий предел задержки или стоимости, нестандартные форматы либо поведение, которому сопротивляется базовая модель.

  • Противосигналы: пробелы в знаниях, меняющиеся спецификации, слишком мало данных, случайные ошибки, отсутствие контура оценки
  • Пройдите проверку готовности данных до обучения: качество данных ограничивает результат
  • Выберите самый легкий метод — сначала в стиле LoRA, — которого требует имеющийся признак
  • Заранее зафиксируйте набор для оценки, исходный уровень, целевое улучшение и откат
  • Переходите к дообучению только при одновременном выполнении условий: плато AND готовность данных AND пробел в поведении
Можно начать бесплатно

Изучай AI Prompt Engineering с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
53
Уроки
199

Часто задаваемые вопросы

Урок «Когда нужна тонкая настройка» бесплатный?

Да — полный текст урока «Когда нужна тонкая настройка» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Prompt Engineering, подпишись на CoddyKit PRO. Курс AI Prompt Engineering содержит 4 уроков всего.

Чему я научусь в уроке «Когда нужна тонкая настройка»?

Признаки того, что подсказки достигли предела Ты практикуешь AI Prompt Engineering с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AI Prompt Engineering?

Предыдущий опыт не требуется. AI Prompt Engineering на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Когда нужна тонкая настройка»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AI Prompt Engineering?

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

Все уроки этого курса

  1. Когда достаточно подсказок
  2. Когда нужна тонкая настройка
  3. Гибридный подход: подсказки и лёгкая настройка
  4. Оценка решения
← Назад к AI Prompt Engineering