Как стать автором
Обновить

7 лет хайпа нейросетей в графиках и вдохновляющие перспективы Deep Learning 2020-х

Время на прочтение14 мин
Количество просмотров34K
Всего голосов 100: ↑99 и ↓1+98
Комментарии50

Комментарии 50

НЛО прилетело и опубликовало эту надпись здесь
“Пузырь лопнул? Хайп перегрет? Они умерли как блокчейн?”
А то ж! Завтра в вашем телефоне перестанет работать Сири, а послезавтра Тесла не отличит поворот от кенгуру.

Это цитата из «Лопнул ли пузырь машинного обучения, или начало новой зари», там про это хорошо было )))

А коррекция (ожиданий) для инвесторов крайне нужна, я про это писал по ссылкам внизу статьи.
НЛО прилетело и опубликовало эту надпись здесь
Это еще не скоро.

Пока идет ускоряющееся расширение областей применения нейросетей (как в науке, так и в продуктах), которое активно поддерживают новые акселераторы. Раньше всего как оно работает увидим в телефонах, где нейроакселераторы были опробованы год назад Apple & Huawei (и это было рисковано и чипы часто просто занимали место в телефоне), но оно прошло успешно и сейчас идет расширение линейки (и акселераторов, и продуктов с ними). Т.е. относительно банальный рост)

Статья отличная, спасибо!
Однако Deep Learning слишком долго на пике хайпа на кривой Гартнера (вот, например, 2018 год), и ожидаемо должен был свалиться. Тем более разговоры о том, что Free lunch is over для классических сверточных сетей ведуться достаточно массированно. Вот статья, в которой есть основные тезисы таких разговоров, ее уже упоминали здесь в комментариях.


Если же посмотреть на Гартнера 2019 года, то можно увидить интересный эффект — DL не свалился с пика, а просто исчез… развалившись на составные части — AutoML, GAN сети, Transfer Learning. Но ни в "пропасть разочарования", ни на "плато продуктивности" ни одна из этих частей (пока) не попала.
Что это означает доподлинно судить не берусь, но мне кажется, что DL как цельное понятие с пика хайпа уходит.

Статья отличная, спасибо!
Спасибо!)
Однако Deep Learning слишком долго на пике хайпа на кривой Гартнера
Я бы различал подобные взлеты в науке, у стартапов, и у продуктов.
Гартнер — это для стартапов и я с перегретостью темы для них я согласен, о чем писал.
С наукой — сложнее, поскольку там волны возникают либо когда тема расширяется, либо при открытии нового метода, который дает хотя бы локальный прорыв.
Ну и сложнее всего (и интереснее) с продуктами. Я про это писал недавно в большой статье — про экспоненциальный рост рынков. Там были хорошие графики, как выглядит взлет продуктов.

Возвращаясь к нейросетям — на мой взгляд взлет действительно глубоких сетей (100+ слоев) только начинается. И все очень зависит от акселераторов. У них рост точно будет, но если будет прорыв (в 100 раз быстрее GPU хотя бы в узких областях) — это будет мощнейший толчок. Основания для оптимизма есть.
DL не свалился с пика, а просто исчез… развалившись на составные части — AutoML, GAN сети, Transfer Learning
Да-да-да! Именно так. Происходит явное расширение темы. При том, что соседние области явно усиливают друг-друга просто за счет использования одних инструментов, одного железа и т.д.
DL как цельное понятие с пика хайпа уходит.
Если DL уйдет с пика хайпа для стартапов — это будет большое благо (сейчас масса случаев, когда деньги дали явным проходимцам). Печально будет, если история повторится с завернутыми в другие обертки теми же ушами. Пока, к тому идет.
И все очень зависит от акселераторов. У них рост точно будет, но если будет прорыв (в 100 раз быстрее GPU хотя бы в узких областях) — это будет мощнейший толчок. Основания для оптимизма есть.


