Очередной шедевр из Стэнфорда после open source DAWN, Spark и Mesos

машинное обучение алгоритм Spark API
Очередной шедевр из Стэнфорда после open source DAWN, Spark и Mesos

Эта статья написана [Передовая линия ИИ] Оригинал, исходная ссылка:t.cn/RTkgXrG


Автор | Питер Бейлис и др.

Переводчик|Дебра

Редактор | Эмили

Руководство по передовой ИИ:”Это проект по популяризации практики машинного обучения, но он не требует от пользователей наличия опыта работы с ИИ.Они назвали его DAWN, что означает «анализ данных следующего поколения». Команда, стоящая за ним, успешно разработала Spark, Mesos, DeepDive, HogWild и т. д. Не исключено, что это будет еще один успешный проект. "


По мере развития технологии приложений машинного обучения все больше и больше организаций используют эту технологию в производстве для повышения эффективности. Однако на самом деле эта «высокотехнологичная» технология доступна только организациям с достаточными средствами и большими техническими командами, чтобы значительно упростить процесс создания приложений ИИ, популяризировать технологию ИИ и позволить использовать ее специалистам, не занимающимся машинным обучением. технологии на благо общества. , Стэнфордский университет начал пятилетний проект - DAWN (Data Analytics for What's Next, следующее поколение анализа данных).

DAWN — это промышленная партнерская программа Стэнфордского университета, запущенная в 2007 году при неограниченной финансовой поддержке нескольких компаний, с годовой спонсорской поддержкой в ​​размере около 500 000 долларов США, включая Intel, Microsoft, Teradata, VMware и т. д., в дополнение к дополнительной поддержке за счет государственного финансирования. агентства, такие как NSF (Национальный научный фонд) и DARPA (Агентство перспективных оборонных исследовательских проектов).

По словам команды, ее прошлые исследования (Spark, Mesos, DeepDive, HogWild и т. д.) начали служить Силиконовой долине и всему миру, разрабатывая искусственный интеллект для борьбы с торговлей людьми, помогая в диагностике рака и выполняя высокие -производительное секвенирование генома и инструменты разработки данных. И их следующий шаг — сделать эти инструменты более эффективными и доступными, начиная от создания обучающих наборов и проектирования моделей и заканчивая мониторингом и эффективной работой.

Проще говоря, проблема, которую DAWN хочет решить:

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

Ниже приводится введение в документ проекта о практической инфраструктуре машинного обучения:

Предыстория введения:

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

Участник проекта DAWN

Введение и цели проекта DAWN

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

Однако, хотя новые приложения машинного обучения (ML) добиваются впечатляющих успехов, их создание непомерно дорого. За каждым крупным продуктом машинного обучения, таким как Siri от Apple, Alexa от Amazon и беспилотные автомобили Tesla, стоит большая и дорогостоящая команда экспертов в предметной области, специалистов по данным, инженеров данных и DevOps. Даже в организациях, которые успешно применяют ML, ML по-прежнему остается редкостью в пределах досягаемости небольшой группы членов команды. Кроме того, многие модели машинного обучения требуют больших объемов обучающих данных, а получение таких обучающих данных чрезвычайно сложно для многих областей применения. Например, хотя алгоритм машинного обучения может точно идентифицировать изображение собаки (поскольку в Интернете доступны миллионы помеченных изображений), он не может достичь такого же уровня точности при идентификации опухолей на медицинских изображениях, если только организация не нанимает экспертов-людей. Потратить годы на маркировку данные тренировки. Наконец, после создания продукта машинного обучения его необходимо развертывать, эксплуатировать и отслеживать, особенно когда он становится основой критически важных бизнес-процессов. Подводя итог, можно сказать, что технология машинного обучения находится на той же стадии, что и ранние цифровые компьютеры, когда несколько техников в белых лабораторных халатах поддерживали работу небольшого числа машин во время производства: приложения по-прежнему слишком дороги для большинства доменов.

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

Обзор систем практики DAWN и ML

Чтобы максимально использовать возможности, предоставляемые целями нашего проекта, и опираясь на предыдущий опыт создания крупных аналитических систем, таких как Apache Spark [27], Apache Mesos [11], Delite [5] и DeepDive [6], мы будем использовать Spend the Следующие пять лет мы будем исследовать и создавать инструменты для решения сквозных проблем в практике машинного обучения. Комбинируя области от алгоритмов до системного оборудования и тесно сотрудничая с партнерами, работающими в областях с интенсивным использованием данных, мы планируем достичь целей DAWN поэтапно в жизненном цикле машинного обучения.

Наша философия дизайна в стеке DAWN в основном основана на трех принципах:

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

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

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

Рис. 1. Стек протоколов DAWN для практики машинного обучения. В рамках проекта Stanford DAWN мы создали исследовательский стек программного обеспечения и инструментов, охватывающих все этапы жизненного цикла ML, а также абстракции от нового оборудования до новых интерфейсов, чтобы подчеркнуть важность фрейминга практики. . Мы считаем, что этот параллельный сквозной подход «интерфейс-аппарат» необходим для полной реализации потенциала практики машинного обучения.

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

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

Направление исследований DAWN

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

Новый интерфейс для ML.

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

а) Упростите спецификацию модели, наблюдая за ML (подготовка данных, разработка функций): можем ли мы улучшить качество обучения, наблюдая за экспертами в предметной области для создания систем моделей ML? Например, при маркировке данных эксперты в предметной области обычно используют набор эвристических правил для определения метки для конкретной точки данных (например, если фраза «предварительный нагрев в духовке» неоднократно повторяется в наборе документов, метка, скорее всего, будет готовить) путем указания Эти пользователи предоставляют простой интерфейс для информирования пользователей о правилах данных (например, регулярных выражениях), некоторые из которых мы можем комбинировать и применять к массивным наборам данных. Мы используем машинное обучение без учителя для исключения правил и изучения их точности, а также обучаем модели машинного обучения с учителем генерировать вероятностные метки, создавая новую парадигму, которую мы называем программированием данных [18]. Мы добились хороших первых результатов с новой системой под названием Snorkel [17], которая может генерировать высококачественные модели из некачественных правил. Мы также разрабатываем новые направления исследований, используя машинное обучение со слабым контролем, чтобы улучшить качество моделей без ручных действий пользователя, таких как обнаружение признаков [24, 25] и изучение структуры [2].

б) Объяснение результатов людям (разработка функций, производство): как мы объясним людям результаты конкретной модели машинного обучения? По мере того, как модели машинного обучения используются во все более важных бизнес-критичных программах, возможность интерпретировать прогнозы, сделанные на основе классификационных решений, понятным для человека способом, становится критически важной. Проблема в том, что эти большие и сложные модели дают очень точные результаты, но эти результаты очень трудно интерпретировать. Эффективный способ. Прогнозы машинного обучения не создаются в «вакууме»: каждый пользователь имеет от десятков до сотен атрибутов, которые можно использовать для сегментации, корреляции и контекстуализации прогнозов (например, пользователи, работающие с программным обеспечением v47, могут быть ошибочно помечены как спам). Хотя это особенно хорошо работает для предварительных результатов, основанных на базовом корреляционном анализе [4], мы планируем распространить эту возможность на другие области, включая текстовые, визуальные данные и данные временных рядов [21].

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

d) Оценивать и улучшать качество данных (подготовка данных, проектирование признаков): создание высококачественных моделей требует обучения работе с разнообразными высококачественными данными. Поскольку все больше и больше источников данных оцифровываются, становится все более важным интегрировать структурированные (например, хранилище данных, CSV) и неструктурированные (например, текст, изображения, временные ряды) данные для извлечения сигналов при построении модели. Вопрос в том, каким из разнообразных источников данных можно доверять? Какие ресурсы следует расширять и обогащать? Добавляя теги вручную или расширяя существующую базу знаний? Наши ранние результаты [20] показывают, что если качество каждого смоделированного источника данных сделать явным, то источники данных, наиболее нуждающиеся в обогащении, могут быть автоматически идентифицированы, что снижает затраты на очистку и сбор данных.

Сквозная система машинного обучения.

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

