Как дообучить LLM: пошаговый разбор

Коротко

  • Эксперимент сфокусирован на fine-tuning LLM для структурированного вывода: текст и JSON Schema на входе, валидный JSON на выходе.
  • Модель Qwen2.5-0.5B выбрана из-за небольшого размера: 0.5 млрд параметров, контекст 32K и возможность обучения в Colab вместе с LoRA.
  • Обучающая выборка собрана из 1000 примеров scrapegraphai-100k, тестовая — из 200 примеров paraloq/json_data_extraction.
  • Забывание прежних знаний проверяется на MMLU: использована подвыборка из 285 вопросов, по 5 вопросов из каждого из 57 доменов.
  • Baseline до обучения: schema_valid 0.27, Levenshtein 0.41, MMLU 0.46; после одной эпохи качество извлечения JSON улучшилось.

Пошаговый разбор fine-tuning open-source LLM для задачи извлечения данных в JSON по заданной схеме. В эксперименте Qwen2.5-0.5B дообучают через LoRA на бесплатных ресурсах Colab и проверяют качество на отдельном тестовом датасете.

Автор берёт небольшую модель Qwen2.5-0.5B, потому что её можно дообучать на ограниченном железе, и ставит узкую задачу: модель получает текст и JSON Schema, а возвращает валидный JSON без лишних комментариев. Такой сценарий полезен, когда готовые API-модели не подходят из-за требований к корпоративным данным, локальному запуску или 152-ФЗ.

Для обучения используется 1000 валидных примеров из scrapegraphai/scrapegraphai-100k, для теста — 200 примеров из paraloq/json_data_extraction. Входные тексты ограничены 4096 токенами, чтобы эксперимент помещался в память Colab, а качество проверяется по соответствию JSON-схеме и близости ответа к эталону через расстояние Левенштейна.

Отдельно отслеживается забывание прежних знаний модели: для этого берётся подвыборка MMLU из 285 вопросов по 57 доменам. До обучения baseline составил 0.27 по schema_valid, 0.41 по Levenshtein и 0.46 по MMLU; после одной эпохи автор фиксирует улучшение извлечения JSON, хотя промежуточные метрики вели себя нестабильно.

FAQ

Зачем дообучать LLM для извлечения JSON, если уже есть готовые модели вроде GPT, Claude, Grok или DeepSeek?

Дообучение нужно для узких задач и локального запуска, когда использование внешнего API может не подходить из-за корпоративных данных, безопасности или требований 152-ФЗ.

Почему в эксперименте используется LoRA, а не полное обучение всех весов выбранной языковой модели?

LoRA замораживает основные веса модели и обучает небольшие дополнительные матрицы. Это снижает требования к памяти и позволяет провести эксперимент на ограниченных ресурсах Colab.

Как автор проверяет, что после fine-tuning модель не только лучше извлекает JSON, но и не потеряла прежние знания?

Качество JSON оценивается через валидность по схеме и расстояние Левенштейна, а забывание прежних знаний отслеживается на подвыборке бенчмарка MMLU.

Читайте также

  1. Как ЮMoney учит ИИ отвечать на вопросы к базе данных и проверять собственные ошибки
  2. Как llama.cpp-бэкенд ускорил инференс CosyVoice3 в 2,6 раза
  3. Нейросетями пользуются уже 55% россиян: Алиса AI опережает DeepSeek и GigaChat
  4. Как научить LLM исправлять код без лишних изменений
  5. ИИ для PHP-разработчиков. Часть 2: практическое использование TransformersPHP
Ключевые инсайты из новости (по версии ChatGPT)
  • Локальное дообучение LLM для задач с ограничениями по данным: Если внешние LLM API не подходят из-за корпоративных данных, требований безопасности или 152-ФЗ, практичным вариантом становится open-source модель, запущенная на собственном оборудовании. Для узких задач можно брать небольшую модель и дообучать её под конкретный формат ответа вместо использования крупной универсальной модели.
    [AI / локальные LLM]
Для получения полного доступа оформите подписку PubMag PRO.
Зарегистрированные пользователи видят только два тезиса.
Зарегистрироваться
Инсайты автоматически генерируются с помощью искусственного интеллекта на основе текста статьи.
← Назад в лентуЧитать оригинал →
✈️ Подписывайтесь на мой Telegram-канал — там еще больше интересного про AdTech, MarTech, AI и многое другое!