Category: it

Category was added automatically. Read all entries about "it".

2019

lytdybr

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

AI приходит в науку тихо и неслышно, но в ближайшее время перевернёт там всё к чёртовой матери. Вот тут https://arxiv.org/abs/2006.11287 предложили, как графовую нейронную сетку дистиллировать в алгебру, а затем подбирать в этой алгебре математическую форму (символьная регрессия, https://en.wikipedia.org/wiki/Symbolic_regression ) для выражения закономерностей в физических наборах данных. Чтобы проверить подход, переоткрыли уравнения ньютоновской механики, переоткрыли гамильтониан, и предложили закон (математическую формулу) для описания гало тёмной энергии в космологии -- чтобы продемонстрировать не "переоткрытие", а "открытие". Собственно, основная физическая интуиция как раз и берётся символьной регрессией, причём там тот самый эволюционный подход, на который я последнюю пару лет указываю, как на основной, за которым нужно следить после собственно нейросетей как частного случая дифференцируемого программирования. Лидер в этой области вполне уже коммерциализован: https://www.nutonian.com/, эволюционный/генетический алгоритм символьной регрессии Eureqa. Физика оказывается при этом только хобби и рекламой, я даже не уверен, что разработчики Eureqa имеют какое-то отношение ко всей этой космологии и гамильтонианам. Compared to other machine learning outputs, M.I. models are simpler and more transparent. The models are presented as mathematical equations, interactive visualizations, and plain English explanations, so end users can seamlessly understand results and recommendations. Это из https://www.nutonian.com/products/, и в этой фразе M.I. это Machine Intelligence™ -- уже сделали (tm), как мило с их стороны. В любом случае, наука уже не будет прежней. Копают уже не руками, и не палкой-копалкой, и не лопатой, а экскаватором. Для вытаскивания законов природы из данных палка-копалка уже готова, статья опубликована. А лет через пять ждём, что новые законы будут грести уже лопатой. Просто удивительно, как мало людей, понимающих суть происходящих перемен. В науке тоже всё новое приходит сбоку. Новое в физике приходит отнюдь не из самой физики, неудивительно, что физики не будут понимать, что происходит -- как уже сейчас не очень понимают лингвисты. Вот думаю, что нужно это тоже в книжку вписать. А то у меня там пока сплошная промышленность с подобными примерами.

UPDATE: обсуждение в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10218828433275945
2019

AI at Scale: к гонке экзафлопсов для AI присоединилась Майкрософт

Я дважды на прошлой неделе писал про начавшуюся гонку экзафлопсов. Кто богат, тот будет и машинно умён:
-- "В мире AI всё по-прежнему экспоненциально", где упоминал строительство NVIDIA собственного суперкомпьютера и переходе в NVIDIA на мышление "датацентрами" и их фрагментами: https://ailev.livejournal.com/1518306.html
-- "SoTA искусственного интеллекта принадлежит богатым, и это не случайно", где давал ссылки на исследования формулы прямой связи числа параметров и количества шагов вычислений в нейросетках с их качеством работы: https://ailev.livejournal.com/1518532.html

Вчера Майкрософт сделал инициативу AI at Scale, присоединившись к клубу строителей суперкомпьютеров для AI -- https://innovation.microsoft.com/en-us/ai-at-scale (технические подробности у них тут: https://ms-innovation-dev.azurewebsites.net/en-us/exploring-ai-at-scale). Речь идёт о публично доступной облачной инфраструктуре Azure с хорошо провязанными между собой кластерами с GPU V100 от NVIDIA. В качестве примера эффективности гигантомании в машинном интеллекте даётся нейросеть MS Turing NLG на 17 млрд. параметров. Всё это вычислительное богатство предлагается использовать в бизнесе, прямо сейчас, кому угодно -- только плати!

Microsoft вложила некоторое время назад $1млрд. в OpenAI. И значительная часть этих денег пошла на обеспечение масштаба в вычислениях, реализуется тот же тренд. OpenAI с Microsoft построили пятый по величине в мире суперкомпьютер, исключительно для своих исследований, о чём вчера и объявили -- https://venturebeat.com/2020/05/19/openai-microsoft-azure-supercomputer-ai-model-training/. Текст по ссылке обсуждает в том числе сложное сочетание тренда на пока экспоненциальное уменьшение объема вычислений для выполнения стандартных задач из https://venturebeat.com/2020/05/05/openai-begins-publicly-tracking-ai-model-efficiency/ и не менее экспоненциального роста требуемой компьютерной мощности в связи с ростом самих задач. Мало того, что весь "разгон" за счёт эффективных алгоритмов съедается растущей сложностью задач, но требуется этот рост сложности ещё и кормить добавочной вычислительной мощностью.
UPDATE: OpenAI построил модель GPT-3, которая может генерировать текст в несколько абзацев, неотличимый людьми от текстов, написанных людьми -- и на генерацию 100 страниц текста там уходит 0.4Квт*час, это буквально несколько центов, https://arxiv.org/abs/2005.14165

Ещё один знак: вся эта мощность начинает уходить не в обработку изображений и аудио, как было до сих пор. Нет, эта мощность начинает уходить на языковые модели, работу с текстами. AI как-то научается читать, и вынимать из огромного количества текстов кривую "народную" (ни разу не научную!) модель мира. Качеством данных, которыми кормят эти суперкомпьютеры, уже озаботились. Но вычислительной мощности весь этот текстовый интеллект требует вполне сравнимо с визуальным интеллектом. А идеи совместного обучения с аудио, видео и текстами требуют и вообще запредельных пока компьютерных мощностей. Но и в этом направлении есть прогресс, за счёт того же AI at Scale, пример тут майские рекорды по шести видам задач на описание изображений текстами -- https://www.microsoft.com/en-us/research/blog/objects-are-the-secret-key-to-revealing-the-world-between-vision-and-language/

