Игорь Градов
Игорь Градов
5 мин
ai

Fine tuning нейросети Qwen2.5 в Google Colab: бесплатный гайд от данных до результата

Дообучение (fine-tuning) нейросети позволяет адаптировать готовую языковую модель под конкретную задачу, и этот гайд проведёт вас от чистого блокнота Google Colab до работающей модели Qwen2.5, обученной отличать хорошие ответы от плохих.

Fine tuning нейросети Qwen2.5 в Google Colab: бесплатный гайд от данных до результата
Почему это важно

Дообучение нейросети на собственных данных даёт контроль над качеством ответов, который невозможно получить одними промптами, а открытый датасет Anthropic HH-RLHF и метод DPO позволяют запустить весь процесс бесплатно в облаке.

Большинство руководств по дообучению нейросети написаны для англоязычных моделей, а проблемы с русскоязычными данными остаются за кадром. В этом гайде, основанном на рабочем пайплайне с моделью Qwen2.5-0.5B-Instruct и датасетом Anthropic HH-RLHF, разобран полный цикл: от аудита данных и поиска скрытых предвзятостей до обучения методом DPO (Direct Preference Optimization, прямая оптимизация предпочтений) и проверки результата.

Что понадобится?

  • Google Colab с GPU-средой (бесплатный тариф подойдёт, но обучение будет медленнее)
  • Python-библиотеки: trl версии 0.12 и выше, transformers версии 4.45 и выше, accelerate, datasets, peft, scikit-learn (код установки есть в пайплайне)
  • Модель: Qwen2.5-0.5B-Instruct (открытые веса, скачивается автоматически из Hugging Face)
  • Датасет: Anthropic HH-RLHF (загружается через библиотеку datasets)
  • Время: от 30 минут на GPU до нескольких часов на CPU

Никаких платных подписок и API-ключей не нужно. Весь процесс идёт локально или в облачном блокноте.

Пошаговая инструкция

  1. Подготовьте среду. Создайте новый блокнот в Google Colab, выберите GPU-среду (Runtime → Change runtime type → GPU). Запустите установку зависимостей одной командой:
REQUIRED = [
    "trl>=0.12", "transformers>=4.45",
    "accelerate", "datasets", "peft", "scikit-learn"
]
subprocess.check_call([
    sys.executable, "-m", "pip", "install", "-q", "-U", *REQUIRED
])

Если Colab установит обновления, перезапустите среду (Runtime → Restart session) и выполните ячейку повторно.

  1. Загрузите и разберите датасет. Датасет Anthropic HH-RLHF содержит пары ответов: выбранный (chosen) и отклонённый (rejected). Загрузите четыре подмножества и сформируйте обучающую и тестовую выборки:
SUBSETS = [
    "helpful-base",
    "helpful-rejection-sampled",
    "helpful-online",
    "harmless-base"
]
N_TRAIN_PER_SUBSET = 120
N_TEST_PER_SUBSET = 30

Из каждого подмножества берётся 120 примеров для обучения и 30 для теста. Этого хватает для демонстрации, а для продуктивного дообучения нейросети числа стоит увеличить.

  1. Проведите аудит данных на предвзятости. Перед обучением проверьте, не отличаются ли «хорошие» ответы от «плохих» просто длиной или набором слов. Это делается через TF-IDF (метод, который оценивает значимость слов в тексте) и логистическую регрессию:
vectorizer = TfidfVectorizer(max_features=5000)
X = vectorizer.fit_transform(all_texts)
clf = LogisticRegression(max_iter=300)
clf.fit(X_train, y_train)
print(f"ROC-AUC: {roc_auc_score(y_test, clf.predict_proba(X_test)[:,1]):.3f}")

Если классификатор легко разделяет пары по поверхностным признакам (ROC-AUC выше 0.75), в данных есть «лингвистические ярлыки» (linguistic shortcuts), и модель может выучить длину ответа вместо качества.

  1. Отфильтруйте данные по длине. Установите максимальную длину последовательности в 512 токенов (токен, это минимальная единица текста для модели, примерно часть слова) и максимальную длину промпта в 256 токенов. Пары, не укладывающиеся в лимиты, отсекаются.

  2. Настройте обучение методом DPO. DPO обучает модель напрямую предпочитать один ответ другому, без отдельной «модели вознаграждения». Ключевые параметры:

BETA = 0.1
MAX_STEPS = 30
BATCH_SIZE = 1
GRAD_ACCUM = 8
LEARNING_RATE = 5e-6
WARMUP_RATIO = 0.1
USE_LORA = True

