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

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

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

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

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

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

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

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

Uber Eats

Eater.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Основные структурные блоки «Микеланджело», платформы машинного обучения 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 есть свои модели, которые она создала и внедрила. Так, картографическая служба контролирует системы для расчёта примерного времени прибытия, а Uber Eats — системы оценки ресторанов.

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

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

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

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

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

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

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

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

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

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

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

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

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

Запуск

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

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

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

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

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

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

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

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

Сообщество

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

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

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

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

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

Образование

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

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

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

Заключение

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

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

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

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

if(isItRaining){
return price*2;}

или это яндекс, я запутался

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Alexey Ivanov

тут вроде только индусы. или ну эти самые.. с мировым господством. еще китайцы есть

Ответить
Развернуть ветку
Yuri Parfentcov

Индийцы – это обитатели Индии, и их не стоит путать с индусами, которые живут не только в Индии, а называются так потому, что исповедуют особую религию – индуизм. https://common_mistakes.academic.ru/98/%D0%B8%D0%BD%D0%B4%D1%83%D1%81

Ответить
Развернуть ветку
Александр Батищев

По твоей ссылке - Индусами иногда называют все население Индии.

Ответить
Развернуть ветку
Yuri Parfentcov

А ты, как я понимаю, христьянец. А Иванов - быдлянец. Коренные жители одного государства.

Ответить
Развернуть ветку
Roman Kotik

А вы, значится, дерзанец-сорванец?

Ответить
Развернуть ветку
Alexey Ivanov

похер.

Ответить
Развернуть ветку
Айра Монгуш

I'm afraid...

Ответить
Развернуть ветку
Макс Мухарёв

Почему это вас волнует?

Ответить
Развернуть ветку
Artem Belov

Очень сложно.

Ответить
Развернуть ветку
8 комментариев
Раскрывать всегда