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

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

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

Маркировка данных

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

Давайте посмотрим на пример. В одном из наших проектов по классификации текстов нам нужно было достичь точности 80%, чтобы решение имело практическую ценность для бизнеса. Первая модель достигла точности только 65%, и у нас было два варианта ее улучшения — улучшить модель или улучшить метки (данные). Опробовав более сложные и дорогостоящие модели, можно было бы достичь точности 68 %, что все еще далеко от бизнес-цели. Второй вариант оказался намного эффективнее — улучшение качества этикеток позволило нам достичь 87%. Почему? Мы поняли, что в первой итерации метки были несовместимы — два разных лейблера сошлись только в 69% случаев на правильной метке. Это, конечно, лишило модель возможности изучать значимые закономерности и делать точные прогнозы, учитывая, что даже люди не соглашались с тем, какими должны быть правильные ярлыки.

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

1. Выбор соответствующего инструмента маркировки и/или поставщика рабочей силы

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

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

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

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

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

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

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

3. Итеративный подход

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

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

Дополнительные советы и рекомендации по маркировке данных можно найти в нашем исследовании:

Качество данных

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

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

1. Понимание ваших данных является ключевым

В ML6 у нас есть несколько шагов по умолчанию для улучшения качества данных, в зависимости от домена машинного обучения, в котором находится проект. Одна вещь, которая объединяет все проекты, заключается в том, что высококачественный набор данных начинается с хорошего понимания данных. Исследование данных является ключом к созданию этого понимания и поэтому часто является первым шагом при запуске проекта машинного обучения.

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

2. Максимально автоматизировать процесс для повышения эффективности

Улучшение качества данных часто является утомительной работой (некоторые говорят, что 80% времени работы над проектом ML — это очистка данных). Поэтому мы пытаемся максимально автоматизировать его — разумно используя машинное обучение или другие автоматизированные методы, чтобы помочь нам максимально эффективно улучшить качество данных.

В рамках наших конвейеров машинного обучения мы хотим, чтобы новые данные автоматически проходили некоторые проверки и визуализации. Некоторые широко применимые инструменты, которые могут помочь в большинстве случаев использования, — это BigQueryML с автоматическим обнаружением аномалий, которые легко помогают вам обнаруживать выбросы в ваших данных. TFDV для простой визуализации набора данных и обнаружения изменений с течением времени и, наконец, GreatExpectations для интеграции правил проверки на основе бизнес-логики. Мы также всегда тестируем новые фреймворки и методы, чтобы продолжать улучшать и автоматизировать. Очень многообещающим фреймворком/подходом, который мы в настоящее время изучаем, является PClean, предметно-ориентированный вероятностный язык программирования для байесовской очистки данных.

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

Увеличение данных

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

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

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

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

  1. Надежные базовые показатели. Машинное обучение — это повторяющийся процесс: вносите изменения, обучайтесь, оценивайте и повторяйте. Следовательно, важно иметь хорошую отправную точку, чтобы можно было сравнивать итерации с этой базовой линией, чтобы быстро понять, что работает — это также относится к дополнению данных.
  2. Знание модели. Некоторые модели разрабатываются с учетом специальной подготовки данных — игнорирование этого может негативно сказаться на производительности модели. Поэтому важно хорошо знать свою модель.
  3. Внедрение экспертных знаний, где это возможно. Тип расширения данных, который вы выполняете, может различаться в зависимости от набора данных и тонких различий между вариантами использования. Экспертные знания могут помочь узнать, какие дополнения имеют смысл для повышения производительности, а какие нет.

Дополнительные (технические) советы и рекомендации по дополнению данных можно найти здесь:

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

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