Когда нужна тонкая настройка
Признаки того, что подсказки достигли предела
«Когда нужна тонкая настройка» — бесплатный урок 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 — локальная установка не требуется.
Все уроки этого курса
- Когда достаточно подсказок
- Когда нужна тонкая настройка
- Гибридный подход: подсказки и лёгкая настройка
- Оценка решения