а) Крупномасштабная классификация данных (подготовка данных, разработка признаков, производство): классификация и ранжирование являются основными технологиями, лежащими в основе каждой современной поисковой системы. Но помимо классификации статического текста и изображений, как мы можем классифицировать данные датчиков, временные ряды и другие потоки данных, которые могут возникать десятки миллионов раз в секунду? Мы очень заинтересованы в разработке качественных, оптимизированных операторов, которые могут классифицировать и обобщать, функционально преобразовывать, категоризировать и агрегировать разрозненные данные. Предварительные исследования движка MacroBase [3] показывают, что небольшое количество операторов в таких областях, как датчики в производстве, мобильная аналитика и автомобилестроение, могут повторно использоваться в масштабе. Мы заинтересованы в расширении этой возможности на другие области, такие как обработка видео, где датчик изображения стоимостью 0,50 долл. США в настоящее время требует адаптации графической карты стоимостью 1200 долл. США для обработки в реальном времени; кроме того, в единой системной структуре и «классификаторах» «с использованием традиционных системных методов в набор инструментов, таких как кэширование, инкрементная память, сокращение ветвей и адаптация (например, обучение детектора объектов для конкретной сцены), могут достигать очень высоких скоростей без ущерба для точности [8, 12].

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

c) Сочетание рассуждений и принятия решений (разработка функций, подготовка данных, производство): когда ML станет мощным с более глубоким пониманием и возможностями принятия решений, как мы должны реализовать автономные процессы принятия решений? Сегодня, за исключением небольшого числа приложений, таких как самоуправляемые транспортные средства, рассуждения/прогнозирование (т.е. предсказание того, что произойдет) и прогностическое действие/решение (т.е. действия на основе прогнозов) обычно выполняются двумя системами (обычно автоматический механизм вывода и человек, «принимающий решения»). Как мы расставляем приоритеты решений в нашем рабочем процессе машинного обучения? К счастью, с появлением API-интерфейсов автоматизации принятие решений никогда не было проще (например, отправка POST-запроса в автоматизированный центр управления); чего нам не хватает, так это интеграции ML и API-интерфейсов автоматизации, а также логики рассуждений, необходимой для композиция «Клей», поэтому мы разрабатываем комбинацию аргументов для принятия решений, начиная от предупреждений и уведомлений и заканчивая физическим манипулированием окружающей средой.

d) Унифицированный SQL, графы и линейная алгебра (производство): конвейер продуктов машинного обучения содержит разнообразный набор коллективных операций, включая SQL, вычисления графов, а также обучение и оценку машинного обучения. К сожалению, большинство механизмов выполнения оптимизированы только для одного из этих режимов вычислений. Итак, как нам построить механизм, который может оптимизировать все режимы вычислений? Возможно, многие из этих паттернов могут служить примером традиционных реляционных соединений, например, PI Re недавно разработала более быструю операцию соединения [14]. На практике мы обнаружили, что в сочетании с SIMD-оптимизированными операциями это оптимизированное соединение работает очень быстро, позволяя оптимизировать оптимизацию для каждого SQL и графа [1]. Что с МЛ? Мы считаем, что ML может сделать то же самое, распространив эти теоретические результаты на традиционные схемы ML, включая операции линейной алгебры и операции с матрицей коэффициентов. Объединив эти операции в одном движке, мы можем оптимизировать сквозные потоки SQL, вычисления графов, линейную алгебру и многое другое.

Новая подложка для ML.

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

a) Сквозная оптимизация компилятора (разработка функций, производство): в настоящее время приложения ML включают TensorFlow, Apache Spark, scikit-learn, Pandas и другие разнообразные библиотеки и системы. Хотя у каждой библиотеки есть свои преимущества, на практике рабочий процесс часто требует объединения нескольких библиотек, поэтому для крупномасштабного производства обычно требуется группа инженеров-программистов, которая переписывает низкоуровневый код всего приложения. Мы разрабатываем новую среду выполнения Weld [15], которая может оптимизировать код, интенсивно использующий данные, для нескольких библиотек и автоматически генерировать обучение машинному обучению.

Многих может удивить, что Weld смогла запустить современные инструменты анализа данных, такие как Apache Spark, Pandas, Apache, TensorFlow, в 10 раз быстрее и в 30 раз быстрее межрепозитарные рабочие нагрузки за счет оптимизации операторов. Кроме того, конструкция Weld обеспечивает переносимость разнородного оборудования. Поэтому мы также можем запускать эти библиотеки на графических процессорах, мобильных процессорах и ПЛИС. В дополнение к Weld мы разрабатываем новую технологию компилятора для ML Delite [5], фреймворк для разработки предметно-ориентированных языков и платформу анализа данных с сохранением конфиденциальности Splinter [26].

