Максим Максимов, Team Lead R&D-лаборатории компании red_mad_robot, опубликовал на Habr развёрнутый туториал по дообучению открытой языковой модели Qwen2.5-0.5B. Задача, которую он решает, — научить модель извлекать структурированную информацию из произвольного текста и возвращать её в формате JSON по заданной схеме. Это типичная корпоративная задача: парсинг документов, обработка форм, автоматическое заполнение баз данных.
Вопрос «зачем дообучать, если есть GPT-4o или Claude» автор решает прямо. Зарубежные провайдеры предоставляют модели через API — данные уходят на внешние серверы. Для российских компаний это может нарушать требования 152-ФЗ о персональных данных или внутренние политики информационной безопасности. Open-source модели с Hugging Face можно развернуть локально, но крупные модели требуют дорогого оборудования. Выход — взять компактную модель и дообучить её под конкретную узкую задачу.
| Этап обучения | Объём данных | Цель | Метод |
|---|---|---|---|
| Pre-training | Триллионы токенов | Базовое понимание языка и генерация текста | Обучение с нуля на сыром тексте |
| Fine-tuning | Тысячи качественных примеров | Следование инструкциям, выполнение задач | LoRA, заморозка части весов |
| Alignment | Специальные датасеты предпочтений | Безопасность и полезность модели | Методы обучения с подкреплением (RL) |
Автор выбрал Qwen2.5-0.5B — самую младшую модель серии Qwen2.5 от Alibaba с 500 млн параметров и контекстным окном 32K токенов. Её размер позволяет уместить дообучение в бесплатный Google Colab. Метод дообучения — LoRA (Low-Rank Adaptation): основные веса модели замораживаются, а обучаются только небольшие матрицы низкого ранга, встроенные в слои трансформера. Это резко снижает потребление памяти при сохранении качества адаптации.
Обучающая выборка — 1000 примеров из датасета scrapegraphai/scrapegraphai-100k (100 тыс. реальных примеров извлечения данных).
Для обучения используется 1000 примеров из датасета scrapegraphai/scrapegraphai-100k — реальные случаи извлечения структурированных данных с веб-страниц. Тестирование намеренно проводится на другом датасете — paraloq/json_data_extraction, синтетически сгенерированном Google Gemini Pro и охватывающем 8 доменов: медицину, e-commerce, производство и другие. Такой выбор позволяет проверить обобщающую способность модели, а не просто запоминание обучающих примеров.
Отдельный трек эксперимента — отслеживание «катастрофического забывания». Это известная проблема дообучения: модель, оптимизированная под новую задачу, может деградировать в общих знаниях, накопленных на этапе предобучения. Для измерения этого эффекта автор использует бенчмарк MMLU (Massive Multitask Language Understanding) — 14 тыс. вопросов с выбором из четырёх вариантов по 57 доменам от математики до права. Из-за ограничений Colab берётся подвыборка: по 5 вопросов из каждого домена, итого 285 вопросов. Этого достаточно, чтобы отследить динамику в ходе обучения.
Методологически эксперимент построен как трёхточечное измерение: метрики до обучения (baseline), динамика в процессе и финальная оценка после. Качество извлечения JSON оценивается двумя способами: соответствие схеме и валидность извлечённого текста через расстояние Левенштейна между ответом модели и эталоном. Такой подход позволяет разделить два типа ошибок — структурные (неправильный формат) и семантические (неверно извлечённый контент).
Туториал охватывает весь цикл: подготовку данных в единый формат с системным промптом, реализацию на Python, настройку LoRA и процедуру тестирования. Материал ориентирован на практиков, которые хотят адаптировать компактные open-source модели под корпоративные задачи без доступа к дорогостоящей инфраструктуре.