Если акселераторы будут в 100 раз быстрее GPU, то их встроят в GPU (как встроили Tensor Cores), и они уже не будут быстрее GPU :)

  • А во сколько раз по FPS/Watt уже сейчас акселераторы быстрее, чем GPU?
  • И какие это акселераторы? Intel Myriad X, Google TPU, Huawei neurochip, ....
  • Есть ли какие-то акселераторы, которые значительно ускоряют depthwise-convolutional-layers, а именно модели EfficientNet (EfficientDet), MixNet, GhostNet, MobileNetv3? Потому как BFLOPS у них мало, а FPS на CPU и GPU ниже, чем у старых обычных ResNet при тех же Top1/Top5 accuracy.
  • И как считаете, какие оптимизации победят: depthwise-convolutional или binary-convolutional (xnor-net) или какие-то ещё?


Пока что только XNOR-net (используя SVR) удалось ускорить Yolo в 50 раз (FPS/watt) зашив в FPGA: www.researchgate.net/publication/323375650_A_Lightweight_YOLOv2_A_Binarized_CNN_with_A_Parallel_Support_Vector_Regression_for_an_FPGA
image

Но
1. все таки есть падение точности ~2-4%, требуется обучение используя SVR и есть сложности по использованию новых фишек: mish, weighted-fusion (ASFF, BiFPN, ...),…
2. они сравнили Yolo_v2_float32 (а не bit1) на GPU против Yolo_v2_bit1 на FPGA
3. бинарные операции теперь доступны в Tensor Cores начиная с CC 7.5 — реализация GEMM_BINARY для Yolo-XnorNet на GPU используя Tensor Cores: github.com/AlexeyAB/darknet/blob/dcfeea30f195e0ca1210d580cac8b91b6beaf3f7/src/im2col_kernels.cu#L1224-L1419

Поэтому разрыв будет меньше.

С Новым Годом! :)

Если акселераторы будут в 100 раз быстрее GPU, то их встроят в GPU (как встроили Tensor Cores), и они уже не будут быстрее GPU :)
Абсолютно устраивает! Если новые GPU будут в 100 раз быстрее текущим — самое оно! ) (хотя похоже патентные войны там будут еще те + я недавно общался с очень нерядовым сотрудником NVIDIA, он говорит, что руководство несколько забронзовело и тему, похоже, пропускает). До этого общался с одним из людей, занимающимся архитектурой GPU в AMD — тоже пока всерьез не работают. А двигать тему только кто-то крупный сможем. Поэтому ждем.
А во сколько раз по FPS/Watt уже сейчас акселераторы быстрее, чем GPU?
К сожалению в FPS/Watt не сравниваются (а жаль!), но в прошлой статье я приводил известный график еще давнего гуглового TPUv1, где он был в 28,6 раз быстрее GPU. Что, в том числе, резко толкнуло тему. Кстати в комментариях там много было как раз про ускорение нейросетей на FPGA.

А так именно про аналоговую акселерацию материалов мало. Думаю, что ближе к продуктам всплеск информации пойдет. Если IBM не перекроет тему патентами.

Спасибо за хороший комментарий!

Пока что у акселераторов TFlops дутые (иногда более, чем в 100 раз).
Вполне возможно, что nVidia забронзовело, но ничего явно лучше, чем nVidia GPU до сих пор нет.

Формально nVidia GPU (Tensor_Cores_V100 = 125 TFlops) и Google TPUv3 (90 TFlops) имеют очень высокие TOPS и TOPS/watt.
И нейросеть Google EfficientNet B0 имеет крайне низкий BFLOPS (0.900 = 0.450 FMA) и высокий Top1 (71.3% batch=30 или 76.3% batch=2048).

Только когда запускаешь Google EfficientNet B0 (0.9 BFLOPS = 0.45 FMA) на nVidia GPU RTX 2070 (52 000 GFlops Tensor Cores), то получаем 143 FPS на бенчмарке (batch=1), т.е. как если бы GPU работал со скоростью 128 Gflops, что в 400 раз ниже, чем заявленные 52 000 Gflops. Тоже самое и с TPU, поэтому Google использует для TPU-edge модифицированные EfficientNet у которых BFLOPS гораздо выше, но и (парадокс) FPS тоже выше.
Т.е. для формальных рейтингов они использую одно, а в продакшене используют совсем другое.
Т.е. пока в значительной степени ускорение акселераторов (TPU, Tensor Cores, ...) дутое.

То ли Google нашел способ как кардинально ускорить DW-conv, SE-block,… в будущих TPU, то ли их показатели Top1/BFLOPS заводят их все дальше в тупик (EfficientNet, MixNet, MobileNetv3, GhostNet, ...), в то время пока nVidia ускорило BIT1-conv, но не спешит ускорять DW-conv.

И это ещё пол беды, у многих других SOTA-нейросетей результаты просто не воспроизводятся и отличаются от заявленных в 2 раза и более.

Но все таки такие штуки как Intel Myriad X, Google TPU Edge и их развитие радуют.

Да, та ваша статья тоже интересная: habr.com/ru/post/455353
Любопытно в ней:
  1. TPUv1 лучше, чем GPU (вероятно K80) в 28 раз по INT8-TOPS/Watt — сравнивает Google.
  2. TPUv3 (90 TFLOPS16 / 200 Watt = 0.45) в 1.1x раза хуже, чем GPU V100 PCIe (125 TFLOPS16 / 250 Watt = 0.5) по TFlops/watt и в 1.38x раз хуже по абсолютному значению Tflops — сравнивает Huawei


Просто в первом случае:
  • сравнение Google vs nVidia делал Google, а не сторонняя фирма
  • сравнивал по INT8, потому что TPUv1 умело только INT8 вычисления, а GPU был на тот момент слабо заточен под INT8 (сейчас Tensor Cores поддерживает INT8 с 4х производительностью относительно TC-Float32)
  • на INT8 можно делать только Inference, но нельзя обучать с приемлемой точностью (модели INT8 и BIT1 всегда обучаются на FP32/16 и затем квантуются)


А во втором случае сравнение Google vs nVidia делала Huawei, которая сравнила не предвзято Google TPU и nVidia GPU, и предвзято выпятила свой Neurochip.

Поэтому может nVidia и забронзовело, но ничего явно лучше, чем nVidia GPU до сих пор нет.

image
image
И это ещё пол беды, у многих других SOTA-нейросетей результаты просто не воспроизводятся и отличаются от заявленных в 2 раза и более.
У меня про это тоже отдельная статья, ставшая лучшей в хабах ИИ и МО за год есть). Беда очень большая однозначно.
А во втором случае сравнение Google vs nVidia делала Huawei, которая сравнила не предвзято Google TPU и nVidia GPU, и предвзято выпятила свой Neurochip.
Я про это пишу. MLPerf собираются типа проблему порешать. Правда Huawei там до сих пор не появился, что печалит. А так у товарищей амбиции не только проблему честных сравнений порешать, но и создать большие публичные датасеты, которые могут дать эффект сравнимый с ImageNet. Т.е. круче только горы, все серьезно.

В принципе они правы. Сегодня даже компаниям стало сложно большие публичные датасеты создавать, уж больно легко там разные законы нарушить. Именно из-за этого закрыли Netflix Prize, Байду закрыл DeepSpeech (20 тысяч часов размеченной речи!), закрыли Crawled Amazon reviews (50М записей). Я про это как-нибудь напишу, возможно. Если у них получится — будет круто. Начало хорошее.

А по акселераторам — даже если там реально в 10 раз преимущество на реальных задачах (а это так по словам коллег) — уже понятно, откуда миллиардные инвестиции в область. И еще интереснее, если завтра за счет аналоговой арифметики будет 100 раз.
Много не в тему, но все хотел Вас спросить чем рендерите такие красивые 3D графики?
Речь, видимо, про поверхности? Это был старый добрый MathCad))). Обычные графики в статье — Python (Matplotlib и т.д.). А вообще все больше используем HighCharts www.highcharts.com/demo (очень удобные, правда на хабр их не встроить)
Почему-то по статье DenseNet раньше обычного ResNet. В жизни было наоборот.
Спасибо, пофиксил!

Такими темпами к 2025 году мы и сильный ИИ увидим.

Маловероятно) А вот что тема второе дыхание получит — крайне вероятно.
Согласен с Вами. Второе, третье и четвертое дыхание. На фоне этого понимания очень странно слышать прогнозы о «новой зиме ИИ»…
Что касается СИИ, здесь ключевую роль сыграет «генеральная идея», которая объединит существующие методы ML/DL вокруг новой архитектуры.
На фоне этого понимания очень странно слышать прогнозы о «новой зиме ИИ»…
Негативные новости просто лучше кликаются.) Всегда! Это вечная тема, примерно как статьи о крахе доллара)
Что касается СИИ, здесь ключевую роль сыграет «генеральная идея», которая объединит существующие методы ML/DL вокруг новой архитектуры.
Возможно. По крайней мере нет ощущения, что с архитектурами все резервы выбраны, скорее наоборот. В любом случае плавное развитие благодаря ускорению обучения заведомо будет происходить.
Нейросети, безусловно, новая веха в IT. Но нейросети !== ИИ. В текущей реализации им не хватает целого ряда ключевых свойств. Сколько данных не было бы в распоряжении сети.
Согласен. Именно поэтому не использую термин ИИ, кроме как когда собеседник в такую терминологию переходит. Уже просто потому, что ИИ все определяют по разному, причем со временем (по десятилетиям) определения заметно меняются.
Вторая крутая статья за две недели! Как у вас сил хватает!:)

Главное что в текущем прогрессе смущает — что почти нет кардинально новых идей. По сути все новые алгоритмы/идей/результаты — это обсасывание идей и подходов 4-5 летней давности. Те же GAN — это 14 год.
С другой стороны наука так и должна работать. Нужно сначала сформулировать почему то что получилось не является ИИ. А когда задача будет сформулирована и понятна — тогда уже можно будет попробовать её решить.
Пока что-то всё упирается в «нужно больше хороших датасетов»/«как нам организовать разметку»:)
Главное что в текущем прогрессе смущает — что почти нет кардинально новых идей.

Идей много. Мало идей, которые получается заставить работать. Скажем, model-based reinforcement learning заставили работать лучше других подходов совсем недавно в MuZero. А древнюю идею объединения коннекционизма с манипуляциями символами пока заставить работать не получается. И когда/если получится, то это тоже не будет новой идеей.

В том числе! Это правда, что не всякую красивую идею удается быстро успешно применить так, чтобы большой прирост получился.
Вторая крутая статья за две недели! Как у вас сил хватает!:)
Антон, спасибо! Очень приятно! Писал урывками 2 месяца, положил разом просто) Хотелось до конца года успеть.
Главное что в текущем прогрессе смущает — что почти нет кардинально новых идей. По сути все новые алгоритмы/идей/результаты — это обсасывание идей и подходов 4-5 летней давности. Те же GAN — это 14 год.
В каком-то смысле это так кажется. Я как раз пытался донести мысль, что сейчас есть разные интересные идеи, но пока они так же уродливы, как и GAN в 2014, поэтому их крутизну мало кто заметил. И это нормально. С остальными идеями было то же самое, как правило, условное «признание» и «известность» приходили к ним через год-два после публикации. В худшем случае — через 20 лет. Это нормально! ) И хорошо видно по графикам.

Ну и в целом — исходя из того же Томаса Куна — после прорыва (в том числе микропрорыва типа GAN) — идет плато и оно тоже крайне для этого развития важно. У тех же GAN плато иллюстрируется великолепно. И это тоже очень важно.
Пока что-то всё упирается в «нужно больше хороших датасетов»/«как нам организовать разметку»:)
Это правда. Идет революция. Новое поколение алгоритмов работает на данных и текущих данных категорически катастрофически не хватает. И это объективно снижает эффективность науки, когда господа ученые начинаю клепать фигню, просто потому, что это дает +0,0001% на мелком датасете. Реально оно не работает. А на хорошие датасеты нужно время, делать их реально сложно. Это нормально! )
Новое поколение алгоритмов работает на данных и текущих данных категорически катастрофически не хватает.

