lenec ru

← все посты

Fine-tuning vs RAG vs few-shot: когда что выбирать на практике

19K

Эти три подхода называют «способами добавить знаний модели». Звучит так, будто они взаимозаменяемы. На деле они решают разные задачи, и выбор между ними — это не вопрос «что круче», а вопрос, что у тебя за проблема. Расскажу, как я для себя их разделила за два года работы с LLM-проектами.

Что это в одном предложении

  • Few-shot — ты добавляешь в промпт 2–10 примеров желаемого ответа.
  • RAG — ты ищешь релевантные документы в базе знаний и подкладываешь их в промпт.
  • Fine-tuning — ты дообучаешь саму модель на своих парах «вход-выход».

Когда брать few-shot

Когда тебе нужно показать модели формат или стиль ответа. Few-shot не учит модель новым фактам, он подсказывает, как именно отвечать.

Типичные случаи:

  • «Классифицируй обращение клиента в одну из категорий: жалоба, вопрос, благодарность». Дай 5 примеров — модель поймёт.
  • «Извлеки из текста название компании, контактное лицо и сумму». Дай 3 примера — извлечение пойдёт стабильнее.
  • «Переведи в наш формальный стиль письма». 4–5 примеров достаточно.
const prompt = `
Классифицируй обращение в категорию: жалоба, вопрос, благодарность.

Пример 1:
Обращение: «Спасибо большое за помощь!»
Категория: благодарность

Пример 2:
Обращение: «Не работает кнопка оплаты, нет ответа третий день»
Категория: жалоба

Пример 3:
Обращение: «Подскажите, как изменить тариф?»
Категория: вопрос

Обращение: «${userMessage}»
Категория:`;

На современных моделях few-shot часто покрывает задачи, где раньше нужно было fine-tuning. Это стало нормой за последний год.

Когда брать RAG

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

Главное преимущество RAG: ответы привязаны к источникам. Ты можешь показать пользователю, на основании какого документа модель ответила. Это критично в продуктах, где «галлюцинация» = серьёзная ошибка.

Минусы:

  • Нужно держать индекс embeddings и поиск (Pinecone, pgvector, Qdrant). Это инфраструктура.
  • Качество поиска критично. Если retrieval нашёл нерелевантные документы — модель ответит бредом.
  • Цена. Большие куски документов в каждом промпте = дорого.

В моих проектах RAG используется в 80% случаев, когда речь про «спрашиваем модель про наши данные».

Когда брать fine-tuning

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

Случаи, где fine-tuning реально окупается:

  • Стабильный, повторяющийся формат ответа (например, специфический JSON со 30 полями) — модель после tuning перестаёт промахиваться по схеме.
  • Узкая стилистика, которую сложно объяснить через few-shot. У меня была задача «отвечать в фирменном тоне нашего бренда» — после tuning это стало стабильно, без размытия.
  • Очень дорогие промпты, которые повторяются миллионы раз в сутки.

Минусы:

  • Не все провайдеры дают fine-tuning. У OpenAI есть, у Anthropic пока нет в общем доступе, у Google — частично.
  • Нужно собрать датасет. Минимум 200–500 пар, лучше тысячи. Это серьёзная работа.
  • Модель «застывает» на твоём формате. Если задача поменяется — переобучать.
  • Цена tuning + цена слегка дороже за вызовы.

Сценарий, когда они смешиваются

В реальном продукте часто всё три подхода применяются одновременно:

  • Fine-tuned модель отвечает в стилистике компании.
  • RAG подкладывает в промпт релевантные куски документации.
  • Few-shot показывает структуру ответа.

Это не «или-или». Это слои. Сначала добавляешь самый дешёвый — few-shot. Если не хватает — добавляешь RAG. Если по-прежнему не дотягиваешь и есть данные — добавляешь fine-tuning.

Стоимость и сложность

В порядке возрастания затрат на внедрение:

  1. Few-shot — час работы, ноль инфраструктуры. Стоимость в продакшене растёт линейно от длины примеров.
  2. RAG — неделя на минимальную версию, плюс БД с embeddings. Стоимость в продакшене зависит от размера подкладываемого контента.
  3. Fine-tuning — недели на сбор датасета, день на сам tuning, плюс стоимость обучения. В продакшене дешевле, чем длинный промпт, но дороже, чем стандартная модель.

Что я обычно советую начинающим

Начни с few-shot. Не выходит — добавь RAG. Не выходит — задумайся про fine-tuning. Большинство задач закрывается на двух первых уровнях, и это нормально.

Ошибка, которую я наблюдаю чаще всего: люди начинают с fine-tuning, потому что «звучит профессионально», и тратят месяц на сбор датасета. А потом выясняется, что задача решалась 8-ю строками few-shot. Не повторяй этого.

Что в итоге

Few-shot, RAG и fine-tuning — три инструмента в одной коробке. Few-shot — про формат ответа. RAG — про знания, которых у модели нет. Fine-tuning — про устойчивый формат и стилистику в больших объёмах. Учись их комбинировать, а не выбирать «один навсегда». И всегда считай экономику: иногда самая «правильная» техническая опция — самая ленивая, и это нормально.

Комментарии 0

  • Будьте первым, кто оставит комментарий.

Войдите, чтобы оставить комментарий.