История Даны, специалиста по данным

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

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

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

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

Проблемы и лучшие пути в машинном обучении

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

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

В 2019 году сообщалось, что 87% проектов по науке о данных никогда не доходят до производства. По данным Enterprise AI/ML Trends от Algorithmia, даже среди компаний, которые успешно развернули модели машинного обучения в производстве, 64% респондентов требуется более месяца для развертывания новой модели в 2021 году, по сравнению с 56% в 2020 году. также обнаружили, что 38% опрошенных организаций тратят более 50% времени своих специалистов по данным на развертывание моделей.

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

Есть ли способ лучше?

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

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

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

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

Краткий обзор книги

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

В остальных главах мы описываем практику эффективных команд машинного обучения и практиков машинного обучения. В Часть 1. Методы разработки мы рассмотрим методы, которые помогают специалистам по машинному обучению в их повседневной работе (например, автоматическое тестирование, рефакторинг, эффективное использование редактора кода). В Часть 2. Практика продуктов и доставки мы подробно описываем практики в других подсистемах, которые необходимы для предоставления решений машинного обучения, такие как мышление продукта, методы доставки, топологии команд, непрерывная доставка и MLOps.

Часть 1: Инженерные практики

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

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

Глава 6. Расширение возможностей редактора кода с помощью простых приемов покажет вам, как настроить редактор кода (PyCharm или VS Code) для более эффективного написания кода. После того, как мы настроим нашу IDE за несколько шагов, мы рассмотрим серию сочетаний клавиш, которые могут помочь вам автоматизировать рефакторинг, автоматически обнаруживать и исправлять проблемы, перемещаться по кодовой базе, не теряясь среди прочего.

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

Часть 2: Практика продуктов и доставки

Глава 8: MLOps и непрерывная доставка для машинного обучения (CD4ML) будет сформулировать развернутое представление о том, что на самом деле влекут за собой MLOps и CI/CD (непрерывная интеграция и непрерывная доставка) (спойлер: это больше, чем модель автоматизации развертывания и определение конвейеров CI). Мы разрабатываем план уникальной формы CI/CD для проектов машинного обучения и рассказываем, как можно настроить каждый компонент в этом плане для создания надежных решений машинного обучения и освобождения ваших товарищей по команде от повторяющейся и недифференцированной работы, чтобы они могли сосредоточиться на другие более важные проблемы.

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

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

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

Некоторые прощальные мысли

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

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

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

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

Любопытный?

Первые три главы Команды эффективного машинного обучения уже доступны на O’Reilly, и каждый месяц будет выходить новая глава. Я также буду размещать отрывки в моем блоге и на канале YouTube. Оставайтесь с нами 🖖