NVIDIA тоже построила суперкомпьютер для своих исследований AI. И Гугль построил. Все участники гонки строят корпоративные и облачные "AI-синхрофазотроны" для исследований в AI, ибо машинный интеллект монетизируется примерно так же, как человечий интеллект, так что его выгодно разрабатывать. Монетизацию исследований элементарных частиц трудно придумать, а синхрофазотроны пока стоят ещё дороже, чем суперкомьютеры для AI. Но скоро суперкомпьютеры будут стоить уже дороже, чем синхрофазотроны, и они будут частные. Несмотря на тренд удешевления вычислений (он никуда не делся! с 2017 по 2019 вычисления подешевели в 100 раз, по 10 раз в год -- https://venturebeat.com/2020/06/04/ark-invest-ai-training-costs-dropped-100-fold-between-2017-and-2019/), потребность в объёмах этих вычислений растёт быстрее. Гонка экзафлопсов идёт давно (https://en.wikipedia.org/wiki/Exascale_computing), но теперь она ориентируется не на моделирование погоды или ядерных взрывов, а на задачи AI, и ведётся частным сектором.

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

UPDATE: обсуждение в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10218480891667622
2019

SoTA искусственного интеллекта принадлежит богатым, и это не случайно

Опять вспомним тезис Sutton (http://incompleteideas.net/IncIdeas/BitterLesson.html), что в AI главное -- это вычислительная мощь, а не хитрость алгоритмов. Этот тезис получил интересные теоретические и экспериментальные свидетельства в работах https://arxiv.org/abs/1909.12673 и https://arxiv.org/abs/2001.08361. Ошибка генерализации оказалась вполне гладкой степенной функцией от размеров набора данных, размера сетки (число гиперпараметров, но форма -- ширина и высота -- оказались неважными) и вычислительной мощности. Тот, у кого больше вычислительной мощности, может для данного набора данных использовать модель побольше -- и его сетка будет умнее.

Весь вопрос в том, в каких границах соблюдается эта функция. Её проверяли на разлёте вычислительной мощности в миллиард раз. Графики в работе по второй ссылке заканчиваются десятком петафлоп-дней (PF-day = 10^^15 × 24 × 3600 = 8.64 × 10^^19 floating point operations), и хорошо видно, что будет больше мощности -- можно использовать модели побольше, и для тех же самых данных (которых всегда мало) получить результаты лучше. Можно ожидать, что для самых разных видов нейронных сетей закономерности будут похожими: существенно больше вычислений -- можно брать модель побольше и получать существенно больше интеллект для тех же самых по объёму данных.

Кто побогаче (грубо: кто может себе позволить датацентры, желательно во множественном числе, цена одного расчёта сегодня идёт на миллионы долларов), тот выучит для себя AI поумнее с superhuman возможностями. Кто победнее и не имеет много денег -- выучит сеть-полудурка. Всё остальное -- бантики.

Так что организации с датацентрами (Google и DeepMind, OpenAI и Microsoft, Facebook, Baidu и очень немного других) могут похвастаться дьявольски интересными результатами. А организации победнее могут похвастаться "многообещающими идеями" и "научными прорывами".

В 2012 году входная цена в AI была пара тысяч долларов на пару видеокарт NVIDIA. Сегодня NVIDIA говорит, что делает не видеокарты, а датацентры (https://ailev.livejournal.com/1518306.html) -- и не случайно. Сегодня входная цена на тот же "мировой уровень" в AI -- пара датацентров той же NVIDIA.

Полученная формула по факту говорит, что SoTA в AI сегодня зависит от вложенных денег прежде всего. Если вы придумываете алгоритм, получающий какой-то результат не за 50 PF-days, а за 1, то более богатый коллега потратит те же 50 PF-days на ваш алгоритм -- и получит результат/интеллект лучше. Так что ваш будет приоритет по алгоритму и SoTA по эффективности (и вы сможете продать этот алгоритм коллеге), а SoTA по результату/интеллекту будет у вашего более богатого коллеги. Да, стоимость вычислений быстро падает, но SoTA по силе интеллекта будет оставаться у богатых разработчиков. А у разработчиков победней всегда будут алгоритмы получше, но выучиваться таки будут относительные AI-полудурки, далёкие от SoTA.

Множество не очень богатых компаний будет пытаться выгодно пристраивать к работе задёшево выученных AI-полудурков. Эти полудурки могут быть вполне superhuman, хотя и с узкими способностям. И их хватит для очень и очень многих интересных дел! Но это всё-таки будут AI-полудурки. Впрочем, некоторые разбогатеют, и выучат себе интеллектов поумнее. И перейдут в другую лигу.

Небольшое число богатых компаний выгодно пристроят к работе AI с широкими способностями. И за умных им заплатят больше. Кто богат, станет ещё богаче.

Увиливание этих богатых компаний от неминуемого госрегулирования будет отдельной историей, но мы тут не про это. Мы тут про формулу, увязывающую выучиваемый уровень интеллекта и объем вычислений, то есть уровень интеллекта и деньги, за которые его можно купить.

Но ведь вы об этом всём и так догадывались, даже без формулы?

UPDATE: обсуждение в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10218458850316602
2019

В мире AI всё по-прежнему экспоненциально

Сегодня стали известны характеристики очередного чипа от NVIDIA -- GPU А100 (монстр на 400 ватт, https://www.nvidia.com/en-us/data-center/a100/), ускорение вычислений за четыре года в 9 раз (среднее геометрическое по группе приложений машинного обучения):

Этот чип упаковывается по восемь штук в компьютер DGX за $200тыс. (версия этого компьютера на V100, которые вдевятеро медленней, стоила $130 в 2016, https://ailev.livejournal.com/1257675.html -- не точно закон Мура, но очень похоже), и этот компьютер выдаёт 2.5 PFLOP нового формата плавающих 32TF в одном толстом рэке. Новости этой архитектуры: она одинакова для обучения и вывода (раньше были специализации чипов для этих целей), и она хорошо масштабируется в рамках датацентра. NVIDIA объявила, что она теперь занимается вычислениями на уровне датацентра (и для этого купила Mellanox, специализирующийся на чипах DPU, чипы обработки данных). Сообщение было недвусмысленным: наследуем прежний интерфейс к ускорителям, обещаем сохранить этот интерфейс, и выдать масштабируемую линейку вычислителей. От роботов через суперкомпьютер к датацентру, где единицей является DGX SuperPOD (большой такой шкафчик с рэками). Свой внутрифирменный суперкомпьютер SATURNV они доращивают до 4.6 ExaFLOPS. Подробности читайте в https://blogs.nvidia.com/blog/2020/05/14/gtc-2020-keynote/.

Так что видим развитие на многих системных уровнях (я даже не все тут привожу, их много больше), пример системного, то есть многоуровневого, развития:
-- новая архитектура кремния, 7нм проектные нормы, причём подхаканная под потребности NVIDIA
-- чип А100 с новой архитектурой тензорных вычислений и новым типом плавающих
-- плата GPU ускорителя с этим чипом и интерфейс суперкомпьютерной шины
-- суперкомпьютер DGX (термопакет! отвести всё тамошнее тепло -- отдельная задачка) в 8 платами ускорителей и внешними интерфейсами к SuperPOD
-- SuperPOD, набитый суперкомпьютерами DGX и высокоскоростными сетевыми соединениями
-- Data Center, составленный из этих SuperPOD. То, что NVIDIA теперь поставщик универсальных датацентров для AI (а не чипов, а не плат), это и есть суть громкого объявления.

И мелкое объявление, что этим всем они могут торговать и в розницу, отдельно элементами каждого системного уровня. Даже DGX они готовы продать не целиком, а частями!

Наконец, объявлен вычислитель для роботакси (помним, что они его обещали выдать в 2021 году -- пока всё идёт по расписанию), там производительность 2PetaТOPS и потребляет это чудо 800Вт (одна метрическая лошадиная сила -- это 735 ватт. NVIDIA сделала для роботакси мозг в одну лошадиную силу, очень символично. И это немного, мощность какого-нибудь внедорожника сегодня от 200 до 400 лошадиных сил).

Всё-таки я снимаю шляпу перед системными инженерами из NVIDIA. Они абсолютно последовательно реализуют идеи системного мышления. Практически на каждой GTC конференции они объявляют о том, что сверху к имеющемуся стеку платформ добавляют ещё один системный уровень. А обнаруженные ими практики жизненного цикла поддерживают своими платформами. Основное в их презентациях -- это платформенные стеки и жизненные циклы. То, чему я учу на курсах, у них просто факты жизни, они так думают, они так делают. Поглядите их презентации, они для меня выглядят как иллюстрации к курсу системного мышления:

Хотя NVIDIA, конечно, лукавит про "самый большой чип в мире" (там 53млрд.транзисторов в A100). Cerebras тоже вполне работает, хотя там наверняка проблемы с софтом (нет "наследуемой архитектуры" и полчищ разработчиков), нет системных уровней выше одного рэка, но в чипе там аж 1.2трлн. транзисторов. Компьютер CS-1 на чипе Cerebras работает с ноября прошлого года в Argonn National Laboratory, и поэтому мы ничего не узнаем об этой работе (она обычно делает точное моделирование ядерного оружия). Хотя вчера там таки появилась информация, они занялись проблематикой COVID-19, и стало возможно об этом написать: https://www.cerebras.net/argonne-national-laboratory-and-cerebras-systems-leverage-the-worlds-fastest-ai-supercomputer-to-advance-covid-19-research/. Что пишут? Всё то же: ускорение вычислений в сотни раз. By using the CS-1, ANL can train models hundreds of times faster than before.

Прошлогодний тезис Sutton (что в AI значима только вычислительная мощность, а алгоритмы там оказываются простыми, http://incompleteideas.net/IncIdeas/BitterLesson.html) в очередной раз получил мощную многоуровневую системную поддержку.

Но что это я про суперкомпьютеры? Техники ускорения алгоритмов нужно смотреть и на смартфонах: там ведь скорость работы алгоритмов AI вообще критична. Вот из последних новинок: compression-compilation co-design, CoCoPIE позволяет работать нейросетевым алгоритмам на смартфоне в реальном времени, https://www.cocopie.ai/. Тут тоже прирост в разы: генетатор CoCo-Gen outperforms all other frameworks for all cases. On CPU, CoCo-Gen achieves 12× to 44:5× speedup over TFLite, 2:3× to 8:1× over TVM, and 1:9× to 15:5× over MNN, respectively. On GPU, CoCo-Gen achieves 2:5× to 20×, 4:1× to 11:4×, and 2:5× to 6:2× speedup over TFLite, TVM, and MNN, respectively. А pruning этот CoCoPIE делает до x180 в сравнении с TFLite. Авторы там напирают, что это позволяет иметь приличные нейросетки на телефонах, но и на крупных компьютерах это было бы неплохо реализовать!

И ведь это не единственная работа в таком направлении. Разгоном нейросеток занимаются сегодня все, это мейнстрим.

Но добавьте сюда последние улучшения и в самих "простых алгоритмах", которые и кушают всю эту вычислительную мощность. Так, самое свежее пришло из Uber (при этом тамошний начальник Stanley уже объявил, что с июня уходит работать над своими эволюционными алгоритмами в OpenAI) пару недель назад: https://arxiv.org/abs/2004.12919. Там продолжили тренироваться на видеоиграх Atari и превзошли предыдущие результаты где в разы, а где и в 150 раз, и впервые получили алгоритм, который один и тот же во всех играх, и играет лучше хороших игроков, хотя без некоторых добавок пока хуже чемпиона мира. Они просто предложили алгоритму запоминать те состояния игры, которые достаточно разнятся между собой, а потом регулярно возвращаться в них, чтобы исследовать игру дальше из этих состояний (до этого просто бродили-исследовали, не возвращаясь). И тут же получили резкий рост эффективности исследования.

А теперь представьте, что таким исследователям выдают машинку, которая способна ускорить их эксперименты вдесятеро! Держу пари, что эти ребята не будут ускорять свои текущие эксперименты. Нет, они будут двигаться в исследованиях примерно с той же длительностью отдельных вычислений, что и сегодня, но вот каждый эксперимент они будут делать вдесятеро более ёмким по вычислениям. И поэтому будут решать всё более и более трудные проблемы. В том числе и проблемы ускорения вычислений, AI ведь потихоньку уже изобретает сам себя, хотя и не так активно, как мог бы. Но это пока. Помним, что расчёт языковой модели сегодня может стоить до $1млн.. Нынешними темпами через пять лет (10 раз софтом,, 10 раз железом) это будет $10тыс.. И при таких ценах мы увидим ещё много новых приложений. Интеллект из машины будет стоить дешевле грибов, этот производимый на заводах интеллект и есть сегодня главная сила, меняющая мир. Да, и вас эта сила тоже поменяет, кто б сомневался! Экспоненты, они такие. На то, что там S-curve, пока и не надейтесь. Закону Мура ведь уже десятки лет предрекают смерть, но этот праздник пока продолжается.

UPDATE: обсуждение в чате блога с https://t.me/ailev_blog_discussion/3011, в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10218427462171918
2019

Опубликован подкаст "Проветримся!" с моим рассказом про системное мышление

Вышел подкаст "Проветримся!" со мной (сезон 3, эпиздод 11) -- http://progulka.yamshchikov.info/231736/3611611-live. Где-то час двадцать я отвечал на вопросы о системном мышлении (ну, и о мышлении в целом). Хост подкаста -- Иван Ямщиков, он занимается проблематикой искусственного интеллекта. Многие мысли он в ходе разговора предсказывал ещё до того, как я их проговаривал -- потому что ему была понятна логика самого рассказа! Для меня этот подкаст был приятным подтверждением, что мои идеи не из далёкого будущего -- они вполне из настоящего. Это фронтирное настоящее, люди-на-фронтире меня вполне понимают.
2019

Мышление кодированием в IDE, мышление письмом в IWE

Для "мышления кодированием" в программировании сейчас активно развиваются IDE (integrated development environment). Совсем недавно верхом совершенства там была добавка к обычным функциям редактирования текста и вызова компилятора бесшовной стыковки с самым популярным протоколом ведения версий (Git). Но потом появилась и настраиваемая на язык поддержка дополнительных функций -- появился LSP, language server protocol для внешнего софта, работающего с конкретными языками. А ещё там был относительно тупой автокомплит.

Сегодня от этих IDE ожидается стык с программами анализа кода (там не всё так радужно в части использования AI, но работа уже кипит -- https://medium.com/pvs-studio/machine-learning-in-static-analysis-of-program-source-code-21bdc7e8ce6d). Но вот автокомплит уже совсем не тупой, и справляется даже с динамическими языками, https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode, https://venturebeat.com/2020/04/27/codota-raises-12-million-for-ai-that-suggests-and-autocompletes-code/. Главное тут -- помочь писать код так, чтобы потом не было его дебага: According to a study published by the University of Cambridge’s Judge Business School, programmers spend 50.1% of their work time not programming; half of their time spent programming is spent debugging. А замах идёт и на то, чтобы IDE вообще сами дописывали программу (так, успех переписывания с естественного языка на SQL нейросетками достигается уже в 61.9% запросов, и этот процент быстро растёт -- https://yale-lily.github.io/spider).

Примерно всё то же самое происходит и в программах моделирования (только моделеры, IME/integrated modeling environment стоят существенно подороже IDE -- более узкий класс софта с узким промышленным применением. Поинтересуйтесь каким-нибудь навороченным MagicDraw или Visual Paradigm, тут я даже ссылок не привожу. И это всё, конечно, дико неудобное графическое моделирование, что объясняет дороговизну и узкое распространение). Так что не будем тут подробно писать про мышление моделированием и перейдём сразу к мышлению письмом обычных текстов.

Для IWE (integrated writing environment) дебаг текста такая же проблема, как дебаг кода. Толстой писал свои три тома "Войны и мира" шесть лет, затем восемь раз переписывал, а некоторые сцены (например, бал Наташи Ростовой) до 25 раз. Я сам пишу половину времени, половину переписываю (чаще всего не весь текст, а абзац -- и по многу раз).

Спеллчекеры тут самый нижний уровень автоматизации дебага, дальше идёт работа со стилем для публикации широкой публике (https://glvrd.ru/), простановка библиографической информации (хотя бы URL -- обратите внимание, сколько URL у меня в этом посте. Их много и в других постах, это ж и есть "библиографические ссылки"). А дальше будет использование AI для самых разных новых функций. В IWE как и в IDE появляются для этого специальные интерфейсы, например TEASPN: Framework and Protocol for Integrated Writing Assistance Environments (https://arxiv.org/abs/1909.02621, а гнездо у них https://www.teaspn.org/ -- TEASPN, Text Editing Assistance Smartness Protocol for Natural Language). Что даёт помощь со стороны AI? Вот пример сервиса дописывания грамотных полных предложений по черновым намёткам фраз (при этом дан датасет для обучения AI, объявлено соревнование по улучшению качества дописывания, понимаемого как "перевод с чернового кривого языка на литературный грамотный" -- сразу понятны критерии оценки качество, это "качество перевода текста", а ещё предъявлена baseline реализация): https://arxiv.org/abs/1910.09180. Такого много, и будет предлагаться ещё больше. Протокол TEASPN тут отражает общую тенденцию, только успевай теперь отслеживать новинки.

Тут я хотел бы выделить несколько разных, хотя и существенно пересекающихся до полной неразличимости типов IWE:
-- редакторы, "проект-ориентированные", их задача обеспечить на выходе три томика "Войны и мира" в приличной вёрстке. Это Word, Scrivener (пользовался обоими, Word таки выиграл), редакторы для киносценариев и театральных пьес, для научных статей (LaTeX). Тут помощь не столько писателю (она, как ни странно, минимальна), сколько читателю: всё для выстраивания нарратива и его вёрстки, всё для читателя! И тут же объявляется, что эти системы могут помочь и в ведении заметок (тот же Scrivener, хотя не рекомендую пользоваться -- ну очень тормозной софт, больших объёмов он совсем не тянет).
-- zettelkasten/slip-box/wiki, "жизнь-ориентированные", где выходная форма публикации не главное, а главное -- knowledge management, отращивание себе и команде экзокортекса. Задача этих систем поддерживать персональное и командное "мышление письмом" с гипертекстом в основе (помощь не внешнему читателю, а автору, см. мой текст 2003 года "гиперкниготекст" для понимания противоречия в требованиях: читателю требуется линейное представление всего текста, а автору удобно писать кусочками гипертекста -- https://ailev.livejournal.com/103692.html).

При этом я не отношу к IWE разные authoring software, где в основе там инфографика, а текст только иллюстрации (это не книжки, а "детские книжки с картинками", "диафильмы", только для взрослых), тоже для личной и коллективной работы: PowerPoint и Keynote тут бесспорные короли, но дальше идут кучи специализированных версий типа Articulate для презентаций в e-learning (https://articulate.com/), Aha! для roadmap со специфическими шаблонами (https://www.aha.io/). Ещё один класс, который близко к IWE, но по факту далёк -- это редакторы таблиц с уходом в базу данных, типа Airtable (https://airtable.com/), хотя этот класс и пересекается частично с notion.so и coda.io, но там не тексты в основе, это не письмо/writing, это что-то другое.

Но вот всякая поддержка Notebooks от программистов (из систем типа Mathematica или Jupyter) -- это ход на literacy programming (помните эту идею Кнута? Погуглите!), учебники с исполняемыми фрагментами кода, методички с инженерными вычислениями (лично консультировал создание таких для конструкторов в КБ) тут застревает в текстовой части как IWE, а в программной части как IDE. И тут тоже идёт более чем бурное развитие. Вот типичный ход в этом направлении (JupyterLab с плагином LSP, Language Server Protocol. Сейчас поддерживает code navigation, hover suggestions, linters, autocomplete and rename): https://towardsdatascience.com/jupyterlab-2-0-edd4155ab897

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

Конечно, любой блог в социальной сетке тут IWE -- с минимальными функциями по собственно редактированию, но максимальному облегчению публикации коротких заметок. Эдакий публичный блокнот для заметок. Его, конечно, можно использовать и как публичный zettelkasten, я вот свой блог в ЖЖ именно так и использую, равно как https://vk.com/buffdance использую для заметок по системному мышлению в танцах. Книги же готовлю сначала в виде слайдоментов (графики там не так много, хотя и есть. Слайдомент получается как легко демонстрируемый на всяких встречах аутлайнер -- каждый слайд просто список каких-то пунктов, по идее на пункт, а слайды легко тасовать), затем пробую рассказывать как лекцию и смотрю, как это работает с живыми людьми, а потом пишу рассказ в виде книги уже в Word, какие-то черновики при этом храня в Evernote (чтобы не в публичном пространстве. В блоге у меня нет закрытых от публики записей, всё публично). Это я к тому, что полноценная книга из личного гипертекста вполне может делаться не одним, а самыми разными инструментами, даже необязательно используемыми прямо по их первичному назначению. IWE может быть собрано из зоопарка самого разного софта.

Если же брать специализированный софт для ведения собственного экзокортекса/slip-box/zettelkasten/картотеки/персональной вики/системы управления своими знаниями/персональных заметок/журнала-дневника/много имён и все про одно и тоже, то сходу в голову приходит wiki как основа.

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

В MS Office это OneNote, популярным был также Evernote с его лозунгом "доступен со всех устройств". Ещё до них всех популярным для "ведения базы знаний" был TheBrain (я тоже был владельцем платной лицензии, лет двадцать назад, https://www.thebrain.com/). Сюда же можно отнести всякие самоделки персональных wiki на базе IDE (https://knowledgeconf.ru/2019/abstracts/4431).

Отдельный класс тут варианты slip-box для метода Luhmann (популяризированного книжкой Ahrens -- https://ailev.livejournal.com/1513051.html, их десяток разных, и какое-то обсуждение используемого софта активно идёт в https://forum.zettelkasten.de/). Современный вариант персональной (но уже объявлено о грядущем переходе и к командной работе) wiki для zettelkasten есть у Roam research (https://roamresearch.com/), и он стремительно набирает популярность.

Более сложные командные инструменты объединяют тексты, таблицы и другие форматы (те же слайды с инфографикой) для командной работы. Это прежде всего notion.so (https://www.notion.so/) и аналогичный ему сервис coda.io (https://coda.io/).

Возможности всех этих систем разные, и люди мигрируют постоянно с одной такой системы на другие -- кому какое удобство более интересно. Поэтому на упомянутом форуме zettelcasten.de одна из последних тем на 48 комментов, например, Switching from Notion to RoamResearch, https://forum.zettelkasten.de/discussion/898/switching-from-notion-to-roamresearch.

Вот пример, как статью Dr.Jordan Peterson "10 Step Guide to Clearer Thinking Through Essay Writing" засовывали в zettelkasten на основе Roam (https://eugeneyan.com/2020/04/05/note-taking-zettelkasten):


Это не слишком похоже по стилю на "просто текст", это больше похоже на слайд из слайдомента. Но если приглядеться, то ещё больше это похоже на какой-то псевдокод (ср. с системным псевдокодом, который предложил Антон Меркулов для текстового описания архитектуры предприятия и который он реализовал тоже через плагин к MS Visual Code, https://www.youtube.com/watch?v=6EWUpa-5lSo). Такие краткие заметки у меня тоже бывают, но они у меня самого временные, и сдыхают где-то в недрах Evernote (их примерно 1700 штук). А постоянные? Постоянную заметку вы читаете прямо сейчас: это мои записи в блоге, и "временная заметка" просто остаётся как заготовка текста в Semagic и пухнет до того момента, пока я не напишу пост. Я их пишу посты так, чтобы лет через десять самому их читать как чужой текст -- и писать не сверхкратко при этом очень помогает, помогает вспомнить через десяток лет какие-то детали того, что было в момент написания. И этих постов много больше, вот это будет 5832 (ср. с 1700 заметок в Evernote), но объём поста получается большой и не выдерживается правило "одна мысль на карточку". С другой стороны, на эти тексты я только в ЖЖ сделал 27117 (это без фейсбука и чатов), смело можно считать многие из этих комментов отдельными "карточками", они вполне содержательны.

У меня самого, конечно, не прямая реализация методики Luhmann и её популяризации от Ahrens и других последователей традиции zettelkasten/slip-box. Но я и не не Luhmann!

Вот подсказанный Марком Акоевым ещё один пример "без Luhmann", описывается начало 50-х годов в СССР, zettelkasten на бумажных карточках -- https://jlm-taurus.livejournal.com/104538.html (читайте от выделенных жирным слов "Милица Васильевна" до "крупными событиями в эти годы стали зарубежные поездки"). Так что следование какой-то чёткой процедуре необязательно, важно соблюдать дух "мышления письмом", а не форму.

В 21 веке граница в ведении заметок для себя и блога для публики в части "просто текста", псевдокода и даже кода во всех их смесях стремительно размывается. Помним о публикации самых разных Jupiter Notebooks -- там текст плюс код. В этих смесях даже копирайт разных частей этого текста-с-кодом различается (вот, например, только что опубликованы Notebooks от fast.ai -- почитайте там про разные копирайты в одной публикации: https://towardsdatascience.com/deep-learning-course-notebooks-worth-2-000-are-now-open-source-7d6bc759ef47.

Что вообще должно быть в современной IWE? Примерно столько же, сколько в IDE, если учесть, что публикация по факту -- это commit во внешнюю систему. Но всегда можно трактовать IWE расширительно, доводя до полного обеспечения работы, включая интеграцию с issue tracker и всем остальным софтом, нужным сегодня для работы. Например (это отнюдь не полный список):
-- возможность ведения архива провязанных друг с другом заметок с поиском в нём (навороченная мультиформатная wiki, основная функция)
-- внешняя публикация заметок (блог), с внешним комментированием
-- ведение библиографической информации (reference management software, типа https://www.zotero.org/)
-- подготовка нарративов (длинных текстов) типа книг, статей -- аутлайн с хотя бы примитивной вёрсткой
-- если это код, то поддержка и кода тоже (интеграция с IDE)
-- поддержка GTD (todo lists в простейшем случае, и полный протокол с inbox и всем подобным в более сложном варианте -- вот тут их 19 бесплатных, https://www.lifehack.org/articles/technology/19-free-gtd-apps-for-windows-mac-linux.html), выход на полноценный issue tracker для себя и даже команды. И тут же тогда и календарь! Ибо где писательство, там и его планирование.
-- мессенджер (как в телеграм или whatsapp: каждый чат это проект), ибо командная же работа! Тут заметим, что MS Teams некоторыми людьми из Майкрософта рассматривается как просто коммуникативный интерфейс к SharePoint, то есть класс системы тот же: zettelkasten/wiki с комментами (то есть не чат, а форум) и накоплением материала, только структурированного под проекты. Впрочем, и IDE тоже можно рассматривать как интерфейс редактирования к системе ведения версий. Всё про одно и то же, накопление тщательно согласованных между собой знаний разного уровня формальности. Но тут ещё и аспект увода устной коммуникации в письменную (см. про то как асинхрон сжирает устный синхрон -- https://ailev.livejournal.com/1511183.html): знания накапливаются опять таки в тексте. Никакой "озвучки мнений", вместо неё "запись мнений", "запись откликов". Жизнь поменялась.
-- интеллектуальный по возможности (с синонимией, контекстом, уточнениями и т.д.) поиск
-- всяческая автоматизация и внешние интерфейсы (и всякие виртуальные ассистенты -- тут).
-- ... много всего разного, ибо границы этой зыбкой предметной области очень широки.

Можете сравнить эти функции с функциями древних так и не взлетевших гипертекстовых систем (все эти Dynabook, Xanadu и т.д.) времён до взлёта WWW.

Центральная же функция IWE получается -- wiki/zettelkasten, и она предназначена для усиления человеческого интеллекта. Продавать инструментарий для отращивания себе экзокортекса трудно, это же "скрипка Энгельбарта" (https://ailev.livejournal.com/1158826.html)! Продукты поэтому получаются крайне нишевые, продаются в них больше инфраструктурные (Evernote: доступ к заметкам с любого девайса) или менеджерские функции для команды (project management, issue tracking, roadmap drafting, presentations и т.д.). Софт этот не подаётся как инструментарий именно для "мышления письмом".

Если попытаться описать идеальный IWE, то всё сразу выглядит как потенциальный "ниасилил" для заумных нердов -- эдакий "суперЖЖ" с закрытой (чтобы уж все заметки там хранить) частью, френдовой-для-проектов и публичной блог-частями, а также каким-то в целом похожим на IDE редактором в части подготовки текста. "Под ключ" такой системы поэтому сейчас нет, в связи с эффектом "скрипки Энгельбарта" стартапов на эту тему тоже особо не просматривается, так что все просто регулярно переползают со своим архивом с одних IWE на другие, а с разным другим софтом работы с текстами стыкуются через cut/paste.

Но какое-то число людей на глобусе всё-таки понимает, что их интеллект может быть усилен эээ... механически, подключением экзокортекса в форме IWE с архивом перевязанных гиперссылками заметок и вывода части их знаний на внешний носитель. Так что они используют весь этот зоопарк продуктов из текущего поста, и становятся ощутимо умнее. Спросите тех людей, которые в вашем окружении кажутся вам явно поумней других -- и вы обнаружите, что они в качестве своего экзокортекса активно используют довольно много упомянутого софта (или другого софта, эмулируя zettelkasten/wiki на чём-нибудь -- вот как я на ЖЖ). И существенная часть их интеллекта -- это прихваченная от этого симбиоза. Они думают письмом, буквально живут в IWE, как программисты буквально живут в IDE.

UPDATE: обсуждение в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10218255222066023, в чате блога с https://t.me/ailev_blog_discussion/2556
2019

Искусственная эволюция искусственных мозгов, и как эти идеи использовать в образовании

Я много лет с собой таскал в конце концов затёртую до дыр бумажку с описанием accretion model of theory formation от Douglas Lenat, описывающую learning by discovery (обучение через открытие/выявление) как квазиэволюцию некоторого набора эвристик (см. этот алгоритм 1983 года в конце поста https://ailev.livejournal.com/469995.html). Я был в восторге от элегантности алгоритма и тамошних успехов. Learning by discovery, играть с природой (абстрактной или физической, это неважно) -- вот же ключ к интеллекту! И Eurisco, которая реально была крутой программой -- это ж было ну очень круто! После этого Ленат сказал, что он пошёл кодировать общечеловеческое знание и основал проект CYC (https://www.cyc.com/). И там он накодировал прямо вот руками (руками сотен людей) один из самых любопытных knowledge graphs, которые сегодня существуют в мире. А игры с эволюцией закончил. Программа линии Eurisco не получила развития, а всё внимание было сначала на "экспертные системы" (где никакой эволюции, а опять же всё руками), а потом была зима AI и никакого внимания вообще ни к чему не было, хотя CYC потихонечку рос, хотя и не умнел: хвастаться было нечем.

Впрочем, в 2009 году в LessWrong появилась инициатива реализовать Eurisco на новых технологиях, прошло ведь 30 лет! Вот: https://www.lesswrong.com/posts/t47TeAbBYxYgqDGQT/let-s-reimplement-eurisko -- и первый же там коммент от Юдковского: "вы не должны этого делать, это ведь будет не Friendly AI, а самый обычный AI. Человечество опасносте!". Побузили, и так ничего не сделали.

В 2011 году на GPU догадались исполнить алгоритм обучения нейронной сетки 1987 года, и в 2012 году нейросеточники выиграли соревнование ImageNet. Eurisco и похожие алгоритмы никто на GPU в те годы не реализовывал: ясно ведь сказали, что не хватает общечеловеческих знаний, и все ушли на фронт их кодировать в разных "онтологиях" и knowledge graphs. Разгон графовых баз данных на GPU появится позднее (https://ailev.livejournal.com/1345004.html). А нейросетки вроде как этим общечеловеческим знаниям сами учились, их главное достоинство и было -- не нужно людям гадать о фичах. А эволюция в те поры не слишком развивалась в направлении обработки изображений и работы с естественным языком, результаты были не так наглядны, так что эволюционщики временно ушли в тень.

А потом вдруг оказалось, что эволюционные алгоритмы хороши для создания самих нейронных сеток -- это не такой большой объём данных, хотя и огромный объем вычислений. И тут начала впахивать группа Quoc Viet Le из Google Research. Сам Quoc вышел из сельских районов Вьетнама, где не было электричества в доме, а ещё он не боится AI (https://tuoitrenews.vn/news/features/20190215/meet-le-viet-quoc-a-vietnamese-talent-at-google/48939.html, https://www.technologyreview.com/innovator/quoc-le/): "I believe AI and deep learning aren’t so dangerous as are perceived in movies. They are actually tools for programming to experts. In the past, programming was done by complicated laws, but now it’s done with handling input and output. Look at it from this perspective: AI and deep learning are really dangerous when humans use them for dangerous purposes. The situation is no different from that created by inventions of human beings such as fire and electricity". И он занялся эволюцией нейронных сеток.

Сначала сетки пытались найти, эволюционируя некоторые наборы слоёв нейронной сети -- и таки нашли: покрутили архитектуру сетки Transformet и ещё в начале прошлого года получили Transformer-EL (The Evolved Transformer), https://arxiv.org/abs/1901.11117. Эта придуманная уже компьютером модификация Transformer оказалась лучше оригинала, и существенно. Но это была эволюция на достаточно высоком системном уровне: известно было, из каких блоков строится нейронная сетка, и нужно было просто создать сетку получше. Кирпичи даны, из них нужно сделать кладку попрочнее.

А месяц назад они решили попробовать: можно ли придумать кирпичи, которые дали бы на выходе кладку? То есть можно ли взять какие-то математические операции и попробовать эволюционировать с нуля нейросетку, которая могла бы обучаться? Чтобы компьютер придумал всё вот это нейросетевое? Придумал backpropagation? Попытка удалась, нейросетку компьютер придумал -- достижение, вполне сравнимое с достижениями эпохи accretion model of theory formation Лената. Эстафета подхвачена, вот AutoML-Zero: https://arxiv.org/abs/2003.03384, https://arxiv.org/abs/2003.03384, и алгоритм изобрёл и backpropagation, и dropout и многое другое. Это IMHO полностью аналогично тому, что Ленат своим алгоритмам поручал изобрести интересную математику -- и какие-то начальные теоремы там были получены.

А вот на прошлой неделе команда Quoс Viet Le решила изобрести из простых операторов не сразу сетки, а строительные блоки для них. Чудо-кирпичи, которые лучше предыдущих вариантов, и из которых потом собрать уже известные кладки. Вот результат: https://arxiv.org/abs/2004.02967. In this work, we jointly search for normalization and activation layers as a unified computation graph consisting of low-level primitives. Our layer search method leads to the discovery of EvoNorms, a family of layers with novel design patterns, achieving clear gains across image classification, instance segmentation and GANs. Our results suggest a promising usage of AutoML to discover universal modules using layer search, in contrast to the predominant practice of specializing networks using architecture search.

Вот оно, машинное творчество. Или эволюцию нельзя назвать творчеством? Если нет Творца, который создал клопа, кошку и человека, то это не творчество? Если в компьютере прошла эволюция и получился совсем-совсем простой искусственный мозг -- это не машинное творчество? А, собственно, что изменится, если назовём это не творчеством, а чем-то другим?! "Что значит имя? Роза пахнет розой, Хоть розой назови ее, хоть нет. Ромео под любым названьем был бы Тем верхом совершенств, какой он есть" -- назовите это как хотите, но эволюция в компьютерах сегодня становится по-настоящему интересной. Я считаю, что дело Eurisco продолжено: и алгоритмы похожи, и исполняются они на современной аппаратуре (современных GPU).

Но я бы всё равно поигрался с идеями самой Eurisco: там эволюция касалась и эвристик для целевой предметной области, и самих эвристик для эвристик (эвристик алгоритма эволюции). Хотя что это я говорю про "бы"? Это вполне делают в Uber, совсем недавно у них вышел алгоритм Enhanced POET, https://arxiv.org/abs/2003.08536 -- там то же самое learning by discovery, но под более модными сегодня именами (а именно, речь идёт об open-ended Reinforcement Learning, при котором последовательность проблем, с которыми справляется алгоритм, эволюционно генерируется самим алгоритмом -- automatic curriculum learning/building, то самое learning by discovery или self-supevising learning. И этим занимаются сегодня множество групп, вот небольшой свежий обзор: Automatic Curriculum Learning For Deep RL: A Short Survey, https://arxiv.org/abs/2003.04664). Почему нужно выделить Enhanced POET? А потому что этот алгоритм порождает новые проблемы в том же стиле, что accretion model of theory formation -- всё сложней, сложней, сложней, сложней, в том числе с выходом в те проблемы, которые человеку и в голову не придут и получение для них решающих эти проблемы алгоритмов, которые тоже человеку в голову не придут. И open-endedness гарантирует, что это не закончится, эти алгоритмы будут круче и круче, универсальней и универсальней, мощней и мощней.

Sam Lightstone [IBM fellow] сказал: "Artificial intelligence technology won't replace humans, but humans that use artificial intelligence will be replacing humans that don't" (https://searchsoftwarequality.techtarget.com/podcast/Tanmay-Bakshi-talks-programming-with-Julia-and-Swift). Я использую искусственный интеллект ещё одним странным образом: я считаю, что тамошние идеи нужно использовать как неплохой старт для размышлений по обучению людей. Ибо это идеи по обучению, грех не воспользоваться.

Я бы выделил тут три практики обучения (ну, или "научения" -- по-русски "научиться ходить, писать, плавать" ведь всё равно, учитель тебя учил, или сам учился), плавно переходящие одна в другую:
-- естественная эволюция, тут делать нечего. Интеллект у людей врождённый, priors уже намертво зашиты в мозг. Тут главное -- не навредить этому вычислителю, то есть хорошо кушать, крепко спать, укреплять иммунитет. А ещё нужно заниматься физкультурой, иметь body control (ага, embodied intelligence и extended mind thesis со всеми их изводами, гуглите. Мышление не внутри мозга, это нужно всегда помнить -- и не всегда learning by discovery делается человеком только умственно. Даже разговор -- это мышечная работа! Стучать по клавиатуре -- мышечная работа! Плюс если у вас проблемы с суставами, у вас сосредоточение будет ноль -- вы же этого не хотите?). И пейте кофе, это тоже помогает мозгам (хотя некоторые и разные вещества кушают, но там край карты изведанного, "там драконы" и дальше биохакерство обсуждать не будем).
-- постановка state-of-the-art интеллекта, "хорошо образованный интеллект": обучение с учителем трансдисциплинам, на разработанном нами учебном плане/curriculum. Это мы учим priors, которые ускоряют мышление в десятки тысяч раз (идея описана в "Наш способ ускорить разбирательство с непонятками в жизни: дать людям цивилизационные priors", https://ailev.livejournal.com/1510630.html). И тут же обучение в том числе деятельностному common sense, выдача некоторого цивилизационного кругозора, "как делаются дела" -- это что-то типа программы того же CYC. Как учим? Адаптивное обучение, конечно, учебный план генерируется "на лету". Собственно, это уже делается для школьной программы, называется "адаптивное обучение", вот один из лидеров: https://www.knewton.com/. Но у нас абсолютно другая учебная программа -- мы по-другому определяем цивилизационные priors, нежели школьные учителя. Мы усиливаем интеллект, готовим человека к тому, что он сможет быстрее других "учиться открытиями", выполнять learning by discovery во взрослом проектном мире. Мы сейчас тут, реализуем эту программу.
-- и вот тут наши выпускники продолжают учиться, но в режиме self-supervising learning, learning by discovery. Они переходя к творчеству, бесконечному развитию. Open-endedness развития человечества тут, и наши выпускники принимают в этом непосредственное участие. Человек со всеми state-of-the-art цивилизационными priors и его экзокортекс придумывают себе проблемы и придумывают способы их решения (learning by discovery и open-endedness), принимая участие в глобальной эволюции, поднимая планку достижений человеческой цивилизации. Научаются бороться с коронавирусами, идиотизмом чиновников, и т.д. При этом, конечно, наши выпускники работают с искусственными интеллектами совместно, со всеми этими нейросетевыми, символическими, эволюционными, вероятностными и т.д. алгоритмами. И работают в learning organizations, и даже трансформируют свои организации в такие learning organizations, мы же их как раз этому учим! Peter Senge (https://mitsloan.mit.edu/faculty/directory/peter-m-senge) тоже ведь имел ввиду в своих книжках под обучающимися организациями не обучаемые учителями организации, а те самые learning by discovery организации, self-supervising learning организации.

Так что мы сознательно готовим наших выпускников к бесконечному самостоятельному развитию в кубарем эволюционирующем современном мире, просто даём некоторый волшебный пендель в виде мощных priors-2020 и common sense-2020, учим трансдисциплинам и даём ролевой/деятельностный кругозор (https://ailev.livejournal.com/1512294.html). Это я буду рассказывать на очередном курсе "образование для образованных", 16 мая 2020.
При этом у меня на занятиях всё больше и больше появляется людей, которые уже работают с искусственным интеллектом, которые уже на цивилизационном фронтире. И они сходу понимают, чем это мы в ШСМ занимаемся, мы с ними сразу говорим на одном языке. Они ультрасовременны, но и мы не хуже.

Кого как, а меня всё происходящее вдохновляет.
2019

Слайды курса "Машинный интеллект -- текущее состояние и перспективы" (декабрь 2019)

Вот 65 слайдов для последнего потока курса "Машинный интеллект -- текущее состояние и перспективы": https://yadi.sk/i/C2nj0CcJk7au6g.

Курс https://system-school.ru/machine прошёл 7 декабря 2019 года, это было аж четыре месяца назад (в AI как в детстве: четыре месяца длятся как четыре года у взрослых!). Я с тех пор немного подправлял слайды, но не слишком сильно. А вчера опубликовал текст "Дело спасения утопающих -- дело интеллекта самих утопающих" (https://ailev.livejournal.com/1509601.html), который предполагает существенные дополнения контекста (глобальный распределённый интеллект как верхний системный уровень) для обсуждения именно машинного интеллекта. Что-то мне подсказывает, что спрос на курс про интеллект (машинный и человечий) появится к осени, как раз перед второй волной бардака с онименяизоляцией. Тогда и обновлю слайды, и курс проведу.

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

И я понимаю, что это всё абсолютно неприкладное знание. Это просто упорядочение содержимого головы, чтобы текущий мутный дождик технологических новостей раскладывался в голове на правильные полочки, а полочки были не конца прошлого века, а state-of-the-art.
2019

Системный менеджмент и стратегирование 2020

Я вношу много изменений в содержание курса "Системный менеджмент и стратегирование", и меняю его название -- там теперь будет цифра 2020 (а не 2019, как сейчас). Текущий семнадцатый поток уже многое из этого получает, но с 5 апреля 2020 (первое занятие курса) это "внеплановое содержание" станет уже вполне запланированным и будет доноситься более упорядоченно.

1. Основное изменение -- это тренинг в работе с системными уровнями, особенно системными уровнями социотехнических систем. Проблема была в том, что системные уровни понимались статически, и неизбежно это было "мёртвое" понимание design-time/enabling, а мы будем менять его на "живое" представление run-time/operations, а затем тренировать использование системных уровней в мышлении о предприятии. Нет в мышлении системных уровней -- нет системного мышления! Это необходимое, хотя и недостаточное условие для системности мышления. Мы начнём с простого примера "танец" (в отличие от автомобиля и атомной электростанции его трудно представить вне динамического контекста, и в нём уже есть люди как материал и как исполнители проектных ролей, и он очень нагляден), потом займёмся менее наглядными примерами системных уровней в мышлении (интеллект-стек -- https://ailev.livejournal.com/1507279.html, https://ailev.livejournal.com/1508228.html), в софте (https://ailev.livejournal.com/1508747.html), в бизнесе (целевые системы "лот", "сделка", "сессия", "мероприятие" и т.д.) и в практиках в общем виде. Разбирательство с окружением, выход в "культуру" как практики более высокого системного уровня. Вот системные уровни практик/деятельности -- это и есть системные уровни деятельности предприятия. Мы будем безжалостно тренировать тот факт, что системные уровни -- это выделяемый вниманием уровень деления системы на части (а не способ сборки-разборки на части! Разобранный даже мышлением на части организм -- это мёртвый организм, нам такой не нужен! Нам нужно выделение частей живого организма вниманием в момент, когда организм живой!).

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

3. В разговоре о программном обеспечении более чётко будет проводиться линия о софте как механистически понимаемом "сознании" (механизм присмотра за вниманием к памяти и входному потоку информации -- https://ailev.livejournal.com/1488271.html) организации в противовес "автоматизации". Функция "бумаги и ручки" (базы данных и отчёты) оказывается важней функции "сам думает"! Софт понимается как необходимая часть для координации деятельности людей в предприятии, не выделяется отдельно в "цифровизацию" или "интеллектуализацию" -- https://ailev.livejournal.com/1497402.html. А дальше пообсуждаем интеллектуализацию: по каким линиям идёт "скриптование" (автоматизация), и по каким линиям идёт включение программ AI в бизнесе. У нас в курсе это всегда было, но сейчас будет сделан акцент (перенесена часть материала из курса по AI).

4. Мысли Питера Сенджа про learning organization обновлены в части подъёма интеллекта организации, в явном виде добавлено про нижние уровни практик мышления в проекте и в организации как способе ускорения развития. Идея многоуровневости развития. Идея связи стратегирования и целеполагания против разработки и реализации стратегии и целей корпоративных (декомпозиция/каскадирование целей -- balancing scorecards, KPI)и личных (OKR) -- где там стратегирование, а где лидерство, в чём фишка cadence/цикличности. Более чётко связь с open-endedness (прихват идей из статей типа https://arxiv.org/abs/2003.08536 -- продолжаем гармонизировать идеи из мира искусственного интеллекта и традиционные идеи из гуманитарных дисциплин типа организационного развития и предпринимательства).

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

6. Мы запустили онлайн-курс системного мышления, и он будет доступен курсантам (первая часть курса идёт как blended learning). Там ожидается довольно много интересного: от запуска помидорок на 25 минут прямо в интерфейсе курса (помогаем удерживать внимание) до привязки дополнительных материалов и разъяснений прямо к разделам учебника.

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

Конференция "Прикладное системное мышление"-2020, день второй

Во второй день мы практически не потеряли в численности, людей в пике была та же сотня (первый день я обсуждал в https://ailev.livejournal.com/1508452.html). Доклады были по сравнению с прошлыми годами несравненно сильнее в части методологии, это работает наш упор на системное мышление и онтологику: разговор об инженерии и менеджменте на крепком методологическом основании становится сразу серьёзным, без размахивания руками и ссылок на личное чутьё в качестве аргумента. Видео (кроме двух последних докладов) появится в ближайшее время в https://yadi.sk/d/mzj4OrkwOnNrdQ

Вот мои заметки по основным замеченным мной проблемам:

1. Неразличение уровней формализации на спектре мышления и используемой нотационной техники.
Псеводкод, текст с формальными идентификаторами, текст, код, схема, диаграмма -- всё это замешивается в невообразимую кучу. Текст полностью формальный и текст на естественном языке сравниваются с диаграммами, схема тут не поймёшь -- диаграмма или набор концептов (формальный или не очень формальный, "схемоид" на спектре формальности мышления, т.е. выражаемый в языке обычно всякими отходами от theory theory). Явная дыра в нашем курсе онтологики, прямое техническое задание заплатки к курсу. Но и другие курсы должны обратить у нас на это внимание, прежде всего курс "Системная инженерия", где Вячеслав Мизгулин поднял проблему необходимости текстовых описаний в инженерии и отметил в своём докладе недостаточность методологических материалов по стыку схематизации-рендеринга в части концептуализации и в части нотационной инженерии. Отдельно концептуализации разного уровня формальности, отдельно нотационные техники текстовые (с разной степени вменяемости синтаксисами!), отдельно нотационные техники диаграммные. Ну ведь правда же, когда говорят "псевдокод", то аспекты свободы концептуализации или свободы синтаксиса имеются ввиду, или обе свободы сразу -- непонятно.

Мне больше всего понравился кейс Антона Меркулова, где он для выражения архитектуры предприятия последовательно пробовал ArchiMate, собственную диаграммную нотацию (на основе существенно более компактной нотации из функциональных описаний для электроники) и остановился на свободном тексте с типизированными понятиями системного подхода сущностями, именованными на CamelCase (https://ru.wikipedia.org/wiki/CamelCase ), например, Роль_ПерекатчикСолнцаВручную. Тип позволяет делать проверки (например, не путаются ли роли и должности), идентификатор выражает концепт, а отношения и менее формальные понятия выражаются текстом. Дальше можно в этот "текстокод" вводить потихоньку другие конструкции. Ещё пара проектов демонстрировала текстовые архитектуры вместо диаграммных техник, так что процесс пошёл. Кирилл Гайдамака сделал замечание, что текущие языки требований тоже по факту представляют собой "текстокод" -- синтаксис задаётся текстовыми шаблонами, терминология выделяется из текста, но текст таки остаётся свободным, язык не формальный, а естественный. Но в этом "текстокоде" (боюсь, боюсь писать "псевдокод"!) люди с удовольствием делают правки (ибо чётко видны последствия правок, формализма достаточно), в отличие от полностью свободного литературного текста, с которым они отказываются работать. Давний спор (14 февраля 2019 года на заседании Русского отделения INCOSE я спросил, почему в одном и том же проекте одни и те же люди отказывались работать с текстами у Александра Лучкова, и отказывались работать с картинками у Кирилла Гайдамаки -- https://ailev.livejournal.com/1465997.html, и там ссылка на видео) получил разрешение: слово "текст" не отражало степень формальности этого текста, а "картинка" также не отражала степень формальности -- они отсылали только к типу нотации (и даже не к нотации, ибо для "текста" и "картинки" могли быть десятки нотаций для самых разных уровней формализации и разных вариантов концептуализаций/онтик предметной области). Теперь понятно, о чём нужно было спрашивать дальше!

Вопрос про "полнотекстовое на естественном языке представление против формального текста" обсуждался лет десять назад с Donald Firesmith (он приезжал к нам в Москву и резко выступал против того, что архитектура выражается только формальными языками, настаивая на необходимость текстовых документов. Но он как раз из "старых системных инженеров", о которых говорил Вячеслав в своём докладе). И этот же вопрос лишней формализации буквально вчера всплыл в закрытом обсуждении в фейсбуке (чем плохо тегирование по сравнению с текстами), и я там тоже отметился: 11 лет назад я писал про эту вакханалию лишней(т.е. не ведущей к проверкам, вычислениям или чему-то осмысленному) формализации/тегирования в https://ailev.livejournal.com/715272.html, и привёл байку Моя любимая байка про IBM Watson, который выиграл Jeopardy!, причём я лично участвовал в той встрече онтологов, где был этот диалог. Там спросили, почему люди в IBM не кодируют википедию в виде онтологии/knowledge graph (по сути -- не формализуют википедию), а используют полнотекстовую обработку? Ответ был таков, что вопросы они не могут предопределить, а любое сжатие информации/формализация/схематизация/моделирование -- потеря ответа на какой-то неожиданный вопрос, ибо вопрос может быть про важное для спрашивающего, но неважное для формализатора. На удивление онтологов, что работа с полными текстами без их кодирования/сжатия в виде формальных представлений требует диких вычислительных мощностей, они ответили "так ровно поэтому IBM Watson -- это прежде всего суперкомпьютер!". Все эти соображения остаются верными и сегодня, когда говорим о knowledge graphs. Если не очень понятна цель, то чересчур сжатые формализации быстро оказываются бесполезными в тот момент, когда цель становится ясной и оказывается не той, которая была при формализации.

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

Особенно обидно было то, что неудачные нотации закрывают хорошие концептуализации. Так, всё направление GORE (goal-oriented requirements engineering) появилось как указание на необходимость учитывать человеческие цели (ролевые интересы, предпочтения и намерения по реализации предпочтений) в инженерии требований, особенно разбираться с возникающими конфликтами между стейкхолдерскими ролями: разбираться не столько с требованиями, сколько с проектными ролями, которые тянут эти требования каждый в свою сторону в силу своих предпочтений. Моделями требований начали называть представления, в которых кроме требований указывалась трасса к проектным ролям и их конфликтам. Но у языков для моделей требований с их графическим представлением не нашлось много интересных кейсов по моделям требований (хотя тот же ArchiMate явно указывает, что учитывает фреймворк i* в своей концептуализации, то есть он в какой-то мере язык GORE, т.е. включает подъязык требований -- вот тут у меня есть абзац на эту тему в разговоре про SysArchi и там пара ссылок: https://ailev.livejournal.com/1454948.html).

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

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

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

Учить не только разработчиков, конечно, но и всех остальных. Архитектура -- это коммуникационный артефакт, и её нужно уметь не только архитекторам писать, но всем остальным читать и понимать. Для этого нужно понимать принципы архитектурной концептуализации, то есть с мереологией нужно разбираться и разработчикам, и архитекторам, и менеджерам, и всем вообще: это мыслительная компетенция "бакалавриат" для всех, а не только "магистратура архитеторов". Можно не знать слова "мереология", но вот отношения "часть-целое" отслеживать в разбиениях по разным принципам нужно уметь всем.

Вторая засада в этой проблеме непоняток между разработчиками и архитекторами именно софта -- это длинная цепочка описаний: архитектура описывает программу, код тоже описывает программу, которая описывает домен. Описывает ли архитектура домен и что мы там делаем с DDD? Ответы тут очень, очень невнятны.

3. Проблема мереологии софта
Мереология -- это подраздел онтологии, занимающийся отношениями частей и целого. Для софта:
-- отношения "вызова" путаются с отношениями "часть-целое" (я немного затронул этот вопрос в "мереологии практик мышления": https://ailev.livejournal.com/1508228.html).
-- мереология описаний (кода), мереология софта в момент исполнения, мереология данных, мереология домена и их трассировки друг ко другу -- это всё разное. Сегодня это не очень различается в части работы с системными уровнями, а надо различать. А то обсуждаются системные уровни непонятно чего. Помним при этом, что функциональные разбиения -- это разбиения в момент работы/operations, и они связаны с назначением/функцией (а она в свою очередь упирается в то, что это даёт для моделирования софтом домена, и если не просматривается целевой домен, то что-то с функциональностью не так, архитектура не архитектура). Мой опыт таков, что софтовые архитекторы испытывают огромные трудности с функциональными описаниями и мереологией функциональных объектов! Впрочем, архитекторы предприятий тоже (это ж разговор про практики, труднопонимаемые "процессные объекты").
-- мереология платформ может быть выстроена разным образом. Например, сам "вызов" может быть превращён в 4D объект "сессия" и сервер/платформа и клиент/надстройка над платформой могут выступить взаимодействующими объектами на одном уровне (как показано было в великолепном архитектурном докладе Ивана Подобеда), или можно идти традиционным путём "стеков", где платформа/сервер уровнем ниже её надстройки/клиентов -- и так на много уровней вверх. И в одном и в другом случае можно развести команды (по платформенным уровням или по модулям в рамках одного уровня в разных мереологических вариантах концептуализации домена), но какие-то примеры таких мереологических развилок в моделировании можно было бы рассмотреть в ходе обучения системному мышлению. Повторюсь, обучать нужно не только архитекторов, но и всех остальных.

Я написал в чат спикеров конференции, что считаю сегодняшний день крайне полезным. Почему? Да вот же -- три пункта, которые я тут записал (1. Путаница между формализационным и нотационным аспектами при обсуждении моделей. 2. Редукционизм разработчиков. 3.Мереология софта), это же довольно точные задания на исследования преподавателям наших курсов -- и это не абстрактные исследования из разряда "интересненько", а исследования в ответ на реальные проблемы, которые пришли из производственной жизни. Когда результаты этих исследований попадут в курсы, наши выпускники будут способны замечать проблемы из этих пунктов в своих проектах и они будут знать, в каком направлении искать решение этих проблем. Мир станет чуточку лучше. Так что очень полезно сегодня посидели, я очень доволен.

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

UPDATE: обсуждение в чате блога с https://t.me/ailev_blog_discussion/1942