Создание приложений ИИ совместно с ИИ, ориентированным на данные

Создание приложений ИИ совместно с ИИ, ориентированным на данные

5 апреля 2022 г.

Серия докладов об искусственном интеллекте, ориентированном на данные, о будущем


Задний план


Рошни Малани получила докторскую степень в области разработки программного обеспечения в Калифорнийском университете в Сан-Диего, ранее работала над Siri в Apple и в качестве инженера-основателя Google Photos. Она выступила с презентацией на виртуальной конференции Future of Data-Centric AI в сентябре 2021 года. Ее презентация ниже, слегка отредактированная для ясности чтения. . Если вы хотите посмотреть полное видео выступления Рошни, мы включили его ниже или вы можете найти его на [YouTube] (https://www.youtube.com/watch?v=eSo9Y_TSyOM).


На мероприятии Future of Data-Centric AI 2021 мы увидели убедительные доказательства того, что смещение акцента на данные приводит к более производительным системам ИИ, которые также являются более надежными и масштабируемыми. Мы видели много доказательств того, что улучшение ваших данных также улучшает вашу модель. Однако я хочу подчеркнуть, что, поскольку именно специалисты в предметной области (МСП) лучше всего разбираются в ваших данных, одна из наших основных целей как разработчиков приложений ИИ должна состоять в том, чтобы предоставить МСП несколько способов поделиться своим опытом — не только с самим ярлыком, но также с контекстом и нюансами этого ярлыка. Это сотрудничество между малыми и средними предприятиями и учеными данных ускоряет разработку ИИ.


«Совместная работа — один из основных столпов искусственного интеллекта, ориентированного на данные».


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


Разблокировка данных с помощью Snorkel Flow за счет максимального ввода, что приводит к более высокой ценности и более высокой скорости разработки приложений ИИ


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


Блокировка данных в мире, ориентированном на данные


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


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


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


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


Типичная итерация модели: ограниченное сотрудничество


Типичная итерация модели, ограниченный план совместной работы


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


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


Как обычно работает ручная маркировка с точки зрения обучения и проверки


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


![Пример ручной маркировки наборов данных для обучения и проверки] (https://cdn.hackernoon.com//images/iCPauZAk2pMFaBLCqOOIeWGb8Ue2-2022-03-31T15:40:05.269Z-cl1f5xzx100iq0bs6ab1397hv)


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


Никто не хочет помечать все эти точки данных во второй раз. Это медленно, дорого и, что менее всего полезно, статично.


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


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


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


Основной цикл совместной работы работает следующим образом:


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

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

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

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

Что такое программная маркировка?


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


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


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


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


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


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


Как алгоритмическая маркировка способствует совместной работе?


Snorkel Flow предоставляет несколько способов сбора экспертных знаний в предметной области на одной и той же платформе, тем самым открывая доступ к совместной работе с данными за счет максимизации ценности и скорости ввода SME. Комментарии предоставляют контекст в произвольной форме о точке данных — «почему» данного ярлыка. Теги выделяют свойства ваших точек данных, группируя их таким образом, что это может дать представление о вашей проблеме с машинным обучением. Ярлыки можно использовать как наземную истину. Вы также можете написать шаблоны с низким кодом для захвата шаблонов в данных для маркировки. Вы также можете использовать код для кодирования эвристик и знаний предметной области в данные. Использование различных методов ввода данных позволяет малым и средним предприятиям обмениваться максимальной информацией о данных с учеными, занимающимися данными, что по своей сути увеличивает их ценность.


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


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


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


Пример разработки ИИ, ориентированного на данные


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


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


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


Приложение для классификации, показывающее 500 000 немаркированных кредитных заявок, 1 000 классов и 300 000 программных меток данных для обучения


Мы начинаем с базы данных примерно из 500 000 немаркированных заявок на получение кредита, и у нас есть около 1000 различных классов.


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


При этом мы генерируем 300 000 программных ярлыков для обучения. Как мы оцениваем, хороша ли какая-либо из этих эвристик?


Основная правда для оценки


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


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


Доведение ИИ, ориентированного на данные, до предела


Мы можем видеть общую информацию, такую ​​как общая скорость завершения и скорость аннотации. И мы можем видеть индивидуальную информацию, такую ​​как статус завершения отдельного аннотатора, а также соглашения между аннотаторами, опционально с разбивкой по классам. Кроме того, мы можем обозначить старшего кредитного специалиста (в данном примере «Энни») как эксперта и увидеть уровень ее согласия с младшими специалистами.


Будущее за программной маркировкой данных


Мы можем выбрать, какие аннотаторы агрегировать, прежде чем фиксировать метку на основе истины.


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


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


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


Сценарий 1:


Помечайте изменения понимания, используя фильтры в Snorkel Flow для создания целевых пакетов аннотаций


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


После того, как мы создадим этот пакет, мы можем работать вместе с SME и специалистами по данным, чтобы уточнить существующие функции меток, создать новые и проверить модель после того, как мы обучим ее с новыми ручными метками.


Сценарий 2:


Изменения схемы маркировки и получение дополнительных метаданных


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


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


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


Сценарий 3:


![Демонстрация дрейфа данных и того, как Snorkel Flow значительно улучшает качество и скорость маркировки данных]


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


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


Резюме


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


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


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


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


Вопросы и ответы


По завершении презентации Рошни было время для коротких вопросов и ответов. Краткое изложение приведено ниже.


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


A: Отличный вопрос. Как я уже сказал, цель состоит в том, чтобы действительно максимизировать возможности и входные данные, которые мы можем получить. Таким образом, внесение любых внешних данных абсолютно важно и ценно. Если эти внешние данные уже являются внешними метками, вы можете их внести. Если это существующая модель или словарь, который информирует часть вашей модели, вы можете внести их. И, конечно же, все, что помогает в оценке рисков, все которые могут быть включены в платформу Snorkel Flow.


В: Как Snorkel Flow включает в себя такие методы, как активное обучение?


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


В. Сколько размеченных вручную данных вам может понадобиться для программной маркировки/подхода Snorkel?


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


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


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


Если вы хотите посмотреть полную презентацию Рошни, вы можете найти ее на [канале Snorkel AI Youtube] (https://youtube.com/snorkelai). Мы рекомендуем вам подписаться на обновления или следить за нами в TwitterLinkedinFacebook или Instagram.


Статьи по Теме



Snorkel AI приветствует лидеров отрасли в команде


30 марта 2022 г. /


Алекс Ратнер


[Подробнее] (https://snorkel.ai/snorkel-ai-welcomes-industry-leaders-to-the-team/)



Обучение с несовершенными метками и визуальными данными с Anima Anandkumar


18 марта 2022 г. /


Команда снорклинга


[Подробнее] (https://snorkel.ai/learning-with-visual-data-imperfect-labels-anima-anandkumar/)



Слабое моделирование супервизии с Фредом Сала


17 марта 2022 г. /


Команда снорклинга


Подробнее



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE