Pull to refresh

200 000+ снимков мусора: что мы узнали о датасетах

Level of difficultyEasy
Reading time11 min
Views1.4K

В нашей работе хватает безумных задач. Мы создали первого в России цифрового PR-менеджера, разрабатывали виртуальную примерочную и делали много чего еще, о чем не всегда можно рассказать. Но когда мы взялись за создание ИИ-сортировщика мусора MARQUS, поняли — будет совсем жестко.

Не так давно мы создали систему сортировки ТКО (Твердых коммунальных отходов) MARQUS, которая делит отходы на бумагу, металл, пластик, стекло и т.д. Система использует искусственный интеллект и специальные сенсоры, чтобы распознавать различные типы отходов прямо на конвейере и направлять их в соответствующие секции для переработки.

В процессе разработки MARQUS мы столкнулись с задачей — найти или собрать подходящие датасеты, так как без них эффективность нейронной сети резко снижается, если вообще приближается к нулю.

Мы перепробовали множество подходов, пересмотрели доступные датасеты с готовой разметкой и потратили достаточное количество времени и денег, чтобы честно признаться — на обучении нейронок сэкономить не получится, но обо всем по порядку.

Датасеты: зачем они нужны и как их создают

Датасет — это структурированная база размеченных данных — массив, необходимый для обучения нейронных сетей. Размеченные данные — это информация, к которой уже прикреплены правильные ответы. Например, к фотографии пластиковой бутылки прикреплена подпись «пластик PET».

Его можно представить в виде большой таблицы, где в одном столбце находятся примеры (фотографии, тексты, звуки), а в другом — правильные ответы к ним.

Вот как выглядит простой пример такой таблицы для распознавания материалов:

Условно, если хотите научить ИИ определять форму или тип объекта, работа идет по следующем алгоритму:

  1. Собираете большое количество фотографий с объектом, который хотите научить распознавать.

  2. Собираете много фотографий без этого объекта или с другими, чтобы у нейронной сети был пример, что не является нужным объектом.

  3. Далее — выбираем  фотографии с комбинациями объектов, чтобы улучшить обучение.

  4. Каждую фотографию подписываете (размечаете), то есть указываете, что на ней изображено.

Так мы получим датасет, на котором нейронная сеть будет адаптировать параметры (веса) таким образом, чтобы на этих данных ее выходы (результаты) стали как можно ближе к правильным.

После обучения модель тестируют на контрольном датасете. Это позволяет убедиться, что она правильно работает на новых данных так же, как и на обучающих. 

Для сбора и разметки подобных данных требуются люди, и чем сложнее данные, тем труднее найти специалистов для этой работы.

Критическая важность разметки в данных

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

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

Возьмем пример с рестораном, где мы хотим отслеживать, чтобы официанты убирали столики через 5 минут после ухода посетителей. Камера записывает видео, и у нас есть данные о том, когда посетитель покинул стол и когда стол стал чистым. Эти данные сами по себе не несут смысла для системы машинного обучения. Для их использования мы размечаем видеозаписи: в специальной таблице указываем, в каких временных промежутках (например, с 1-й по 2-ю минуту в первой записи или с 30-й по 40-ю секунду во второй) происходят нужные события, такие как уход посетителя или уборка стола. После этого нейросеть обучается на размеченных данных, чтобы автоматически определять эти события в новых видеозаписях

Это и есть суть разметки: мы приглашаем условного работника, чтобы он просматривал видео и выставлял метки — например, «посетитель ушел» или «стол чистый». После того как видеопоток размечен, модель обучается распознавать эти события, и в дальнейшем может автоматически идентифицировать их в новых видео.

Правильная разметка данных позволяет обучить нейронную сеть понимать контекст и особенности конкретных ситуаций. Если разметка сделана некачественно или неполно, модель будет работать неточно, и это приведет к ошибкам.

Неправильная разметка данных может привести к ошибкам в работе нейросети. Например, если в датасете для MARQUS пластик PET ошибочно помечен как HDPE, модель будет некорректно классифицировать материалы, что снизит точность сортировки. В таких случаях проводится анализ: ошибка может быть в данных или в архитектуре модели. Если проблема в датасете, данные корректируются, и модель переобучается. Если ошибка в модели, ее архитектура пересматривается, и обучение проводится заново с тем же датасетом

Важно помнить: разметка данных — это больше, чем простое «наклеивание ярлыков», она задает структуру и помогает модели «учиться» видеть мир так, как это нужно для решения задачи.

В случае с MARQUS это значит, что система может видеть разницу между различными типами материалов и настраивать сортировку точнее.

Почему не каждый может сделать разметку?

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

Если для разметки видеоряда с занятым и пустым столиком ресторана отраслевые знания не нужны, то для более сложных процессов, они критически необходимы.

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

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

Контекстно-зависимые датасеты

Представьте, что вы внедряете систему машинного обучения по распознаванию эмоций на лицах людей из России, используя открытый датасет, собранный в США.

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

Это явление объясняется культурными различиями, которые приводят к ошибке в интерпретации эмоций из-за использования контекстно-зависимого датасета: у каждой культуры своя ментальность, традиции, обычаи и нормы, которые влияют на выражение эмоций.

Следовательно, для применения технологии распознавания эмоций в конкретной стране необходим датасет, собранный именно в этой стране с изображениями ее жителей.

Узкоспециализированные датасеты

Нейронные сети не понимают мультимодальности — для их применения в разных сферах нужны данные, соответствующие каждой из них.

Открытых датасетов крайне мало, и те, что есть, либо стоят дорого, либо не покрывают всех требований. 

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

MARQUS должен определять тип материала отхода, это можно сделать на основе различий светоотражающих свойств материалов в разных спектрах, и для такой работы нужен свой собранный датасет.

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

Чтобы лучше понять, о чем речь, представьте: есть пластиковые бутылки из PET и HDPE. Внешне они могут быть почти идентичны, но для переработки их нужно сортировать отдельно. Если разметчик не сможет правильно различить эти виды пластика, наша нейросеть не научится делать это корректно, и итоговая сортировка будет неточной.

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

Закрытые датасеты

Другая проблема — это необходимость обработки данных строго в рамках закрытой системы.

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

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

Для наглядности представьте, что страховой компании требуется проанализировать свои договоры, чтобы автоматизировать оценку рисков.Теоретически, можно было бы передать такие данные стороннему подрядчику, который быстро настроит систему, сэкономив время и ресурсы, но на деле сделать это не получится. Почему?

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

Процесс разметки данных: шаг за шагом

Внедрение ИИ — это итеративный процесс, включающий несколько циклов.

Первый цикл — это сбор и обогащение данных, за которым следует обучение или проверка новых моделей. Дальше идет тестирование модели и измерение качества ее прогнозов. На этапе эксплуатации появляются более крупные циклы: новые данные или бизнес-требования, такие как классификация нового типа отходов в случае MARQUS, требуют дополнительных итераций. Важно, что количество итераций заранее неизвестно, а процесс толерантен к ошибкам и изменениям, что делает его гибким и устойчивым, хотя и усложняет расчет эффекта внедрения по сравнению с традиционной продуктовой моделью.

На схеме, иллюстрирующей процесс внедрения ИИ, показаны две основные петли: первая — сбор и обогащение данных с последующим обучением модели, вторая — тестирование и оценка качества прогнозов. Эти петли интегрированы в более крупный цикл эксплуатации, где новые данные или требования бизнеса инициируют дополнительные итерации.

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

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

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

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

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

Важно учитывать, что данные могут быть изначально цифровыми (например, тексты в PDF-файлах), и тогда требуется только их разметка. Однако в случае с MARQUS нам пришлось сначала оцифровывать реальные объекты — отходы, создавая их цифровые копии путем фотографирования в специальном боксе, а затем размечать эти изображения, присваивая им признаки (например, тип материала).

Современный подход: Data-Driven и Model-Driven компании

Современные компании стремятся заранее организовывать и систематизировать свои данные, чтобы иметь возможность быстро их использовать при необходимости, и здесь есть два основных подхода:

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

Model-Driven. Если задача компании — предсказывать, находить сложные закономерности или автоматически принимать решения, тут нужны не просто собранные данные, а полноценные датасеты. Это значит, что данные должны быть размечены (должны быть указаны важные детали, которые модель должна запомнить), иначе нейросеть не сможет обучиться правильно.

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

Наш опыт с MARQUS: как мы выстроили процесс сбора и разметки

Фотобокс. Начало.
Фотобокс. Начало.
Фотобокс 2.0
Фотобокс 2.0

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

В случае MARQUS итеративный процесс был ключевым. После создания начального датасета с 10 тысячами фотографий отходов мы обучали модель для классификации материалов, таких как пластик, металл и стекло. Однако на этапе эксплуатации бизнес решил добавить новый тип отходов, например, картон. Это потребовало новых итераций: мы собрали дополнительные данные, обогатили датасет и переобучили модель. Инструменты MLOps помогли автоматизировать тестирование и проверку качества, что позволило быстро адаптироваться к новым требованиям.

Для сбора данных мы создали специальный бокс (так называемый "white box" или "black box"), в котором отходы фотографировались в различных спектральных диапазонах. Например, пластиковую бутылку помещали в бокс, фотографировали в 10 разных спектрах, затем поворачивали и повторяли процесс. Это позволяло собрать детальные данные о светоотражающих свойствах материалов, необходимых для точной классификации. Всего мы создали около 10 тысяч таких фотографий, что потребовало значительных усилий и координации.

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

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

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

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

 Однако волонтеры быстро устали от монотонной работы, которая заключалась в многократном повторении однотипных действий. Проблема состояла в том, что это требовало много внимания и концентрации, так как разметка должна была быть точной и соответствовать строгим критериям. Со временем мотивация у участников снизилась, что сказалось на качестве разметки.

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

В итоге мы оптимизировали процесс сбора данных и достигли нужного качества разметки для обучения.

Пути решения проблемы в России

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

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

  1. Контролировать качество разметки на всех этапах

  2. Учитывать специфику задачи и отрасли

  3. Постепенно накапливать экспертизу внутри компании

  4. Избежать проблем с конфиденциальностью данных

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

В конечном итоге, качественный датасет — это основа успешного AI-проекта, и инвестиции в его создание являются необходимым условием для достижения высокой точности работы искусственного интеллекта.

Tags:
Hubs:
+5
Comments5

Articles