Trainer

Как Trainer создает задачи, обучает модель и готовит файлы результата

Trainer

Trainer управляет циклом обучения: обновляет файлы проекта, создает задачи, собирает набор данных, запускает обучение, конвертирует модель в ONNX и делает предсказания для следующего шага.

Trainer before model

Рекомендуемый ритм

Не ждите большого набора данных, размеченного вручную. Создайте маленькую стартовую задачу, получите первую модель, а затем постепенно увеличивайте размер следующих задач.

  1. Разметьте первые 5-10 кадров руками.
  2. Запустите Start automatic training.
  3. Пока Trainer учит первую модель, добавьте еще немного ручной разметки, если это не тормозит работу.
  4. Когда первая модель появится, используйте ее для авторазметки следующей задачи.
  5. Если предложения модели уже полезны, увеличивайте задачи до десятков и сотен кадров.
  6. Исправляйте ошибки и продолжайте цикл.

В этом режиме после каждого цикла появляется новая модель, а ваша ручная работа постепенно превращается из полной разметки в проверку и исправление авторазметки.

Первый запуск

Для первого прохода оставьте настройки по умолчанию:

НастройкаЗначение по умолчаниюЧто значит
Yolo8/10+ base modelyolo11s.ptБазовые веса, с которых начинается обучение.
Epochs50Сколько эпох учить модель.
Model Size640imgsz, размер входного изображения для YOLO.
Train/Validation % split80%Сколько изображений идет в обучение, остальное в проверку.
Batch size5%Сколько неразмеченных файлов брать в следующую задачу.
Confidence авторазметки25%Порог уверенности для предложений авторазметки.
Prediction IoU70%Порог IoU для объединения похожих предсказаний.

Практически: создайте первую задачу, разметьте ее, нажмите Finish Job, затем нажмите Start automatic training. Пока идет первое обучение, можно подготовить еще несколько кадров руками. После появления первой модели переходите к задачам крупнее и проверяйте авторазметку.

Главные кнопки

Start automatic training запускает цикл обучения.

Stop automatic training останавливает текущий цикл.

Run once выполняет один цикл обучения и останавливается.

Run until stopped продолжает работать, пока вы не остановите Trainer вручную.

Create Task создает новую задачу разметки из доступных кадров.

Annotate Task открывает первую незавершенную задачу в редакторе разметки.

Refresh пересчитывает состояние файлов проекта, разметки, задач и предсказаний.

Режимы обучения

Local Training запускает обучение на вашем компьютере. Для этого нужны готовые предварительные компоненты.

Google Colab готовит ZIP-архив с набором данных для загрузки в ноутбук Colab. Это полезно, если локальный компьютер слабый или GPU недоступен.

Для первого прохождения используйте Local Training: там YoloEase сам обучает модель, конвертирует ее в ONNX и делает предсказания. В режиме Google Colab YoloEase готовит данные и показывает ссылку на ноутбук; модель из облака нужно вернуть в проект вручную.

Размер партии

Batch size в правой панели задает размер задачи разметки. Значение хранится как процент от еще неразмеченных файлов, а рядом YoloEase показывает реальное количество файлов.

Для первой ручной разметки берите меньше. После появления модели увеличивайте партию: сначала до десятков кадров, затем до сотен, если авторазметка уже экономит время.

Разделение на обучение и проверку

Train/Validation % split делит набор данных на обучающую и проверочную части. Обучающие изображения используются для обучения, проверочные — для оценки качества.

Если проверочная часть слишком маленькая, графики будут шумными. Если обучающая часть слишком маленькая, модель хуже учится. Для первого прохода обычно достаточно значения по умолчанию.

Сейчас YoloEase создает train и valid без отдельного test. Для обучения нужен минимум один кадр в train и один кадр в valid; иначе YOLO не сможет запуститься. Для редких классов, например btn, проверьте, что они встречаются не только в одном-двух кадрах.

Стратегия выбора файлов

Annotated-first сначала берет неразмеченные файлы, для которых уже есть предсказания модели, а затем добирает случайные кадры. Это удобно для итеративного улучшения: следующая задача чаще получает кадры, которые модель уже попыталась найти.

Random выбирает случайнее. Это полезно, когда набор данных уже большой и нужно избежать слишком узкого набора похожих кадров.

Стратегия предсказаний

Unannotated запускает предсказания только по файлам, которые еще не размечены.

All files прогоняет предсказание по всем файлам проекта.

Disabled пропускает шаг предсказаний и использует уже имеющиеся результаты.

Результаты предсказаний используются для статистики и для следующей авторазметки.

All files может быть дорогим на большом проекте. Для обычного цикла быстрее держать Unannotated, а All files включать, когда нужно заново оценить весь проект новой моделью.

Prediction preview

Пороги авторазметки

После предсказаний Trainer показывает найденные метки и их уверенность. Можно использовать один общий порог Global или отдельный порог Per Label.

Если много ложных срабатываний, поднимите порог уверенности. Если модель пропускает реальные объекты, временно опустите порог и проверяйте предложения глазами. Эти пороги влияют на выбор и авторазметку в YoloEase, а не заменяют фильтры во время запуска в EyeAuras.

Ход выполнения

Лента выполнения показывает, что именно делает Trainer:

  • обновление файлов проекта;
  • пропуск предсказаний, если модели еще нет;
  • применение аугментаций, если они включены;
  • сборка набора данных;
  • локальное обучение или подготовка облачного запуска;
  • экспорт в ONNX;
  • предсказания на новой модели.

Training running

Метрики

После обучения смотрите график. Важны не отдельные значения, а общий тренд: losses должны снижаться, а precision, recall и mAP должны расти.

МетрикаКак читать
precisionНасколько редко модель делает лишние срабатывания.
recallНасколько редко модель пропускает нужные объекты.
mAP50Общая оценка качества при более мягком совпадении рамок.
mAP50-95Более строгая оценка качества рамок.
train/val lossОшибка обучения и проверки; важен общий тренд, а не один скачок.

Training metrics

На первых десятках кадров график может быть странным и шумным. После второй или третьей итерации он обычно становится стабильнее, потому что набор данных уже содержит больше исправленных примеров.

Second generation metrics

Файлы результата

После запуска обучения YoloEase конвертирует модель в ONNX. Через Open можно открыть папку результата.

Open model folder

Обычно там есть:

  • best.pt — лучшие PyTorch-веса;
  • last.pt — веса последней эпохи;
  • .onnx — модель для EyeAuras и предсказаний.

Типичная структура результата:

text
datasets/<run-id>/
  data.yaml
  cvataat.json
  train/images, train/labels
  valid/images, valid/labels
  runs/train/weights/best.pt
  runs/train/weights/last.pt
  runs/train/results.png
  runs/train/results.csv
  runs/train/weights/best.onnx

Для продолжения обучения нужен .pt. Для EyeAuras и большинства сценариев запуска берите .onnx.

Model output files

Команды YOLO

Локальное обучение запускает Ultralytics YOLO примерно с такими аргументами:

task=detect mode=train plots=true model=<base-model> data=<data.yaml> imgsz=<Model Size> epochs=<Epochs>

Если CUDA доступна и вы не указали device вручную, YoloEase добавляет device=0. Если workers не указан, YoloEase добавляет workers=0, чтобы на Windows не раздувать память из-за multiprocessing. В Additional arguments можно добавить, например, batch=8, patience=20, device=cpu, workers=2, cache=false, amp=false.

Не добавляйте конфликтующие аргументы без необходимости: они могут переопределить настройки UI или сломать запуск.

См. также: YOLO ONNX и веса моделей, EyeAuras интеграция, диагностика.