Когда стандартная LLM не справляется с задачей «из коробки», у разработчика есть два основных пути: промпт-инжиниринг -- улучшение результатов за счёт оптимизации запросов, и fine-tuning -- дообучение модели на собственных данных. Оба подхода имеют свои преимущества и ограничения, и выбор между ними -- один из ключевых архитектурных решений в AI-проектах.
Промпт-инжиниринг: максимум из стандартной модели
Промпт-инжиниринг -- это искусство составления запросов к LLM таким образом, чтобы получить оптимальный результат без изменения самой модели. Основные техники:
- System prompt -- задаёт роль, формат ответа и ограничения: «Ты эксперт по налоговому праву РФ. Отвечай кратко, с цитатами НК РФ»
- Few-shot examples -- включение примеров входа и выхода прямо в промпт, чтобы модель «поняла» формат
- Chain-of-Thought (CoT) -- инструкция «рассуждай пошагово», улучшающая точность на сложных задачах
- Structured output -- явное указание формата ответа (JSON schema, XML) с примерами
- Role-playing -- назначение модели конкретной роли для повышения качества в узкой области
from openai import OpenAI
client = OpenAI(
base_url="https://api.modelswitch.ru/v1",
api_key="msk_ваш_ключ"
)
# Few-shot промпт для классификации тикетов поддержки
response = client.chat.completions.create(
model="gpt-4o-mini", # Дешёвая модель + хороший промпт = отличный результат
messages=[
{"role": "system", "content": """Классифицируй тикет поддержки в одну из категорий:
BILLING, TECHNICAL, FEATURE_REQUEST, BUG_REPORT.
Ответ -- только одно слово (категория)."""},
{"role": "user", "content": "Не могу оплатить подписку картой Мир"},
{"role": "assistant", "content": "BILLING"},
{"role": "user", "content": "API возвращает 500 ошибку при streaming"},
{"role": "assistant", "content": "BUG_REPORT"},
{"role": "user", "content": "Хотелось бы интеграцию с Telegram"},
{"role": "assistant", "content": "FEATURE_REQUEST"},
# Реальный тикет для классификации:
{"role": "user", "content": "При создании API ключа страница зависает"}
],
temperature=0
)
Fine-tuning: когда промптов недостаточно
Fine-tuning -- это дообучение базовой модели на вашем наборе данных. Модель «запоминает» паттерны из ваших примеров и применяет их без необходимости включать примеры в каждый запрос.
Когда fine-tuning оправдан:
- Специфический стиль и тон -- бренд-голос компании, юридический язык, медицинская терминология
- Сложная классификация -- десятки категорий с нюансами, которые невозможно описать в промпте
- Оптимизация стоимости -- fine-tuned GPT-4o-mini может заменить GPT-4o + длинный промпт, экономя до 90% бюджета
- Скорость -- короткие промпты = быстрее inference, меньше input-токенов
- Конфиденциальные данные -- обучение на внутренних данных компании (с учётом data privacy)
Сравнение подходов: таблица решений
| Критерий | Промпт-инжиниринг | Fine-tuning |
|---|---|---|
| Время внедрения | Минуты-часы | Дни-недели |
| Стоимость старта | $0 | $50-5000+ (обучение) |
| Стоимость inference | Выше (длинные промпты) | Ниже (короткие промпты) |
| Нужен датасет | Нет (или 3-5 примеров) | Да (100-10000+ примеров) |
| Гибкость | Высокая (меняем промпт) | Низкая (нужно переобучать) |
| Качество на нишевых задачах | Среднее | Высокое |
| Смена модели | Просто (меняем model) | Нужно заново обучать |
Практические рекомендации: что выбрать
Наш подход -- начинайте всегда с промпт-инжиниринга. Это быстрее, дешевле и гибче. Переходите к fine-tuning только если:
- Промпт-инжиниринг достиг потолка качества и не даёт нужного результата
- Стоимость длинных промптов стала критичной при большом объёме запросов
- У вас есть качественный размеченный датасет (минимум 100 примеров, лучше 1000+)
- Задача стабильна и не требует частых изменений логики
Существует и третий путь -- RAG (Retrieval-Augmented Generation), который часто оказывается золотой серединой: модель получает релевантный контекст из базы знаний, не требуя ни длинных промптов, ни дообучения.
Через ModelSwitch вы можете экспериментировать с разными моделями для промпт-инжиниринга (GPT-4o-mini для экономии, Claude для качества), а когда придёт время fine-tuning -- использовать OpenAI fine-tuning API через тот же gateway.