Подготовка данных для ИИ и машинного обучения: руководство для продакшена

Подготовка данных для ИИ и машинного обучения: практическое руководство для конечного продукта

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

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

Зачем подготавливать данные для машинного обучения и ИИ?

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

Уверенность в данных

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

Высокоточная аналитика

Чистые, релевантные данным задачи и свободные от предвзятости наборы позволяют принимать взвешенные бизнес-решения.

Лучший пользовательский опыт

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

Уровни готовности данных для искусственного интеллекта  и машинного обучения

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

1. Необработанный уровень 

Необработанные данные в разных форматах, полученные из множества внутренних и внешних источников. Обычно хранятся в озеро данных. На этом этапе данные никак не проверены, содержат шум, дубли и ошибки.

2. Очищенные данные 

Структурированные данные, в которых удалены дубликаты, выбросы и пропущенные значения – то есть они пригодны для работы в разных проектах. Часто хранятся в хранилище данных для удобного доступа, но они ещё не привязаны к конкретной МО-задаче.

3. Данные, готовые к ИИ 

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

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

Уровни готовности данных для ИИ
Проверка набора данных на наличие дублей и пропусков – это самый быстрый способ понять, насколько “сломаны” ваши данные. Например, можно воспользоваться библиотеками Python: Pandas и Great Expectations, чтобы автоматически выполнить такую проверку. Если точных дублей более 3% – убедительный признак того, что данные непригодны для обучения.

Как подготовить данные для машинного обучения и ИИ

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

1. Сбор данных

Первое, что нужно для грамотного сбора данных, – привлечь опытного специалиста по данным . Когда цель МО-проекта сформулирована, он определяет корректную стратегию сбора данных и помогает избежать попадания скрытой предвзятости в тренировочный набор данных. То же самое касается и “шума” в данных – его нужно фильтровать заранее.  Например, в задаче прогнозирования оттока пользователей, где данные приходят с сайта, системы управления взаимоотношениями с клиентами и рекламных платформ, важно заранее убрать шум: тестовые аккаунты, предпросмотры почтовых рассылок , подозрительные клики или активность ботов-мониторингов. В проектах с устройствами интернета вещей, физический мир буквально “прошит” в данные: вибрации, скачки температуры, электрошум. В одном из проектов в сфере нефтегаза вибрации буровых установок сильно осложняли выделение полезных сигналов – пришлось детально изучить данные датчиков, выделить наиболее информативные поля и снизить вес остальных, чтобы уменьшить их шумовое влияние.

Где собирать данные?

Внутренние источники:
  • базы данных;
  • операционные системы управления предприятием и системы управление взаимоотношениями с клиентами, складские системы и т.п.
Внешние источники:
  • публичные базы;
  • соцсети;
  • сторонние наборы данных;
  • открытые или покупные отчёты и статистика.
Важно позаботиться о трассируемости данных с самого начала их подготовки, когда можно проследить путь любой записи в набор данных от источника до текущего состояния. Это упрощает исправление ошибок и аудит.

2. Разметка данных

После сбора сырые данные необходимо “объяснить” модели – разметить их. Метки помогают модели интерпретировать информацию и обеспечивают точность результатов. Хотя разметку можно автоматизировать, наш опыт показывает: если вы хотите, чтобы МО-модель действительно приближалась к человеческому восприятию, мышлению и оценке, часть разметки должна выполняться людьми.

Как эффективно использовать гибридный подход, не разорившись:

Создайте “золотой” первичный набор Пусть три разметчика независимо разметят 5-10% набора данных (в зависимости от размера). Используйте короткое руководство, измерьте согласованность разметчиков, устраните расхождения. Нужны не специалисты старшего уровня  – достаточно обученных аннотаторов. Обучите инструмент автоматической разметки и запустите цикл Используйте золотой набор для обучения инструмента полуавтоматической разметки пассивного обучения, автоматически разметьте остальные данные и выборочно проверяйте качество. Неуверенные примеры возвращайте людям активное обучение, пока качество не стабилизируется. Подберите инструменты Подойдут решения с открытым исходным кодом вроде инструменты разметки: инструмент аннотирования в компьютерном зрении (CVAT), Label Studio (Лейбл Студио), SuperAnnotate (СуперАннотейт), LabelBox (Лейблбокс) и др. Проведите финальную проверку Аннотаторы из первого шага проверяют авторазметку, чтобы убедиться в стабильном и высоком качестве по всему набору данных.

3. Очистка данных

Когда весь набор данных размечен, нужно очистить его от дублей, выбросов, пропусков, нерелевантных или ошибочных записей. Можно использовать библиотеки языка программирования Python: Pandas и Great Expectations для автоматического поиска проблем. Иногда набор данных намеренно нужно дополнить ошибочными и неконсистентными примерами. Это особенно актуально для диалоговых ИИ-чат-ботов: от поддержки клиентов до ассистентов по бронированию авиабилетов или финансовых помощников. Нужно учитывать запросы с опечатками, неправильной грамматикой и синтаксисом – это значительно улучшает точность распознавания намерений. Дальнейшие решения – удалять ли выбросы, восстанавливать ли недостающие значения или корректировать их с привлечением доменных знаний – требуют участия человека.

Не торопитесь с анонимизацией!

Шифрование критически важно для защиты данных, но если применить его слишком рано – к “грязному” набору данных – это затруднит поиск ошибок и нерелевантных записей. Лучший момент для анонимизации – после приведения набора данных в порядок.

4. Расширение данных (Аугментация)

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

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

Контрольный список по подготовке данных

Краткое резюме шагов, которые помогают избежать переделок. Выполните это до начала моделирования:

  1. Подключите специалиста по данным на раннем этапе, чтобы он разработал стратегию сбора данных, отфильтровал шум и предотвратил появление скрытой предвзятости.
  2. Используйте гибридный подход к разметке: “золотой” набор → авторазметчик → выборочная проверка записей с низкой уверенностью.
  3. Автоматизируйте первый этап очистки данных, затем подключите экспертов, чтобы удалить, восстановить или исправить данные на основе доменных знаний.
  4. Анонимизируйте чувствительные данные после разметки и очистки.
  5. Применяйте аугментацию, если после предыдущих шагов набор данных оказался слишком маленьким.

Подготовка данных – это основная работа, которая ускоряет каждый следующий шаг

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

Что такое подготовка данных в ИИ и машинном обучении?

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

Насколько чистыми должны быть данные для машинного обучения?

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

Нужно ли размечать данные для обучения без учителя

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

Каковы ключевые этапы подготовки данных для ИИ/МО?

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

Почему подготовка данных так важна?

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