Fine-tuning видео-VLM на домене – видеонаблюдение, телемедицина, e-learning

Автор: Николай СапуновОбновлено: август 202626 мин чтения
Содержание статьи +

Кратко

Fine-tuning (дообучение) – это когда вы берёте уже выбранную открытую vision-language-модель и продолжаете её обучение на собственном размеченном видео, чтобы она заговорила на языке вашего домена: словарём оператора видеонаблюдения, форматом документов клиники, критериями оценки в вашем курсе. Целиком модель почти никогда не переобучают: метод под названием LoRA замораживает оригинал и обучает крошечную надстройку – это снижает требования к памяти GPU с сотен гигабайт до единиц и укладывается в часы, а не недели. Сложное здесь не сам прогон обучения, а сбор нескольких сотен или тысяч правильных примеров, удержание части из них для измерения, действительно ли модель стала лучше, и проверка, что она не разучилась делать всё остальное. Этот урок показывает владельцу продукта, когда дообучение оправдано, когда дешевле обойтись промптом или поиском, и сколько работа реально стоит в видеонаблюдении, телемедицине и e-learning.

Почему это важно

Вы прочитали урок про открытый фронтир и выбрали открытую модель – Qwen3-VL, InternVL или Pixtral – чтобы запустить её на своём железе. На обычном видео она работает. Но стоит навести её на ваши записи, и она спотыкается: не знает, что «проход за чужой спиной» – это два человека через одну дверь по одному пропуску, пишет заметки о консультации не в той форме, что нужна вашей клинике, не отличает завершённое лабораторное задание от брошенного. Fine-tuning – то, чем вы закрываете этот разрыв, и это самый недопонятый шаг в выпуске видео-ИИ: половина команд хватается за него там, где хватило бы хорошего промпта, а другая половина избегает его там, где только он бы и сработал. Урок написан для продакт-менеджера, основателя или операционного руководителя, которому нужно решить, финансировать ли проект дообучения, и понимать компромиссы достаточно, чтобы оспорить как излишне рьяного, так и излишне осторожного инженера. Предполагается, что вы прочли урок про открытый фронтир; если «веса», «открытая модель» и «GPU» – новые для вас слова, сначала прочтите его.

Что такое fine-tuning на самом деле

Начнём со слова, потому что это точная метафора. Радиоприёмник уже собран и в основном работает; настройка – небольшая финальная подкрутка, которая чётко ловит одну станцию. Дообучение модели – то же самое: модель уже умеет видеть и писать – это знание пришло из исходного обучения на миллиардах изображений и слов, – а вы делаете маленькую финальную подкрутку, чтобы она поймала именно ваш домен.

Механически fine-tuning – это продолжение обучения модели, но на гораздо меньшем, отобранном вручную наборе примеров, похожих на ту задачу, которая вам реально нужна. Скачанная модель – это огромная таблица чисел, называемых весами, в которой закодировано всё, чему она научилась. Обучение сдвигает эти числа; дообучение сдвигает их ещё чуть-чуть, в сторону ваших примеров. Покажите ей тысячу клипов видеонаблюдения, каждый в паре с тем самым текстом тревоги, которого ждут ваши операторы, – и она постепенно перейдёт от обобщённых описаний к вашим тревогам.

Вот различие, на котором спотыкаются все. Fine-tuning меняет поведение, словарь и формат вывода модели – как она отвечает. Это плохой способ научить модель новым фактам, которые часто меняются, например сегодняшнему графику дежурств или политике этой недели. Для фактов нужен другой инструмент – поиск (его разбирает урок про video RAG), и эту границу мы проводим резко ниже. Версия в одно предложение: дообучайте, чтобы изменить, как модель говорит; используйте поиск, чтобы изменить, что она знает.

Рисунок 1. Fine-tuning – это маленькая финальная подстройка модели, которая уже работает. Вы не строите модель – вы наводите готовую на свой домен.

Решение, которое идёт первым – промпт, поиск или fine-tuning

