Дообучение (Fine-Tuning) языковой модели GPT-4 / GPT-4o
GPT-4 и GPT-4o — закрытые модели OpenAI, доступные для fine-tuning через официальный API. Дообучение позволяет адаптировать базовую модель под конкретный домен, корпоративный стиль ответов, формат вывода или специализированную задачу — без необходимости каждый раз передавать контекст через system prompt.
Что даёт fine-tuning GPT-4o по сравнению с prompt engineering
| Параметр | Prompt Engineering | Fine-Tuning |
|---|---|---|
| Длина контекста под инструкции | Занимает токены | Не нужен |
| Стабильность формата вывода | Нестабильная | Высокая |
| Латентность | Выше (длинный промпт) | Ниже |
| Стоимость на запрос | Выше | Ниже при большом объёме |
| Порог входа | Нет | Нужны данные |
Fine-tuning GPT-4o через OpenAI API требует набора данных в формате JSONL (пары {"role": "user", "content": "..."} / {"role": "assistant", "content": "..."}). Минимальный рекомендуемый объём — 50–100 примеров, оптимальный для стабильного результата — 500–2000.
Подготовка датасета
Ключевой этап — качество данных, а не их количество. Типичные ошибки при подготовке:
- Дубликаты и противоречия: одинаковый вопрос с разными ответами сбивает модель. Дедупликация обязательна.
- Несбалансированный класс ответов: если 90% примеров — один тип запроса, модель перегибает под него.
- Формат без вариативности: если все примеры написаны одним автором в одном стиле, модель будет плохо обобщать.
Для очистки и анализа датасета используем datasets (Hugging Face), pandas, а также openai CLI для валидации формата:
openai tools fine_tunes.prepare_data -f dataset.jsonl
Процесс дообучения через API
from openai import OpenAI
client = OpenAI(api_key="...")
# Загрузка датасета
file = client.files.create(
file=open("train.jsonl", "rb"),
purpose="fine-tune"
)
# Запуск джоба
job = client.fine_tuning.jobs.create(
training_file=file.id,
model="gpt-4o-2024-08-06",
hyperparameters={
"n_epochs": 3,
"batch_size": 4,
"learning_rate_multiplier": 1.8
}
)
Гиперпараметры n_epochs, batch_size, learning_rate_multiplier влияют на итоговое качество. Дефолтные значения подходят как стартовая точка, но при маленьком датасете (<200 примеров) стоит увеличить эпохи до 5–8 и снизить learning_rate_multiplier до 0.5–1.0 во избежание переобучения.
Оценка качества дообученной модели
После завершения джоба модель доступна по id вида ft:gpt-4o-2024-08-06:org-name::abc123. Оцениваем результат по:
- Training loss / Validation loss: OpenAI отдаёт метрики в событиях джоба. Хороший сигнал — снижающийся train loss при стабильном val loss.
- Ручное тестирование на hold-out наборе: минимум 50 примеров, не попавших в обучение.
- Сравнение с baseline: A/B тест базовой GPT-4o vs. дообученной на реальных запросах.
Пример реального улучшения: при дообучении GPT-4o на 800 примерах юридических документов (договоры аренды, акты) точность извлечения реквизитов в структурированный JSON выросла с 71% до 94%, а токены на промпт сократились на 60%.
Типовые задачи и сроки
Классификация обращений (например, саппорт-тикеты по категориям): 2–3 недели от сбора данных до деплоя. Нужно 300–500 размеченных примеров.
Генерация в корпоративном стиле: тон, структура ответа, запрещённые фразы. 1–2 недели, 200–400 примеров.
Извлечение структурированных данных (Named Entity Recognition через LLM): 3–4 недели, 500–1500 примеров с аннотацией.
Специализированный домен (медицина, право, финансы): 6–12 недель с учётом сбора и разметки данных.
Ограничения и альтернативы
GPT-4o fine-tuning не даёт доступа к весам модели — вы получаете только hosted endpoint. Если нужны on-premise или контроль над весами, рассматриваем Llama 3, Mistral или другие открытые модели с LoRA/QLoRA.
Также следует учитывать: дообученная GPT-4o дороже базовой в инференсе (~$25/1M tokens обучающих, плюс повышенная цена инференса дообученной модели). При большом объёме запросов это существенно.
Что входит в работу
- Аудит существующих данных, выработка требований к датасету
- Сбор, очистка, разметка (при необходимости) обучающих примеров
- Итеративное обучение с подбором гиперпараметров
- Оценка качества: автоматические метрики + ручная верификация
- Интеграция дообученной модели в продакшн-пайплайн
- Мониторинг деградации качества после деплоя







