Перейти к содержимому

Тренеры моделей в Potato по задачам

Все 38 тренеров по задачам: схемы разметки каждого тренера, команда установки, записываемые обратно предварительные метки и оценка на отложенных объектах, а также правила лицензий.

Новое в v2.14.0

В обучении моделей Potato есть 38 тренеров, и каждый тренер подгоняет модель одного вида под ответы схемы разметки одного вида. Таблицы на этой странице перечисляют всех тренеров по задачам: схемы, из которых тренер учится, объекты, которые тренер читает, установку, которая тренеру нужна, предварительную метку, которую тренер записывает обратно, и оценку на отложенных объектах, которую выдаёт каждый запуск. Страница нужна владельцу исследования, который выбирает тренера перед первым запуском или проверяет, можно ли вообще обучить модель на схеме. Ключи конфигурации, бэкенды и правила обратной записи описаны на странице конфигурации. Полная таблица параметров каждого тренера есть в разделе этого тренера в справочнике upstream, и каждое имя тренера ниже ведёт в его раздел.

Какие тренеры предлагаются для каждой схемы

Страница Training по адресу /admin/training предлагает для каждой схемы только тренеров, подходящих к виду схемы и к модальности её объектов, например тексту, изображениям или аудио. Тренер, которого проект запустить не может, остаётся в списке с указанием причины: например, decision-calibrate показывает "no decision model is configured", пока в проекте нет модели решений. Тренер, у которого не хватает пакетов, показывается как "not installed" вместе с командой, которая эти пакеты ставит. Пока вы не выберете тренера, везде, где подходит sklearn-text, выбран sklearn-text. Запуск для несуществующей схемы или для схемы, которой тренер учиться не может, отклоняется с HTTP 400 до того, как что-либо построено.

Каждый запуск обучается на одной схеме. Страница Training отправляет одну схему, а API обучения принимает список схем, но каждый тренер обучается только на первой схеме списка. Чтобы обучить две схемы, начните два запуска.

В таблицах ниже столбец Pre-label говорит, что запуск записывает в объект, когда схема указана в writeback.schemas. Объекты выборки train запуска предварительных меток не получают, а предварительная метка становится ответом разметчика, только когда разметчик правит её или переходит к следующему объекту. Столбец Held-out score называет главную метрику запуска, вычисленную на объектах val и test относительно сведённых меток разметчиков. Объект с меткой и без предсказания считается ошибкой. Поэтому тренер не может поднять оценку, пропуская трудные объекты. Раздел Held-out scores справочника upstream определяет каждую метрику.

Установка тренеров

Тренеру sklearn-text не нужно ничего сверх обычной установки Potato, потому что scikit-learn входит в основные зависимости. Текстовым, графическим, аудио- и LLM-тренерам нужны PyTorch и transformers. Одна дополнительная группа ставит пакеты для всех четырёх групп:

bash
pip install "potato-annotation[train]"

Более узкие группы [train-text], [train-vision], [train-audio] и [train-llm] ставят по одной группе, а столбец Install ниже называет самую узкую группу, которая покрывает каждого тренера, как в pip install "potato-annotation[train-vision]". Ни одна из групп обучения не входит в potato-annotation[all], потому что PyTorch занимает несколько гигабайт. Некоторым тренерам нужны пакеты вне [train]:

  • ultralytics-detect и ultralytics-segment требуют pip install ultralytics.
  • cellpose требует pip install cellpose и работает с Cellpose 3 или Cellpose 4.
  • laya-finetune требует [decision], а openjev-finetune требует pip install wev-ai.
  • rdkit-property требует [chemistry], volume-unet требует [volumes], video-track требует opencv-python, а сигналам WFDB или Parquet нужен [signals]. Целым слайдам нужен [wsi] для openslide.
  • Параметру dp тренеров hf-text-classification и hf-image-classification нужен pip install opacus.

Тренеры ultralytics-detect, ultralytics-segment и layoutlmv3 просят подтвердить лицензию перед первым запуском. Ultralytics распространяется под AGPL-3.0, поэтому модель, обученная и распространяемая с любым из двух тренеров YOLO, подпадает под условия AGPL, а Ultralytics продаёт отдельную лицензию для закрытого использования. Веса LayoutLMv3 имеют лицензию CC BY-NC-SA 4.0 и не предназначены для коммерческого использования. Для всех трёх тренеров страница Training запрашивает подтверждение, запуск через API требует accept_licence: true, а автоматическое переобучение требует auto_retrain.accept_licence: true. Код Cellpose распространяется под BSD-3-Clause, а авторы Cellpose публикуют предобученные веса Cellpose на собственных условиях. Лицензии различаются и у контрольных точек, названных в model_name. Например, Qwen2.5-VL-3B распространяется под исследовательской лицензией Qwen, а Qwen2.5-VL-7B — под Apache-2.0.

Параметры

Параметры запуска приходят из трёх мест, и каждое место переопределяет предыдущее:

  1. значения тренера по умолчанию, перечисленные в разделе тренера в upstream;
  2. model_training.trainer_params.<trainer> в конфигурации;
  3. собственные params запуска, то есть поле Parameters на странице Training, params запуска через API или auto_retrain.params.

Добавьте trainer_params в блок model_training, чтобы задать значения по умолчанию для каждого используемого тренера:

yaml
model_training:
  enabled: true
  trainer_params:
    hf-text-classification:
      model_name: answerdotai/ModernBERT-base
      epochs: 4
    torchvision-detect:
      model_name: fasterrcnn_resnet50_fpn_v2
      score_threshold: 0.4

Поле Parameters на странице Training содержит JSON, заполненный из trainer_params для выбранного тренера. Имя параметра, которого тренер не принимает, считается ошибкой. Имя в trainer_params останавливает сервер при запуске, а имя в params запуска останавливает запуск до его начала. Обе ошибки перечисляют имена, которые принимает тренер. Например, опечатка score_thresh у torchvision-detect сообщается вместе со списком, где есть score_threshold. Potato также проверяет каждое значение по типу и диапазону параметра.

Классификаторы текста и изображений

Классификаторы учатся на схемах выбора radio, select, likert и multiselect. Предварительная метка radio, select или likert выбирает один ответ, а предварительная метка multiselect отмечает набор меток. sklearn-text работает на процессоре без дополнительной установки, а руководство по первой модели проводит запуск с sklearn-text. На корпусе изображений sklearn-text подгоняет классификатор под эмбеддинги изображений CLIP. setfit создан для первых дней проекта и работает примерно с восьми размеченных объектов на метку. Страницы схем radio и multiselect, select и шкал Ликерта описывают сторону разметки.

hf-text-classification дообучает трансформер, а с lora: true дообучает также декодерную LLM, например Qwen или Llama. С soft_targets: true тренер hf-text-classification обучается на распределение голосов разметчиков, а не на одну сведённую метку. Тренеры hf-text-classification и hf-image-classification принимают параметр acquisition, который упорядочивает следующие объекты схемы с одной меткой по margin, энтропии, BALD или расстоянию core-set, как показывает руководство по модели в цикле. Оба тренера принимают также dp для обучения с DP-SGD через Opacus, и руководство по дифференциальной приватности проводит запуск с dp.

ТренерСхемыОбъектыУстановкаПредварительная меткаОценка на отложенных объектах
sklearn-textradio, select, likert, multiselectтекст, изображенияне нужна (для CLIP нужны [embeddings] и pillow)метка или меткиmacro-F1; micro-F1 для multiselect
hf-text-classificationчетыре схемы выше и soft_labelтекст[train-text]метка или метки; положения ползунка для soft_labelmacro-F1; micro-F1; согласие распределений для soft_label
setfitradio, select, likert, multiselectтекст[embeddings]метка или меткиmacro-F1; micro-F1 для multiselect
hf-image-classificationradio, select, likert, multiselectизображения[train-vision]метка или меткиmacro-F1; micro-F1 для multiselect

Фрагменты, связи и структура