Прежде чем потратить хоть копейку на дообучение, нужно исключить два более дешёвых инструмента, потому что они решают большинство задач, а fine-tuning – только часть. Дисциплина, которая экономит командам больше всего денег, – пробовать их по порядку: сначала промпт, затем поиск, и только когда оба не справились – браться за дообучение.

Первый инструмент – prompt engineering (инженерия промптов): просто написать инструкции получше и показать пару примеров прямо внутри запроса, безо всякого обучения. Если модель отвечает верно, когда вы внятно описали задачу и вставили три хороших примера, – вы закончили. Это бесплатно, занимает полдня и должно пробоваться первым. Многие задачи «нам нужно дообучение» испаряются, стоит кому-то написать нормальный промпт.

Второй инструмент – retrieval-augmented generation, или RAG: вы держите поисковое хранилище своих документов или прошлых записей, и в момент вопроса достаёте релевантные куски и подаёте их модели вместе с вопросом. RAG – правильный инструмент, когда проблема в недостающем знании, которое меняется: кто из сотрудников на смене, что говорит текущая политика эскалации, что произошло в записи прошлого вторника. Поисковое хранилище можно обновить за секунды, добавив документ; дообученную модель без переобучения не обновить. Именно поэтому факты – за RAG, а не за дообучением.

К fine-tuning вы обращаетесь только тогда, когда разрыв – это поведение, которое промпт не чинит: модели нужен специализированный словарь, которому её не учили, устойчивый формат вывода, которого не добиться никакими инструкциями, визуальное суждение, принятое в вашем домене и не покрытое общим обучением, либо вы зовёте её так часто, что вшить поведение дешевле, чем каждый раз слать длинный промпт. На практике сильнейшие системы сочетают все три – дообученная модель, которая следует хорошему промпту и тянет живые факты из поиска, – и отраслевое сравнение 2026 года показало, что связка поиска с дообучением подняла точность более чем на одиннадцать процентных пунктов против каждого по отдельности.

Рисунок 2. Сначала пробуйте дешёвые инструменты. Fine-tuning – правильный ответ для поведения и формата, а не для фактов, и редко то, что стоит пробовать первым.

Как обучение происходит на самом деле – Full, LoRA и QLoRA

Когда вы решили дообучать, есть три способа это сделать, и выбор в основном про то, сколько памяти GPU вы готовы оплатить. Понимание разницы – это то, что позволяет возразить, когда инженер называет цифру, звучащую слишком большой.

Первый способ – полное дообучение (full fine-tuning): обучение подстраивает каждое из миллиардов чисел модели. Это даёт модели максимум свободы измениться, но жестоко дорого – нужно столько памяти GPU, чтобы вместить всю модель плюс несколько её рабочих копий во время обучения. У него есть и опасный побочный эффект, который мы разберём ниже: раз вы двигаете всё, модель может забыть общие навыки.

Второй способ, и тот, что в 2026 году использует почти каждая команда, – LoRA, сокращение от Low-Rank Adaptation. Вместо того чтобы менять числа модели, LoRA замораживает их все и добавляет рядом небольшой набор совершенно новых обучаемых чисел – как тонкая прозрачная плёнка поверх готовой карты. Обучение подстраивает только плёнку; оригинальная карта под ней не тронута. Выигрыш огромен: команда, придумавшая LoRA, сообщила, что метод снижает число обучаемых значений до десяти тысяч раз и сокращает требуемую память GPU примерно втрое по сравнению с полным дообучением – при сопоставимом качестве. А поскольку оригинал заморожен, LoRA ещё и забывает куда меньше.

Третий способ – QLoRA, квантованная LoRA. Она делает всё то же, что LoRA, но сначала сжимает замороженную оригинальную модель до меньшего, менее точного представления (это сжатие называют квантованием), чтобы во время обучения она занимала меньше памяти. Результат – самый дешёвый вариант из всех: исследователи, предложившие QLoRA, показали, что ею можно дообучить модель на 65 миллиардов параметров на одной потребительской видеокарте – такой, что есть у серьёзного энтузиаста, – то, что иначе потребовало бы небольшого сервера. Плата – лёгкая потеря качества от сжатия, обычно достаточно малая, чтобы ею пренебречь.

Разница в памяти не абстрактна, так что поставим реальные цифры. По опубликованной таблице требований к железу из LLaMA-Factory, популярного открытого набора инструментов для дообучения, для модели на 7 миллиардов параметров:

Полное дообучение (16-бит) : около 120 ГБ памяти GPU
Полное дообучение (8-бит)  : около  60 ГБ
LoRA (16-бит)              : около  16 ГБ
QLoRA (4-бит)              : около   6 ГБ

Прочтите эти четыре числа – и вся экономика становится ясной. Полное дообучение видеомодели среднего размера требует порядка 120 гигабайт – больше, чем самый крупный одиночный GPU в аренде, так что нужно несколько чипов вместе. LoRA опускает ту же модель примерно до 16 гигабайт, что свободно влезает на один массовый дата-центровый GPU. QLoRA ужимает её до примерно 6 гигабайт – это влезает на топовую десктопную карту класса ноутбука. Это разница между проектом с мульти-GPU-сервером и вечером на одной машине – и именно поэтому «нам нужно дообучение» перестало быть пугающей фразой примерно с 2024 года.

МетодЧто обучаетПамять GPU (модель 7B)Риск забыванияБерите, когда…
Полное дообучениеКаждый вес модели~120 ГБ (16-бит)ВысокийДанных много, а домен очень далёк от общего видео
LoRAМалую обучаемую надстройку; оригинал заморожен~16 ГБНизкийПо умолчанию почти для любого доменного видеопроекта
QLoRALoRA поверх сжатой модели~6 ГБНизкийЖелеза в обрез или модель большая, а GPU один

Цифры памяти – оценки из таблицы железа LLaMA-Factory для модели на 7 миллиардов параметров; масштабируются примерно с размером модели. Считайте их ориентиром, а не сметой – ваш batch size, длина видео и длина последовательности их двигают.

Одна оговорка, которая ловит именно видео-команды: дообучая vision-language-модель, иногда хочется подстроить ту часть, что читает изображения, а не только ту, что пишет текст. Несколько наборов инструментов предупреждают, что самое сильное сжатие (4-бит) нельзя сочетать с обучением этой «читающей изображения» части – придётся взять настройку полегче, а она стоит больше памяти. Мелкий технический момент, но именно такой, что превращает оценку «6 ГБ» в реальность «16 ГБ»; поэтому спросите инженера, какие части модели план на самом деле обучает.

Часть, которую никто не закладывает в бюджет – сбор датасета

Вот правда, которую туториалы прячут: прогон обучения – это лёгкая, дешёвая, быстрая часть. Дорогая часть – данные. Датасет для дообучения на видео – это набор примеров, каждый из которых – фрагмент записи в паре с тем выводом, который вы хотите от модели: правильная тревога, правильная заметка, правильная метка. Модель учится по примерам, поэтому каждый пример должен быть верным – модель добросовестно выучит и ваши ошибки.

Сколько нужно примеров? Меньше, чем боятся. Чтобы научить устойчивому формату вывода или скромному словарю, часто помогают несколько сотен хорошо отобранных примеров; для по-настоящему нового визуального суждения вы обычно в нижних тысячах. Больше – не автоматически лучше: тысяча чистых, разнообразных, верно размеченных примеров всякий раз бьёт десять тысяч небрежных. Работа – в качестве: клипы, покрывающие реальный диапазон ситуаций, метки, согласованные между тремя разными людьми, которые их писали, и никаких случайных «лазеек», на которых модель могла бы сжульничать (если каждый клип «нарушитель» снят ночью, модель выучит «ночь», а не «нарушитель»).