Ну, собственно, 50 лет назад у нейросетей была та же самая проблема :)
Данные появились — в результате задачи, поставленные для сетей 70-х годов, мы теперь решать худо-бедно умеем. Ждем еще 50 лет.

Данные появились — в результате задачи, поставленные для сетей 70-х годов, мы теперь решать худо-бедно умеем. Ждем еще 50 лет.
Походу быстрее). А так — да, типичная спираль развития)
Я, читая, хотел задать вопрос: про плюсы-то всё ясно, а какие же минусы? Но окончание статьи дало своеобразный ответ)
Спасибо. Там есть над чем подумать.

И это не только Пентагон. Например, анализ движений глаз. Вы себе не представляете, как много можно оттуда извлечь данных о человеке. Характер, привычки, склонности, падкость на рекламу и т.п. Больше, чем человек о себе знает. С условными Google Glass 3.0 люди не представляют, сколько информации о себе сольют. Куда там броузерам. И все будет добровольно, как со смартфонами, только на новом уровне.
НЛО прилетело и опубликовало эту надпись здесь
Представил такое будущее и вздрогнул! ) Ой, если Google (Яндекс, Байду) будут еще и лечить, совсем весело может получиться) Орруэлу и не снилось)
НЛО прилетело и опубликовало эту надпись здесь
Свят-свят-свят… Кошмар какой!)
Да я немного не про то. Есть интуитивное неприятие того, что мы вступаем в эру «нечёткого» программирования.
Ассемблер/С/С++ — это всё же код. Это всякие if-else. Я могу взять другой код и разобраться в нём. Да, с позиций двух десятилеток 21 века это сложно, т.к. конечный код это порой нагромождение фреймворков и библиотек. Но я могу провести аудит кода. Могу точно объяснить почему код себя ведёт так, а не иначе и как это исправить так.
А нейросети? Как мне проводить аудит безопасности кода для шифрования данных? Если зафиксирован сбой программы, то насколько успешно я это исправлю? И таких вопросов — уйма. Сейчас-то ПО страшновато использовать, а что будет в будущем? )
Есть интуитивное неприятие того, что мы вступаем в эру «нечёткого» программирования.
Более того. Это неприятие еще толком не началось, поскольку ML/DL программирование еще в стадии начального становления. В стеках разработки оно нигде толком не прокинуто, существует на своих фреймворках, которые также еще пока стремительно меняются. Дальше будет интереснее)
Сейчас-то ПО страшновато использовать, а что будет в будущем? )
Жизнь станет еще лучше и еще интереснее, без вариантов))) Роль интуиции в отладке точно вырастет ))) Как минимум!

Я встречал описание такого реально используемого подхода: тренируется сетка, на её основе делается PID(?) контроллер с доказуемыми свойствами.


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

В идеале-то может и так. Но не будет такого. Уже сейчас все обленились, код пухнет и пухнет. Виджет погоды за 4 года распух с 400кБ до 12МБ) И дальше лучше не будет. Если условный «модуль» будет давать нужный результат — будут его использовать и всё. Никто не будет заморачиваться на допконтроль.
Цепи обратной связи с «железно-алгоритмическими» решениями концепции ПИД — это хорошо, но не везде же это применимо. Это АСУТП всякие, в эту степь. Сдаётся мне в «обычном» программировании никого так сильно это не озаботит.
Виджет погоды за 4 года распух с 400кБ до 12МБ)
У бесплатного виджета погоды нужно смотреть, чем он реально занят. А то как в анекдоте: «приложению „Фонарик“ требуется доступ к вашим контактам, звонкам и диску»)))

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


Впрочем, это — дальняя перспектива.

Так вроде же PPL скоро заменит DL. Вон Gen со всех углов лезет. DL уже на покой идет
Про Google и Пентагон, тут вот какой фокус…

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

Поэтому когда кто-то продвигает что-то вроде «давайте запретим оружие», я слышу «давайте запретим оружие нормальным людям. А у преступников пусть остаётся»

Когда сотрудники Гугла продавили отказ от сотрудничества с Пентагоном, это же не означало, что никто больше в мире не будет разрабатывать никакого военного ИИ. По сути, они заявили «пусть у Штатов не будет военного ИИ, а у остальных пусть будет».

Так что, с точки зрения противников США, они молодцы и герои, а с точки зрения американцев они то ли придурки, то ли предатели.
Когда сотрудники Гугла продавили отказ от сотрудничества с Пентагоном, это же не означало, что никто больше в мире не будет разрабатывать никакого военного ИИ. По сути, они заявили «пусть у Штатов не будет военного ИИ, а у остальных пусть будет».
Это не так, увы. 10 миллиардный тендер Пентагона 100% выиграла американская компания.
Это, очевидно, современный продвинутый аналог классического «Будешь есть манную кашу, станешь космонавтом!». Впрочем, в нашем случае, если посчитать число детей в стране и размер отряда космонавтов, шансы в миллионы раз выше, ибо из нашей лаборатории уже двое работают в DeepMind.…

Как бы 2 человека это верно, ровно столько из миллионов детей сейчас хотят стать космонавтами… еслиб это было году этак в 1961 или, хотя бы 1970гг, а сейчас все больше моделями или певцами или банкирами…

А за статью огромное спасибо
а сейчас все больше моделями или певцами или банкирами…
Увы… Нам осталась только классическая фраза.
А за статью огромное спасибо
Спасибо)
Про нейросети в медицине не упомянули, а это очень важное применение ведь.

Так традиционным программистам надо бояться или нет?
Про нейросети в медицине не упомянули
Про это в прошлой статье хорошо было.
Так традиционным программистам надо бояться или нет?
Ага! Страдающим неофобией уже можно начинать бояться! ) Остальным — можно начинать учиться! Как-то так)
Очень настораживает такая любовь и пропаганда неточных вычислений, и вообще тенденция к ним стремится, особенно с учетом того, что допуски, по размерам для реальных изделий, наоборот, сокращаются колоссальными темпами. Особенно в нанотехнологиях, реальные изделия размером нанометры, допуски — сотые доли нанометров, и, если вычисления будут неточными, все чипы станут резко непригодными к расчету чего-то реального. А точные чипы разрушатся от старости и мы потеряем вообще возможность хоть что-то посчитать и смоделировать с таких областях. Очень страшная перспектива.
настораживает такая любовь и пропаганда неточных вычислений,
Ну у вас и терминология)
Это не любовь и не пропаганда, а констатация факта, что для акселерации нейросетей уже сегодня наиболее распространенный прием — это перевод весов в целые числа и их квантование. И потенциально используя это свойство нейросетей можно еще довольно значительно ускорить вычисления.
А точные чипы разрушатся от старости и мы потеряем вообще возможность хоть что-то посчитать и смоделировать с таких областях. Очень страшная перспектива.
))) «С приходом GPU 25 лет назад все CPU разрушились от старости и мы вообще потеряли возможность что-то выполнить не параллельно»))). К счастью NPU и TPU не отменяют CPU и даже GPU. Можно с облегчением выдохнуть!
Спасибо! Очень интересный обзор.
есть еще парочка новых технологий для которых хайп только начинается:
(i) объяснимые результаты (exlainable results) — в некоторых областях регуляторы уже это требуют, и даже в объявлениях на прием на работу стало попадатся
(ii) системы устойчивые к adversarial samples ( не знаю как этот термин по-русски ), т.е системы которые нельзя заставить ошибатся подсунув специально сгенерированные данные. На эту тему был большой tutorial на прошлом NeurIPS ( videoken.com/embed/fQyT5wkFxGI, adversarial-ml-tutorial.org )
Да, выше речь шла, что идет явное расширение темы (разбиение хайпа на несколько новых более узких))

Спасибо за как обычно хорошие линки! )
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории