TLDR

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

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

Проблема

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

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

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

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

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

Решение

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

Встраивание обучения модели

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

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

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

Встраивание рабочих процессов пользовательского интерфейса

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

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

Аквариум предлагает пользователям возможность пометить результаты поиска как «релевантные» или «нерелевантные» для данных, которые они пытаются собрать. Затем Aquarium обучает простые бинарные классификаторы на основе этой обратной связи, чтобы значительно улучшить качество результатов поиска — мы видели случаи, когда релевантность результатов поиска менялась от 50% до 90+% релевантности уже через несколько минут обратной связи.

Крупномасштабная обработка встраивания

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

Аквариум масштабируется до десятков миллионов изображений для встроенной генерации и обработки. Хотя отчасти это зависит от разумного использования управляемых сервисов Google Cloud Platform (GCP), мы также используем некоторые известные технологии, которые менее известны.

Мы используем Vertex AI от GCP для эффективного масштабирования рабочих нагрузок логического вывода в больших наборах данных. Это значительное преимущество использования GCP по сравнению с другими облачными провайдерами, особенно потому, что GCP предлагает вывод TPU (блок тензорной обработки), который значительно более экономичен, чем выполнение вывода на CPU или GPU.

Для поиска сходства важно быстро выполнять поиск приближенных ближайших соседей (ANN) для встраивания векторов в большие наборы данных, когда пользователи взаимодействуют с пользовательским интерфейсом Aquarium. Хотя существует множество библиотек ИНС с открытым исходным кодом, все они требуют инженерной работы по развертыванию и масштабированию в облачной инфраструктуре. В результате мы используем Pinecone для управления векторной индексацией и запросами.

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

Без внедрения технологий командам машинного обучения приходится прибегать к неэффективным или дорогостоящим средствам, чтобы найти нужные данные для добавления в свои наборы данных. Чаще всего команды просто нанимают пул офшорных этикетировщиков / операционного персонала, чтобы вручную прокручивать изображения одно за другим, чтобы найти редкие примеры. Хотя это может быть эффективным, часто это дорого и требует много времени. С другой стороны, команда может поручить инженеру вручную писать запросы к метаданным в SQL или в блокноте Jupyter. Когда это работает, это может быть очень эффективно, но часто сложно или невозможно запросить определенные характеристики (как написать SQL-запрос, чтобы найти что-то «звездообразное?») и отнимает время разработки, которое и без того ограничено. .

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

Однако существует не так много открытых инструментов, которые управляют сквозным жизненным циклом создания, обработки и запросов для сценариев использования машинного обучения. Тем не менее, эта технология может значительно ускорить цикл разработки машинного обучения. В частности, один из наших тестовых клиентов тратил сотни часов рабочего времени на поиск редких данных, на которых он хотел улучшить производительность своей модели. Мы видели, что этот поток позволяет им просеивать свои немаркированные данные, чтобы найти редкие пограничные случаи примерно за 30 минут и отправить их на маркировку. Раньше это занимало у них несколько дней работы с десятками оффшорных операций, поэтому Аквариум предложил повышение производительности более чем в 1000 раз!

Попробуйте сами!

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

Для этих бета-пользователей мы ищем клиентов, которые:

  • У нас есть набор размеченных данных, которые они могут интегрировать с Aquarium. У нас есть Python client API с сопроводительной документацией и инженер по решениям, который может помочь сделать этот процесс максимально гладким!
  • Заинтересованы в поиске сходства для вариантов использования для курирования данных. Поиск в немаркированных наборах данных редких примеров данных для маркировки, обнаружение данных, на которых их модели в основном терпят неудачу.
  • Не против предоставить Аквариуму доступ на чтение для проведения обучения и вывода с помощью встраивания моделей в их наборы данных. Мы никогда не будем использовать модели, обученные на данных одного клиента, в интересах другого клиента, и мы сертифицированы по стандарту SOC 2 типа 2 для убедитесь, что все загруженные данные остаются в безопасности. В будущем мы предложим локальную версию этого потока: свяжитесь с нами, если вам интересно поговорить об этом!

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