Главное – разделите примеры на две стопки до обучения. Бо́льшая стопка, обучающая выборка (training set), – то, на чём модель учится. Меньшая, отложенная тестовая выборка (held-out test set) – может, десять-двадцать процентов, никогда не показываемая во время обучения, – это то, чем вы измеряете, действительно ли дообучение помогло. Без отложенной выборки вы летите вслепую: модель может блестяще выглядеть на примерах, которые запомнила, и проваливаться на всём новом, а вы и не узнаете. Именно эта дисциплина – отложить данные, измерять на них – отделяет команды, выпускающие работающие дообученные модели, от команд, выпускающих уверенно звучащие сломанные.

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

1 000 клипов на разметку
÷ 20 клипов в час у обученного аннотатора
= 50 часов работы по разметке

Плюс отложенная тестовая выборка: ещё 200 клипов = 10 часов
Плюс один проход ревью на согласованность меток = ~15 часов
≈ 75 человеко-часов до единственного прогона обучения

Сам прогон обучения на одном GPU с LoRA может занять три-шесть часов и стоить десять-тридцать долларов в вычислениях. Семьдесят пять часов человеческой разметки – вот реальный проект. Любой план, который относится к данным как к сноске, а к GPU как к главному событию, держит бюджет вверх ногами.

Катастрофическое забывание – режим отказа, за которым следят

Есть один режим отказа, специфичный для дообучения, и его стоит уметь назвать, потому что он одновременно частый и невидимый, если вы его не тестируете. У него драматичное имя: катастрофическое забывание (catastrophic forgetting). Это когда, пока модель училась вашему домену, она тихо потеряла часть общей способности – теперь она пишет идеальные тревоги видеонаблюдения, но больше не может ответить на простой вопрос об обычной сцене, потому что обучение увело её числа так далеко к вашим примерам, что старые навыки вымылись.

Причина – слишком агрессивное обучение: слишком много проходов по одному и тому же маленькому датасету (каждый полный проход называют эпохой) или полное дообучение, двигающее все числа разом. Исследователи показали, что урон может проявиться уже после одной эпохи на маленьком датасете, если обучать слишком большую часть модели. Отчасти именно поэтому LoRA – выбор по умолчанию: раз она замораживает оригинал и обучает лишь маленькую надстройку, общие навыки под ней выживают, и забывание куда мягче.

Защита – снова отложенная тестовая выборка, использованная вторым способом. До дообучения прогоните оригинальную модель на горстке общих задач и запишите оценки. После дообучения прогоните те же общие задачи снова. Если общие оценки рухнули, а доменные выросли – вы переобучили: уменьшите число эпох, возьмите LoRA вместо полного дообучения или подмешайте немного общих примеров обратно в обучающие данные. Ошибка – никогда не заметить, выпустить модель, которая блистает на демо и затем разочаровывает на длинном хвосте реальных входов.

Три домена, три разные задачи

Та же машинерия служит очень разным целям в зависимости от вертикали, и различия поучительны, потому что они меняют само определение «хорошего датасета».

В видеонаблюдении дообучение учит модель словарю вашего объекта и вашему формату тревог. Общая модель скажет «два человека проходят через дверь»; дообученная скажет «ПРОХОД ЗА ЧУЖОЙ СПИНОЙ – два человека, событие одного пропуска, Дверь 14, 02:14», потому что вы показали ей несколько сотен клипов, размеченных именно так. Вызов с датасетом здесь – редкие события: интересные клипы (настоящее проникновение) – крошечная доля записей, поэтому вы намеренно увеличиваете их долю, а не кормите модель реалистичным потоком, на 99,9% состоящим из пустого коридора. Вторая причина дообучать в наблюдении – резидентность: эти записи обычно не могут покинуть серверы заказчика, так что аренда закрытого API отпадает, а открытая модель, дообученная on-premises, – единственный соответствующий требованиям путь, что напрямую связано с разбором «строить или покупать» из урока про открытый фронтир.

В телемедицине цель обычно – формат и терминология, а не новое зрение. Клиницисту нужно, чтобы итог консультации от модели ложился ровно в ту структуру, которой требуют его записи – жалоба, анамнез, осмотр, план, – правильными клиническими терминами, всякий раз, без абзаца инструкций в промпте на каждый вызов. Дообучение на нескольких сотнях пар «консультация – заметка» вшивает эту структуру. Вызов с датасетом – приватность и корректность: каждый обучающий пример – чувствительные данные пациента, с которыми нужно обращаться по применимым правилам охраны медицинской тайны, обезличивать, где требуется, и проверять клиницистом, потому что уверенно неверная медицинская заметка хуже, чем её отсутствие. Действует та же логика резидентности, что и в наблюдении, – поэтому работа идёт на self-hosted открытых моделях.

В e-learning дообучение учит визуальному суждению, которого у общей модели нет: действительно ли студент завершил лабораторную работу, показанную в этой записи экрана, и где он застрял? Общая модель описывает экран; дообученная применяет ваши критерии. Вызов с датасетом – субъективность: два проверяющих могут разойтись в том, что считать «застрял», – поэтому проход ревью, который делает метки согласованными, важен здесь больше, чем где-либо, и ясные критерии, написанные до начала разметки, – половина дела.

Инструменты, чьи названия вы услышите

Вам не нужно ими управлять, но вы услышите их на планёрках, и умение распознать отличает обоснованный план от размахивания руками. Доминирующие открытые наборы инструментов в 2026 году – LLaMA-Factory (широкий, дружелюбный к новичку фреймворк с no-code веб-интерфейсом, под лицензией Apache 2.0, поддерживает Qwen3-VL, Qwen2.5-VL, InternVL и LLaVA «из коробки»), ms-swift от сообщества ModelScope (поддерживает свыше трёхсот мультимодальных моделей, включая дообучение на видео) и Unsloth (специализируется на том, чтобы уместить обучение в минимально возможную память и время). Командам, уже живущим в экосистеме Hugging Face, эталонный путь – её библиотека TRL. Все они поддерживают LoRA, QLoRA и полное дообучение; выбор между ними – про привычку команды и предпочтение интерфейса, а не про возможности. Если инженер не может сказать, какой из них он возьмёт и почему, план ещё не готов.

Где здесь Фора Софт

Мы делаем доменное дообучение внутри видеопродуктов, которые строим, и схема – ровно та, что описывает эта статья. В видеонаблюдении и телемедицине, где записи юридически не могут покинуть серверы заказчика, мы дообучаем открытую модель on-premises, чтобы данные никуда не двигались, и тратим бо́льшую часть проекта на датасет – разметку, ревью на согласованность и отложенную тестовую выборку, – а не на прогон обучения. В e-learning и OTT, где функции работают на высоком объёме, мы дообучаем, чтобы вшить поведение, а не слать длинный промпт на каждый вызов, потому что в масштабе это и быстрее, и дешевле. Суждение, которое мы привносим, – то, чему учит этот урок: сначала исключить промпт и поиск, по умолчанию брать LoRA, честно закладывать часы человеческой разметки и всегда измерять на данных, которых модель не видела, – включая проверку, что она не забыла общие навыки.

Ключевые выводы

  • Fine-tuning меняет, как модель отвечает – словарь, формат, суждение, – а не факты, которые она знает.
  • Сначала промпт, потом поиск; дообучайте только ради поведения, которое промпт не чинит.
  • LoRA – выбор по умолчанию: замораживает оригинал и обучает малую надстройку, экономя память и забывание.
  • Реальная стоимость – датасет, а не прогон обучения; честно закладывайте часы человеческой разметки.
  • Всегда откладывайте тестовую выборку; измеряйте доменный прирост и проверяйте, что общие навыки целы.
  • Видеонаблюдение, телемедицина и e-learning дообучают под разные задачи – «хорошие данные» в каждом разные.

Что читать дальше

Строите такую систему?

Подберём параметры кодирования под ваш контент и посчитаем стоимость доставки до старта разработки.