задний план
В качестве основной технологии в эпоху искусственного интеллекта глубокое обучение применялось во многих сценариях. На уровне проектирования системы из-за его интенсивного вычислительного характера существует много отличий от традиционных алгоритмов машинного обучения в инженерной практике. В этой статье будет представлен некоторый опыт системного проектирования платформы Meituan в процессе применения технологии глубокого обучения.
В этой статье сначала будет перечислено количество вычислений, необходимых для некоторых алгоритмов глубокого обучения, а затем представлены некоторые распространенные в отрасли решения для удовлетворения этих объемов вычислений. Наконец, мы представим опыт платформы Meituan в разработке связанных систем в области NLU и распознавания речи.
Вычислительный объем глубокого обучения
Model | Input Size | Param Size | Flops |
---|---|---|---|
AlexNet | 227 x 227 | 233 MB | 727 MFLOPs |
CaffeNet | 224 x 224 | 233 MB | 724 MFLOPs |
VGG-VD-16 | 224 x 224 | 528 MB | 16 GFLOPs |
VGG-VD-19 | 224 x 224 | 548 MB | 20 GFLOPs |
GoogleNet | 224 x 224 | 51 MB | 2 GFLOPs |
ResNet-34 | 224 x 224 | 83 MB | 4 GFLOPs |
ResNet-152 | 224 x 224 | 230 MB | 11 GFLOPs |
SENet | 224 x 224 | 440 MB | 21 GFLOPs |
Источники данныхВ приведенной выше таблице указан размер модели общих алгоритмов распознавания изображений ImageNet и объем вычислений, необходимых для одного прохода одного изображения.
С 2012 года ученик Хинтона Алекс Крижевский предложил AlexNet и одним махом завоевал корону ILSVRC 2012, точность чемпиона соревнований ILSVRC становилась все выше и выше. При этом используемые в них алгоритмы глубокого обучения становятся все более сложными, а также увеличивается объем необходимых вычислений. По сравнению с AlexNet, SENet требует почти в 30 раз больше вычислений. Мы знаем, что ImageNet содержит около 1,2 миллиона изображений.В качестве примера возьмем SENet, если вы хотите завершить полное обучение 100 эпох, потребуется 2,52 * 10 ^ 18 вычислений. Такой огромный объем вычислений намного превышает возможности традиционных алгоритмов машинного обучения. Не говоря уже о том, что Google находится в газете«Пересмотр необоснованной эффективности данных в эпоху глубокого обучения»Набор данных, упомянутый в , в 300 раз больше, чем у ImageNet.
физическая вычислительная производительность
Столкнувшись с таким огромным объемом вычислений, какова вычислительная мощность вычислительных блоков, обычно используемых в нашей отрасли?
- Физическое ядро ЦП: общая вычислительная мощность с плавающей запятой составляет порядка 10 ^ 10 FLOPS. Сервер с 16 ядрами имеет примерно 200 гигафлопс вычислительной мощности. В реальной работе ЦП может использовать около 80% производительности, то есть вычислительную мощность 160 GFLOPS. Вышеупомянутый запуск SENet занял 182 дня.
- NVIDIA GPGPU: текущий V100, пиковое значение операций с плавающей запятой одинарной точности составляет около 14 TFLOPS.В реальной работе мы предполагаем, что может быть использовано 50% пиковой производительности, то есть 7 TFLOPS, что занимает 4 дня. .
Согласно приведенным выше результатам данных видно, что в области глубокого обучения наборы обучающих данных графического процессора занимают гораздо меньше времени, чем процессоры, что также является важной причиной, по которой графические процессоры в настоящее время используются для обучения глубокому обучению.
Отраслевые решения
Как видно из предыдущих расчетов, даже если для расчета используется GPU, однократное обучение ImageNet занимает 4 дня. Но для инженеров-алгоритмистов, которые проводят эксперименты и корректируют параметры, такое ожидание в течение нескольких дней невыносимо. С этой целью отрасль предложила различные решения для ускорения обучения глубокому обучению.
Параллельная схема для гетерогенных вычислений
Параллелизм данных
Параллелизм модели
Потоковый параллелизм
Гибридный параллелизм
Аппаратные решения для гетерогенных вычислений
- Одна машина и одна карта: вычислительная карта GPU установлена на хосте. Обычно встречается в персональных компьютерах.
- Одна машина с несколькими картами: установите несколько вычислительных карт GPU на один хост. Обычные: 1 машина с 4 картами, 1 машина с 8 картами и даже 1 машина с 10 картами. Общие компании приняли это аппаратное решение.
- Несколько компьютеров и несколько карт: установите несколько вычислительных карт GPU на несколько хостов. Это распространено в вычислительном кластере внутри компании.Как правило, Infiniband используется между несколькими компьютерами для реализации быстрой связи в сети.
- Настройка: то есть аналогично решению TPU от Google. Обычно встречается в компаниях «Биг Мак».
Коммуникационные решения для гетерогенных вычислений
В соответствии с приведенным выше аппаратным решением мы берем ResNet в качестве примера: размер модели составляет 230 МБ, объем расчета одного изображения — 11 GFLPOS, а мини-пакет — 128. Можно рассчитать трудоемкое сравнение каждого аппаратного модуля в обучении глубокому обучению:
- GPU: для V100, предполагая 6 TFLOPS, теоретическое время одного мини-пакета: 0,23 с.
- PCI-E: Common PCI-E 3.0 * 16, скорость 10 ГБ/с, теоретическое время передачи модели: 0,023 с.
- Сеть: если предположить, что скорость сети составляет 10 ГБ/с, теоретическое время передачи модели: 0,023 с.
- Диск: Обычный диск, мы предполагаем скорость чтения 200 МБ/с, время, необходимое для однократного чтения мини-пакета: 0,094 с.
По приведенным выше данным можно сделать вывод: время PCI-E и передачи по сети на порядок меньше, чем у GPU, поэтому временем на синхронизацию сетевых коммуникаций можно пренебречь. Однако проблема не так проста, в приведенном выше примере времязатратно только время одной модели, но для кластера из 8 карт, если используется параллелизм данных, необходимо передать 8 моделей для каждой синхронизация, которая приводит к передаче данных.Время и время вычислений GPU «соответствуют». В этом случае GPU должен ждать в течение длительного периода времени (используя синхронное обновление) после обучения мини-пакета, что приведет к трате большого количества вычислительных ресурсов. Следовательно, сетевые коммуникации также нуждаются в разработке соответствующих решений. Ниже в качестве примера мы возьмем коммуникационное решение для одной машины и нескольких карт в Nvidia NCCL, и решение для связи между несколькими машинами и несколькими картами на самом деле похоже.
Индивидуальная система глубокого обучения Meituan
Хотя в отрасли было запущено много известных обучающих платформ для глубокого обучения, общие учебные платформы, такие как TensorFlow, MxNet и т. д., а также специализированные учебные платформы, такие как Kaldi для распознавания речи, но после исследований мы решили быть независимым. Разрабатывайте систему глубокого обучения по следующим причинам:
- В общей обучающей платформе отсутствуют функции, специфичные для предметной области. Например, модули извлечения признаков и алгоритмы распознавания речи.
- Общая обучающая платформа обычно основана на графе потоков данных для моделирования каждого оператора в графе вычислений, поэтому степень детализации мала, необходимо запланировать множество единиц, а планирование задач усложнено.
- Учебные платформы предметной области, такие как Kaldi, имеют недостаточную производительность при обучении нейронных сетей.
- В онлайн-бизнесе много специальностей, но если вы используете TensorFlow в качестве обучающей платформы, он не подходит для онлайн-бизнес-сценариев.
Онлайн-система НЛУ
Бизнес-характеристики онлайн-системы
Когда мы разрабатывали онлайн-систему NLU, мы учитывали некоторые характеристики бизнеса NLU. Установлено, что он обладает следующими характеристиками:
- По мере изменения бизнеса и технологий часто меняются и алгоритмические процессы.
- Поток алгоритмов состоит из нескольких последовательных алгоритмов, а не только алгоритмов глубокого обучения. Такие алгоритмы, как сегментация слов, не являются алгоритмами DL.
- Для того, чтобы иметь возможность оперативно реагировать на какие-то срочные проблемы, требуются частые горячие обновления модели.
- Что еще более важно, мы хотим построить автоматический итеративный замкнутый цикл, который может управляться данными.
изменчивый бизнес
Алгоритмический поток задач NLU является многоуровневым, и бизнес часто меняется. Как показано ниже:
Горячее обновление
В соответствии с потребностями бизнеса или для срочного решения некоторых особых проблем онлайн-система NLU часто должна быстро реагировать и оперативно обновлять модель алгоритма. Например, недавнее модное слово «скр» внезапно стало популярным почти за одну ночь. Как показано в следующем микроблоге, если вы не можете правильно понять правильную семантику «skr», вы не сможете точно понять значение этого микроблога.
Автоматический итеративный замкнутый цикл, управляемый данными
Основной дизайн онлайн-системы NLU
Абстракция потока алгоритма
Чтобы адаптироваться к последовательному и изменчивому потоку алгоритмов онлайн-системы, мы абстрагируем алгоритм онлайн-системы, как показано на следующем рисунке:
Дизайн процесса горячего обновления
Система обучения акустической модели
Потому что в обучающих платформах глубокого обучения общего назначения, таких как TensorFlow, отсутствуют функции предметной области, связанные с бизнесом, такие как извлечение признаков, а процесс обучения акустической модели Kaldi слишком медленный. Поэтому Meituan разработала систему обучения акустической модели Mimir, которая имеет следующие особенности:
- Использование более детализированного модуля моделирования, чем TensorFlow, делает планирование задач и оптимизацию более простыми и удобными.
- Используя параллельную схему с параллельными данными, одна машина с несколькими картами может достичь почти линейного ускорения. (При стратегии синхронного обновления коэффициент ускорения 4 карт достигает 3,8)
- Перенесены некоторые уникальные алгоритмы обучения Kaldi.
- Скорость в 6-7 раз выше, чем у Kaldi. (800 часов тренировочных данных, при условии одной машины и одной карты, Kaldi требуется 6-7 дней, Mimir требуется всего 20 часов)
- С точки зрения бизнеса, связанные модули в извлечении признаков Kaldi и других областях были перенесены.
использованная литература
- NCCL: ACCELERATED MULTI-GPU COLLECTIVE COMMUNICATIONS
- [Глубокое обучение] Лекция учителя Вуда Архитектура: технологическая эволюция платформ глубокого обучения
об авторе
Цзянь Пэн, эксперт по алгоритму Meituan Dianping. Он присоединился к Meituan в 2017 году и в настоящее время возглавляет группу по акустической модели распознавания речи, отвечая за проектирование и разработку алгоритмов и систем, связанных с акустической моделью.