Hi-Tech

Перевести большую компанию на машинное обучение: опыт Uber

Перевод материала специалиста по искусственному интеллекту Джамала Робинсона о том, как Uber удаётся применять машинное обучение во всех сферах бизнеса.

В закладки

Недавно ко мне обратилась консалтинговая фирма и попросила дать рекомендации насчёт создания и масштабирования систем искусственного интеллекта (ИИ) и машинного обучения (МО) для своих клиентов.

У меня есть опыт в этой сфере: с точки зрения инфраструктуры — сотрудничество с Intel и Nvidia, с точки зрения программного обеспечения — с Amazon и IBM, поэтому я решил помочь.

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

Продукты и сервисы Uber, задействующие машинное обучение

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

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

Uber Eats

Eater.com

Еду прямо к двери привозит водитель Uber. Uber Eats — онлайн-площадка для заказа и доставки еды из местных ресторанов, запущенная в 2014 году.

Алгоритмы начинают работу при каждом запуске приложения; они принимают в расчёт рестораны, позиции в меню и приблизительное время доставки. Uber Eats использует модели, построенные на МО, для выполнения сотен прогнозов, оптимизирующих обслуживание.

Прогнозирование

Uber пользуется алгоритмами МО для прогноза в самых разных областях:

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

Служба поддержки

Схема работы службы поддержки в Uber

Чтобы ускорить обработку запросов, служба поддержки использует МО-модели: первая их версия ускорила работу на 10%, на столько же улучшив уровень удовлетворённости клиентов, вторая обеспечила прирост в 6%. Служба поддержки компании отвечает на тысячи заявок (оставленные в машине кошелёк или телефон) при 15 млн поездок в день.

Увеличение скорости обработки запроса на 15% (с 20 минут до 16 минут 55 секунд) показывает ценность машинного обучения, которой может воспользоваться большинство предпринимателей.

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

Например, вы набрали определённое количество сотрудников, чтобы разбирать 2000 запросов в день, а затем сократили время решения на 15%. Может и так, но в большинстве своём компании получат второстепенные, но значимые прибавки. Выходит, вам:

  • либо требуется меньше работников;
  • либо у вас появляется на 15% больше времени для решения большего числа запросов.

Если каждый сотрудник службы поддержки справляется с 24 запросами (по 20 минут на каждый) за восемь часов, а его зарплата — $70 тысяч в год, взгляните на первый пункт.

Сократив время, вы можете сократить штат на 12 человек и по-прежнему справляться с 2000 запросов, при этом сэкономив на зарплатах $875 тысяч в год (сотрудников не обязательно увольнять, можно поставить им другую задачу).

Вот в чём настоящая сила искусственного интеллекта и машинного обучения. Таким образом, мы сэкономим $875 тысяч, улучшив процесс на 15% в этом конкретном сценарии использования.

Расчёт времени прибытия

Водитель находится в трёх минутах от пассажира

Если вы когда-нибудь пользовались сервисом вроде Uber, то знаете, насколько эти показатели важны для положительного восприятия пользователем. Система расчёта времени прибытия Uber показывает как время прибытия к месту посадки, так и время в дороге.

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

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

Беспилотные автомобили

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

Цифровые изменения бизнеса на основе машинного обучения

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

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

Основные структурные блоки «Микеланджело», платформы машинного обучения Uber

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

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

Как Uber задействует преимущества машинного обучения

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

Платформа машинного обучения «Микеланджело»

В основе успеха лежит собственная МО-платформа Uber — «Микеланджело».

Экран управления «Микеланджело»

Среди первых: HDFS, Spark, Samza, Cassandra, MLLib, XGBoost и TensorFlow. «Микеланджело» состоит из нескольких систем с открытым исходным кодом и блоков, разработанных компанией (если решения с открытым кодом ей не подходили). Для взаимодействия с «Микеланджело» разработаны веб-интерфейс и несколько API (через Jupyter).

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

Полный рабочий цикл «Микеланджело»

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

Процесс машинного обучения в «Микеланджело»

  • Управление данными. Стандартные инструменты для организации конвейеров данных для генерирования векторных данных и данных о типе меток, необходимых при обучении и прогнозировании. Эти инструменты глубоко интегрированы в озёра данных Uber, хранилища и онлайн-систему обслуживания данных. Специалисты компании выяснили, что зачастую сложнее всего отыскать хорошие векторные данные, а на создание и управление конвейерами данных при внедрении МО придётся сильно потратиться.
  • Обучение моделей. Распределённая система обучения моделей с API для интерфейса, которая справляется и с небольшим набором данных, и с массивами с миллиардами образцов. Для каждой обученной модели у «Микеланджело» есть хранилище, где хранятся атрибуты типа: кто обучил модель, начало и конец обучения, обращение к обучающим данным, показатели точности модели, усвоенные параметры и статистика визуализации модели. Команда разработчиков «Микеланджело» регулярно добавляет новые алгоритмы в ответ на нужды подразделений компании, а они в свою очередь могут добавлять собственные модели и код для большей гибкости.
  • Оценка моделей. Отчёты о точности модели и специальные отчёты, а также их визуализацию можно получить через веб-интерфейс и API, помогающие специалистам по анализу данных с проверкой отдельных моделей и сравнением их друг с другом.
  • Внедрение моделей. «Микеланджело» располагает сквозной поддержкой для управления внедрением модели; само же развёртывание можно провести в трёх форматах: в офлайне (запланированная выгрузка или прогнозы по требованию), онлайне (для индивидуального или пакетного прогнозирования) и в формате библиотеки (модель запускается в контейнере, который в свою очередь встроен в другой сервис как библиотека).
  • Прогнозирование. Различные сервисы делают заключения на основе API, опираясь на офлайн- или онлайн-модели, чтобы получить прогнозы, базирующиеся на данных, загруженных из конвейера или напрямую из клиентской службы.
  • Контроль прогнозов. Использование текущих метрик точности модели для контроля прогнозов позволяет убедиться, что конвейеры данных Uber продолжают посылать точные данные, а производственная среда не изменилась до такой степени, что её модели потеряли точность.

Машинное обучение как разработка ПО

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

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

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

Поэтому перед внедрением той или иной МО-модели Uber всегда оценивает её на тестовых выборках и следит за её работой, убеждаясь, что она ведёт себя так же, как и в офлайн-тестах. Чтобы убедиться, что программа работает правильно, важно провести качественные тесты до запуска ПО и приглядывать за ним в действии.

Скорость разработки модели

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

Группа, ответственная за МО в Uber, поставила в приоритет скорость работы аналитиков, ведь чем больше экспериментов проводится, тем больше гипотез тестируется и тем лучше результаты.

Цикл проекта с машинным обучением в Uber

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

  • выявление проблемы;
  • создание прототипа;
  • реализация решения;
  • измерение его воздействия.

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

Вот несколько принципов для повышения скорости разработки: «Скорость создания нового продукта» или «время окупаемости» также крайне важны для распространения МО внутри Uber.

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

Теперь давайте поговорим о структуре.

Организационная работа для успешного внедрения ИИ

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

Команды машинного обучения

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

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

Организация различных команд в экосистеме машинного обучения Uber

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

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

Команды по продукту

Так, картографическая служба контролирует системы для расчёта примерного времени прибытия, а Uber Eats — системы оценки ресторанов. У каждой команды по разработке продукта в Uber есть свои модели, которые она создала и внедрила.

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

Экспертные группы

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

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

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

Команды по разработке платформы машинного обучения

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

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

Исследовательская группа

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

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

Увеличение продуктивности и эффективности команд МО

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

Запуск

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

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

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

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

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

Планирование

Тут мы и создаём системы под индивидуальные нужды. Бывает, что доступные инструменты не совсем соответствуют требованиям определённого подразделения компании. Uber пытается добиться идеального баланса между самостоятельностью команд по продукту и обменом разработками, чтобы избежать раздробленности и технических долгов.

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

Сообщество

Чтобы выстроить внутреннее сообщество, Uber проводит ежегодную конференцию UberML, на которой в последний раз собралось около 500 участников, представивших свои доклады или инфографику. Внедрение МО в большой компании требует слаженной организации. С похожим я столкнулся, работая в Amazon, где занимался координацией ИИ-разработчиков.

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

Эта встреча позволила различным командам продвинуть свои решения в области МО и ИИ, а мне — наладить связи. Среди приглашённых докладчиков были разработчики из компаний списка Fortune 500, а один даже руководил научным отделом фирмы стоимостью более 70$ млрд.

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

Со временем начинания Uber переросли в масштабные инициативы по обмену лучшими практиками, совместной работе над самыми современными проектами и улучшению общего состояния ИИ и МО.

Образование

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

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

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

Заключение

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

Вот главные уроки, которые они усвоили:

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

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

#машинноеобучение

Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть