Почему специалисты по машинному обучению (ML) никогда не говорят о законе Мура как об ограничении?

134
20

спросил(а) 2019-12-23T15:15:03+03:00 11 месяцев, 1 неделя назад
1
Лучший ответ
132

Специалисты по машинному обучению не говорят о законе Мура как об ограничении, потому что:

Мы даже не используем имеющиеся у нас транзисторы эффективно: зачем жаловаться на отсутствие транзисторов в этом случае? Существующие процессоры массового рынка расходуют слишком много энергии и места для вычислений, которые они делают. Графические процессоры более эффективны, чем суперскалярный X86, но «лучше» - это не «хорошо». Аппаратное обеспечение, которое выполняет машинное обучение (как обучение, так и умозаключение) гораздо быстрее и эффективнее, чем все, что продается сегодня. Мы можем жаловаться на закон Мура после их выхода. И я не просто говорю о TPU2 от Google: есть много стартапов с большими спонсорами и опытным персоналом, работающим над этой проблемой.

ответил(а) 2019-12-23T15:15:03+03:00 11 месяцев, 1 неделя назад
88

Закон Мура гласит, что число транзисторов в интегральной схеме (ИС) заданного размера будет удваиваться каждые 18 месяцев. Это не физический закон; это наблюдение. Есть две проблемы с законом Мура:

Это может замедляться; мы достигли абсолютного физического предела для текущей технологии (медь в кремнии); когда вы идете значительно ниже около 7 нанометров для ворот, квантовые эффекты начинают подрывать предсказуемость. Это может ускоряться; Рэй Курцвейл (Ray Kurzweil), в настоящее время принадлежащий Google, опубликовал диаграмму около десяти лет назад, показывающую, что вычислительные машины становятся все быстрее, что темпы роста действительно ускоряются, если измерять с 1880-х годов или около того. Революционное усовершенствование (электромеханические вычисления, вакуумные трубки, транзисторы) происходит каждый раз, когда конкретная технология устареет.

Если скорость замедляется, это обычно плохо для машинного обучения (ML), а если оно ускоряется, это хорошо для ML. Однако, даже если мы замедляемся, не думайте, что это означает, что ускорение закончится. У нас будет больше специализированных интегральных схем (ASIC); это чипы, специфичные для задачи. Наиболее распространенным сегодня является графический процессор (GPU), который выполняет матричные вычисления. Google находится во втором поколении своего тензорного процессора (TPU), который выполняет тензорные вычисления и предназначен для создания моделей с помощью Google TensorFlow, его системы ML с глубокими нейронными сетями (DNN) с открытым исходным кодом.

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

Тем не менее, верно указать, что DNN потребляют огромные объемы вычислительной мощности, что приводит к пункту два: ML по сути своей распараллеливается. Это можно даже назвать смущающей параллелью - Википедия. Все системы для разработки моделей DNN используют связанную математику (в частности, линейную алгебру), а топовые системы могут использовать огромное количество процессоров, графических процессоров и (в ближайшее время) TPU (ну, TensorFlow; другие могут адаптироваться к TPU, когда спецификации выпущенный).

Хорошо, но как получить массивно параллельную систему? Это на самом деле легко; Вы можете настроить и запустить его в любой облачной вычислительной системе, но специально для этого предназначены Azure (Microsoft), Amazon Web Services (AWS) и Google Cloud Platform (GCP). Построение такой системы, скажем, на GCP, заняло бы меньше времени, чем заказ оборудования. Вам бы не хватало некоторых возможностей настоящего суперкомпьютера, но этого было бы достаточно для ваших целей в ML.

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

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

ответил(а) 2019-12-23T15:15:03+03:00 11 месяцев, 1 неделя назад
87

Большинство людей, занимающихся абстрагированным программным обеспечением более высокого уровня, не имеют никакой концепции или понимания аппаратного обеспечения или того, как оно влияет на то, что они делают, - они просто предполагают, что закон Мура волшебным образом выдаст «МОАР!». Даже зная о приближающихся пределах, они недостаточно понимают, что происходит между их и полупроводники, чтобы избежать последствий.

Люди в единственном числе - мой любимый пример «незнающих» в этом контексте.

Когда-то (1970-е годы) вы знали транзисторы для высокоуровневого кода, потому что «стек» был короче, и вам приходилось «делать все». Таким образом, большинство людей этого поколения все еще используют весь стек, несмотря на повышенную сложность. В последнее время вам трудно даже получить университетское образование, которое охватывает эту «широту / глубину».

ответил(а) 2019-12-23T15:15:03+03:00 11 месяцев, 1 неделя назад
72

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

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

Специалисты заботятся о производительности. Инженеры в Nvidia бреют единственную инструкцию из своих библиотек cuDNN и TensorRT, а инженеры из Google разрабатывают пользовательские ASIC (TPU) с точным количеством арифметической точности, которая им нужна, и не чуть больше, потому что более чем достаточно - пустая трата.

Но они не являются представителем среднего пользователя ML.

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

Я задам вам очень простой вопрос: когда в последний раз вы запускали TensorFlow под nvprof?

Пустой взгляд обычно является ответом.

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

Не только возможно, но и часто можно увидеть рабочие нагрузки ML, в которых загрузка графических процессоров составляет менее 50%. Нередко можно увидеть приложения, в которых загрузка графического процессора ниже 5%.

Материалы конференции полны работ, которые объединяют распределенные вычисления, работающие на десятках узлов x86 (построенных на некотором расточительном промежуточном программном обеспечении), в плотное, созданное вручную приложение, работающее на одном графическом процессоре… быстрее.

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

Знаете ли вы, какова ваша загрузка графического процессора? Это не тот вопрос, от которого вы можете уклониться: либо вы сделали измерения и точно знаете, либо не знаете. Там нет среднего уровня. Либо вы знаете точное число, либо не знаете вообще.

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

И это нормально.
Это один из результатов демократизации ОД.
Это признак успеха. ML достиг массы.

Но если вы готовы выбросить 90% доступной вам вычислительной мощности, вам не следует беспокоиться о фундаментальных ограничениях вычислений.

ответил(а) 2019-12-23T15:15:03+03:00 11 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема