Урок 12Новое

Fine-tuning vs Промптинг

Когда дообучать модель

Проблема: Твой чат-бот должен знать продукты твоей компании. Стоит ли обучать свою модель или просто вставить информацию в промпт?

Решение: Репетитор vs учебник

Дообучение (fine-tuning) — это продолжение обучения уже готовой языковой модели на небольшом сфокусированном датасете, чтобы она адаптировалась к твоей задаче, домену или стилю. Модель уже знает грамматику, факты и умеет рассуждать из исходного предобучения (pretraining); дообучение сдвигает её веса (weights) в сторону твоих паттернов — твоего тона, формата вывода, твоей терминологии. Представь, что тебе нужно изучить новый предмет. Прежде чем браться за дообучение, попробуй улучшить результаты с помощью промпт-инжиниринга. Если этого недостаточно, у тебя два основных пути:

  • Учебник (prompting): читай главу перед каждым тестом. Быстро начать, но каждый раз перечитывать.
  • Репетитор (fine-tuning): занимайся с учителем, пока не поймёшь. Требует времени вначале, но знания остаются.

Полный fine-tuning vs LoRA / PEFT

Полный fine-tuning обновляет все веса модели. Это даёт максимум контроля, но дорого: модели на 7 миллиардов параметров нужны десятки гигабайт памяти GPU только под состояние оптимизатора, а в итоге для каждой задачи приходится хранить полную копию модели. PEFT (Parameter-Efficient Fine-Tuning) решает это иначе: исходные веса замораживаются, а обучается лишь крошечный набор новых параметров. Самый популярный метод PEFT — LoRA (Low-Rank Adaptation): он вставляет небольшие обучаемые матрицы в каждый слой, так что настраивается меньше 1% параметров. QLoRA идёт дальше и грузит замороженную базовую модель в 4-битной квантизации, поэтому даже одна потребительская видеокарта может дообучить крупную модель. Полученный LoRA-адаптер весит всего несколько мегабайт — адаптеры можно переключать под разные задачи, не дублируя всю модель.

Когда выбирать fine-tuning, а когда prompting или RAG

Бери дообучение, когда нужен стабильный стиль, формат или поведение, которые промптом надёжно не задать — например, всегда выдавать строгий JSON, классифицировать обращения в поддержку или выдерживать единый голос бренда в тысячах запросов. Это ещё и снижает стоимость одного запроса, потому что инструкции зашиты в веса, а не повторяются в каждом промпте. Но для добавления свежих фактов дообучение не подходит. Чтобы дать модели знания, которые часто меняются, используй Retrieval Augmented Generation (RAG): храни документы в поисковой векторной базе данных, находи релевантные вопросу фрагменты через эмбеддинги и автоматически вставляй их в промпт. Обновить RAG — значит отредактировать документ; обновить дообученный факт — значит переобучить модель. Практическое правило: начни с prompting, добавь RAG для знаний, и дообучай только то поведение, до которого нельзя дойти промптом.

Конкретный пример: ты хочешь модель, которая превращает письма клиентов в структурированные тикеты с полями вроде priority, category и summary. Ты собираешь 500–1000 пар «письмо → тикет», оформляешь их как данные prompt/completion и дообучаешь через LoRA. Задача отрабатывает за час-два на одной GPU, и после этого модель выдаёт чистый JSON без длинного инструктивного промпта — дешевле и надёжнее на инференсе, чем один только prompting.

Представьте это как обучение с репетитором vs учебник:

  • 1. Prompting лучше, когда: Информация часто меняется, нужно быстро стартовать, ограниченный бюджет, задача универсальная
  • 2. Fine-tuning лучше, когда: Нужен специфический стиль или формат, есть много хороших примеров, важна скорость при инференсе, одна и та же задача повторяется тысячи раз

Типы файн-тюнинга

  • Полный fine-tuning: переобучение всех весов. Максимальное качество, но дорого (нужно 8+ GPU)
  • LoRA / QLoRA: обучение только маленьких адаптеров. Дёшево и быстро, 90% качества
  • RLHF: обучение на человеческом фидбеке. Для обучения предпочтениям: быть полезным, а не вредным
  • Instruction tuning: обучение следовать инструкциям. Превращает базовую модель в чат-бота

Интересный факт: Начни с prompting + RAG. Делай fine-tuning только когда упрёшься в чёткие ограничения. 80% задач никогда не требуют файн-тюнинга! Fine-tuning стоит дорого. Сначала исчерпай более дешёвые варианты.

Попробуйте сами!

Ниже — дерево решений. Ответь на несколько вопросов о твоей задаче, и узнай, какой подход рекомендуется именно тебе!

Частые вопросы

Чем fine-tuning отличается от RAG?

Fine-tuning меняет веса модели, чтобы зафиксировать стиль, формат или поведение, и для этого нужно переобучение. RAG не трогает веса: он находит релевантные документы в векторной базе и вставляет их в промпт на лету. Поэтому RAG лучше для знаний, которые часто меняются, а fine-tuning — для поведения, которое нельзя надёжно задать промптом.

Сколько примеров нужно для дообучения модели?

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

Что такое LoRA и чем она отличается от полного fine-tuning?

Полный fine-tuning обновляет все веса модели, требует много памяти GPU и хранит полную копию модели под каждую задачу. LoRA замораживает исходные веса и обучает лишь маленькие добавочные матрицы — меньше 1% параметров. В итоге адаптер весит несколько мегабайт, обучение дешевле и быстрее, а качество близко к полному дообучению.

Когда стоит дообучать модель, а когда хватит промпта?

Начни с промпт-инжиниринга — он бесплатный и мгновенный. Дообучай, только когда нужен стабильный стиль, строгий формат (например, JSON) или одна и та же задача повторяется тысячи раз и важна цена запроса. Если же не хватает свежих фактов, выбирай не fine-tuning, а RAG.

Попробуй сам

Интерактивное демо этой техники

Сравнение техник
Демо режим
Предзаписанные ответы
ЗадачаНачинающийАнализ

Классифицировать медицинские симптомы по специализации врача

Без техники
Без техники
Промпт
Определи специализацию врача по симптомам пациента. Вот примеры: Симптом: "боль в груди, одышка" → Кардиолог Симптом: "сыпь на коже, зуд" → Дерматолог Симптом: "боль в пояснице, онемение ноги" → Невролог Симптом: "частое мочеиспускание, боль внизу живота" → Уролог Симптом: "головная боль, тошнота, светобоязнь" → Невролог Теперь классифицируй: "покраснение глаз, слезотечение, ощущение песка"
Ответ

Дерматолог (покраснение) или Невролог (ощущение песка может быть неврологическим).

Не уверен в ответе — нужно больше контекста.

Токены:120/30
Время:580ms
Качество:
С Fine-Tuning
С техникой
Промпт
[Дообученная модель на 5,000 парах симптом→специализация из медицинской базы] Вход: "покраснение глаз, слезотечение, ощущение песка"
Ответ

Офтальмолог (confidence: 0.96)

Сопутствующие специалисты: Аллерголог (0.23 — если аллергический конъюнктивит)

👁️Few-shot промпт: 5 примеров не покрывают офтальмологию → модель «угадывает» между дерматологией и неврологией
🧠Fine-tuning: 5,000 пар обучают модель всем специализациям. Знание «зашито» в веса — не нужны примеры в промпте
🔢Результат: 120→15 входных токенов (8x экономия), 580→120ms латентность, + confidence scores
Fine-tuning оправдан когда: (1) нужна доменная экспертиза, (2) высокий объём запросов, (3) few-shot не хватает
Токены:15/20
Время:120ms
Качество:
Почему это работает

Few-shot ограничен количеством примеров в промпте. Fine-tuning «зашивает» тысячи примеров в веса модели — быстрее, дешевле за запрос и точнее для узких доменных задач.

1 / 2

Квиз по уроку

1 из 3

1.В чём ключевое преимущество LoRA (Low-Rank Adaptation) перед полным дообучением?

Практика

Создайте бесплатный аккаунт для решения челленджей

3 челленджей с AI-проверкой для этого урока

Связанные уроки:Few ShotRag

Этот урок — часть структурированного курса по LLM.

Мой путь обучения