Category: технологии

2019

Big Neuro: триллионы транзисторов на чипе, квинтильоны и квадрильоны операций в секунду

Буквально за несколько лет мы пришли в мир Big Neuro -- в коннективистских архитектурах, то есть "нейросетях" счёт переходит с миллиардов/гига на триллионы/тера и даже квадриллионы/пета, а пока изредка и квинтиллионы/экза (короткая шкала -- https://ru.wikipedia.org/wiki/Системы_наименования_чисел).

Самый большой чип ускорителя для нейросетей -- это 1.2триллиона транзисторов на 42тыс.мм2, Cerebras Wafer Scale Engine компании Cerebras Systems, изготавливаемый на фабриках TSMC -- https://venturebeat.com/2019/08/19/cerebras-systems-unveils-a-record-1-2-trillion-transistor-chip-for-ai/, https://www.forbes.com/sites/tiriasresearch/2019/08/20/ai-start-up-cerebras-develops-the-most-powerful-processor-in-the-world/#26b4e5a86592. Это в 57 раз больше, чем чип V100 фирмы NVIDIA с 21млрд.транзисторов на 0.8тыс.мм2. Скорость обмена данных с памятью -- 9петабайт/сек, ещё одно Big. The energy cost of communication in this architecture is well under 1 picojoule per bit, which is nearly two orders of magnitude lower than in graphics processing units. В компании Cerebras Systems работает всего 194 человека (хотя мы и не знаем, сколько у них разработчиков было в подрядчиках, тем не менее -- это ли не восхитительно?!).

Конечно, это не сравнится с суперкомпьютером. Так, Summit (запущен в эксплуатацию год назад -- https://blogs.nvidia.com/blog/2018/06/08/worlds-fastest-exascale-ai-supercomputer-summit/) имеет 27648 NVIDIA V100 и 200петафлопс (умножений плавающей) и 3exaops, экза/квинтиллионов операций умножения-сложения целых в секунду -- это помньжьте "пета" ещё на тысячу, миллиард миллиардов. At 200 petaflops — If everyone on Earth did 1 calculation/second, it would take 1 year to do what Summit does in 1 second. At 3 exaops of AI — If everyone on Earth did 1 calculation/second, it would take 15 years to do what Summit can do in 1 second. А сколько занимает места этот Summit? Два теннисных поля! Следующий за V100 чип для текущего нейро-поколения AI -- это Huawei Ascend 910, который имеет удвоенную производительность (закон Мура продолжается для GPU!), но это всего вдвое, 0.25PFLOPS, 0.5PTOPS, по факту того же класса чип -- https://medium.com/syncedreview/huaweis-first-commercial-ai-chip-doubles-the-training-performance-of-nvidia-s-flagship-gpu-86e4d0078f6f

Cerebras Wafer Scale Engine это всего один чип, хотя и потребляет он 15Квт на свои 400тыс. AI вычислительных ядер -- примерно столько же, сколько потребляло бы эквивалентное количество одиночных чипов. Чудес-то не бывает, вычисления требуют энергии.

Самая скандальная языковая модель (модель языка в нейросети) была скандальна ровно потому, что она оказалось достаточно большой, чтобы произвести нетривиальные результаты -- это GPT-2 от OpenAI, которую даже отказались публиковать из-за боязни злоупотреблений в использовании. В ней было 1.5B параметров, 0.0015P. Только что опубликовали сокращённую вдвое модель -- https://venturebeat.com/2019/08/20/openai-releases-curtailed-version-of-gpt-2-language-model/. Но десятые триллиона уже никого не останавливают, только что опубликовали независимо реализованную языковую модель такого же масштаба с практически такими же результатами: https://medium.com/@vanya_cohen/opengpt-2-we-replicated-gpt-2-because-you-can-too-45e34e6d36dc. Потолок цены тренировки такой модели -- $50К, и есть много возможностей снизить цену -- основная цена это те самые чипы и электроэнергия на их работу, сколько на их охлаждение.

И этих чипов нужно много. Чтобы обучить языковую модель BERT всего за 53 минуты потребовалось 1472 GPU V100, это 92 компьютера DGX-2H ценой $399тыс., то есть там только аппаратуры для этого почти часового счёта на почти $40млн, https://devblogs.nvidia.com/training-bert-with-gpus/). И это не самая большая модель! В работе по этой же ссылке https://devblogs.nvidia.com/training-bert-with-gpus/ указывается, что была натренирована модель GPT-2 на 0.0083 триллиона параметров, при этом достигли 15.1 PetaFLOPS sustained performance!

Конечно, речь не идёт о том, чтобы заниматься сетями на 1 триллион параметров. Но если речь идёт о какой-то модульной конструкции из сотни (возможно, совсем неодинаковых) сетей (и, возможно, совсем не сетей) на 0.01 триллион параметров каждая -- то вот такая когнитивная архитектура явно сможет много больше, чем текущие даже самые большие сетки.

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

А дальше Big Neuro сочтут маркетинговым термином, под которым будут понимать что угодно. Очень скоро будут обсуждать, как и с Big Data, что дело не в размере, а volume, veloсity, veracity, variety, value, variability (https://www.researchgate.net/figure/Six-Vs-of-big-data-value-volume-velocity-variety-veracity-and-variability-which_fig15_280124446) и ещё больше каких-нибудь V. И все формулировки можно будет брать из BigData, и все маркетинговые слоганы.

Но технологически это новый чудесатый мир, где если недостаточно мозгов, то просто добавь транзисторов. А если достаточно мозгов, то тоже добавь транзисторов.

Следующая история, конечно, про симуляторы мира. Чтобы обучить нейросетку, нужно построить виртуальный мир -- и обучать дальше сетку в этом мире, ибо в виртуальном мире эволюция идёт быстрей, чем в реальном мире. Нужно много-много симуляторов. Следующая большая история -- это логические вычислители, которым тоже хочется аппаратной поддержки (вот примеры работ, которые пытаются ускориться на текущих архитектурах вычислений -- https://arxiv.org/abs/1810.06617 и https://www.cyc.com/wp-content/uploads/2015/04/AAAI-SharmaA.1646.pdf, и такого много. Вполне возможно, что тут как с нейронными сетями поможет задействование аппаратного ускорения для получения нетривиальных результатов). Понятно, что будут попытки "повторить мозг" -- перенести логические вычисления в нейронные сетки (neural logic machines -- https://arxiv.org/abs/1904.11694, embedding of knowledge graphs -- https://arxiv.org/abs/1908.07141 и т.п.), равно как моделировать физику не уравнениями, а прямо нейронной сеткой -- https://ai.facebook.com/blog/phyre-a-new-ai-benchmark-for-physical-reasoning/. Смогут ли текущие ускорители AI на нейросетках сработать для этих же задач так же качественно, как могли бы сработать специализированные компьютерные архитектуры?

Ответ прост: нет, не смогут. Алгоритмы там везде разные, поэтому работает теорема бесплатного обеда: тот вычислитель, который хорош для одних задач, будет ужасен для других задач. Так что нейровычислитель будет хорош только "в среднем по больнице". И мы увидим в ближайший десяток лет ещё много разного и чудесатого -- и аналоговые спецвычислители, и универсальные цифровые архитектуры (для препроцессинга и постпроцессинга видео, физических вычислений, логических вычислений, вероятностных вычислений, а также и для вычислений в deep learning). Жизнь уже интересна, счёт транзисторов пошёл на триллионы -- и спецвычислитель BigNeuro на триллион транзисторов может сделать команда из меньше чем 200 человек.

А пока болеем не за динамо и спартак, а за участников этого чемпионата искусственных мозгов -- aNLI, https://leaderboard.allenai.org/anli/submissions/about. Это продолжатели дела CYC, они хотят закодировать common sence, здравый смысл. И сделали на эту тему соревнование. Рассказ про abductive commonsence reasoning -- https://arxiv.org/abs/1908.05739. У людей в этом соревновании 92.9% правильных ответов. У нейросетки BERT Large Finetuning -- 66.75%. У CYC (там ведь как раз цель соревнований была дизайн-целью) -- неизвестно, у IBM Watson (это ж победитель "Jeopardy!", по сути это ж то же самое) -- неизвестно. Но там много-много лет ручного кодирования знаний, а BERT тренируется, как мы знаем, за 53 минуты (грубо говоря, читает за это время в себя если не всю Библиотеку Конгресса, то сравнимый объём текста). А ещё было бы забавно увидеть соревнующимися там не только нейросетки и логические вычислители, но и людей. Скажем, команда победителей что-где-когда сколько бы решила в этом соревновании? Не смогла ли выдать больше ли 92%? С другой стороны, и это соревнование тоже ни о чём: нобелевские лауреаты и крутые политики обычно не эрудиты, а эрудиты и другие победители викторин не так уж и заметны в других сферах жизни. Но мы всё равно болеем.

Но причём тут Big Neuro и решение задач, объявленных в этом соревновании по использованию здравого смысла в рассуждениях? Напомню тезис Rich Sutton (http://www.incompleteideas.net/IncIdeas/BitterLesson.html): прогресс в AI определяется доступной вычислительной мощностью при простых алгоритмах. Размер решает. Текущая самая большая нейросетка GPT-2 8B пока всего в 24 раза больше BERT, текущего победителя соревнования по объяснениям на основе здравого смысла. И хотя понятно, что с этой архитектурой существенно улучшить результат не удастся, то альтернативные более успешные архитектуры вряд ли будут с меньшим количеством вычислений. IBM Watson, победивший в Jeopardy! -- это прежде всего суперкомпьютер! Big Neuro таки решает, а если там пойдёт ещё и Big Simulation и Big Logic, которые сольются в какой-то момент в Big Evolution Multi-engine, то аж дух захватывает, что может получиться!

UPDATE: обсуждение в фейсбуке -- https://www.facebook.com/groups/nevronet/permalink/1406594802840170/

Краткое содержание поста:
-- есть no free lunch тезис, что разные алгоритмы для разных задач имеют разные оценки времени
-- Sutton говорит, что побеждают простые алгоритмы при масштабировании. Типа нейросеток, когда их посадили на нормальный "их" кремний.
-- есть ряд классов алгоритмов, которые могут помогать решать разные задачи с интеллектом. Логика, эволюция.
-- по идее, должна быть когнитивная архитектура, которая позволяет использовать такие алгоритмы, маршрутизируя им соотвествующие классы задач
-- не факт, что их все нужно выполнять на нейро-инфраструктуре.
-- это означает, что перспективно попробовать ускорители и для логики, и для физики, и для эволюции в конечном итоге (где потребуется интеграция всех ускорителей: эволюционировать-то должна будет когнитивная архитектура!).

А эволюция съест всю вычислительную мощь, которая доступна, и ещё потребует. Так что радуемся и имеем дело с Big Neuro и Big ВсёОстальное.
2019

Хост-языки для встроенных DSL перестают упоминаться. Но они есть.

MIT опубликовал хвалилку языка Gen, предназначенного для облегчённого программирования систем искусственного интеллекта, вот тамошний пресс-релиз: http://news.mit.edu/2019/ai-programming-gen-0626 (повод -- доклад на Programming Language Design and Implementation конференции). В этом пресс-релизе рассказывается о новом языке, и только о нём. Язык противопоставляется подходу TensorFlow -- утверждается, что программирование задач искусственного интеллекта на Gen много легче. Другие языки, например, Julia, упоминаются так, что это упоминание сразу и не найдёшь.

Вот статья ещё прошлого года, и говорят, что Gen более крут, чем кажется: This paper includes an evaluation that shows that Gen can solve inference problems including 3D body pose estimation from a single depth image; robust regression; inferring the probable destination of a person or robot traversing its environment; and structure learning for real-world time series data. In each case, Gen outperforms existing probabilistic programming languages that support customizable inference (Venture and Turing), typically by one or more orders of magnitude. These performance gains are enabled by Gen’s more flexible inference programming capabilities and high-performance probabilistic DSLs. -- https://dspace.mit.edu/bitstream/handle/1721.1/119255/MIT-CSAIL-TR-2018-020.pdf

Когда открываешь страницу самого "языка Gen" https://probcomp.github.io/Gen/, то тут же натыкаешься на "Gen is a package for the Julia programming language. Gen consists of multiple modeling languages that are implemented as DSLs in Julia and a Julia library for inference programming". И просьба установить Julia 1.0 или более старшую версию. Gen оказывается embedded DSL в Julia. Julia рассматривает себя как платформу для создания самых разных DSL, об этом пару лет назад даже был пост в блоге создателей языка "Creating domain-specific languages in Julia using macros" -- https://julialang.org/blog/2017/08/dsl

Тренд сжёвывания stand alone DSL реализациями embedded DSL в расширяемых языках (та же Julia) -- налицо. Вот, например, Modia подаётся не как отдельный язык, а сразу как domain specific extension of Julia for modeling and simulation of physical systems, https://github.com/ModiaSim/Modia.jl. Это "расширение Julia" создаётся авторами Modelica. И, похоже, это расширение готовится скушать саму Modelica как специализированный (domain-specific) stand alone язык инженерного моделирования. Смотрим внимательно: in Modia there is not (yet) a graphical definition of models (хотят добавить, но недосуг, не так уж и важно оказалось -- расчёт-то что с графикой, что без графики один и тот же) и more models converted from Modelica Standard Library (то есть библиотеки Modelica просто конвертируют в новый язык).

В итоге -- Julia становится языком-платформой, на которой доступны и Gen для задач AI, и Modia для мультифизики. И, надеюсь, когда-нибдь и SysMoLan -- язык системного моделирования (https://ailev.livejournal.com/1443879.html).

Языки внутри языков внутри языков. Языки-платформы (хост-языки) становятся настолько общим местом, что даже не упоминаются в описании embedded DSL (как в случае Gen). Языковые рыбки языковой воды не замечают. Никто же не обращает внимания, на каком языке написаны компиляторы Rust, Go, Julia, никто не поминает машинный язык тех же Intel или ARM процессоров, когда говорят о тех же Rust, Go, Julia. По факту отношение к embedded DSL и stand alone DSL стало одинаковым: неважно, какие языки участвовали в их создании. Важно, что там они делают с прикладной системной областью. А уж embedded или stand alone, это пустое. Конечно, embedded, ибо рядом ждут своей очереди на моделирование ещё десяток разных domains проекта, и хорошо бы это моделирование инфраструктурно вести в одной системе, а не в зоопарке разных систем. Проблема зоопарка осталась (зоопарк DSL в проекте неминуем, множественность же описаний системы требует множественности моделирования), но унификация сначала прошла машинного языка, а сегодня и хост-языка. DSL стал на одну ступеньку дальше от машинного кода.

При этом полно и попыток создать новые расширяемые языки-для-языков, то есть новые языки-платформы, новые хост-языки. Вот, поглядите на старт очередной попытки от justy_tylor, он неделю назад начал работать над прототипом нового компилятора: https://justy-tylor.livejournal.com/255265.html. Пожелаем ему удачи.
2019

Доклад "Будущее инженерии"

Сделал сегодня доклад "Будущее инженерии" на стратегической сессии лаборатории робототехники "Сбербанка", вот слайды доклада: https://yadi.sk/i/u4ObuTYbbPgf-g (видео не писалось).

Многое я уже рассказывал в других местах, но кое-что было и новое. Например, цикл жизни технологий (обсуждалось недавно в https://us13.campaign-archive.com/?u=67bd06787e84d73db24fb0aa5&id=320c223523):
-- Standardisation [deep learning – ONNX, и весь AI сейчас по факту ещё и этой фазы не достиг, то есть это всё ещё игрушки и эксперименты, а не промышленность]
-- Usability (удобные интерфейсы)
-- Consumerization (массовое потребление)
-- Foundationalization (изо всех утюгов, «потребление незаметно»)

Один из ведущих трендов в AI сегодня: «индустриализация» -- уменьшение затрат (в том числе денег, энергии, материалов, времени) на единицу пользы. Гипотеза Rich Sutton: прогресс определяется доступной вычислительной мощностью при простых алгоритмах. Вот максимизировать использование вычислительной мощности -- это и есть задача индустриализации. Ускорить сетку вдесятеро, или уменьшить потребную мощность вдесятеро -- вот это всё и есть индустриализация. Сегодня AI очень дорогой по времени и ресурсам, вот это и решается индустриализацией -- переход к массовости возможен после обрушения цены. И вот эти standardisation-usability-consumerization-foundationalization и есть стадии, по которым лабораторная технология становится промышленной.

Вот ещё модифицированная V-диаграмма с парой трендов на ней:
Vtwins

Штука в том, что digital twin идёт из воплощения системы в обеспечение (традиционное обсуждение того, зачем нужен digital twin -- диагностика, эксперименты what if, данные для дообучения алгоритмов управления, данные для улучшения варианта следующей конструкции и т.д.), а документация системы из обеспечения в воплощение (автономность, resilience, самодиагностика, самодонастройка и прочее для resilience).
2019

Учебная робототехника против покера на раздевание: "проект" vs "упражнение" vs "развлечение"

В очередной пост про образовательную робототехнику (пример американской школы, где под рок собирали роботов уж как кто может) меня призвали комментом -- типа как "пошёл в печать курс системного мышления" (https://www.facebook.com/alx.kornilov/posts/2328277747383781). Ну в печать/публикацию ещё не пошёл, но сегодня начали верстать -- и не курс, а книжку. В прошлый раз верстали пару недель, после этого "печать" (публикация в интернет-магазины) заняла ещё пару недель. Так что учебник в широком доступе я ожидаю примерно через месяц. Но курс (с задачами, но не факт что уже с видео) попробуем за месяц тоже выкатить.

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

В моём учебнике даётся системная схема проекта: для полноценного проекта нужно задействовать
-- практики предпринимательские (предмет коммента А.Корнилова: чтобы поделка хоть кому-то нужна была, а то дети привыкают в школе делать бесполезное -- вот моего вьюноша уже приучили, что можно делать бесполезное "для учебных целей", см. третий абзац в https://ailev.livejournal.com/1471647.html, его "производственная практика" в этом году была примерно такой же по полезности).
-- практики инженерии, в которых в том числе объясняют, что путём залезания на всё более высокие деревья на Луну попасть нельзя -- овладение "учебной робототехникой" не даёт инженерных знаний, инженерные знания даёт учёба робототехнике (а не учебная робототехника!). Оцените учёбу робототехнике в наборе курсов тут (я собираюсь этот списочек обновить, ведь уже год прошёл -- но для уровня "дискуссии в соцсетях" можно и этот старый вариант использовать): https://ailev.livejournal.com/1434868.html и сравните тамошнюю программу с программой курса "учебной робототехнике". Задумайтесь.
-- практики менеджерские (ибо дружная команда, управление задачами чтобы в срок, дисциплина следования регламентам -- это всё тут). Можно и дальше продолжать, но хотя бы это. Вот этот уровень "покажите всё меню минимальных компетенций для проекта" школьникам и педагогам не объясняют. А в учебнике прописано, что системное мышление с этого начинается -- с проекта как целого, погружаясь затем в его части. "Польза от проекта" тут только маленький кусочек в предпринимательской области интересов.

Для меня учить робототехнике -- это учить вот этому всему, и тут можно разделить роли в команде. Предприниматель там есть, но это по большому счёту не инженер-робототехник. За "нанести непоправимую пользу, только сообразить какую" не инженеры по большому счёту ответственны. И я тут про роли, ибо один человек может роли совмещать, но тогда это нужно оговаривать особо. Конечно, инженерное мышление исполнителям предпринимательских ролей отнюдь не чуждо. Нет же "предпринимательского образования", вот инженерное вполне сойдёт. Но чаще таки работает команда, а в команде у разных людей разные скиллы, включая скиллы робототехников-инженеров (включая инженеров по требованиям!), но не ограничиваясь ими. Нужны и менеджеры, и предприниматели. И, конечно, полный проект требует обучения не только предмету "искусство рукоделия в 2019: как спаять и свинтить болтами двигающегося робота".

Роли, роли в проекте нужно обсуждать, чтобы сравнивать роли в проекте и компетенции, которые даёт какой-то курс. В моём новом учебнике про проектные роли было добавлено не меньше пятидесяти страниц текста, это важно! И интересы ролевые, и скиллы ролевые, и команда собирается из проектных ролей, и внешние проектные роли должны быть. Школьные проекты не должны быть самодостаточными, когда ими занимается сферическая команда в вакууме, без представителей внешних проектных ролей с их надсистемами -- без этого проект не проект, а "упражнение". Хотя статус "упражнения" тоже нужно заработать, для этого нужно указать, какое знание было дано, чтобы упражнять беглость его применения.

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

Я увидел в американской школе "развлечение", а не "упражнение" и не "проект". Это несмотря на то, что там и впрямь в соседних предметах могли что-то преподавать интересное и нужное для "проекта" или хотя бы "упражнения", но вряд ли это было. "Жутко мотивирующий курс для Кулибиных" -- нет вопросов, робототехнический аналог покера на раздевание всегда выигрышный. Сказано ведь в комментируемом тексте школьницы-участницы якобы проекта: "Мои знания ни электроники, ни программирования не пополнились ни на грош. Но это время в уютном классе под музыку- одни самых теплых, вдохновенных и по-настоящему счастливых моментов за мой год студента по обмену". Дальше можно спросить: а что не было бы приобретено из неупомянутого, если бы вместо этого они играли в покер на раздевание?! Какие практики? Рукоделия из шестерёнок? Хороший ведь бенчмарк этот покер на раздевание -- после него предметных знаний ноль, но интерес и эйфория от учебного процесса есть! От сборки робота без использования каких-то знаний по инженерии (предпринимательству, менеджменту, чему угодно ещё) тоже может быть эйфория, радость, что мы и читаем. Но по внешним эффектам можно было бы и покер на раздевание дать вместо сборки роботов, верёвочный тренинг (сказали бы, что "проект по менеджменту") или что угодно другое.

Это всё не обучение, это всё развлечение. То, что "мы мотивируем, а обучат другие" -- отмазка.
2019

Инженерия хаоса от администрации США

Администрация США затеяла для мира инженерию хаоса: это такой способ проверки инфраструктуры, при котором идут плановые отключения работающих нормально сервисов -- чтобы поглядеть, как будет на это реагировать система. Тревоги не учебные, а настоящие, разве что бомбёжка идёт от своих, а не от чужих (вроде как морально от этого должно быть легче: сам рубильник датацентра выключил, потом сам же его включил -- после того, как убедился, что всё шло по плану. А если не пошло? Ну, урок на будущее, "сожалеем о случившемся, это необходимые жертвы для жизни будущих поколений").

Рубильником выключили Huawei. У меня дома два телефона Huawei, и это уже как-то трогает и меня. Никак не ожидал, что эта инженерия хаоса затрагивает и меня. Зависеть от Гугля (андроид!) и Майкрософта (винды на ноутбуках Huawei тоже ведь под вопросом!) оказывается вредно, их может отключить любой президент (мне плевать, что это президент США. Если президент России выкинет очередную какую-нибудь аннексию для целей защиты русских граждан за рубежом, традиционные цели всех аннексий, то итог будет тот же -- от сервисов Гугля и Майкрософта отключат опять же меня, а не президента России).

Вот теперь сидишь, и думаешь: кто там на самом деле сволочь -- администрация США, которая лечит головную боль методом отсечения головы (из-за боязни отказов каких-то будущих экземпляров техники Huawei отключает всю технику Huawei в мире! Нет чтобы просто не покупать аппаратуру от Huawei самим, и этим удовлетвориться), ненадёжность Гугля и Майкрософта, которым в бизнесе оказывается верить нельзя ("они только выполняют приказ", что там с такими как я владельцами смартфонов и ноутбуков и даже базовых станцый Huawei -- им глубоко плевать. Все эти "do not evil" уже в далёких легендах о прошлом), или Huawei, который чем-то там провинился, и поэтому его мочат уж как могут, в том числе задевая мои чисто технические пользовательские интересы как владельца аппаратуры и софта Huawei.

А смартфончики у Huawei таки хорошие, у меня на них нареканий нет. Поэтому желаю инженерам Huawei пережить эти неприятности, я целиком на их стороне. И лучи поноса всем остальным помянутым, ненадёжны и продажны оказались они, "просто выполняющие приказ", а не Huawei.

Плохо только, что Huawei будет делать свою новую операционную систему на основе Linux, оживлять опять древнюю рыбу латимерию, делать очередного зомби со всеми эволюционными недостатками. Я понимаю, что legacy и совместимость, но операционные системы должны быть современными, а не допотопными с их встроенными проблемами безопасности. Но удачи тамошним инженерам. Мне почему-то кажется, что я с удовольствием буду пользоваться результатами их трудов на этом фронте.

И там ещё проблемы с ARM! Хотя это уже касается будущей аппаратуры, а не нынешней: https://www.bbc.com/news/technology-48363772

Литература:
-- "Мойдодыр и политическая философия интернетвещизма", https://ailev.livejournal.com/1106188.html
-- Chaos Engineering: the history, principles, and practice, https://www.gremlin.com/community/tutorials/chaos-engineering-the-history-principles-and-practice/

То, что во всём мире сейчас технологический враг номер один вдруг оказался отнюдь не Китай, и степень зависимости нужно убирать не от Китая -- вот это абсолютно понятно. Чьи продукты могут "вдруг выступить против тебя в случае войны" -- вот этот кейс очень чётко продемонстрировал. И это не продукты Huawei оказались, и даже не один продукт оказался.

Так сказать, эффект Барбары Стрейзанд в этой неожиданной предметной области.


UPDATE: обсуждение в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10215452473039049 и ВКонтакте -- https://vk.com/wall2449939_2249, ФриФид -- https://freefeed.net/ailev/6778cc6c-2f0d-4d4b-a760-a357cd9f5582
2019

lytdybr

Сегодня прошли пятнадцатые Лебедевские чтения, как всегда -- огонь! Я выступил с маленьким сообщением, где рассказал, как мы ездили с Геной в Киев на ОДИ "Перспективы и программы развития сферы информатики" в 1988 году (на чтениях была Света Лебедева, которая уточнила дату -- она тоже была на этой игре в 1988 году, и хорошо помнит и игру, и дату!). И там на ОДИ был вывод, что вся это computer science в недалёком будущем -- это про искусственный интеллект. Так оно и оказалось. В 2019 году я по факту пообещал, что продолжу эту линию тридцатилетней давности: буду организовывать курс computer science/computational thinking образца 2019 года, где должно быть место и differentiable programming (включая все эти нейронные сети как частный случай), и probabilistic programming, и многое что другое. А потом А.Кушниренко и М.Райко показали текущее состояние дошкольного программирования -- в сегодняшнем софте используются в том числе и нейронные сетки (распознавание изображения выложенной кубиками программы управления роботом). Работает это всё, конечно, как первые программы распознавания речи лет пять назад: деревянный робот дёргается на фальшстарт на каждом третьем слове (слышит "правильную команду"), а на попытку спеть ему эту самую команду намеренно -- не откликается. Но таки работает, и детки учатся! В Сургуте прошли обучение более 6000 дошкольников, а 100 человек уже пошли на программу первого класса. Задача: сделать четырёхлетний курс программирования для начальной школы, чтобы этот курс гарантированно учил деток. Метод? Сержантский метод: много-много задач, и это работает. Вот видео (оно уже загрузилось), поглядите сами: https://vimeo.com/337031069

Вообще, все доклады были один другого краше. В какую бездну уходят деньги центробанка США, когда он их печатает? Непонятно, но есть намётки! Правда ли, что вот уже завтра наступит социализм, ибо он идёт прямо таки стеной и лавиной? Ответ: пришествие Трампа показывает, что неправда -- завтра сам чёрт не разберёт, что будет. Какие причины промышленной революции в Англии в 18 веке? О, это была одна из самых оживлённых дискуссий. Почему адвокатские услуги дерегулируют в Европе, но не могут дерегулировать в Великобритании и США? Почему в самых дерегулированных электроэнергетиках мира smart счётчиков меньше всего? В общем, интересный был день! Вот на фото момент уже кулуарной аргументации Р.Капелюшникова про английскую промышленную революцию:
15lebedevreadings

Буду сегодня-завтра конвертировать и выкладывать видео, так что ждите публикации материалов. Заодно удивился: у меня на vimeo оказалось выложено 194 видео, главным образом какие-то мероприятия. И не думал, что так много -- https://vimeo.com/user1649816

Вчера прошёл закрытый (только для выпускников, и видеозапись не велась) семинар Школы, где было два доклада об успешных проектах реорганизации, которые делали наши выпускники с использованием знаний, полученных в Школе. Это были бы хорошие доклады на конференции, только тут было по часу на каждый проект, а на конференции было бы по 15 минут. Очень жаль, что самыми интересными проектами, самым интересным опытом мы не можем делиться публично -- всё, конечно, и так без имён, но про проекты реорганизации в международных компаниях не очень принято рассказывать даже без имён. В любом случае, для меня это были очередные два свидетельства, что материал наших курсов вполне работает в реальных проектах реорганизации. Оба докладчика айтишники, руководители небольших (десятки человек) служб. В проектах нашлось кое-что схожее, так что докладчикам теперь есть о чём поговорить друг с другом -- тем более что говорят они на одном системном языке, который получили на курсах. Ну, а сами докладчики получили какую-то обратную связь от участников семинара. Например, я в очередной раз дал совет всех аналитиков переименовать в инженеров -- у инженеров не только аналитическая, но и синтетическая работа. Инженеры должны принимать решения и уполномочены на это, а аналитики должны обычно только понимать и передавать результаты своего понимания другим людям для принятия решений -- и так далее, есть долгий список причин, по которой иметь должности с названием "аналитик" вредно.

Учебник пишется, но пишется медленно. Но пишется. Но медленно. С книгами у меня всегда так. Но через некоторое время все эти написания книг таки заканчиваются, это утешает. Вчера переверстал диаграмму описаний системы (модифицированную из ISO 42010), это я уже в середине пятой главы. Зубодробительная, конечно, глава. Но после этого прохода она будет чуток попроще. Потом три главы про жизненный цикл (который не жизненный, и не цикл), и всё. Структуру учебника не меняю из принципиальных соображений (помним про "эффект второй системы"! изменение структуры пойдёт на какую-то следующую итерацию). Сейчас меняется только терминология и вставляются небольшие объяснялки.
2019

SpotMini -- робоплатформа, а не робот. Роботы ещё будут, чуть позже.

Boston Dynamics этим летом начинает массово выпускать SpotMini, четырёхногого якобы робота. Но основная его особенность в том, что нельзя сказать, сколько у него рук, голов, камер, навесного оборудования, какое его назначение. Это "тележка" (только на ногах), которая умеет безопасно перемещаться не только по дорогам, но и по бездорожью, лестницам и т.д.. А голову, руки, дополнительные датчики и мозги к нему должны приделать уже покупатели сами -- и затем пользоваться сами, или перепродать уже конечным покупателем или как сервис (лизинг, форм тут много может быть), или как полноценных служебных спецроботов. Из робота SpotMini хотят сделать что-то типа "телефона Android", где приложения могут быть самые разные -- разве что к телефону редко докупают оборудование, но только софт, а тут должны прикупать и оборудование, и софт -- https://venturebeat.com/2019/04/19/ai-weekly-boston-dynamics-robots-are-terrifying-by-design/

Тем самым SpotMini это не столько робот (невелика польза от "умения ходить"), сколько робоплатформа для роботостроения. Дальше можно пообсуждать, сколько процентов прибыли от продажи специализированного конечного робота осядет в эко-системе SpotMini (да, разработчики прямо говорят про эко-систему --https://www.wired.com/story/boston-dynamics-spotmini-running-man/), а сколько на Boston Dynamics как поставщике платформы -- старинная дискуссия о толстых и тощих протоколах, но на примере хардвера (см. доклад vvagr про тощие и тучные протоколы на конференции ШСМ -- https://www.youtube.com/watch?v=kp2fTeMHweE ). Робот тут -- конечное устройство, а SpotMini платформа, существенная часть робота, но не робот ещё.

С этого лета (плюс год-два на развитие "программно-аппаратных приложений", то есть модификаций) жизнь на планете опять непредсказуемым образом изменится, в продаже появляется новый класс робототехнической платформы. Каким именно непредсказуемым образом? Этого даже разработчики SpotMini не знают: они просто делают прорыв. Напомню: прорыв -- это когда сотни и сотни небольших фирм на Земле получают возможность делать что-то новое ("социальные определения "прорыва" (breakthrough) и "подрыва" (disruption) в науке и инженерии" -- https://ailev.livejournal.com/1460300.html). В данном случае они получают возможность строить спецроботов на базе платформы SpotMini. И они уж придумают, что там можно сделать. Разработчикам первого смартфона в голову не приходило, что звонить по телефону будут мало, а вот чатиться в WhatsApp и Telegram будут много, плюс "сидеть в соцсетях", плюс сам смартфон выбирать по камере, а не "качеству связи и удобству набора номера". Это как раз "экосистема смартфона". Что будет со SpotMini через несколько лет -- можно только гадать. Собака, которая чуток поумней собаки, посильней собаки. Поводырь? Инспектор? Сторож? Ездовая собака? Не счесть применений. Ждём пару-тройку новых видео в месяц, и уже не только от Boston Dynamics, но и от её клиентов-ORM (original robot makers, по образцу OEM -- original electronic makers).

SpotMini танцующая цирковая собака -- https://www.youtube.com/watch?v=kHBcVlqpvZ8
SpotMini инспектор на стройке -- https://www.youtube.com/watch?v=wND9goxDVrY
SpotMini ездовая собака -- https://www.youtube.com/watch?v=OnWolLQSZic

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

Простого решения нет: вопросы безопасности, вопросы стоимости, вопросы просто передвижения по барьерному городу (тележки не спрыгнут с бордюрчика, и не запрыгнут на него, а курьеры на электросамокатах и SpotMini-курьеры и спрыгнут, и запрыгнут), энерговооружение всей этой техники, падение цен на весь этот искусственный интеллект тут значат многое. И всегда есть "микромультимодальная перевозка": до какого-то места везёт даже не спецтележка, а полный грузовик (много ведь посылок везёт, так что не жалко использовать большой транспорт), а там "последние 50 метров" будет скакать по лестницам и бордюрам SpotMini-курьер. Так что новый технический вид "собачья/ослиная/лошадиная/слоновья робоплатформа" в этой техноэволюции ещё должен будет побороться за своё место под солнцем. Но шанс победить у него есть, и немаленький.

И да, можно отчасти считать, что это просто автомобилестроение. Самобеглость (авто и мобиль, самобеглые коляски помните?) налицо. Автомобиль на ножках (буквально бегает!), и без водителя. Маленький, с возможностью на его платформе соорудить какой-то спецавтомобиль.

Автомобилестроение -- это ж сегодня лидер в системной инженерии ("Что на свете всех сложнее? Автомобили вырываются вперёд" -- https://ailev.livejournal.com/1398456.html), вот это как раз оно. Всё то же самое, только с ножками и (возможно! если клиент захочет!) ручками.

UPDATE: дискуссия в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10215234965361493
2019

Онтика системного мышления, 2019

Системное мышление в 2019 уже не одинокая методологическая дисциплина, поэтому часть понятий, которые я включал в её онтику в момент создания учебника ("Системные мыслемы", июль 2016 -- https://ailev.livejournal.com/1278600.html), можно выкидывать. Содержание нужно тоже подправить, после выхода учебника в феврале 2018 года я написал довольно много уточнений в блоге и чате поддержки курса, и кое-что нужно было бы включить -- но кое-что можно было бы опустить, оставив для специальных курсов.

А ещё можно упростить терминологию примерно по тем же основаниям, что я упрощал русскоязычную терминологию архимейта в версии 1.1 в июле 2015 (https://ailev.livejournal.com/1205591.html) и опыту использования этой русификации. Мало кого волнует, что терминология точно соответствует инженерным стандартам и публичным документам. Концептуальная точность остаётся, а вот терминология должна быть развёрнута в сторону масштабирования: лёгкой для запоминания и говорения, а не точным переводом терминологии стандартов. Вместо двусложных терминов выбираем односложный, вместо канцеляритных -- неформальные, а лучше и вообще сленг, чтобы "как в учебнике, так и в жизни" (а не в "как в стандарте, так и в учебнике"). Опыт перевода Архимейта показывает, что пользы от такого подхода больше, а желающие опереться на стандарты всегда могут взять англоязычные оригиналы и использовать их. А уж опираться на русскоязычную терминологию переводных ГОСТов -- это вообще последнее дело, пусть этим занимаются люди, которых волнует не мышление, а военная приёмка.

Поэтому "я это породил, я это и буду исправлять". Вот мои текущие соображения:

1. В курс онтологики уходят: 4D индивид (тренируется критерий определения: протяжённость в пространстве-времени), индивиды и их описания, могут ли описания быть индивидами, работы (изменения: процессы, проекты, кейсы) как 4D индивид, события как 3D индивид, софт как 4D индивид (ошибка: исходный код как индивид), предпринятие как 4D индивид, индивиды как полные темпоральные части, методологическое время против реального (в 4D), логема экстенсионализма: совпадение двух объектов в пространстве-времени -- это один объект, отношение композиции ("часть-целое" в 4D), многоуровневая декомпозиция (холоны), классификация (классы классов), специализация, деятельность (в отличие от действий -- критерии культурной обусловленности, повторяемости, "ролевости"), театральная метафора, действующие лица и исполнители: позиция субъекта выявляется только в деятельности, а не в речи.

2. В курс вычислительного мышления (операции с моделями там!) уходят: частное описание (view), метод описания (viewpoint), модель, вид модели -- мета-модель, множественность описаний: мультимодель, мегамодель, прожекторный и синтетический подходы к описанию. Как ни удивительно, 42010 оказывается не столько системным стандартом, сколько стандартом информатики (опирающимся на онтологику в части соотношения моделей и мира). С этим нужно отдельно ещё поразбираться, в этом месте пока всё мутно. Вообще, курс вычислительного мышления требует к себе повышенного внимания, ибо в нём в том числе и вся тематика AI (алгоритмы искусственного интеллекта, в том числе работа с коннективистскими моделями).

3. Воплощение системы против описания системы [трудный момент: definition становится описанием, а description -- документацией. Это может вызвать проблемы с пониманием старых текстов. Но говорить так становится в разы проще]
-- воплощение системы против описания системы
-- системы против систематики ("система Линнея") и методологии ("система Станиславского")?
-- уровень системы как части системы-холона: целевая система как точка отсчёта, надсистема [было: использующая система] и подсистема. Элемент системы. [Можно подумать, оставлять ли понятие холона, или просто давать сразу систему вместо холона, и системную иерархию/декомпозицию по системным уровням вместо холархии]
-- системы в окружении [было: операционном. Можно было бы назвать "рабочее окружение", но проще опустить квалификатор окружения вообще. Окружение -- всегда в момент работы/функционирования/эксплуатации/использования. Слово "контекст" тут хуже, ибо "контекст" -- это операционный против обеспечения. Среда хуже, ибо окружение вокруг аттрактора внимания -- целевой системы, а среда не имеет центра]
-- системы в обеспечении [было "обеспечивающая система", но тот же тип преобразования, что в окружении ***тут нужно бы тоже назвать покороче, но непонятно, как. Обеспечение тут -- альтернативное название оргзвеньев, выполняющих ЖЦ: выполняющих практики обеспечения и работы обеспечения. См. ЖЦ)
-- именование системы по типовой основной функции (назначению) в момент эксплуатации
-- системная схема: связь целевой системы, надсистемы, системы в окружении, системы в обеспечении (ошибки: "объективная система", неверность в определении границ системы, "принцип почтальона" по слишком далёкой надсистеме, пропущенная надсистема -- "мужчина использует женщину", игнорирование команды: система в обеспечении как целевая, подсистема как целевая)
-- проектная система [***сейчас иногда говорят "проектируемая система", system under design. Но она не только проектируемая, но изготавливаемая, и эксплуатируемая и т.д.! У нас же говорят про подобные системы, что они реализуются по "частным техническим заданиям". Это по факту "мой винтик в целевой системе, я сделяль" -- стейкхолдерский фокус личного подпроекта того стейкхолдера, который пытается рассуждать системно про весь проект. В прошлой онтике этого не было. Введено по образу и подобию "жизненного цикла проекта" как части жизненного цикла, ограниченного рамками проекта. По сути, речь идёт о какой-то выделенной подсистеме целевой системы, или (под)системе из какого-то обеспечения.]
-- проверка и приёмка (описания и системы, описания и описания при моделеориентированности)

4. Роли, их интересы и оформляющие их описания
-- Роли [было стейкхолдеры], определяемые по отношению к системе. Конечно, одновременное использование словосочетаний "роль архитектора" и "архитектор -- это роль" ("роль Принца Гамлета" и "Принц Гамлет -- это роль") для онтологов звучит кривовато, но "интересант" и "роль интересанта" оказывается не лучше "стейкхолдера". Принц Гамлет -- это действующее лицо/интересант, и у него есть роль в пьесе, конечно. Но используем метонимию (действующее лицо/интересант с его ролью -- роль), ибо в речи это всё должно быть ОК. И даже в архимейте внутренние стейкхолдеры -- это roles. Внешние роли в проекте и внутренние роли проекта (опять же, роли "в проекте" или "проекта" -- нужно обсуждать, но интуиция подсказывает, что внешние почему-то "в проекте", а внутренние -- "проекта"). Ошибки: исполнители, оргзвенья [было: ответственные], звания, большие организации, пропуск антиклиентов.
-- интересы (и аспекты как группы интересов)
-- целокупность и эмерджентность для уровней системы (смена интересов и ролей для уровней)
-- успешная система
-- описание (definition) как ответы на интересы, безусловное существование описания
-- документация системы (description) [было -- описание. Это может быть предмет путаницы при переходе на новую версию терминологии] как рабочий продукт, необязательность существования документации
-- потребности (ролей [было -- стейкхолдеров])
-- требования / стратегия -- описания чёрного ящика
-- дизайн -- описание прозрачного ящика
-- ограничение -- описание прозрачного ящика

5. Функциональное [слово "компонента" убираем] против конструктивного/модульного, размещения
-- минимальное число видов описаний: функциональные, модульные, размещения
-- функциональный элемент, порт, связи [*** плохо, что два слова "функциональный элемент" и "элемент" тут вполне может быть далее декомпозируемым, а не именно элементом. Связи могут быть потоками]
-- функция [как поведение функционального элемента, имеющее назначение в надсистеме -- на языке надсистемы]
-- функциональная декомпозиция [не анализ!]
-- сервис [как поведение модуля на интерфейсе, имеющее значение в целевой системе -- на языке системы]
-- модульная диаграмма (стека интерфейсов, платформенного стека), функциональная диаграмма (принципиальная схема)
-- модуль, интерфейс. Конструкция, модульная декомпозиция.
-- размещение
-- совмещение функционального элемента и модуля
-- архитектура
-- архитектурное решение
-- архитектурное требование
-- архитектурная документация [было: архитектурное описание] описание
-- архитектурный синтез [логическая и физическая архитектура -- убираем]

6. Жизненный цикл 2.0: поведение (практики и работы) оргзвеньев обеспечения
-- жизненный цикл 1.0 как недекомпозированные (верхнеуровневые) работы оргзвеньев обеспечения
-- стадия работ обеспечения/жизненного цикла
-- жизненный цикл проекта -- участвующее в проекте поведение (практики и работы) оргзвеньев обеспечения
-- практики обеспечения
-- декомпозиция практик обеспечения (метод/методология, подпрактики)
-- дисциплина
-- технология (ошибка: игнорирование их соответствия дисциплине)
-- вид/модель жизненного цикла: способ назначения работ на практики обеспечения
-- оргзвенья обеспечения

7. Системная схема проекта (модифицированный Essence):
-- альфа, подальфа
-- рабочий продукт
-- семь основных альф: внешние роли [было "стейкхолдеры"], контракт [было: возможности], воплощение системы, документация системы [было: "определение системы", уходит в подальфы], работы, команда, практики [было: технологии -- а технологии уходят в подальфу. Всё одно альфы из Essence кривы, и можно чуть-чуть выправить этот коленвал]
-- зоны интересов: клиентская, инженерная, проекта [было предпринятия -- но тут явно проект, а не просто предпринятие-оргзвено]
-- сопоставление надсистемы, целевой системы и систем обеспечения зонам интересов
-- сопоставление менеджеров, инженеров и предпринимателей зонам интересов и тамошним альфам
-- состояния альфы как контрольные точки
-- контрольный вопрос (к контрольной точке)

Пример "перевода с русского на русский" -- как будет звучать "суть системного подхода в одном абзаце" из https://ailev.livejournal.com/1469354.html:

Сейчас: чтобы удовлетворить потребности внешних стейкхолдеров, нужно понять принципы функционирования и возможную конструкцию использующей системы и тем самым сформулировать функциональные и интерфейсные требования к целевой системе. Затем выполнить эти требования, для чего разработать архитектуру и затем воплотить в жизнь конструкцию целевой системы. А для этого нужно применить практики жизненного цикла целевой системы, организовав компетентную команду обеспечивающей системы и снабдив эту команду всеми нужными технологиями. И всё это нужно делать рекурсивно, для всех подсистем целевой системы.
Будет: чтобы удовлетворить потребности внешних ролей в проекте, нужно понять принципы функционирования и возможную конструкцию надсистемы и тем самым сформулировать функциональные и интерфейсные требования к целевой системе. Затем выполнить эти требования, для чего разработать архитектуру и затем воплотить в жизнь конструкцию целевой системы. А для этого нужно применить практики жизненного цикла целевой системы, организовав компетентную команду в обеспечении системы и снабдив эту команду всеми нужными технологиями. И всё это нужно делать рекурсивно, для всех подсистем целевой системы.
* * *
Тут всё пока очень сыро и очень спорно и по составу онтики, и по заменам терминов. Но release early, release often -- лучше опубличить и пообсуждать сейчас, чем переделывать толстые книжки потом. Я буду возвращаться к этому посту и редактировать его по мере возникновения понимания. Особо проблемные места обозначены через ***. Так, замена "определение --> описание" и "описание --> документация" явно хороша, но теряется совместимость с уже написанным. Плюс "онтология -- онтологическое описание", "архитектура -- архитектурное описание" неожиданно становится "онтологией (онтология -- это уже описание!) -- онтологической документацией" и "архитектурой (уже описание!) -- архитектурной документацией". Но создать/описать/define архитектуру -- это тогда чётко отличается от документировать архитектуру.

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

UPDATE: дискуссия в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10215181784632008
2019

Поиск-ориентированная системная инженерия, 2019

Важное замечание от Rich Sutton, что весь прогресс в AI в конечном итоге определяется грубой вычислительной силой, а не хитрой алгоритмикой -- The Bitter Lesson, 13 марта 2019, http://www.incompleteideas.net/IncIdeas/BitterLesson.html. Как бы мы ни пытались кодировать AI, побеждают в конечном итоге методы, опирающиеся на огромные вычисления, связанные с поиском и обучением. Мир дико сложный, и его нужно как-то аппроксимировать в моделях. Но эти аппроксимации должны искать не люди, их должны находить (search) и выучивать (learn) простые алгоритмы, которые могут это делать лучше при добавлении вычислительной мощности, даже если текущие вычислительные мощности кажутся достаточными.

Я бы это замечание отнёс и к интеллектуальной деятельности всего человечества, делаемой в соответствии с "квазиэволюционностью", open-endedness: https://ailev.livejournal.com/1463013.html. Мы занимаемся изучением/исследованием/выучиванием окружающего мира, наука=learning. А в инженерии мы ищем/search решения. Я ещё в 2014 писал "поиск-ориентированная системная инженерия и другая пост-моделеориентированная жизнь", https://ailev.livejournal.com/1122876.html, и там "5. Компьютерный поиск (порождение, вывод, вычисление) требований, архитектуры, тестов -- это и есть следующее поколение системной инженерии, непосредственно следующее за переходом к моделеориентированности. Для этого нужно искусственное инженерное воображение (экономная генерация всё более и более подходящих вариантов инженерных решений) и искусственный инженерный вкус (умение оценить эти варианты)".

И это означает по факту, что помере ухода науки в компьютеры она будет обзываться learning (в пределе -- self-supervised learning, https://github.com/jason718/awesome-self-supervised-learning). А по мере ухода инженерии в компьютеры она будет поиском решений -- search. И прежде всего архитектурным поиском, architectural search (поиском самого важного -- настолько важного, что при нахождении другого решения придётся перенаходить все остальные решения). И это будет поиск не только нейроархитектур, но и архитектур общего вида (пример поиска архитектуры тела робота я давал уже в первом абзаце https://ailev.livejournal.com/1469543.html). Все работы по алгоритмике обучения (deep learning в том числе) и алгоритмике поиска (архитектруного поиска, но в том числе и различные generative подходы, типа GAN) -- это работы по алгоритмике науки и инженерии.

Если делать сегодня курс системной инженерии, то опираться нужно именно на эти рассуждения и делать курс совместимым с именно этой методологией разработки, этой терминологией, которая берётся из AI-intensive systems. Авиастроение девяностых или даже автостроение нулевых (software-intensive systems, cyber-physics systems) уже не подходят. А вот то, что происходит сейчас с беспилотниками и роботами -- вот это самое оно. Это сегодняшний фронтир (и даже немного дальше, чем фронтир), завтрашний мейнстрим. Нужно осмыслять происходящее сейчас с data engineering, data science (это по факту одно с software engineering, computer science, недаром Хинтон, Бенжио и ЛеКун получили тьюринговую премию пару недель назад, их ACM, Association for computing machinery, признала за своих -- https://awards.acm.org/about/2018-turing. Алгоритмы глубокого обучения, алгоритмы AI, просто алгоритмы эти работают с данными -- но какие алгоритмы не работают с данными?!).

А оформлять результаты этого осмысления нужно сразу в удобной для усвоения людьми форме: делать современный курс по практикам системной инженерии. Той, которая с использованием AI-алгоритмов -- таким же повсеместным, как использование "просто компьютера" (PLM, CAD, digital twin и т.д.) в предыдущем варианте системной инженерии. Какое там будет buzzword для такой инженерии? Поиск-ориентированная/search-based? AI-aided? AI-assisted? Не знаю, но оно точно появится.
2011

Машинный интеллект/мышление, искусственное обучение, машинное обучение, искусственный интеллект

Слово "искусственный" уже нужно опускать рядом со словом "интеллект", а вместо слова "интеллект" можно писать слово "мышление" -- не слишком искажая смысл. Это как с "электронной почтой" -- сегодня другой уже, по факту, и не бывает, да и почта сменилась на чатики.

Сегодняшний человеческий интеллект не живёт без компьютерных моделей, доступного из любого телефона Гугля и чатиками с другими интеллектами, машинными и не очень. Дикарский интеллект -- это ведь не интеллект вовсе, а не-дикари сегодня уже киборги насквозь: сращены со своими смартфонами, корпоративными информационными системами и прочей вчера ещё нежитью, а сегодня буквально частями тела и мозга. Вот это всё вместе и есть сегодняшний "интеллект", сегодняшнее "мышление" в их машинном и человечьем винегрете. И даже не винегрете (где всё варится по отдельности, а потом смешивается), а сборной солянке (где всё проваривается вместе). Современные компьютерные приложения очень даже учитывают особенности человечьих мозгов (спросите у маркетологов и игроделов), а человечьи мозги очень даже учитывают особенности сегодяшних программ (спросите у себя, как ваши мозги вообще добрались до этого текста, чтобы его прочесть. Нашли ведь как-то?). И да, машинный интеллект и машинное обучение (внутри которого сидит обучение репрезентациям, а внутри которого сидит глубокое обучение) -- это одна и та же традиция, эпистемологическая. Где важна не мысль, а "как узнали". Обучились! С учителем, или без, или самообразованием -- это уже второй вопрос.

Уследить за всем, что происходит в области исследования интеллекта aka мышления уже нельзя, никакие одни мозги, даже поддержанные компьютерами, с этим не справятся. Но можно выделить некоторые точки особого внимания в происходящем: сдвиги понимания, приводящие к сдвигам в планах, приводящие к сдвигам в делах. И получается так, что на какие-то прорывы в чисто человеческом мышлении уже надежд нет, результаты в этой сфере более чем умеренные уже довольно долго: сильно умней не станешь, гениев на потоке не научились производить. Поэтому основные прорывы идут в сфере машинного интеллекта, пока ещё не совсем слившегося с интеллектом человека. Хотите стать таким умным, чтобы проектирование в машиностроении ускорить вдвое? Используйте AI, как это делают в General Elecric -- https://www.forbes.com/sites/jeremybogaisky/2019/03/06/general-electric-ge-artificial-intelligence/#1d66173ad881 (там использовали "машинную интуицию", т.е. нейронные сети, чтобы аппроксимировать точные вычисления -- и в результате сократили время, потребное на моделирование в миллионы раз, получив в итоге проект дизельного двигателя с 7% экономией топлива. И это не важно, что нейронная сеть была всего лишь "аппроксиматором". Обучение было примерно таким же, каким раньше учили операторов доменной печи: замечать разные мелочи, и действовать "по интуиции"). Этих "применений искусственного интеллекта" уже столько, что за ними следить совершенно неинтересно. Примерно как "применения электричества в промышленности и в быту": в 1919 году отдельно отслеживать такие новости уже было бессмысленным, а в 2019 году даже думать о таком, как чём-то особенном, странно. Вот в 2019 году отслеживать "применения искусственного интеллекта" стало бессмысленным. Это уже как электричество: используют все, это перестало быть новостью. Вот получение термоядерного электричества, или дешёвые батареи, или дешёвая фотовольтаика -- это новости. Производство дешёвого электричества -- новости до сих пор. Так что "производство машинного интеллекта" будет новостями и много позже того, как использование машинного интеллекта перестало быть новостью.

1. Основная битва происходит в области скорости, с какой происходит мышление. И человечье мышление тут не на фронтире, ибо проектируют тут уже не столько человечьи интеллекты, сколько машинные интеллекты:

1.1. Алгоритмы мышления. Всё должно быть точнее при заданной скорости, или быстрее при заданной точности, а ещё лучше -- и быстрее и точнее. Поиск нейроархитектур тут только одно из направлений, но немаленькое: https://www.automl.org/automl/literature-on-neural-architecture-search/ (и там, например, достижения типа Evolved Transformer, https://arxiv.org/abs/1901.11117, At big model size, the Evolved Transformer is twice as efficient as the Transformer in FLOPS without loss in quality. At a much smaller - mobile-friendly - model size of ~7M parameters, the Evolved Transformer outperforms the Transformer by 0.7 BLEU on WMT'14 English-German. Ещё пример -- ускорение алгоритмов, использовавшихся для сверхчеловеческого уровня игры в Go, чтобы такие эксперименты были доступны не только гигантам рынка типа DeepMind или Facebook: https://arxiv.org/abs/1902.10565,
Like AlphaZero and Leela Zero, a popular open-source distributed project based on AlphaZero, our bot KataGo only learns from neural net Monte-Carlo tree-search self-play. With our techniques, in only a week with several dozen GPUs it achieves a likely strong pro or perhaps just-super-human level of strength. Compared to Leela Zero, we estimate a roughly 5x reduction in self-play computation required to achieve that level of strength, as well as a 30x to 100x reduction for reaching moderate to strong amateur levels.

1.2. Компьютерное железо. Тут совпало, что приказал долго жить закон Мура, и одновременно потребовались ускорители для алгоритмов машинного обучения -- при этом спрос оказался главным образом на ускорение вычислений для deep learning алгоритмов (прежде всего свёрточных нейронных сетей). Поэтому инвестиции пошли не только в альтернативные CPU на разной архитектуре, но и в эти самые ускорители. Основной сюжет тут в том, что алгоритмов искусственного интеллекта оказывается множество, и непонятно, какие из них поддерживать аппаратно (вплоть до аналоговых вычислений, очень быстрых, но и самых ограниченных алгоритмически). Поэтому за обычными цифровыми компьютерами тут приоритет: их легко перестраивать на самые разные алгоритмы -- дифференцируемое программирование, эволюционные вычисления, символьные вычисления и всё остальное (помним про no free lunch theorem -- что нет универсального алгоритма. Идеальный для одного класса задач алгоритм будет ужасен для другого класса задач, и наоборот).

Наиболее легко делать ускорители класса "мозг насекомого", для computing at the edge -- то есть всякие микроустройства. И их уже тьма, самой разной архитектуры, ключевая их характеристика -- экономия электроэнергии. Производительность минимальная, но всё лучше, чем у CPU. Последняя новинка -- Google начал продавать за $150 Coral Dev Board на базе Edge TPU чипа -- https://venturebeat.com/2019/03/06/google-begins-selling-the-150-coral-dev-board-a-hardware-kit-for-accelerated-ai-edge-computing/. Все сравнения этого компьютера -- что это аналог Raspberry Pi, только для искусственного интеллекта. И таких крошечных компьютеров много, например Intel Movidius Myriad VPU 2 -- https://www.movidius.com/myriad2.

Для ускорителей побольше всё не так быстро, но тоже весело: квантовые компьютеры, мемристорная память, универсальные GPU, ещё более универсальные FPGA, не слишком универсальные TPU, инициативы не только NVIDIA, Intel, Google, Microsoft, новичков с valuation 1.7М типа Graphcore, и даже начинающий разработку своих чипов Facebook -- будет весело. А нейроморфные компьютеры пока "не взлетели", уж больно они неуниверсальны получаются.

Особо нужно упомянуть, что в сочетании с концепцией внимания-к-памяти (см. пункт 3 этого поста), грядёт возврат интереса к аппаратной ассоциативной памяти - последние разы мы видели этот интерес ещё в восьмидесятых годах 20 века, а потом победа wintel по факту закрыла это направление (жизнь там едва теплится -- https://en.wikipedia.org/wiki/Content-addressable_memory). Но нет ничего более нового, чем хорошо забытое старое.

Вот эти железо и алгоритмика решают всё. Дешевизна интеллекта решается именно в этом месте. А дорогой интеллект -- его мало, это и не интеллект вовсе. Интеллект должен быть дешевле грибов! И он будет дешевле грибов!

2. Переход от мантры "обучение без учителя" (unsupervised learning) как ключевого в машинном интеллекте к "самообучению" (self-supervised learning) и предсказаниям, как ключевому: изменилась "метафора торта" у Yan LeCun, в феврале вышла вторая версия (первая версия -- 2016 год, совсем недавно!) -- https://syncedreview.com/2019/02/22/yann-lecun-cake-analogy-2-0/ (больше ссылок см. в первом абзаце https://ailev.livejournal.com/1466364.html). По факту это переход к использованию моделей языка, моделей мира, дающих возможность предсказывать прошлые и будущие состояния.

3. Интеграция символьных и коннективистских представлений, канемановских "системы 1" и "системы 2". По этой линии свежие выступления Yoshua Bengio, особенно его выступление в университете Синьхуа 7 ноября 2018г, https://medium.com/syncedreview/bengio-at-tsinghua-university-on-maturing-deep-learning-and-babyai-aa0be56e4098 (вот слайды -- http://www.iro.umontreal.ca/~bengioy/talks/MSR-Beijing-Tsinghua-7nov2018.pdf) и недавно опубликованное интервью https://syncedreview.com/2019/02/16/yoshua-bengio-on-ai-priors-and-challenges/. Тут всё, как мы любим:
-- необходимость разбираться с символьными вычислениями
-- связь абстракций и формального выражения (у меня ведь давно было в to do про "распутать ортогональность абстрактности и формальности/символьности" -- вот эти материалы Bengio как раз касаются этой темы. Я только в августе последний раз писал про активную гибридизацию нижних уровней интеллект-стека, https://ailev.livejournal.com/1442172.html). Сюда же -- сюжет о "дифференцируемом всём", https://ailev.livejournal.com/1464563.html
-- внимание как способ работы с абстракциями. Память и внимание. Помним, что абстракции -- это то самое representation learning. А модели выражаются в терминах абстраций.
-- внимание и сознание (по той же линии рассуждений, что Attention schema theory -- https://ailev.livejournal.com/1193568.html)
-- символьность как отражение мира (а не только текстов), grounding
-- символьность как коммуникация
-- важность работы с причинностью. При этом проблема объяснения (explanation) оказывается частью проблемы работы с причинностью. И тут с объяснениями не всё так однозначно, см. https://arxiv.org/abs/1802.07810 (increased transparency hampered people's ability to detect when a model has made a sizeable mistake. These findings emphasize the importance of studying how models are presented to people and empirically verifying that interpretable models achieve their intended effects on end users).
-- модели мира и предсказания: виртуальные простые миры как "тренировочные" перед переходом к более сложным для обучения мирам.

Откуда берутся priors? Я уже много раз писал, что из культуры -- чем закончилась человечья эволюция, тем и начнётся эволюция машинизированного человечества, модели AI будут учиться на образцах текущей культуры, а не с полного нуля. И Bengio полностью эту точку зрения подтверждает.

Тут важно, чтобы наши курсы методологических дисциплин не противоречили представленным тут state-of-the-art идеям о мышлении -- поэтому мы будем проверять явно, насколько содержание курсов по плану в "Курс научного мышления -- в середине целого ряда методологических курсов" https://ailev.livejournal.com/1466364.html соответствует этим представлениям. Пока это всё совместимо с тем, что а рассказываю в книжке "Визуальное мышление" и по факту даётся в нынешнем курсе онтологики, но есть и много интересных поворотов мысли, которые нужно как-то осмыслить. Мне эти работы по машинному интеллекту важны тем, что они:
-- общие для человечьего и машинного интеллектов
-- дают некоторый способ думать об окружающем мире, о науке (моделировании мира).
-- дают идеи для выстраивания обучения людей, и выстраивания их симбиоза с умной нежитью

4. Мысль всегда распределена среди агентов. Поэтому многоагентность, где все агенты участвуют в общей эволюции -- это наше всё. Никакой интеллект/мышление не живёт в одиноком мозгу. Последние исследования OpenAI бьют в эту точку, например A Massively Multiagent Game Environment https://blog.openai.com/neural-mmo/, или с чуть менее выраженной мультиагентностью, но с тем же акцентом на куррикулум/развитие Unity Tower Environment: https://github.com/Unity-Technologies/obstacle-tower-env. А из новинок тут можно указать ещё и A Manifesto for Multi-Agent Intelligence Research, выпущенный DeepMind -- https://arxiv.org/abs/1903.00742, и там тоже прежде всего адресуются к эволюции: Evolution has produced a multi-scale mosaic of interacting adaptive units. Innovations arise when perturbations push parts of the system away from stable equilibria into new regimes where previously well-adapted solutions no longer work. Here we explore the hypothesis that multi-agent systems sometimes display intrinsic dynamics arising from competition and cooperation that provide a naturally emergent curriculum, which we term an autocurriculum. The solution of one social task often begets new social tasks, continually generating novel challenges, and thereby promoting innovation. Under certain conditions these challenges may become increasingly complex over time, demanding that agents accumulate ever more innovations.

Тут всё кипит и бурлит, причём есть общий признак: при слове "агент" появляется слово "среда" (environment), в которой этот агент/агенты действуют. И по факту простая задача моделирования агента сводится к моделированию виртуального и моделированию этого мира внутри агента (или их сети). Вот эта смена акцента с развивающегося "агента" или "множества агентов" на "агенты в развивающемся мире" и акцент на эволюционный характер этого развития -- вот это новое. См. подробней в "Open-endedness: понятие шире, чем эволюция" -- https://ailev.livejournal.com/1463013.html

5. Искусственный интеллект поднимает кучу старых вопросов, которыми начинают заниматься всё новые и новые люди:
-- вопросы того, что такое "человек" и даже "человечество". Ибо всякие идеи научных фантастов о том, что уважать нужно разум, а не биологическое оформление разума, вдруг начинают быть не совсем фантастическими.
-- возврат к идеям эволюции и развития, но на новой понятийной базе (open-endedness): https://ailev.livejournal.com/1463013.html
-- идеи социализма (например, возврат к идеям коммунизма в форме "работать будут роботы, и они должны наработать нам на потребности, а мы будем работать по возможности. А кому будут принадлежать эти роботы? Государству, которое нас должно теперь всем обеспечить по тем самым потребностям! Начнём с безусловного базового дохода, и без этих ваших трюков с бюджетом и льготами, просто гоните деньги на бочку").
-- этика, ибо требуется объяснить идеи этики вроде как "тупой машине". А тупая машина не требует "объяснений", но выучивает этику как общепринятые правила поведения -- мораль. И мораль оказывается всё время не слишком этичной, когда её начинают пробовать на прочность. Это я о проблеме bias в искусственном интеллекте: мы не можем научить компьютер быть лучше, чем мы сами -- примерно так же, как мы не можем научить наших детей быть лучше, чем мы сами. А ещё военные применения AI. А ещё регуляторные вопросы -- например, можно ли использовать малоинвазивные методы лечения рака роботами (FDA говорит, что риски непонятны, поэтому рисковать нельзя -- https://edition.cnn.com/2019/03/01/health/fda-warning-robotic-surgery-mastectomy/index.html).
-- политическая система, правоприменение и вообще жизнь во времена, когда можно легко сгенерировать фейки. Это вообще отдельная проблема, "производство правдоподобной лжи в промышленных масштабах" (про "кадавра, неудовлетворённого графомански", я уже писал -- https://ailev.livejournal.com/1465347.html, и про AI Калашникова, которым дикари уже вооружились -- https://ailev.livejournal.com/1465183.html).
-- ... такого сорта вопросов огромное количество, и даже интересно, сколько свежеиспечённых "специалистов по социальным наукам" найдут себе рабочие места, обсуждая их, уж как могут. Про социальные сети, в которых каждый может выступить экспертом по этике или политике, особенно, когда речь идёт о присущем нежити интеллекте, я вообще молчу: о чём говорить, если не об этом? О том, должно ли правительство бороться с грядущим глобальным потеплением, или грядущим малым ледниковым периодом? Нет, обсуждать себе подобных, а хоть и неживых, гораздо интереснее!

Но есть в этой области "нового мировоззрения" и "неполитические" идеи, которые достаточно мощны, чтобы на них обратить внимание. Так, обучение искусственных мозгов должно быть авторским: если учить не на безымянных примерах разных учителей, а на подписанных этими учителями примерах разметки данных, то тогда можно будет придавать больше веса разметке данных от уникальных людей, которые обладают интуицией получше. Поэтому все данные в мире хорошо бы иметь подписанными, кто их произвёл -- это ведь даёт "слабое свидетельство по Байесу" в части доверия к этим данным, что может быть учтено алгоритмом обучения, Who said what: Modeling individual labelers improves classification -- https://ai.google/research/pubs/pub46497. То есть требования цитирования имени того, кто произвёл тот или иной факт -- это важное требование, и оно мало имеет отношения к "признанию заслуг", но больше к оценке правдоподобия представленных фактов. Имена производителей фактов оказываются нужными, авторство важно.

UPDATE: обсуждение в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10214981475064394, Вконтакте -- https://vk.com/wall-44016343_22869, фрифиде -- https://freefeed.net/ailev/6c295a5d-ee2b-45c1-8dd3-c617853a0020