Тренеры этой группы учатся на фрагментах со смещениями в символах, связях между фрагментами, ответах на узлах дерева диалога и интерлинеарных глоссах. hf-relation обучает один энкодер размечать фрагменты и классифицировать пары фрагментов. Предсказанная связь считается найденной, только если разметчик фрагментов нашёл также оба фрагмента связи с правильными границами. Когда каждый обучающий ответ схемы span_link является деревом зависимостей, hf-relation декодирует деревья и добавляет UAS и LAS к оценке. Запуск проходит те же шаги, что и руководство по первой модели, только с другим тренером и другой схемой.

ТренерСхемыОбъектыУстановкаПредварительная меткаОценка на отложенных объектах
hf-token-classificationspanтекст[train-text]фрагменты со смещениями в символахF1 по фрагментам
hf-relationspan_link, event_annotation, coreferenceтекст[train-text]фрагменты со связями, событиями или цепочками между фрагментамиF1 по связям, F1 по аргументам или CoNLL F1
hf-conversation-treetree_annotationдеревья диалогов[train-text]ответы на узлах и выбранный путьmacro-F1 по узлам
byt5-glossinterlinear_glossтекст[train-text]заполненная сетка глоссточность глосс морфем

LLM и модели вознаграждения

LLM-тренеры учатся на свободных текстовых ответах, предпочтениях, ранжированиях и исправленных трассах агентов. llm-sft и llm-dpo по умолчанию обучают адаптер LoRA, а lora: {quantize: 4bit} загружает базовую модель в 4 битах как QLoRA. reward-model обучает скалярную модель вознаграждения на парных ответах, ранжированиях и ответах best-worst, и каждое предсказание хранит вознаграждения по вариантам рядом с ответом схемы. prm-reward оценивает каждый шаг трассы агента как верный, нейтральный или неверный. Шаги за пределом max_length (по умолчанию 1 024 токена) не участвуют ни в обучении, ни в оценке. Предсказание trajectory_edit оценивается и сохраняется, но никогда не показывается как предварительная метка, и сервер отказывается запускаться, если схема trajectory_edit указана в writeback.schemas. Руководство по дообучению LLM охватывает SFT, DPO, модели вознаграждения, модели пошагового вознаграждения и QLoRA.

ТренерСхемыОбъектыУстановкаПредварительная меткаОценка на отложенных объектах
llm-sfttext (свободные текстовые ответы), trajectory_editтекст, трассы агентов[train-llm]сгенерированный ответ; для trajectory_edit нетtoken F1; closer_to_correction для trajectory_edit
llm-dpopairwise в режиме binary, trajectory_editтекст, трассы агентов[train-llm]выбранная карточка предпочтительного ответа; для trajectory_edit нетточность; closer_to_correction для trajectory_edit
reward-modelpairwise (binary и scale), ranking, bwsтекст[train-text]предпочтительная карточка, положение на шкале, порядок или лучший и худшийточность, точность направления, тау Кендалла или точность best-worst
prm-rewardprocess_rewardтрассы агентов[train-text]оценки шагов за кнопкой "AI pre-label steps" при ai_prelabel: truemacro-F1 по шагам

Детекция и сегментация изображений

Детекторы и сегментаторы учатся на фигурах, которые разметчики рисуют в схеме image_annotation, и большинство из них читает также схемы микроскопии, карт и спектрограмм. Детектор обучается на ограничивающей рамке каждой фигуры, поэтому исследование с полигонами или масками всё равно обучает детектор рамок. Сегментатор обучается на контурах, оставляя рамки в стороне, и предсказывает полигоны не более чем из 64 вершин, которые разметчик может править точка за точкой. cellpose сегментирует без классов, поэтому каждой предсказанной клетке достаётся значение параметра label, а если label не задан, самая частая метка схемы.

sam-finetune дообучает декодер масок Segment Anything, чтобы превращать рамку в контур, пока кодировщик изображений остаётся замороженным. Запуск sam-finetune обводит предварительные метки-рамки, которые записал обратно более ранний запуск детекции, поэтому обычный порядок такой: запуск детекции с writeback.include_unlabeled: true, затем запуск sam-finetune на той же схеме. На Mac torchvision-detect и torchvision-segment обучаются на процессоре, а не на Metal. Руководство по моделям для изображений проводит детекцию, сегментацию, слайды, микроскопию, карты, Cellpose и SAM.

ТренерСхемыОбъектыУстановкаПредварительная меткаОценка на отложенных объектах
torchvision-detectimage_annotation, microscopy, geo_annotation, spectrogram_annotationизображения, слайды, стеки OME, растры, записи[train-vision]редактируемые рамкиmap_50
ultralytics-detectimage_annotation, microscopy, geo_annotation, spectrogram_annotationизображения, слайды, стеки OME, растры, записиpip install ultralytics (AGPL-3.0)редактируемые рамкиmap_50
torchvision-segmentimage_annotation, microscopy, geo_annotation (контуры)изображения, слайды, стеки OME, растры[train-vision]полигоныmap_50
ultralytics-segmentimage_annotation, microscopy, geo_annotation (контуры)изображения, слайды, стеки OME, растрыpip install ultralytics (AGPL-3.0)полигоныmap_50
cellposeimage_annotation, microscopy (контуры)изображения, стеки OMEpip install cellposeполигоны с одной меткойmap_50
sam-finetuneimage_annotation (контуры)изображения[train-vision]полигоны по прежним предварительным меткам-рамкамmap_50 с рамками разметчиков в качестве подсказки

Тренеры для изображений читают локальные файлы внутри каталога задачи или media_directory. Удалённое изображение по http(s) не скачивается, а строка с удалённым или отсутствующим изображением исключается из запуска и предсказания не получает. Раздел Image items справочника upstream называет поля, из которых Potato читает путь к изображению.

Слайды, микроскопия, карты и спектрограммы

Тренеры детекции и сегментации уменьшают каждое изображение до нескольких сотен пикселей. Поэтому для схемы image_annotation, microscopy или geo_annotation Potato режет большое изображение на плитки при сборке пакета запуска. Нарезка по умолчанию включена для форматов слайдов вроде .svs и .ndpi и для изображений, у которых длинная сторона не меньше 4 096 пикселей. Плитки одного слайда всегда попадают в одну выборку, а предсказанные фигуры переносятся обратно на целое изображение в координатах, которые хранит просмотрщик deep-zoom. Таблица tiling перечисляет все ключи, а руководство по моделям для изображений задаёт размер плитки, перекрытие и разрешение для слайда.

ROI схемы microscopy обучают тренеров детекции и сегментации, а также cellpose. Каждый z-срез и момент времени с ROI отрисовывается с каналами и контрастом схемы по умолчанию, а предсказания возвращаются как ROI с z и t каждого ROI. Схема geo_annotation обучается на растровой подложке объекта, то есть на GeoTIFF или изображении с границами, а предсказания возвращаются как GeoJSON в EPSG:4326, который карта показывает как подсказки. У карты, подложка которой приходит с тайлового сервера, нет растра для обучения, и запуск исключает такие объекты с предупреждением. Схема spectrogram_annotation обучает torchvision-detect и ultralytics-detect на каждой записи, отрисованной как спектрограмма, а рамки возвращаются в секундах и герцах. Разделы Microscopy and maps и Spectrograms справочника upstream дают подробности отрисовки.

Документы и визуально-языковые модели

layoutlmv3 учится макету документа по словам на странице и их положению, а vlm-sft дообучает визуально-языковую модель на ответах об изображениях. Potato не запускает OCR, поэтому каждому объекту layoutlmv3 нужно поле words с текстом и рамкой каждого слова. Импорт PAGE XML в режиме regions заполняет words, а слова из текстового слоя PDF или другого инструмента OCR работают так же. vlm-sft по умолчанию обучает адаптер LoRA, а для настоящих контрольных точек нужен GPU. Запуск region_caption оценивается, но не публикуется, потому что области, которые описывает подпись, — это ответ разметчика. Руководство по моделям для изображений охватывает обоих тренеров, а VLM grounding охватывает схему grounding_eval.

ТренерСхемыОбъектыУстановкаПредварительная меткаОценка на отложенных объектах
layoutlmv3image_annotation на страницах с полем wordsизображения страниц[train-vision] (веса CC BY-NC-SA 4.0)рамки вокруг слов каждой областиmap_50
vlm-sfttext на объектах-изображениях, region_caption, grounding_eval, gui_trajectoryизображения, скриншоты[train-vision] и GPUтекстовый ответ, область привязки или её отсутствие, либо вердикт по каждому шагу GUI; для подписей нетtoken F1, точность при IoU 0,5 или macro-F1 по вердиктам

Аудио и речь

Аудиотренеры читают записи из локальных файлов, которые открывает soundfile, например WAV или FLAC, а объект, аудио которого задано URL, исключается. hf-audio-tagger размечает временные сегменты с метками в схеме audio_annotation. whisper-asr дообучает Whisper на репликах транскрипта, которые исправили разметчики, и по умолчанию записывает также копию модели CTranslate2 для potato transcripts --transcribe и faster-whisper. diarization дообучает речевой энкодер (по умолчанию WavLM), чтобы определять, кто и когда говорит. Имена дикторов локальны для каждой записи. Рамки на спектрограммах обучают детекторы из раздела Детекция и сегментация изображений. Руководство по моделям для аудио проводит Whisper, диаризацию, детекцию на спектрограммах и разметку аудио.

ТренерСхемыОбъектыУстановкаПредварительная меткаОценка на отложенных объектах
hf-audio-taggeraudio_annotationаудио[train-audio]редактируемые сегменты на волновой формеF1 по сегментам
whisper-asrspeech_transcript (исправленные реплики)аудио[train-audio]предложенные исправления в полях исправленийточность по словам (1 − WER)
diarizationtiered_annotation (ярус дикторов), audio_annotation (метки — дикторы)аудио[train-audio]реплики дикторовточность диаризации (1 − DER)

Объёмы, облака точек и видео

Тренеры для 3D и видео учатся на закрашенных объёмах, кубоидах в облаках точек и дорожках в видео. volume-unet обучает 3D U-Net на чистом PyTorch на масках, которые разметчики закрасили в объёмах КТ и МРТ, а для КТ полного размера на практике нужен GPU. external-3d запускает ваш собственный 3D-детектор через параметры train_command и predict_command и читает кубоиды обратно. Подходят и OpenPCDet, и MMDetection3D, и обоим нужны операторы CUDA, скомпилированные на GPU-хосте. video-track дообучает Faster R-CNN на кадрах, выбранных из размеченных дорожек, и связывает детекции между кадрами в дорожки. Руководство по объёмам, облакам точек и видео проводит всех трёх тренеров.

ТренерСхемыОбъектыУстановкаПредварительная меткаОценка на отложенных объектах
volume-unetvolume_annotation (закрашенные маски)объёмы NIfTI, серии DICOM[train-vision,volumes]маски по меткам на каждом аксиальном срезесредний Dice
external-3dspatial_annotation (кубоиды)облака точек, один скан на объектваш собственный детектор на хосте обучениярамки cuboid_3dmap_3d_50
video-trackvideo_annotation в режиме tracking или combinedвидео[train-vision] и opencv-pythonдорожки как рамки по ключевым кадрамIDF1

Наука

Научные тренеры учатся на химии, спектроскопии, физиологических сигналах и эпизодах роботов. rdkit-property отвечает на вопрос о молекуле по отпечатку Моргана и дескрипторам RDKit классификатором scikit-learn для выбора или регрессором для ползунка. peak-cnn предсказывает положения пиков на спектре и не предсказывает ни метки, ни отнесения пиков. signal-cnn размечает фиксированные эпохи или находит размеченные интервалы в EEG, ECG и других сигналах. episode-model предсказывает фазы, исход и кривую вознаграждения по рядам суставов и датчиков эпизода робота. Видео эпизода не читается. Пики, интервалы и ответы по эпизодам показываются как подсказки, которые разметчик проверяет, а не как сам ответ. Руководство по научным моделям проводит всех четырёх тренеров, а страницы схем для химических структур, спектров, временных рядов и эпизодов роботов описывают сторону разметки.