б) Обработка снижения точности (производство): известно, что операции ML являются случайными и вероятностными, как мы можем использовать это свойство во время операций? Ранний HogWild! [19] был первым проектом, который продемонстрировал, что асинхронность в операциях может реально сократить время конвергенции, и Google, Microsoft и другие крупные технологические компании используют базовые алгоритмы в своей повседневной работе. Однако мы думаем, что еще многое можно сделать, например повысить производительность и снизить энергопотребление за счет управления случайностью на битовом уровне: мы можем разработать микросхемы специально для машинного обучения, чтобы выполнять арифметические операции с низкой точностью, а также получать эффективные результаты. Наши недавние теоретические результаты показывают, что можно работать с низкой точностью, не жертвуя точностью [7], с многообещающими результатами на практике [22].

c) Реконфигурируемое аппаратное обеспечение основного ядра (разработка функций, производство): компьютерные архитекторы часто считают год, следующий за выпуском FPGA, настоящим «годом FPGA». Однако программирование с помощью FPGA в настоящее время сложно и дорого. Тем не менее машинное обучение может стать поворотным моментом: в 2017 году вычисления стали столь необходимым узким местом для аналитики машинного обучения как с точки зрения времени обучения, так и времени вывода. Учитывая грядущую конкуренцию между ЦП и ПЛИС, реконфигурируемое оборудование с расширенными программируемыми функциями будет приобретать все большее значение. Кроме того, мы разрабатываем новые реконфигурируемые подложки, которые можно легко использовать для модульных и эффективных вычислительных ядер [16], что важно для улучшения коэффициента энергопотребления, особенно по мере того, как верхние уровни программного стека продолжают развиваться.

d) Распределенное время выполнения (производство): по мере того, как модель продолжает развиваться, становится возможным обучение в масштабе, и выполнение выводов из обучения становится все более важным. Объединение машинного обучения с распределенными системами — настоящая головная боль: модель неэффективна из-за того, что для нее выделено слишком много серверов, или она плохо согласована? Каково оптимальное количество асинхронности? Как выглядит лучшая распределенная система обучения? Наше исследование очень заинтересовано в использовании потребления ресурсов параллелизма внутри устройства (например, FPGA, векторизация графического процессора) и между устройствами (например, кластерные вычисления) (т. е. автоматического и динамического распределения на различное оборудование в кластере). Кроме того, некоторые из наших недавних теорий [10] демонстрируют, что мы можем явно автоматически настраивать соответствующие оптимальные алгоритмы обучения базового уровня для различного оборудования и вычислительных сетей. Но остается еще много вопросов, на которые необходимо ответить: как распределенные асинхронные вычисления улучшают время вывода (т. е. при обслуживании моделей)? Могут ли новые вычислительные субстраты, такие как бессерверные вычисления (Amazon Lambda), способствовать дальнейшему масштабированию программ логического вывода? Что такое унифицированная модель программирования для распределенных вычислений? Мы намерены создать новые инструменты, которые объединят существующие платформы, такие как TensorFlow и Spark, чтобы ответить на эти вопросы.

Исследовательские идеи и показатели успеха

Согласно DAWN, они будут работать с целевыми исследовательскими партнерами в рамках проекта, чтобы проводить практики в кампусе и за его пределами для достижения вышеупомянутых исследовательских целей. И основным показателем успеха этого проекта является доступность, в том числе i) время и стоимость применения приложения ML (включая источники данных и функции); ii) время и стоимость выполнения приложения в производстве (включая оборудование и рабочую силу для мониторинга модели ML). ресурсы); и iii) выгоды для конечных пользователей. Кроме того, DAWN планирует открыть исходный код всех исследований, чтобы все отрасли могли извлечь выгоду из проекта DAWN.

Результаты и флагманские проекты

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

Флагманские проекты проекта DAWN перечислены на официальном сайте проекта, в том числе:

Macrobase: отдайте предпочтение быстрым данным

GitHub.com/Stanford — Вице…

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

Snorkel: система ношения тренировочного комплекта

hazyresearch.github.io/snorkel/

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

Пространственный: DSL для FPGA

GitHub.com/Stanford — Брендинг…

Spatial — это новый предметно-ориентированный язык для программирования реконфигурируемого оборудования на основе параметризованной высокоуровневой абстракции.

Weld: ускорение анализа данных

GitHub.com/weld-pro — это EC…

Ссылка на официальный сайт:

dawn.cs.stanford.edu/

Оригинальная ссылка:

АР Вест V.org/PDF/1705.07…

Ответить после подписки "AI"Знаешь