Сборник | Лю Чанг, Шан Яньци, Линь Чунсюань
Обзор | причина_W
В конце 2017 года Группа прикладного машинного обучения Facebook выпустила последний документ, в котором представлена вся программная и аппаратная архитектура машинного обучения Facebook. На протяжении всего текста мы также можем получить представление о стратегии машинного обучения продуктов Facebook. В документе рассматриваются новые задачи машинного обучения в глобальном масштабе (обработка сотен миллионов данных) и приводятся стратегии и решения Facebook, которые чрезвычайно важны для смежных отраслей и исследований.
Резюме
Машинное обучение играет ключевую роль во многих продуктах и услугах Facebook. В этой статье подробно рассказывается, как аппаратная и программная инфраструктура Facebook для машинного обучения удовлетворяет его глобальные вычислительные потребности.
Потребности Facebook в машинном обучении чрезвычайно сложны: необходимо запустить большое количество различных моделей машинного обучения. Эта сложность глубоко укоренилась во всех уровнях системного стека Facebook. Кроме того, значительная часть всех данных, хранящихся в Facebook, проходит через конвейеры машинного обучения, и эта нагрузка данных оказывает огромное давление на распределенные высокопроизводительные обучающие потоки Facebook.
Вычислительные требования также очень жесткие, и балансирование большого количества ресурсов ЦП для логического вывода в реальном времени с поддержкой платформы GPU/ЦП для обучения также вызвало чрезвычайную напряженность. Решение этих и других сложных проблем остается вопросом постоянных и неустанных усилий в области алгоритмов машинного обучения, программного и аппаратного обеспечения.
введение
Миссия Facebook - «расширить возможности людей создавать социальные связи и сделать мир более связанным». По состоянию на декабрь 2017 года Facebook связал более 2 миллиардов человек по всему миру. В то же время, в течение последних нескольких лет, обучение машины также претерпело революцию по такому глобальному масштабу практических проблем, включая добродетельный круг инноваций в алгоритмах машинного обучения, огромное количество данных, используемых для обучения модели, и Разработка высокопроизводительных компьютерных архитектур. Прогресс.
В Facebook машинное обучение играет ключевую роль в улучшении почти всех аспектов взаимодействия с пользователем, включая такие услуги, как голосовой и текстовый перевод в ленте новостей, а также ранжирование для классификации фотографий и видео в реальном времени.
Facebook использует различные алгоритмы машинного обучения в этих сервисах, включая машины опорных векторов, деревья решений с градиентным усилением и многие типы нейронных сетей. В этой статье будут рассмотрены несколько важных аспектов архитектуры центра обработки данных Facebook для поддержки потребностей машинного обучения. Его архитектура включает в себя внутренние потоки «ML-as-a-Service», платформы машинного обучения с открытым исходным кодом и алгоритмы распределенного обучения.
С точки зрения аппаратного обеспечения Facebook использует большое количество платформ ЦП и ГП для обучения модели, чтобы поддерживать частоту обучения модели в пределах требуемой задержки обслуживания. Для процесса вывода машинного обучения Facebook в основном полагается на ЦП для обработки всех основных сервисов, и среди них служба ранжирования нейронной сети (например, новостная лента) занимает основную часть всей вычислительной нагрузки.
Большая часть огромных объемов данных, хранящихся в Facebook, проходит через конвейеры машинного обучения, и со временем они продолжают расти, чтобы улучшить качество моделей. Огромный объем данных, необходимых для предоставления услуг машинного обучения, является проблемой, с которой центры обработки данных Facebook столкнутся в глобальном масштабе.
Существующие методы, которые можно использовать для эффективной подачи данных в модели, включают операции разделения для обратной связи и обучения данных, совместную локализацию данных и вычислений и оптимизацию сети. В то же время огромные вычислительные ресурсы и объем данных Facebook предоставляют уникальную возможность. Во время ежедневного цикла нагрузки большое количество процессоров, которые можно использовать для алгоритмов распределенного обучения, будет простаивать в непиковые периоды.
Вычислительный кластер (парк) Facebook включает в себя десятки центров обработки данных, и такой масштаб также обеспечивает устойчивость к стихийным бедствиям. Своевременное предоставление новых моделей машинного обучения очень важно для функционирования бизнеса Facebook, и для обеспечения этого критически важно планирование аварийного восстановления.
В будущем Facebook хочет увидеть быстрое увеличение частоты использования машинного обучения в своих существующих и новых сервисах. Конечно, этот рост также создаст более сложные задачи для групп, ответственных за эти сервисные архитектуры, для глобального масштабирования. Хотя оптимизация инфраструктуры на существующих платформах представляет собой значительную возможность для компании, мы по-прежнему активно оцениваем и изучаем новые аппаратные решения, уделяя особое внимание алгоритмическим инновациям.
Основные выводы из этой статьи (отношение Facebook к машинному обучению) включают в себя:
-
Машинное обучение широко используется почти во всех сервисах Facebook, и компьютерное зрение составляет лишь малую часть требований к ресурсам.
-
Широкий спектр алгоритмов машинного обучения, которые требуются Facebook, чрезвычайно сложны, включая, помимо прочего, нейронные сети.
-
Наши конвейеры машинного обучения обрабатывают огромные объемы данных, и это создает проблемы проектирования и повышения эффективности за пределами вычислительных узлов.
-
Текущий процесс вывода Facebook в основном зависит от ЦП, а процесс обучения зависит как от ЦП, так и от ГП. Однако с точки зрения соотношения производительность/ватт необходимо постоянно исследовать и оценивать новые аппаратные решения.
-
Существуют сотни миллионов устройств, которые пользователи по всему миру используют для работы с Facebook каждый день, и это обеспечит большое количество машин, которые можно будет использовать для задач машинного обучения, таких как крупномасштабное распределенное обучение.
Машинное обучение в Facebook
Машинное обучение (ML) относится к применению последовательности входных данных для построения настраиваемой модели и использования этой модели для создания представления, прогноза или другой формы полезного сигнала.
ВВ
Рисунок 1. Пример процесса и архитектуры машинного обучения Facebook
Поток, показанный на рисунке 1, состоит из следующих шагов, выполняемых поочередно:
-
Постройте тренировочную фазу модели. Этот этап обычно проходит в автономном режиме.
-
Запустите фазу вывода обученной модели в приложении и сделайте (набор) прогнозов в реальном времени. Этот этап выполняется онлайн.
Модели обучаются гораздо реже, чем логические выводы — временная шкала логических выводов, хотя и постоянно меняется, обычно составляет около нескольких дней. Обучение также занимает значительное количество времени, обычно часы или дни. В то же время, в соответствии с фактическими потребностями продукта, онлайн-этап рассуждений может выполняться сотни тысяч раз в день и, как правило, должен выполняться в режиме реального времени. В некоторых случаях, особенно для рекомендательных систем, требуется дополнительное онлайн-обучение таким непрерывным образом.
Отличительной чертой машинного обучения в Facebook является огромный объем данных, доступных для обучения моделей. Масштаб этих данных имеет большое значение для всей архитектуры машинного обучения.
Лучшие сервисы, использующие машинное обучение
сообщение
Алгоритм push-ранжирования позволяет пользователям видеть то, что для них важнее всего, каждый раз, когда они посещают Facebook. Общие модели обучены идентифицировать различные факторы пользователя и среды, влияющие на ранжирование контента. Позже, когда пользователь посещает Facebook, модель создает лучший канал из тысяч кандидатов, который представляет собой персонализированную коллекцию изображений и другого контента, а также лучший рейтинг для выбранного контента.
рекламировать
Рекламные системы используют машинное обучение, чтобы определить, какую рекламу показывать конкретному пользователю. Обучая рекламную модель, мы можем изучить характеристики пользователя, пользовательский контекст, предыдущие взаимодействия и атрибуты рекламы и, в свою очередь, научиться предсказывать, какое объявление пользователь, скорее всего, нажмет на веб-сайте. Затем, когда пользователь посещает Facebook, мы передаем ввод обученной модели для запуска и немедленно определяем, какую рекламу показывать.
поиск
Поиск запускает ряд конкретных подпоисковых процессов для различных вертикальных типов (например, видео, фото, люди, действия и т. д.). Слой классификатора запускается перед различными вертикальными типами поиска, чтобы предсказать, какой из вертикальных типов искать, иначе такие вертикальные поиски были бы неэффективными. И сам классификатор, и различные вертикальные поиски состоят из офлайн-этапа для обучения и онлайн-этапа для запуска модели и выполнения функций классификации и поиска.
Sigma
Sigma — это общая структура для классификации и обнаружения аномалий для мониторинга различных внутренних приложений, включая целостность сайта, обнаружение спама, платежи, регистрации, несанкционированный доступ сотрудников и направления событий. Sigma содержит сотни различных моделей, которые ежедневно запускаются в рабочей среде, и каждая модель обучена обнаруживать аномалии или классифицировать контент в более широком смысле.
Lumos
Lumos может извлекать атрибуты и сопоставления высокого уровня из изображений и их содержимого, позволяя алгоритмам автоматически их понимать. Эти данные можно использовать в качестве входных данных для других продуктов и услуг, например, в виде текста.
Facer
Facer — это платформа Facebook для обнаружения и распознавания лиц. Учитывая изображение, он сначала находит все лица на изображении. Затем, запустив алгоритм распознавания лиц для конкретного пользователя, определяется, является ли лицо на картинке другом пользователя. Facebook использует сервис, чтобы рекомендовать друзей, которых пользователи хотят отметить на своих фотографиях.
языковой перевод
Language Translator — это сервис для международного общения с использованием контента Facebook. Facebook поддерживает исходный или целевой язык перевода между более чем 45 языками, что означает, что Facebook поддерживает более 2000 направлений перевода, например, с английского на испанский, с арабского на английский. Благодаря этим более чем 2000 каналам перевода Facebook предоставляет услуги перевода 4,5 млрд слов в день.Благодаря переведённым сообщениям пользователей Facebook может преодолевать языковые барьеры для 600 миллионов человек по всему миру каждый день. В настоящее время для каждого направления языковой пары существует своя модель, но мы рассматриваем и многоязычные модели [6].
Распознавание речи
Распознавание речи — это сервис, который преобразует аудиопотоки в текст. Он может автоматически заполнять субтитры для видео. В настоящее время большая часть потоковой передачи ведется на английском языке, но в будущем будет поддерживаться и распознавание на других языках. В качестве альтернативы, неязыковые аудиофайлы также могут быть обнаружены с помощью аналогичной системы (более простая модель).
В дополнение к основным продуктам, упомянутым выше, существует множество других сервисов с длинным хвостом, которые также используют различные формы машинного обучения. Существуют сотни длинных хвостов продуктов и услуг Facebook.
модель машинного обучения
Все сервисы, основанные на машинном обучении, используют «функции» (или входные данные) для получения количественных результатов. Алгоритмы машинного обучения, используемые Facebook, включают логистическую регрессию (LR), машины опорных векторов (SVM), деревья решений с градиентным усилением (GBDT) и глубокие нейронные сети (DNN).
LR и SVM очень эффективны в обучении и прогнозировании. GBDT может повысить точность за счет увеличения вычислительных ресурсов. DNN являются наиболее выразительными и обеспечивают самую высокую точность, но также используют больше всего ресурсов (по крайней мере, на порядок больше вычислительных ресурсов, чем линейные модели, такие как LR и SVM).
Все три модели имеют все большее количество свободных параметров, и точность предсказания должна быть оптимизирована с помощью размеченных входных примеров.
В глубоких нейронных сетях часто используются три класса сетей: многослойные персептроны (MLP), сверточные нейронные сети (CNN) и рекуррентные нейронные сети (RNN/LSTM). Сети MLP обычно работают со структурированными входными характеристиками (обычно ранжирование), сети RNN/LSTM обычно используются для обработки данных во временной области, т. е. в качестве процессора последовательности (обычно обработка языка), тогда как CNN являются своего рода инструментами обработки пространственных данных. (обычно обработка изображений). В таблице I показано соответствие между этими типами моделей машинного обучения и продуктами/услугами.
ВВ
Таблица 1. Продукты или услуги, использующие алгоритмы машинного обучения
Машинное обучение как услуга в Facebook
Чтобы упростить задачу применения машинного обучения в продуктах, мы создали несколько внутренних платформ и наборов инструментов, включая FBLearner, Caffe2 и PyTorch. FBLearner — это набор из трех инструментов (FBLearner Feature Store, FBLearner Flow, FBLearner Predictor), каждый из которых отвечает за разные части конвейера машинного обучения. Как показано ранее на рис. 1, он использует внутренний планировщик заданий для выделения ресурсов и планирования заданий в общих пулах ресурсов графических и центральных процессоров. Процесс обучения для большинства моделей машинного обучения Facebook выполняется на платформе FBLearner. Эти инструменты и платформы предназначены для того, чтобы помочь инженерам по машинному обучению стать более эффективными, чтобы они могли сосредоточиться на алгоритмических инновациях.
-
Магазин функций FBLearner. Отправной точкой любой задачи моделирования машинного обучения является сбор и создание признаков. Магазин функций FBLearner — это, по сути, каталог генераторов функций, которые можно использовать для обучения и прогнозирования в реальном времени, и, конечно же, он также служит рынком, где несколько команд могут обмениваться функциями и находить их. Такой список функций является отличной платформой для команд, которые только начинают заниматься машинным обучением, а также помогает применять новые функции к существующим моделям.
-
FBLearner Flow — это платформа машинного обучения Facebook для обучения моделей. Flow — это система управления конвейером, которая выполняет рабочий процесс, описывающий шаги, необходимые для обучения и/или оценки модели, а также необходимые для этого ресурсы. Этот рабочий процесс состоит из отдельных блоков или операторов, каждый из которых имеет входы и выходы. Соединения между операторами автоматически обосновываются путем отслеживания потока данных от одного оператора к другому, а Flow выполняет рабочий процесс, обрабатывая планирование и управление ресурсами. Flow также имеет инструмент для управления экспериментами и простой пользовательский интерфейс, который отслеживает все артефакты и метрики, созданные каждым рабочим процессом или экспериментом, что упрощает сравнение этих экспериментов и управление ими.
-
FBLearner Predictor — это внутренний механизм логического вывода Facebook, который использует модели, обученные в Flow, для предоставления прогнозов в реальном времени. Predictor можно использовать как многопользовательскую службу или как библиотеку, интегрированную в серверную службу конкретного продукта. Многие продуктовые команды в Facebook используют Predictor, и многим из этих команд требуется решение с малой задержкой. Прямая интеграция между Flow и Predictor также облегчает проведение экспериментов в режиме онлайн и управление несколькими версиями моделей в производстве.
Фреймворк глубокого обучения
Мы используем две разные платформы для совместной работы для глубокого обучения в Facebook: PyTorch, оптимизированную для исследований, и Caffe2, оптимизированную для производства.
-
Caffe2 — это внутренняя рабочая среда Facebook для обучения и развертывания крупномасштабных моделей машинного обучения. Caffe2 фокусируется на нескольких ключевых функциях, необходимых для продукта: производительность, кроссплатформенная поддержка и базовые алгоритмы машинного обучения, такие как сверточные нейронные сети (CNN), рекуррентные нейронные сети (RNN) и многослойные персептроны (MLP). Все эти сети имеют разреженные или плотные соединения и до десятков миллиардов параметров. Платформа разработана с использованием модульного подхода, разделяющего унифицированное представление графа во всех внутренних реализациях (ЦП, ГП и ускорители). Чтобы добиться наилучшего времени выполнения на разных платформах, Caffe2 также абстрагирует сторонние библиотеки, включая cuDNN, MKL и Meta.
-
PyTorch — это фреймворк, выбранный Facebook для исследований ИИ. Его интерфейс ориентирован на гибкость, отладку и динамические нейронные сети для быстрого экспериментирования. Он не оптимизирован для производства и мобильного развертывания из-за того, что его выполнение зависит от Python. Когда исследовательский проект дает ценные результаты, модель необходимо перевести в производство. В прошлом в производственной среде мы выполняли перенос модели, переписывая конвейер обучения для производственной среды с использованием других фреймворков. Недавно Facebook начал создавать цепочку инструментов ONNX, чтобы упростить этот процесс передачи. Например, динамические нейронные сети используются в передовых исследованиях искусственного интеллекта, но для использования этих моделей в продуктах требуется больше времени. Разделяя структуру, мы избегаем необходимости разрабатывать более сложные механизмы выполнения (такие как Caffe2) для повышения производительности. Кроме того, исследователи ценят гибкость своих моделей больше, чем скорость их исследования. Например, падение производительности на 30 % на этапе исследования модели вполне допустимо, особенно если оно имеет такие преимущества, как простое тестирование и визуализация модели. Но этот же метод не подходит для производства. Этот принцип компромисса также можно увидеть в дизайне платформы PyTorch и Caffe 2. PyTorch обеспечивает хорошие параметры по умолчанию и разумную производительность, в то время как Caffe 2 может использовать асинхронное выполнение графа, квантованные веса и несколько выделенных серверных частей для достижения этой цели. .
Хотя сама платформа FBLearner не ограничивает использование каких-либо фреймворков, будь то Caffe2, TensorFlow, PyTorch или другие фреймворки, наша команда AI Software Platform (AI Software Platform) провела определенную работу, чтобы FBLearner хорошо интегрировался с Caffe2. , оптимизация. В целом, разделение исследовательской и производственной платформ (PyTorch и Caffe2 соответственно) позволяет нам гибко работать с обеих сторон, уменьшая количество ограничений при добавлении новых функций.
-
ONNX Экосистема инструментов глубокого обучения в отрасли все еще находится в зачаточном состоянии. Для разных подмножеств проблем разные инструменты имеют разные преимущества и разные компромиссы в гибкости, производительности и поддерживаемых платформах, точно так же, как компромиссы, которые мы описали ранее для PyTorch и Caffe2. Поэтому существует большая потребность в обмене обученными моделями между различными фреймворками или платформами. Чтобы компенсировать этот недостаток, в конце 2017 года Facebook вместе с несколькими партнерами запустил Open Neural Network Exchange (ONNX). ONNX — это стандартный формат представления моделей глубокого обучения, обеспечивающий взаимодействие между различными платформами и библиотеками, оптимизированными поставщиками. В то же время он может удовлетворить потребности в обмене обученными моделями между различными фреймворками или платформами. ONNX разработан как открытая спецификация, которая позволяет авторам фреймворков и поставщикам оборудования вносить в нее свой вклад с помощью различных трансляторов между фреймворками и библиотеками. Facebook усердно работает над тем, чтобы сделать ONNX партнером для совместной работы всех этих инструментов, а не эксклюзивным официальным стандартом.
Внутри Facebook ONNX является нашим основным средством перемещения исследовательских моделей из среды PyTorch в высокопроизводительную производственную среду в Caffe2, которая позволяет автоматически захватывать и переводить фиксированные части модели.
Внутри Facebook ONNX является нашим основным средством переноса исследовательских моделей из среды PyTorch в высокопроизводительную производственную среду в Caffe2. ONNX предоставляет возможность автоматически захватывать и преобразовывать статические части модели. У нас есть дополнительная цепочка инструментов, которая поможет переносить модели из Python в динамические графы, сопоставляя их с примитивами потока управления в Caffe2 или переопределяя их в C++ в виде пользовательских операторов.
Требования к ресурсам для машинного обучения
Учитывая, что машинное обучение различается по требованиям к ресурсам, частоте и продолжительности этапов обучения и вывода, мы обсудим детали и использование ресурсов этих двух этапов отдельно.
Обзор аппаратных ресурсов Facebook
Инфраструктура Facebook давно занимается созданием эффективных платформ для основных программных сервисов, включая серверы, хранилища и сетевую поддержку с учетом требований к ресурсам для каждой основной рабочей нагрузки.
ВВ
Рис. 2. Вычислительный сервер на базе ЦП. В салазках для серверов с одним сокетом установлены 4 серверные карты Monolake, а в салазках для серверов с 2 сокетами также имеется сервер с 2 сокетами, то есть всего три сервера с 2 сокетами в корпусе 2U. Таким образом, в комбинации в форме 2U всего 12 серверов.
В настоящее время Facebook предлагает около восьми основных архитектур вычислений и хранения, соответствующих восьми основным сервисам. Этих основных типов архитектуры достаточно для удовлетворения требований к ресурсам основных сервисов Facebook. Например, на рис. 2 показана стойка высотой 2U, в которой можно разместить три вычислительных модуля Sleds, поддерживающих два типа серверов. Один из модулей Sled представляет собой сервер ЦП с одним сокетом (1xCPU), в основном используемый на веб-уровне — служба без сохранения состояния, где основное внимание уделяется пропускной способности, поэтому можно использовать более энергоэффективный ЦП (процессор Broadwell-D); его DRAM (32 ГБ) и менее на жестком диске материнской платы или во флэш-памяти.
Другой модуль Sled представляет собой более крупный двухпроцессорный сервер ЦП (2 мощных ЦП Broadwell-EP или Skylake SP) с большим объемом DRAM и часто используется для служб, требующих большого объема вычислений и хранения.
БытьБыть
Рисунок 3. Сервер Big Basin GPU с 8 GPU (стойка 3U)
Поскольку мы обучаем более крупные и глубокие нейронные сети, мы разработали сервер с графическим процессором Big Basin (показан на рис. 3), наш новейший сервер с графическим процессором в 2017 году. Первоначальный сервер графического процессора Big Basin был сконфигурирован с восемью взаимосвязанными ускорителями графического процессора NVIDIA Tesla P100, которые использовали NVIDIA NVLink для формирования гибридной кубической сетки из восьми процессоров. Эта конструкция позже была усовершенствована и применена к графическим процессорам V100.
Big Basin является преемником предыдущего графического процессора Big Sur, первой широко используемой высокопроизводительной вычислительной платформы искусственного интеллекта в центрах обработки данных Facebook для поддержки разработки и выпуска NVIDIA в 2015 году в рамках проекта Open Compute Project.
По сравнению с Big Sur, V100 Big Basin обеспечивает более высокую производительность на ватт благодаря блоку с плавающей запятой одинарной точности — от 7 терафлопс (терафлопс) на GPU, увеличенному до 15,7 терафлопс, и памяти с высокой пропускной способностью (HBM2), обеспечивающей 900 ГБ/ч. пропускной способности. Эта новая архитектура также удваивает скорость операций половинной точности, еще больше увеличивая вычислительную производительность.
Поскольку Big Basin имеет более высокую вычислительную производительность и увеличенный объем видеопамяти с 12 ГБ до 16 ГБ, его можно использовать для обучения моделей на 30% больше, чем в предыдущих моделях. Распределенное обучение также улучшается за счет высокоскоростного соединения NVLink с графическим процессором. В тестах с использованием модели классификации изображений ResNet-50 вычислительная мощность Big Basin на 300% выше, чем у Big Sur, что позволяет нам обучать более сложные модели быстрее, чем когда-либо прежде.
Facebook объявил о дизайне всех этих вычислительных серверов, а также нескольких платформ хранения в рамках проекта Open Compute.
Требования к ресурсам для автономного обучения
В настоящее время разные продукты используют разные вычислительные ресурсы для выполнения шагов автономного обучения. Некоторые продукты (например, Lumos) полностью тренируются на графическом процессоре. Другие, такие как Sigama, проводят все обучение на двухпроцессорных вычислительных серверах. В таких продуктах, как Facer, используется двухэтапный процесс обучения: сначала универсальная модель обнаружения и распознавания лиц обучается на GPU с очень небольшой частотой (раз в несколько месяцев), а затем с высокой частотой на тысячах серверов с 1xCPU. специальное обучение для каждого пользователя.
В этом разделе мы опишем сведения о различных услугах, связанных с обучающей платформой машинного обучения, частоте и продолжительности обучения, которые сведены в Таблицу II. Кроме того, мы обсуждаем тенденции в наборах данных и то, что эти тенденции означают для вычислений, памяти, хранения и сетевых архитектур.
-
Тип расчета и относительное расположение источника данных. Офлайн-обучение можно проводить как на CPU, так и на GPU, в зависимости от самого сервиса. Хотя модели, обученные на GPU, в большинстве случаев работают лучше, чем модели, обученные на CPU, мощная готовая вычислительная мощность CPU делает ее очень полезной платформой. Это особенно заметно в непиковые часы дня, когда ресурсы ЦП в противном случае недоступны, как показано на рис. 4 ниже. Ниже мы приводим соответствие между сервисами и моделями обучения вычислительных ресурсов:
-
Сервисы для обучения моделей на GPU: Lumos, распознавание речи, языковой перевод
-
Сервисы, обучающие модели на CPU: News Feed, Sigma
-
Сервисы для обучения моделей на GPU и CPU: Facer (модели общего назначения, обучаемые раз в несколько лет на GPU, такие модели более стабильны; пользовательские модели, обучаемые на 1xCPU, такие модели можно использовать для обработки новых данных изображений), поиск (с использованием несколько независимых вертикальных поисковых систем, использующих классификатор, который может делать прогнозы для запуска наиболее подходящей вертикальной поисковой системы).
В настоящее время графические процессоры в основном используются для автономного обучения, а не для предоставления пользователям данных в реальном времени. Потому что большинство архитектур графических процессоров оптимизированы для вычислительной пропускной способности, чтобы преодолеть недостатки задержки. В то же время, поскольку процесс обучения в значительной степени зависит от данных, полученных из больших библиотек генерации данных, графический процессор должен быть расположен близко к источнику данных из соображений производительности и пропускной способности. Поскольку объем данных, используемых для обучения моделей, растет довольно быстро, становится все более важным, чтобы графический процессор находился близко к источнику данных.
-
Память, хранилище и сеть. С точки зрения емкости внутренней памяти платформы ЦП и ГП обеспечивают достаточную емкость для обучения. Даже для таких приложений, как Facer, пользовательские модели SVM можно обучать на 1xCPU с 32 ГБ ОЗУ. Общая эффективность обучения платформы будет превосходной, если эффективная платформа и избыточная емкость хранилища будут использоваться максимально.
Служить |
ресурс |
частота тренировок |
продолжительность обучения |
News Feed |
ЦП с одним сокетом |
Один раз в день |
часы |
Facer |
Графические процессоры + процессоры с одним сокетом |
Один раз каждые N фотографий |
секунды |
Lumos |
GPUs |
каждые несколько месяцев |
часы |
поиск |
Vertical Dependent |
ежечасно |
часы |
языковой перевод |
GPUs |
раз в неделю |
несколько дней |
Sigma |
ЦП с двумя сокетами |
несколько раз в день |
часы |
Распознавание речи |
GPUs |
раз в неделю |
часы |
Таблица II Частота, продолжительность и ресурсы офлайн-обучения для различных служб
Системы машинного обучения полагаются на обучение с использованием примеров данных. Facebook использует огромные объемы данных из конвейеров данных машинного обучения. Это делает вычислительные ресурсы ближе к базе данных.
Со временем большинство сервисов проявят тенденцию к использованию накопленных пользовательских данных, что приведет к тому, что эти сервисы станут более зависимыми от других сервисов Facebook и потребуют большей пропускной способности сети для получения данных. Поэтому развертывайте огромное хранилище только в источнике данных или рядом с ним для передачи данных в масштабе из удаленных областей, что позволяет избежать отключения конвейера обучения в ожидании дополнительных выборочных данных.
Мы также можем использовать этот подход при размещении учебных машин, чтобы учебный парк не создавал чрезмерной нагрузки на близлежащие ресурсы хранения.
Объем данных, используемых разными сервисами во время офлайн-обучения, сильно различается. Наборы обучающих данных почти для всех сервисов демонстрируют тенденцию к постоянному или даже существенному росту. Например, некоторые сервисы используют миллионы строк данных до снижения ROI, другие используют десятки миллиардов строк данных (100+ ТБ) и ограничены только ресурсами.
-
Соображения по масштабированию и распределенное обучение. Процесс обучения нейронной сети включает в себя оптимизацию весов параметров с использованием стохастического градиентного спуска (SGD). Этот метод используется для настройки нейронной сети для итеративного обновления весов путем оценки небольшого подмножества (то есть «пакета» или «мини-пакета») помеченных экземпляров. При параллелизме данных сеть создает несколько копий модели (параллельных экземпляров) для параллельной обработки пакетов данных.
При использовании машины для обучения модели более крупные или более глубокие модели приводят к лучшим результатам обучения и более высокой точности, но обучение таких моделей часто требует обработки большего количества выборок. При обучении на одной машине мы можем максимизировать эффект обучения за счет увеличения количества реплик модели и выполнения параллелизма данных на нескольких графических процессорах.
Поскольку объем данных, необходимых для обучения, со временем увеличивается, аппаратные ограничения приводят к увеличению общей задержки обучения и времени конвергенции. Однако мы можем использовать распределенное обучение, чтобы преодолеть эти аппаратные ограничения и уменьшить задержку. Эта область исследований довольно популярна в Facebook и в сообществе исследователей ИИ в целом.
Распространено предположение, что реализация параллелизма данных на разных машинах требует использования специализированного механизма взаимосвязи. Однако в ходе нашего исследования распределенного обучения мы обнаружили, что сети на основе Ethernet могут обеспечивать примерно линейную масштабируемость. Возможность достижения приблизительного линейного расширения тесно связана с размером модели и пропускной способностью сети.
Если пропускная способность сети слишком мала, на синхронизацию параметров уйдет больше времени, чем на вычисление градиента, и преимущества параллелизма данных на разных машинах будут сильно снижены. Используя сетевую карту Ethernet 50G, мы смогли масштабировать обучение нашей модели машинного зрения с сервером Big Basin, и синхронизация между машинами вообще не представляла проблемы.
Во всех случаях необходимо обмениваться обновлениями с другими репликами с использованием методов синхронизации (каждая реплика видит одно и то же состояние), согласованности (каждая реплика генерирует правильные обновления) и производительности (сублинейное масштабирование), что может повлиять на качество обучения. Например, службы перевода в настоящее время не могут обучать большие пакеты мини-пакетов без ухудшения качества модели.
И наоборот, с определенными настройками гиперпараметров мы можем обучать модели классификации изображений на очень больших мини-пакетных наборах данных и масштабировать их до более чем 256 графических процессоров.
Эксперименты показали, что в одном из крупных сервисов Facebook выполнение параллелизма данных на 5-кратных машинах может повысить эффективность обучения в 4 раза (например, обучение набора моделей, на обучение которого уходило более 4 дней, ранее можно было обучить в общей сложности 100 различных моделей). кластер машин теперь может обучать только те же 20 моделей в день, что снижает эффективность обучения на 20%, но сокращает потенциальное время ожидания инженерного прогресса с 4 дней до 1 дня).
Если модель становится очень большой, в это время можно использовать параллельное обучение для группировки и распределения слоев модели для оптимизации эффективности обучения, а блоки активации можно передавать между машинами. Оптимизация может быть связана с пропускной способностью сети, задержкой или балансировкой внутренних ограничений машины. Это увеличивает сквозную задержку модели, поэтому увеличение исходной производительности на каждом временном шаге обычно связано со снижением качества шага. Это может еще больше снизить точность модели на каждом шаге. Падение точности на каждом шаге со временем будет накапливаться, так что мы сможем прийти к оптимальному количеству шагов для параллельной обработки.
Сама модель DNN разработана таким образом, что может работать только на одной машине, и на этапе логического вывода разделение графа модели между машинами часто приводит к интенсивному обмену данными между машинами. Но основной сервис Facebook постоянно взвешивает все за и против модели масштабирования. Эти соображения могут определять изменения в требованиях к пропускной способности сети.
Служить |
относительная вычислительная мощность |
рассчитать |
ОЗУ |
News Feed |
100X |
ЦП с двумя сокетами |
высокий |
Facer |
10X |
ЦП с одним сокетом |
Низкий |
Lumos |
10X |
ЦП с одним сокетом |
Низкий |
поиск |
10X |
ЦП с двумя сокетами |
высокий |
языковой перевод |
1X |
ЦП с двумя сокетами |
высокий |
Sigma |
1X |
ЦП с двумя сокетами |
высокий |
Распознавание речи |
1X |
ЦП с двумя сокетами |
высокий |
Таблица III. Требования к ресурсам для онлайн-сервисов рассуждений.
Требования к ресурсам для онлайн-рассуждений
На этапе онлайн-вывода после автономного обучения нам нужно загрузить модель в машину и запустить модель с вводом данных в реальном времени, чтобы получить результаты трафика веб-сайта в реальном времени.
Далее мы обсудим онлайн-модель вывода в практическом применении, модель ранжирования рекламы. Эта модель может просеивать тысячи объявлений и отображать объявления с рейтингом от 1 до 5 в ленте сообщений. Этот процесс осуществляется путем выполнения все более сложных проходов ранжирования последовательно уменьшающихся подмножеств рекламных объявлений.
В каждом раунде используется модель, похожая на многоуровневую модель восприятия (MLP), которая содержит разреженные слои встраивания, и каждый раунд уменьшает количество рекламных объявлений. Слой разреженного внедрения требует много памяти, поэтому, когда дело доходит до более поздних операций, модель имеет большее количество гиперпараметров и будет работать на сервере, отдельном от раундов MLP.
С вычислительной точки зрения, подавляющее большинство онлайн-инференсов выполняется на большом количестве процессоров 1xCPU (один сокет) или 2xCPU (двойной сокет). Поскольку 1xCPU является более производительным и экономичным для сервисов Facebook, Facebook выступает за использование серверов 1xCPU для обучения моделей, когда это возможно.
С появлением высокопроизводительного мобильного оборудования Facebook может даже запускать определенные модели непосредственно на мобильных устройствах пользователей, чтобы сократить время задержки и снизить затраты на связь. Однако для некоторых служб, требующих больших вычислительных ресурсов и ресурсов памяти, по-прежнему требуется 2xCPU для оптимальной производительности.
Разные продукты имеют разные требования к задержке при получении результатов онлайн-логического вывода. В некоторых случаях результирующие данные могут быть «очень хорошими» или они могут быть повторно введены в модель после того, как пользователю будет возвращена первоначальная быстрая оценка. Например, в некоторых случаях может быть приемлемо классифицировать что-то как подходящее, но эта предварительная классификация отменяется при запуске более сложной модели.
Такие модели, как ранжирование объявлений и отправка сообщений, настроены на стабильные соглашения об уровне обслуживания, чтобы доставлять пользователям нужный контент. Эти SLA определяют сложность и зависимости модели, поэтому с большей вычислительной мощностью мы можем обучать более продвинутые модели.
машинное обучение вычисление данных
Помимо требований к ресурсам, при развертывании машинного обучения в центре обработки данных необходимо учитывать несколько важных факторов, в том числе потребность в критически важных данных и надежности перед лицом стихийных бедствий.
От получения данных к модели
Основным фактором успеха многих моделей машинного обучения Facebook является широкая доступность высококачественных данных. Возможность быстро обрабатывать и передавать эти данные в модель машинного обучения позволяет нам развертывать быстрое и эффективное обучение в автономном режиме.
Для сложных приложений машинного обучения, таких как реклама и ранжирование, объем данных, необходимых для каждой учебной задачи, превышает сотни терабайт. Кроме того, использование сложной логики предварительной обработки обеспечивает очистку и нормализацию данных для эффективной передачи и облегчения обучения. Эти операции очень ресурсоемки, особенно требования к хранилищу, сети и ЦП.
В качестве общего решения мы пытаемся отделить данные от учебной нагрузки. Обе рабочие нагрузки имеют очень важные характеристики. С одной стороны, он очень сложный, временный, бизнес-зависимый и быстро меняющийся. С другой стороны, учебные рабочие нагрузки обычно являются фиксированными (например, GEMM), стабильными (относительно меньше основного бизнеса), высокооптимизированными и предпочитают работать в «чистой» среде (например, эксклюзивное использование кэша и минимальное количество потоков).
Чтобы оптимизировать и то, и другое, мы физически изолируем разные рабочие нагрузки на разных машинах. Машины обработки данных, также известные как «считыватели», считывают данные из памяти, обрабатывают и сжимают их, а затем передают результаты обратно на обучающую машину, называемую «тренажерами». С другой стороны, тренеры сосредоточены только на быстром и эффективном выполнении задач. Читатели и тренажеры можно распространять, чтобы обеспечить большую гибкость и масштабируемость приложения. Кроме того, мы оптимизировали конфигурации машин для различных рабочих нагрузок.
Еще одним важным показателем оптимизации является использование сети. Трафик данных, генерируемый в процессе обучения, очень важен и иногда возникает внезапно. Без интеллектуальной обработки это может легко привести к перегрузке сетевого оборудования и даже создать помехи другим службам. Для решения этих проблем мы используем оптимизацию сжатия, алгоритмы планирования, макеты данных/вычислений и многое другое.
БытьБыть
Воспользуйтесь преимуществами масштаба
Как глобальная компания, обслуживающая пользователей, Facebook должна поддерживать большое количество серверов, предназначенных для обработки пиковых нагрузок в любое время. Как показано на рисунке, большое количество серверов обычно простаивает в течение определенного периода времени, поскольку активность пользователей варьируется в зависимости от ежедневной нагрузки и пиков во время особых событий (например, региональных праздников).
Это высвобождает много вычислительных ресурсов, доступных в непиковые часы. Используйте эти возможные разнородные ресурсы для рационального и гибкого распределения различных задач. Это большая возможность, которую Facebook в настоящее время пытается изучить. Для приложений машинного обучения это дает возможность применить преимущества масштабируемого распределенного механизма обучения к большому количеству разнородных ресурсов, таких как платформы ЦП и ГП с различным распределением оперативной памяти. Однако это также приносит некоторые проблемы. В эти периоды низкого использования большое количество доступных вычислительных ресурсов принципиально приведет к различиям в распределенных подходах к обучению.
Планировщик должен сначала правильно сбалансировать нагрузку на разнородное оборудование, чтобы хосту не приходилось ждать выполнения других процессов ради синхронизации. Когда обучение охватывает несколько хостов, планировщик должен также учитывать топологию сети и стоимость синхронизации. Синхронизация внутри или между стойками, если ее не обрабатывать должным образом, может генерировать значительный трафик, что может значительно снизить скорость и качество обучения.
Например, в схеме 1xCPU четыре хоста 1xCPU совместно используют сетевую карту 50G. Если все четыре хоста попытаются одновременно синхронизироваться с градиентами других хостов, общая сетевая карта может быстро стать узким местом, вызывая отбрасывание пакетов и тайм-ауты запросов. Следовательно, для эффективного использования простаивающих серверов в нерабочее время требуется общая топология проекта и планировщик между сетями. Кроме того, такой алгоритм также должен обеспечивать возможность проверки остановки и возобновления тренировки при изменении нагрузки.
Возможность аварийного восстановления
Возможность беспрепятственно справиться с потерей части глобальных вычислительных ресурсов, хранилищ и сети Facebook была долгосрочной целью инфраструктуры Facebook. Группа аварийного восстановления Facebook регулярно проводит внутренние учения для выявления и устранения самых слабых звеньев в мировой инфраструктуре и стеке программного обеспечения. Действия по прерыванию работы включают в себя отключение всего центра обработки данных без предупреждения, чтобы подтвердить, что потеря наших глобальных центров обработки данных вызовет минимальные нарушения работы бизнеса.
Для частей машинного обучения, связанных с обучением и выводом, важность аварийного восстановления очевидна. Хотя мысль о том, что процесс рассуждений, управляющий несколькими ключевыми элементами, важен, неудивительна, все же было неожиданностью обнаружить зависимость от частых тренировок, прежде чем заметили измеримую деградацию нескольких ключевых элементов.
Далее обсуждается важность частого обучения машинному обучению для трех основных продуктов, а также обсуждается поддержка инфраструктуры, необходимая для этого частого обучения, и то, как все это сочетается с аварийным восстановлением.
-
Что произойдет, если модель не будет обучена? Мы анализируем три ключевых сервиса, обученных с помощью машинного обучения, чтобы определить влияние тех, которые не выполняют операции часто, для обучения обновленных моделей (включая рекламу, новости) и целостность сообщества. Наша цель — понять последствия потери возможности обучать модель в течение недели, месяца или шести месяцев.
Первое очевидное влияние — это эффективность инженеров, поскольку прогресс в машинном обучении часто связан с частыми экспериментами. Хотя многие модели можно обучать на процессорах, обучение на графических процессорах часто может значительно повысить производительность модели. Эти ускорения приводят к сокращению времени итерации модели и возможности исследовать больше идей. Следовательно, потеря GPU приведет к снижению производительности этих инженеров.
Кроме того, мы выявили значительное влияние этой проблемы на продукты Facebook, особенно те, которые часто обновляют свои модели. Мы суммируем проблемы, возникающие, когда в этих продуктах используются более старые модели.
-
Социальная безопасность: создание безопасного места, где люди могли бы обмениваться информацией и общаться, лежит в основе миссии Facebook. В основе этой миссии лежит оперативное и точное обнаружение оскорбительного контента. Наша команда социального обеспечения в значительной степени полагается на использование методов машинного обучения для обнаружения оскорбительного текста, изображений и видео. Обнаружение оскорбительного содержания — это специализированная форма обнаружения спама. Злоумышленники постоянно находят новые инновационные способы обхода наших идентификаторов и показа нежелательного контента нашим пользователям. Facebook часто обучает моделей изучению этих новых шаблонов. Каждая итерация обучения занимает несколько дней, чтобы создать точную модель для обнаружения нежелательных изображений. Мы продолжаем расширять границы использования методов распределенного обучения для более быстрого обучения моделей, но неполное обучение может привести к ухудшению качества контента.
-
Обмен сообщениями. Наши результаты неудивительны: такие продукты, как Messaging, в значительной степени зависят от машинного обучения и частого обучения моделей. Определение наиболее релевантного контента для пользователей каждый раз, когда они посещают наш сайт, в значительной степени зависит от передовых алгоритмов машинного обучения для правильного поиска и ранжирования контента. В отличие от некоторых других продуктов, ранжирование каналов изучается в два этапа: автономный этап — обучение лучшей модели на ЦП/ГП, а онлайн-этап — непрерывное онлайн-обучение на ЦП. Устаревшая модель push-уведомлений оказывает количественное влияние на качество сообщений. Команда обмена сообщениями постоянно вносит новшества в свою модель ранжирования и имитирует модель в течение нескольких часов непрерывного обучения, чтобы улучшить модель. А если дата-центр отключится на неделю, расчет потерь в процессе обучения может затормозить прогресс команды в изучении новых моделей возможностей и новых параметров.
-
Объявления: больше всего удивляет важность обучения частым шаблонам ранжирования объявлений. Поиск и отображение подходящей рекламы во многом зависит от машинного обучения и его инноваций. Чтобы подчеркнуть важность этой зависимости, мы узнали, что влияние использования устаревших моделей машин измеряется часами. Другими словами, использование старой модели намного хуже, чем использование модели, которая обучалась всего час.
В целом, наш опрос подчеркивает важность обучения машинному обучению для многих продуктов и сервисов Facebook. В условиях растущих рабочих нагрузок нельзя недооценивать аварийное восстановление.
Быть
-
Поддержка архитектуры аварийного восстановления. На приведенном выше рисунке показано глобальное распределение инфраструктуры центра обработки данных Facebook. Если мы сосредоточимся на доступности ресурсов ЦП во время обучения и логического вывода, то у нас будет достаточно вычислительных мощностей, чтобы справиться с потерей серверов почти в каждом регионе. Изначально важность обеспечения равной избыточности ресурсов графического процессора недооценивалась. Однако первоначальная рабочая нагрузка для обучения с помощью графических процессоров — это в основном приложения для компьютерного зрения и данные, необходимые для обучения этих моделей, которые можно воспроизвести по всему миру. Когда графические процессоры были впервые развернуты в инфраструктуре Facebook, казалось разумным работать в одной области для обеспечения управляемости, и до тех пор, пока дизайн не созреет, мы могли накапливать собственный опыт на основе их требований к обслуживанию и обслуживанию. Результатом этих двух факторов является то, что мы физически изолируем все производственные графические процессоры в другой области центра обработки данных.
Однако с тех пор произошло несколько ключевых изменений. Важность вычислений на графическом процессоре и больших данных будет возрастать по мере того, как все больше и больше продуктов используют методы глубокого обучения, включая ранжирование, рекомендации и понимание контента. Кроме того, размещение вычислительных данных и их усложнение — это путь хранения к мегарегиональному стратегическому центру. Концепция больших регионов означает, что в нескольких регионах центра обработки данных будет храниться большая часть данных Facebook. Кстати, все кластеры GPU в регионе не находятся в большом хранилище.
Поэтому, помимо важности совместного размещения вычислений данных, становится еще важнее подумать о том, какие возможные сценарии заставят нас полностью потерять площадь GPU. И результат этого рассмотрения побуждает нас развертывать различные физические местоположения графических процессоров для обучения машинному обучению.
Будущие направления проектирования: аппаратное обеспечение, программное обеспечение и алгоритмы
По мере роста сложности модели и размера набора данных растут и вычислительные потребности машинного обучения. Рабочие нагрузки машинного обучения отражают многие алгоритмические и числовые свойства, влияющие на выбор оборудования.
Мы знаем, что свертки и умножение матриц среднего размера являются ключевыми вычислительными ядрами для процессов глубокого обучения с прямой и обратной связью. При больших размерах пакетов вес каждого параметра используется повторно чаще, поэтому для этих ядер необходимо улучшить арифметическую интенсивность (количество вычислительных операций на байт доступной памяти). Увеличение интенсивности арифметических вычислений обычно повышает эффективность базового оборудования, поэтому с учетом ограничений задержки рекомендуется работать с большими пакетами данных. Вычисление верхней и нижней границ нагрузки на машинное обучение облегчит использование более широких блоков SIMD, а также развертывание специализированных механизмов сверточного или матричного умножения, специализированных сопроцессоров.
Использование небольших пакетов данных для каждого узла также необходимо в некоторых случаях при выводе данных в реальном времени, когда число одновременных запросов невелико, или при масштабировании до большого количества узлов во время обучения. Небольшие размеры пакетов обычно имеют меньшую арифметическую интенсивность (например, векторное умножение матриц в полностью связанных слоях, которые по своей природе ограничены пропускной способностью). Такие небольшие пакеты данных могут снизить производительность в нескольких распространенных случаях, когда полная модель не помещается в ячейку SRAM на кристалле или в кэш-память последнего уровня.
Эта проблема может быть смягчена путем сжатия модели, квантования и памяти с высокой пропускной способностью. Сжатие модели может быть достигнуто посредством и/или разреженности квантования. Разреженность сокращает связи во время обучения, что приводит к уменьшению модели. Квантование использует целочисленный формат с фиксированной запятой или более узкий формат с плавающей запятой для сжатия модели вместо FP32 (с плавающей запятой одинарной точности) для взвешивания и активации. Уже есть некоторые широко используемые сети, использующие 8-битные или 16-битные, которые оказались достаточно точными. Также в настоящее время ведутся исследовательские работы с использованием 1 или 2 бит для сжатия весов моделей. В дополнение к уменьшению объема памяти, обрезка и квантование также могут ускорить базовое оборудование за счет уменьшения пропускной способности и позволить аппаратным архитектурам иметь более высокие вычислительные скорости при работе с числами с фиксированной запятой, что более эффективно, чем работа со значениями FP32.
Для сокращения времени обучения и ускорения доставки модели требуется распределенное обучение. Как обсуждалось в разделе IVB, распределенное обучение требует тщательного совместного проектирования топологии сети и планирования для эффективного использования оборудования и достижения хорошего обучения и качества. Как описано в части III, раздел B, наиболее широко используемой формой параллелизма в распределенном обучении является параллелизм данных, который требует синхронизации градиентного спуска по всем узлам, синхронно или асинхронно. Синхронизация SGD требует операций all-reduce. Интересное свойство, демонстрируемое всеми операциями сокращения при выполнении с использованием рекурсивного удвоения (и деления пополам), заключается в том, что требования к пропускной способности уменьшаются экспоненциально с уровнем рекурсии.
Это способствует проектированию иерархических систем, в которых узлы образуют соединения суперузлов в нижней части иерархии (например, соединения точка-точка или высокоуровневые коммутаторы через точки с высокой пропускной способностью); наверху иерархии суперузлы связаны между собой. через более медленное сетевое соединение (например, Ethernet). Другими словами, асинхронный SGD (без ожидания обработки пакета другими узлами) сложнее и обычно должен выполняться через общий сервер параметров; узлы отправляют свои обновления на сервер параметров, который агрегирует и распределяет их обратно по узлам. Чтобы уменьшить устаревание обновлений и уменьшить нагрузку на сервер параметров, хорошей идеей может быть гибридный дизайн. В такой схеме асинхронные обновления происходят на локальных узлах с высокой пропускной способностью и малой задержкой соединения внутри суперузлов, в то время как синхронные обновления происходят между суперузлами. Дальнейшее повышение масштабируемости требует увеличения размера пакета без ущерба для сходимости. Это активная область алгоритмических исследований как внутри, так и за пределами Facebook.
Как описано во второй части, наша миссия в Facebook — создавать высокопроизводительные и энергоэффективные системы машинного обучения для приложений, основанных на машинном обучении. Мы постоянно оцениваем и создаем новые аппаратные решения и следим за алгоритмическими изменениями и их потенциальным влиянием на систему.
в заключении
Возрастающая важность рабочих нагрузок, основанных на машинном обучении, влияет на все части системного стека. Как сообщество компьютерной архитектуры лучше всего отреагирует на это и связанные с этим проблемы, станет предметом все большего беспокойства. Хотя ранее мы проделали большую работу по эффективной обработке необходимых вычислений для обучения и вывода ML, это меняется с учетом проблем, которые возникнут при применении решения к крупномасштабным данным.
В Facebook мы обнаружили несколько ключевых факторов, которые важны при масштабировании и принятии проектных решений для инфраструктуры центра обработки данных: важность совместного размещения данных с компьютерами, обработка различных рабочих нагрузок машинного обучения (не только визуализации компьютеров), возможности, предоставляемые оставшаяся мощность, созданная внепиковым дневным циклом. Мы принимаем во внимание каждый из этих факторов при разработке комплексного решения, которое включает специально разработанное, простое в использовании оборудование с открытым исходным кодом и экосистему программного обеспечения с открытым исходным кодом, которое сочетает в себе производительность и удобство использования. Эти решения в настоящее время обеспечивают крупномасштабные рабочие нагрузки машинного обучения, обслуживающие более 2,1 миллиарда человек, а также воплощают в себе усилия соответствующих экспертов по алгоритмам машинного обучения и проектированию систем.
Оригинал: https://research.fb.com/wp-content/uploads/2017/12/hpca-2018-facebook.pdf
Отсканируйте QR-код, чтобы подписаться на «Искусственный интеллект Toutiao».
Ответ на «Дорожную карту технологий» для ИИ Дорожная карта развития технических талантов