Проблема с навыками: хватит развертывать языковые модели с поддержкой зрения, используйте их с навыками — Мерве Ноян, Hugging Face
AAI Engineer
컴퓨터/소프트웨어창업/스타트업
스크립트
00:00:00Здравствуйте и добро пожаловать на доклад о «skill issue». На самом деле проблема больше не в навыках. К концу
00:00:22этого доклада вы сможете создавать многое с помощью моделей компьютерного зрения, если еще этого не делаете.
00:00:27Коротко обо мне: меня зовут Мерве. Я работаю с компьютерным зрением со времен LLaVA, а в последнее время занимаюсь агентами и локальными устройствами, потому что меня это увлекает. Я настолько люблю мультимодальные модели (VLM), что даже написала о них книгу. Но я больше не хочу, чтобы разработчики использовали VLM напрямую, я хочу, чтобы каждый разработчик начал
00:00:54создавать полноценные приложения компьютерного зрения от начала и до конца. Этот доклад даст вам отличную базу для этого. Частая ошибка разработчиков в том, что они пытаются использовать VLM абсолютно для всего, но вы никогда не получите режим реального времени. А под реальным временем я имею в виду, например, когда на тостере
00:01:18вы получаете 30-40 кадров в секунду, независимо от того, делаете ли вы классификацию изображений, сегментацию объектов или что-то еще.
00:01:28Кроме того, они не настолько надежны, как если бы вы обучили, например, RF-DETR, о котором Джозеф рассказывал в первом докладе.
00:01:39Он всегда превзойдет вашу мультимодальную модель, и сегодня я это докажу.
00:01:47Справа вы можете видеть, как я работаю с RF-DETR.
00:01:52И еще одна проблема: разработчики не читают лицензии. Каждый раз, когда я публикую что-то о детекции объектов, меня спрашивают про YOLO. YOLO — хорошая модель, но у нее, кажется, лицензия GPL 3.0.
00:02:07Готова поклясться, что есть разработчики, которые внедряют ее в продакшен, даже не подозревая,
00:02:12что за нее нужно платить. Поэтому сегодня я хочу, чтобы вы перешли на модели с лицензией Apache 2.0.
00:02:23Для этого я создала проект Vibe Vision. Меня вдохновил этот пост Мазияра.
00:02:30По сути, он дает модель SAM 3.1 в качестве инструмента для вызова модели Gemma 4, и это выглядит супервпечатляюще.
00:02:39И сегодня я собрала набор инструментов, с помощью которого вы можете делать то же самое, но с еще большим числом возможностей.
00:02:49То есть я как бы передаю свои знания. Во-первых, в этот набор входят мои любимые модели в качестве инструментов,
00:02:57чтобы вы могли предоставить их своему агенту, ведь ваш кодинг-агент пока слабо разбирается в компьютерном зрении.
00:03:03И когда я выбираю модель, я всегда проверяю
00:03:09следующие вещи: во-первых, лицензия — это главный приоритет, она должна быть Apache 2.0, MIT или
00:03:16другой некоммерческой. Во-вторых, производительность должна быть на высоте в зависимости от размера или
00:03:24архитектурных решений, поэтому я сверяюсь с бенчмарками, когда выходит модель с какой-нибудь конференции по CV.
00:03:31Ну и в-третьих, конечно же, «вайб». У этого набора инструментов есть вторая часть, и она больше похожа на
00:03:41часть обучения по «вайбу» — это самое интересное. Так что начнем с нее. Я поставила себя на место
00:03:47разработчика, который хочет создать CV-приложение. Если у меня есть размеченные изображения — отлично, я могу просто обучить модель
00:03:55или дать своему CV-агенту туториалы, чтобы он это сделал, ведь вся информация есть в открытом доступе —
00:04:02мы делаем для этого трансформеры. Но если у меня есть только картинки, мне нужно разметить их, а затем оценить
00:04:11качество аннотаций и только потом обучать модель. Но как сделать это в больших масштабах? На самом деле вы можете использовать
00:04:17VLM в качестве разметителя, а еще одну VLM — в качестве судьи, и затем обучить то, что вам нужно. Но
00:04:24как выглядит этот пайплайн? Я собрала его, и он включает в себя VLM для разметки, VLM-судью
00:04:35и этап обучения. Это долгоиграющая задача для кодинг-агентов, и здесь есть обширная инфраструктурная поддержка:
00:04:42вы можете запускать это локально или удаленно. По сути, всё работает на инфраструктуре Hugging
00:04:48Face, у нас есть Jobs, позволяющие выполнять разовую пакетную обработку или обучение.
00:04:54Также есть серверлесс-система маршрутизации Inference Providers, где можно подключать разных
00:05:00провайдеров, и бакеты для сброса промежуточных данных прямо поверх репозиториев датасетов,
00:05:07репозиториев моделей и так далее. Что же делает эту работу возможной? Во-первых, моя любимая модель RF-DETR и RF-DETR
00:05:17Segmentation — сейчас я как раз работаю над сегментацией. У нас появились более продвинутые агенты для долгоиграющих
00:05:24задач, ведь за процессом разметки, обучения и т. д. нужно постоянно присматривать.
00:05:32А более компактные, но мощные VLM позволяют разметить данные очень дешево. К тому же
00:05:40в библиотеке transformers прошла проведена проведена оптимизация v5, так что с вижн-моделями она работает еще лучше.
00:05:47И вот как выглядит этот пайплайн: сначала я размечаю датасет — беру набор изображений,
00:05:54абсолютно любой датасет с картинками, и размечаю его с помощью Qwen 2.5-VL 7B. Затем я передаю
00:06:02размеченный датасет двум судьям. Первый — Gemma 3 4B, это судья примерно на 8B параметров, а второй —
00:06:10LFM 2.5 VL объемом почти 2B, он относительно меньше. Я изучила исследования, и оказалось, что лучше
00:06:18использовать ансамбль из небольших судей. Затем я объединяю их вердикты. Я также изучила
00:06:26работы на эту тему: большинство просит VLM или LLM выставить какую-то оценку, но эти оценки
00:06:34совершенно не работают, особенно если ваши модели-судьи разного размера. Затем я отправляю
00:06:40данные на обучение RF-DETR Medium или Large. Я пообщалась с ребятами из Roboflow, и они посоветовали использовать
00:06:47именно ее. И это реально работает, я скоро покажу! Но как именно? Вы
00:06:55берете репозиторий и просто спрашиваете его: «Можешь обучить модель на этом датасете
00:07:04из Hub?» И процесс запускается. Если у датасета уже есть метки, вы можете сразу
00:07:11переходить к обучению. Если же меток нет, вы можете сначала начать аннотирование. И ключевая
00:07:19фишка здесь в том, что я передаю судье изображения с уже наложенными ограничивающими рамками. Qwen технически выводит
00:07:27рамки в виде токенов, но я не передаю их текстом, а просто накладываю рамки прямо на изображение
00:07:33вместе с метками и их описаниями и спрашиваю: «Если у этого описания есть рамка
00:07:40на картинке, то скажи, одобряешь ли ты ее или нет?» А затем я объединяю вердикты судей
00:07:49по принципу минимального согласия, а не полного консенсуса (чуть позже я объясню, почему). И эти
00:07:56описания меток также генерируются кодинг-агентами, а вы как человек просто утверждаете их.
00:08:03Все модели, которые я использовала в этом пайплайне, имеют лицензию Apache 2.0, за исключением
00:08:10модели LFM, у которой особая лицензия: если ваша выручка превышает определенный порог,
00:08:19придется платить. Но вы можете спокойно использовать ее. Что касается кодинг-агентов,
00:08:26контролирующих пайплайн, изначально я собрала всё на Opus 4.8, а затем запустила процесс на GLM 5.2,
00:08:35которая отлично справляется с долгими задачами. А по поводу инфраструктуры: я работаю в Hugging
00:08:42Face, у меня куча вычислительных кредитов, и я очень нетерпеливый человек, так что я использую мощное
00:08:50оборудование для экспериментов. Но я посчитала затраты: прогон всего пайплайна для обучения моделей
00:08:58обходится всего в 3–4 доллара, что просто невероятно! Изначально для Qwen 2.5 я использовала
00:09:05серверлесс, потому что это удобно и очень дешево. Я взяла DeepInfra — это очень,
00:09:12очень дешевый вариант. Если делать через Together, то лучше запускать пакетную обработку в Jobs.
00:09:19Для этапа оценки я использовала Hugging Face Jobs, это вышло дешевле. А для обучения снова взяла L4,
00:09:27хотя модель очень маленькая — RF-DETR крошечная, вы можете использовать что-то другое или вообще
00:09:33запустить локально. Я просто нетерпелива и хотела большой размер батча. Я протестировала всё на двух задачах:
00:09:42первая — распознавание дорожных знаков, вторая — парсинг документов. В случае с дорожными знаками
00:09:48у меня уже была эталонная разметка, поэтому я смогла сравнить результаты работы пайплайна с ней,
00:09:54чтобы проверить эффективность. С парсингом документов так сделать не получилось, потому что я использовала датасет DocVQA,
00:10:02а задача заключалась в извлечении изображений, таблиц, подписей и прочего.
00:10:08Это совершенно новая задача, и мне хотелось узнать, сможет ли RF-DETR ей обучиться. Первые результаты: это работает, ура!
00:10:19У нас хорошая средняя точность mAP@50. Я сравниваю обученную модель с тестовым набором:
00:10:29я беру тестовый набор, прогоняю через Qwen, а затем сравниваю псевдоразметку
00:10:35и реальную эталонную разметку этого тестового набора. Есть небольшая разница, но это ожидаемо,
00:10:42поскольку модель училась у Qwen. К тому же показатель ROC-AUC весьма достойный для такого
00:10:50сценария. Что касается парсинга документов, модель отлично обобщает данные, что меня просто поражает.
00:10:58Здесь вы видите результат работы обученной модели: она распознала подпись, хотя при разметке Qwen
00:11:06на этом тестовом наборе эта подпись была пропущена. Так что модель действительно прекрасно обобщает.
00:11:12И этим мы обязаны тому, насколько хороша архитектура RF-DETR сама по себе. Здесь вы также можете видеть,
00:11:21как она захватывает изображения — с точностью один в один. В процессе разработки я
00:11:30заметила, что совсем не умею работать с CV-агентами, так что у меня накопился ряд наблюдений.
00:11:37Во-первых, наблюдается сильный дисбаланс в оценках судей. В зависимости от задачи LFM склонна браковать
00:11:44очень много вариантов. Вот почему я не смогла опираться на полный консенсус: если бы я удалила всё,
00:11:50с чем согласились и LFM, и Gemma, у меня осталось бы крайне мало примеров, а это привело бы
00:11:58к очень плохой обобщающей способности. Поэтому я решила: если хотя бы одна из моделей говорит «да», я оставляю
00:12:04этот пример. И это сработало отлично! Но если у вас большой датасет и вам важна полнота (recall),
00:12:09советую брать консенсус или просто следить за результатами. При парсинге документов разница была не столь велика.
00:12:17Во-вторых, генерация промптов — довольно сложная вещь. Это единственная часть, где вам как человеку
00:12:28нужно дать утверждение. Модель генерирует промпты для судьи, а вы
00:12:35проверяете и говорите: «Окей, утверждаю». Вам все равно придется немного просмотреть данные —
00:12:42от этого никуда не деться. В-третьих (и это самое интересное), ваш
00:12:52кодинг-агент, насколько бы хорош он ни был (даже если взять Opus 4.8, который считается отличным
00:12:59инженером), совершенно не разбирается в компьютерном зрении и лишен элементарного здравого смысла.
00:13:06К примеру, он делал горизонтальное отражение для дорожных знаков или добавлял цветовой шум
00:13:14для светофоров, что гарантированно испортит и сломает ваши датасеты. Позже я это исправила,
00:13:21и теперь вы можете просто указать, нужно ли делать аугментацию, а агент вам с этим поможет.
00:13:30И наконец, вторая часть этого инструментария — мои любимые модели в качестве инструментов.
00:13:35В этом репозитории собраны мои любимые модели, от оценки глубины до сегментации без обучения.
00:13:42И это частично работает на бенчмарках Hugging Face, которые мы запустили пару месяцев назад.
00:13:48По сути, у нас есть лидерборд бенчмарков, и там представлены
00:13:55открытые модели и результаты их оценки, так что можно сравнивать модели разных размеров.
00:14:02Я поддерживаю его в актуальном состоянии, но также этим занимаюсь я, так как люблю читать
00:14:13статьи с конференций по компьютерному зрению. Хочу отметить эту модель, потому что
00:14:20немногие о ней знают. Некоторые модели не могут делать открытую сегментацию по ссылке.
00:14:26Например, вы можете сказать: «отсегментируй эту красную машину», и она сделает, но если сказать:
00:14:33«красную машину рядом с оранжевой, которая рядом с синей», она справится. A Falcon Perception —
00:14:39модель от TII — на самом деле может это сделать, имея всего 600 млн параметров и лицензию Apache 2.0.
00:14:47Так что она выполняет для меня zero-shot сегментацию.
00:14:51И это не исчерпывающий список: для оценки поз у нас есть семейство Sapiens
00:14:58для задач, ориентированных на человека, где нужно определять ключевые точки,
00:15:04оценивать глубину и так далее. Для zero-shot детекции у меня есть Moondream 3 и MM-Grounding-DINO,
00:15:13модель с лицензией Apache 2.0. Она тоже очень хороша и очень мала по сравнению с Moondream.
00:15:20Я предлагаю несколько моделей разных размеров в зависимости от вашего железа, чтобы вы могли выбрать.
00:15:25Если нужна скорость, выбирайте легкую альтернативу. Для OCR я взяла варианты из бенчмарка olmOCR
00:15:34разных размеров, а для оценки глубины я обнаружила, что у крупной модели
00:15:40некоммерческая лицензия, а у остальных — коммерческая, так что вы можете их использовать.
00:15:45У той модели лицензия Apache 2.0, и она идет с поддержкой Supervision и трекера.
00:15:51Это библиотеки от Roboflow, которые позволяют отслеживать экземпляры, ограничивающие рамки и т. д.
00:16:00И о планах на будущее. Во-первых, я слышу, как вы говорите: «Это точно не сработает
00:16:06для промышленных сценариев», потому что у них другие особенности, например, трудноописуемые
00:16:13детали, и естественный язык тут не лучший подход. В этом смысле детекция по изображению
00:16:21могла бы помочь. Если вы не знаете о детекции по изображению: у вас есть пример
00:16:27изображения, например, Хагги, и вы просите модель: «Найди этот объект на этом изображении
00:16:36среди всех картинок». Мне кажется, это может помочь в промышленных задачах, где
00:16:41нельзя описать объект естественным языком. Также я хочу попробовать
00:16:52объединение на основе Intersection over Union. То есть у вас есть размеченные рамки и рамки судьи:
00:17:00вы просите модель-судью сгенерировать рамку, а затем берете Intersection over Union вместо отклонения или
00:17:06принятия. Сейчас я работаю над поддержкой сегментации. Спасибо за внимание! Если
00:17:14хотите узнать больше: у меня есть небольшой репозиторий по компьютерному зрению, там есть всё
00:17:20о дообучении моделей, квантовании, мультимодальных моделях, всё о зрении, а также
00:17:27руководства по задачам Transformers, мы обновляем их, там много туториалов. Еще у нас есть Hugging Face Skills,
00:17:36где есть навыки по компьютерному зрению и инфраструктурные навыки, чтобы запускать
00:17:43обучение в один промпт. Вот мой профиль в Twitter, а этот репозиторий на GitHub:
00:17:51mervenoyan/vision-intern. Думаю, у меня есть время на один вопрос, большое спасибо!
00:18:04Да, он спрашивает, планирую ли я обучать сами VLM, что-то вроде самосовершенствования.
00:18:16Это было бы здорово, но сначала я хочу решить проблему разработчиков, которые обучают
00:18:22узкоспециализированные модели и разворачивают их на периферийных устройствах. А потом, возможно, и это. Еще вопрос?
00:18:34Не совсем, не думаю. Я просто использовала, потому что агенту для написания кода нужен
00:18:44контекст, и я хотела, чтобы он сгенерировал промпт. Может, еще один? Хорошо, всем огромное спасибо!
00:19:04Итак,
커뮤니티 글
아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!
이 영상에 대해 글쓰기