ТренерСхемыОбъектыУстановкаПредварительная меткаОценка на отложенных объектах
rdkit-propertyradio, select, likert, slider о молекулеполе отображения molecule или ответ chemical_structure[chemistry]ответ, ползунок округляется до своего шагаmacro-F1; точность для slider
peak-cnnpeak_pickingспектры (JCAMP-DX, mzML, CSV, встроенные)[train-vision]подсказки пиков с пометкой "model"F1 по пикам
signal-cnninterval_label (режим эпох или свободный)сигналы (EDF, BDF, WFDB, CSV, Parquet, встроенные)[train-vision]; [signals] для WFDB и Parquetпунктирные интервалы с пометкой "from the model"macro-F1 в режиме эпох; F1 по интервалам в свободном режиме
episode-modelepisode_annotation (фазы, исход, вознаграждение)эпизоды роботов (LeRobot, HDF5, манифесты эпизодов)[train-vision]фазы, исход и кривая вознаграждения на временной шкалеmacro-F1 по фазам

Модели решений

Модель решений возвращает вероятность для каждого варианта вопроса, и Potato использует модель решений как источник движка разметки или как модель разметки в режиме Solo Mode. Тренеры моделей решений подгоняют модель решений под метки исследования на схемах radio, select, likert и slider и задают каждый вопрос так, как его задаёт движок разметки. Схема slider задаётся как оценка с одним вариантом на положение, до 21 положения. decision-calibrate ничего не обучает. Тренер подбирает калибровку для вероятностей от Jev, OpenJev, laya-serve или Laya и записывает калибровку в calibration.json, чтобы источник движка её применял. decision-calibrate работает только на бэкенде local. laya-finetune дообучает Laya, а openjev-finetune дообучает модель OpenJev на 8 млрд параметров обучением LoRA из wev. В карточке модели OpenJev отмечено, что часть обучающих данных OpenJev предназначена только для исследований. Проверьте эти условия перед коммерческим использованием.

ТренерСхемыОбъектыУстановкаПредварительная меткаОценка на отложенных объектах
decision-calibrateradio, select, likert, sliderтекстне нужна; настроенная модель решенийоткалиброванный лучший вариантmacro-F1; точность для slider
laya-finetuneradio, select, likert, sliderтекст[decision]вариант, выбранный модельюmacro-F1; точность для slider
openjev-finetuneradio, select, likert, sliderтекстpip install wev-ai; GPU с примерно 16 ГБ свободной памятивариант, выбранный модельюmacro-F1; точность для slider

Мосты к моделям

Мосты к моделям используют модель, которая уже работает в другом месте, и ничего не обучают. Запуск моста отправляет отложенные объекты сервису и читает ответы обратно. С writeback.include_unlabeled: true запуск отправляет и неразмеченные объекты. Ответы затем получают оценку на отложенных объектах относительно ваших разметчиков, обратную запись и проверку так же, как ответы обученной модели. Мост никогда не принимает ключ API в конфигурации. Вместо этого параметр называет переменную окружения на сервере, в которой лежит ключ. label-studio-ml вызывает /predict бэкенда Label Studio ML и не отправляет события разметки в /webhook бэкенда. hf-inference и roboflow работают только на бэкенде local. У рамок от openai-vlm-boxes нет уверенности, потому что визуально-языковая модель не возвращает оценку. Руководство по своей модели настраивает каждый мост.

ТренерСхемыОбъектыУстановкаПредварительная меткаОценка на отложенных объектах
label-studio-mlradio, select, multiselect, span, image_annotationтекст, изображенияне нужна; работающий бэкенд Label Studio MLметки, фрагменты, рамки или полигоныглавная оценка схемы
openai-vlm-boxesimage_annotationизображенияне нужна; модель зрения за OpenAI-совместимым APIрамкиmap_50
hf-inferenceradio, select, multiselect, span, image_annotationтекст, изображенияне нужна; Hugging Face Inference Endpoint или бессерверная модельметки, фрагменты или рамкиглавная оценка схемы
roboflowimage_annotationизображенияне нужна; модель Roboflow и ключ APIрамки или полигоныmap_50
cvat-nuclioimage_annotationизображенияне нужна; бессерверная функция CVAT (Nuclio)рамки или полигоныmap_50

Дополнительные материалы