LoRA (Low-Rank Adaptation, адаптация через низкоранговые матрицы) позволяет дообучить модель, меняя малую часть весов. Это экономит память и время.

  1. Запустите обучение и оцените результат. После обучения проверьте reward accuracy (долю случаев, когда модель правильно предпочитает chosen-ответ rejected-ответу) и сгенерируйте тестовые ответы. Сохраните модель для дальнейших экспериментов.
Как это применить

На входе пайплайну подаётся пара: промпт пользователя, «хороший» ответ ассистента и «плохой» ответ. После 30 шагов обучения модель Qwen2.5-0.5B-Instruct начинает стабильно выбирать содержательные и безопасные ответы. При аудите данных на этапе 3 выяснилось, что в подмножестве helpful-base выбранные ответы в среднем длиннее отклонённых, а TF-IDF классификатор разделял пары с ROC-AUC выше случайного уровня. Это значит, что без фильтрации длины модель просто училась бы «писать длиннее», а не «писать лучше».

Частые ошибки
  • Пропуск аудита данных. Без проверки на предвзятости по длине и лингвистические ярлыки модель может выучить поверхностные паттерны вместо реального качества. Это главная ловушка при дообучении нейросети.
  • Несовместимость библиотек. Colab иногда ставит torchao версии 0.10, а peft требует 0.16 и выше. Пайплайн удаляет torchao автоматически, поскольку он не используется. Если появляется ошибка импорта, перезапустите среду.
  • Слишком большой MAX_LENGTH на бесплатном GPU. 512 токенов при batch size 1 вписывается в память бесплатного Colab. Увеличите до 1024, получите OOM (нехватку видеопамяти).
  • Обучение без LoRA на маленьком GPU. Полное дообучение даже модели на 0.5 миллиарда параметров может не поместиться в бесплатный Colab. LoRA снижает расход памяти в разы.

Что делать с этим прямо сейчас?

Авторам Дзена. Дообучение нейросети пригодится, если вы генерируете черновики статей: обучите модель на парах «хороший абзац / слабый абзац» из своей тематики, и она начнёт выдавать тексты ближе к вашему стилю. Начните с малого датасета в 200 пар.

Маркетологам. Метод DPO позволяет обучить модель предпочитать нужный тон, структуру и аргументацию без дорогой разметки. Это дешевле, чем RLHF (обучение с подкреплением через обратную связь от человека), и запускается в бесплатном Colab.

Предпринимателям в РФ и СНГ. Модель Qwen2.5 доступна без ограничений, датасет Anthropic скачивается свободно. Для русского языка придётся собрать свои пары предпочтений. Из доступных в РФ аналогов для инференса (запуска готовой модели) можно использовать YandexGPT и GigaChat, но дообучение собственной открытой модели даёт независимость от чужих API.

Мнение редакции dzen.guru

По моим наблюдениям, главная сложность дообучения нейросети для русскоязычных задач не в коде, а в данных. Anthropic HH-RLHF собран на английском, и напрямую перенести результат на русский контент не получится. Но сам пайплайн, аудит предвзятостей, фильтрация по длине, обучение через DPO с LoRA, работает с любым языком. Если вы соберёте 500 русскоязычных пар «хороший ответ / слабый ответ» по своей теме, этот же код даст рабочую модель. Честная оговорка: 0.5 миллиарда параметров это очень компактная модель, она не заменит GPT-4 или Claude, но для узкой задачи (тон, формат, фильтрация) её вполне хватает.

Попробуйте нейросети для авторов Дзена

Мы в dzen.guru тестируем инструменты на основе ИИ для создания контента и делимся рабочими пайплайнами

Узнать больше

Код из этого гайда запускается за полчаса и не требует ничего, кроме браузера. Первый шаг, откройте Colab, вставьте блок установки зависимостей и проверьте, что GPU доступен: если в выводе torch.cuda.is_available() стоит True, всё остальное пойдёт по инструкции.

Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

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

Claude Code AI сам пишет автотесты и переводит проект на TypeScript: гайд Битрикс24
ai

Claude Code AI сам пишет автотесты и переводит проект на TypeScript: гайд Битрикс24

Мне нужно отметить важное: предоставленный оригинал — это не новость о привлечении инвестиций (funding), а практический туториал Александра Сербула из…

5 мин
ai

RAG-система на российских GPU-серверах: полный стек для LLM, которая не отдаёт данные за контур

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

6 мин
AirPods с камерой станут «глазами» Siri: Apple хочет убрать iPhone из рук
ai

AirPods с камерой станут «глазами» Siri: Apple хочет убрать iPhone из рук

Apple добавит камерами в наушники не для записи, а как «глаза» для голосового помощника Siri, и это первая попытка компании сделать AirPods чем-то большим, чем…

5 мин