July 15th, 2021

2021 год

lytdybr

Наткнулся на свой текст десятилетней давности "Эскиз образовательного проекта" -- https://ailev.livejournal.com/961237.html (и было ещё небольшое к нему приложение пять лет назад, https://ailev.livejournal.com/1277589.html). Там и комменты рулят. Удивительно, но проект каким-то образом реализовался. Единственное что, так это нужно тогдашние мысли о DSL, который нужен был для вполне традиционного формального моделирования, заменить на сегодняшнее менее формальное табличное и текстовое моделирование: принцип "мышления моделированием" был понятен уже тогда, но не очень была понятна форма реализации. Сейчас с ней много ясней. Ещё оказалось неожиданностью, что настолько всё плохо с curriculum -- делать его пришлось практически с нуля, до сих пор в методологическую работу уходит львиная часть времени, а вот методике время уделяется, но явно не в том масштабе, в котором предполагалось это делать в тех древних текстах. Было понятно, что "шикарно учить случайно подобранному набору предметов" нельзя, но вот обнаружить, что по факту нет самих предметов -- это было неожиданностью. Ну ничего, проект ещё далеко не закончен, десяток лет в таких делах -- не срок.

По какой линии я бы обсуждал предлагаемые Пинкером идеи противоядий против tribalism/трайбализма (это когда ключевое слово из какой-то политической повестки вызывает отключку разума, переключая на трансляцию верований своего племени и критику верований другого племени)? Я понимаю это так, что человек тренирует-тренирует S2 -- но когда встречается слово-триггер (даже не идея, а именно слово!), то S2 отключается и дальше мы видим мощную нейронную сетку типа GPT-3 и даже мощнее, выучившую несколько несложных тезисов и круто из воспроизводящих. Внешне это выглядит, как отключка разума при полностью сохранённых лингвистических способностях. Главное, что каждое порождённое слово статистически предполагает следующее слово из какого-то манифеста, и так пока не кончатся буквы, а они не кончатся. Рассуждений нет, есть поток метафор и ассоциаций, анекдотические свидетельства, напор на эмоции и всё прочее, что умеет делать S1 без контроля S2. Как лечить других и себя от такой напасти? Пинкер говорит о том, что все идеи разных людей нужно обсуждать без классификации их каким-то общим лейблом (у него главным образом лейблы республиканцев и демократов, иногда либертарианцев), а обсуждать содержательно по одному -- не относя к искусственно созданному классу. То есть игнорировать якобы связную картину мира в голове собеседника (она ни разу не связная, это морок -- там ведь мешанина из самых разных идей), а разбираться с ней по частям и без навешивания ярлыков на целое. Если зацеплены аборты, то обсуждать аборты, но не обсуждать свободу торговли, и наоборот. Эта идея напоминает мне разные аналогичные, и можно как-то думать в этом направлении:
-- освободить практики от власти методологий, деконструировать монстрообразные методы и работать с отдельными практиками (продвигается Ivar Jacobsen, OMG Essence как раз воплощение этой идеи). Парное программирование тут -- это парное программирование, и не нужно обязательно связывать его с планирующей игрой (хотя впервые они появились в рамках методологии eXtreme programming, но можно просто забыть про общее происхождение и думать про эти практики независимо, оценивать и модифицировать их независимо друг от друга).
-- не считать, что мир обязательно должен быть логически связным, ибо это онтологически невозможно (формальные онтологии несовместимы). Переходить к микротеориям.
-- не считать, что все идеи идут через запятую на одном системном уровне. Не делать винегрета из рассуждений на разных системных уровнях, ибо там разные практики, разные микротеории на каждом системном уровне.
-- главное, это научить мыслить о мышлении, чтобы все эти объекты внимания хоть как-то обсуждать. Если ты не знаешь о различиях S1 и S2, не знаешь понятия аргумента, не знаешь о предвзятостях, анекдотические свидетельства считаешь чем-то с вебсайта анекдоты.ру, то дальше бесполезно обсуждать мыслительные проблемы -- трайбализм-шмайбализм, логика-шлогика, всё это будет пропущено мимо ушей, будет невидимо, вне внимания. То есть таки нужно учиться мышлению о мышлении, постигать методологические дисциплины, чтобы хоть как-то нормально обсуждать околополитические темы.

Выяснил вдруг, сколько евреев среди нобелевских лауреатов: The strong representation of Jews in science and academia is evidenced by the fact that 193 persons known to be Jews or of Jewish ancestry have been awarded the Nobel Prize, accounting for 22% of all individual recipients worldwide between 1901 and 2014. Of whom, 26% in physics, 22% in chemistry and 27% in Physiology or Medicine. In the fields of mathematics and computer science, 31% of Turing Award recipients and 27% of Fields Medal in mathematics were or are Jewish (https://en.wikipedia.org/wiki/Jewish_culture). У меня, конечно, были смутные подозрения, но я таких больших цифр не ожидал. При этом цифры могут быть и больше, ибо еврейское происхождение в силу повсеместного антисемитизма могло и скрываться. Культурная ли это линия ("давние образовательные традиции", но их ведь давно уже нет!), или таки что-то в генетике связано с усилением S2 (вся эта наука в целом и особенно физика-математика-логика как раз про проявленность S2) -- это даже боюсь копать, ибо там и протоколы сионских мудрецов сразу всплывут, и особая одарённость белой расы, и много чего ещё помоечного. Но статистика, конечно, удивительная. "Избранный народ", ага.

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

Прогресс в AI продолжается со скоростью два прорыва в неделю. Например, из последнего:
-- Вышла работа по нейронным причинным моделям (NCM) по образу и подобию структурных причинных моделей (SCM) с участием Bengio и Barenboim -- https://arxiv.org/abs/2107.00793. An important property of many kinds of neural networks is universal approximability: the ability to approximate any function to arbitrary precision. Given this property, one may be tempted to surmise that a collection of neural nets is capable of learning any SCM by training on data generated by that SCM. In this paper, we show this is not the case by disentangling the notions of expressivity and learnability. Specifically, we show that the causal hierarchy theorem (Thm. 1, Bareinboim et al., 2020), which describes the limits of what can be learned from data, still holds for neural models. For instance, an arbitrarily complex and expressive neural net is unable to predict the effects of interventions given observational data alone. Given this result, we introduce a special type of SCM called a neural causal model (NCM), and formalize a new type of inductive bias to encode structural constraints necessary for performing causal inferences. Building on this new class of models, we focus on solving two canonical tasks found in the literature known as causal identification and estimation. Leveraging the neural toolbox, we develop an algorithm that is both sufficient and necessary to determine whether a causal effect can be learned from data (i.e., causal identifiability); it then estimates the effect whenever identifiability holds (causal estimation). Это всё особенно пикантно с учётом твита Pearl про невозможность для нейронных сеток быть хоть как-то разумными, ибо они не могут подняться до третьего ранга в лестнице контрфактуальности: https://twitter.com/yudapearl/status/1411842797376659457
-- с участием того же Bengio сделали нейронную продукционную систему, https://arxiv.org/abs/2103.01937 (но это ещё в марте было. Просто иллюстрация тренда "берёшь что-то из старого символьного AI и делаешь то же самое нейронное -- оно ж универсальный аппроксиматор!"). We take inspiration from cognitive science and resurrect a classic approach, production systems, which consist of a set of rule templates that are applied by binding placeholder variables in the rules to specific entities. Rules are scored on their match to entities, and the best fitting rules are applied to update entity properties. In a series of experiments, we demonstrate that this architecture achieves a flexible, dynamic flow of control and serves to factorize entity-specific and rule-based information. This disentangling of knowledge achieves robust future-state prediction in rich visual environments, outperforming state-of-the-art methods using GNNs, and allows for the extrapolation from simple (few object) environments to more complex environments.
-- продолжилась серия побед "нейронная сетка сдаёт экзамен лучше, чем средний студент", в этот раз экзамен по вводному курсу машинного обучения в MIT, https://arxiv.org/abs/2107.01238. The proposed model achieved an overall accuracy of 96 percent for open-response questions and 97 percent for multiple-choice questions, bettering the average MIT student score of 93 percent.
-- и очередной рекордсмен в SuperGLUE, ERNIE 3.0, https://arxiv.org/abs/2107.02137. We trained the model with 10 billion parameters on a 4TB corpus consisting of plain texts and a large-scale knowledge graph. Empirical results show that the model outperforms the state-of-the-art models on 54 Chinese NLP tasks, and its English version achieves the first place on the SuperGLUE benchmark (July 3, 2021), surpassing the human performance by +0.8% (90.6% vs. 89.8%). Красота тут в том, что GPT-3 -- это 175 billion parameters, а этот чемпион -- всего 10 billion. Вдобавок . It fuses auto-regressive network and auto-encoding network, so that the trained model can be easily tailored for both natural language understanding and generation tasks with zero-shot learning, few-shot learning or fine-tuning.
-- ... и такого много, чуть ли не каждый день что-то новенькое.

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

Системная схема и подальфы учебного курса

Тут очень грубая намётка того, как можно адаптировать системную схему проекта для какой-то деятельности, в данном случае проектом будет учебный курс. Грубость намётки в том числе и в том, что игнорируется supply chain в части разделения методологии, методики и собственно обучения; игнорируется работа с alumni после курса и просвещение до курса; не вдаёмся в различения образования-обучения и программы-курса; игнорируем групповой характер обучения; игнорируем онлайн-варианты курсов; и много ещё чего игнорируем. Задача -- показать пример того, как выглядит результат, это просто пример мета-моделирования деятельности.

Как всегда, явно опираемся на понимание трёх моделирований:
-- мета-мета-моделирование, происходит путём изучения онтологики, системного мышления, деятельностных кругозоров. Современная картина мира, данная в понятиях SoTA трансдисциплин -- это и есть наша мета-мета-модель. ШСМ на выходе даёт ровно знание мета-мета-модели (общей для всех предметных областей).
-- мета-моделирование для конкретной области деятельности (создание самого чеклиста, вот ровно продолжение допиливания напильником того, что я делаю в этом посте -- в каком-нибудь coda.io или другом моделере). В данном случае это делается для организации, проводящей учебные курсы. На выходе -- какие-нибудь таблички, или дерево с чеклистами, или ещё какая-то форма, которую потом нужно будет коллективно заполнять.
-- моделирование конкретного учебного проекта, оценка состояния всех альф, поминаемых в мета-модели. Работаем с формой, полученной в мета-моделировании: смотрим на конкретную ситуацию, оцениваем альфы, планируем действия. Мета-модель предлагает чеклист, на стадии моделирования тем самым проверяется, что вы подумали обо всём важном (модель -- это описание всего важного!), а неважное пусть подумает о себе само. При этом особенность: о важном нельзя не подумать, даже если оно как-то сразу не думается. Наоборот, это должно настораживать, что мы чего-то не знаем о состоянии альфы! Должно легко думаться! Если не думается легко, то нужно срочно этим вопросом заняться -- и не отступать, пока не будет понимания ситуации и плана тех действий (или бездействия, или даже прекращения деятельности), что из этого понимания ситуации следуют.

Так что используем этот список альф учебного курса (проекта обучения на курсе) для "производственных игр" (какие-то "ходы по правилам", ритуалы привлечения внимания к важным объектам), которые выполняют с системной схемой проекта -- только в приложении к учебному курсу, "проекту обучения на курсе". Какие-то примеры использования можно взять из учебника системного мышления, какие-то подглядеть у людей, использующих оригинальный OMG Essence, по мотивам которого всё это разработано, впрочем вы и сами легко придумаете много интересных способов это использовать -- если знакомы с мета-мета-моделью, то есть понимаете, как нужно разбираться с человеческой деятельностью.

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

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

Сам чеклист маленький (это ж только самое важное!), предисловие к нему и то больше по объёму. Но честное прохождение этого чеклиста может потребовать неожиданно много времени. Мета-модель кратка, а вот моделирование по ней -- это может занять много времени.

Отправной пункт мета-моделирования: исходная системная схема проекта, семь альф.


Меняем основные альфы для учёта предметной области:


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

Дальше для конкретных ситуаций/курсов/программ нужно вводить какие-то новые подальфы, менять терминологию в соответствии с выбранными методами образования. Для этого (поскольку число объектов резко вырастает за рамки графических представлений) лучше сразу брать какие-нибудь productivity tools типа coda.io (впрочем, для очень маленьких проектов и google docs сойдёт, наша Школа использует OneNote в связке с MS Teams) и моделировать уже там. И дальше нужно для каждой подальфы строить список её состояний, определять контрольные вопросы к достижению этих состояний (подробней обо всём этом моделировании рассказывается в программе "Системный менеджмент и стратегирование 2021", выпускникам двух последних потоков должно быть хорошо понятно тут рассказываемое. Остальным сочувствую, в одном маленьком тексте с одним маленьким примером я не могу рассказать обо всех нюансах и дать много практических советов. Ещё могу посоветовать вспомнить про роли в образовательном проекте, я прописывал их в "Учительский долг/teaching debt и деятельностные роли в образовании", https://ailev.livejournal.com/1517176.html).

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

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

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

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

4. Мастерство (воплощение системы, целевая система: кусок мозга какого-то человека, в котором впечатано мастерство как "алгоритм мышления", можете заменить на "компетенция" или "ЗУН" -- у разных людей ведь тут разные системы, определяемые их образовательными школами!)
-- студент/выпускник/мастер (сырьё для образования, "носитель мастерства" на которого будет это мастерство впечатано курсом -- абсолютно инженерное понимание), работа с мотивацией в ходе всего курса будет именно по выполнению роли! Курс это сервис по обучению/изменению студента, доводки студента до выпускника-мастера с инсталлированным в него мастерством.
-- Мастерство/компетенция/ЗУН или что-там будет, проходящее стадии в курсе (и тут можно отдельно долго говорить про разбиение на подкомпетенции в плане частей-целых и обеспечения совместной работы всей этой сборки, все эти осознанные-неосознанные компетентности-некомпетентности, достижение успешности в transfer of learning как условие валидации и т.д.). То есть тут обязательно рассмотрение структуры мастерства и того, что мы будем отслеживать как пропечатка этого мастерства в мозгах проходящего обучение человека -- то, что тут будет отслеживаться, существенно зависит от выбранного содержания обучения и выбранной методики обучения, из какой педагогической традиции пришли люди, проводящие курс.
-- ...

5. Работы курса
-- учебные задания, которые нужно выполнить -- отслеживание их реального выполнения (операционное управление: или принудительное прохождение какого-то набора задач, спланированного upfront, или agile с использованием технологий адаптивного обучения. Опять же, требует учёта разных идей типа mastery learning -- разным людям требуется разное время для достижения какого-то требуемого уровня мастерства).
-- отслеживание работ по продвижению всех остальных альф (скажем, членов команды хорошо бы вовремя назначить, и это не забыть проконтролировать)
-- ...

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

7. Метод обучения (way of teaching)
-- методика обучения (модель жизненного цикла, все эти blended learning и flip teaching тут)
-- методические материалы курса (учебник, упражнения, задания, методические рекомендации преподавателю)
-- учебные пособия (тренажёры, модели и моделеры)
-- учебное помещение (а хоть и дома, если дистантно!) и аппаратура-с-софтом коммуникации (телеграм, MS Teams и прочие варианты)
-- система управления курсом(система управления жизненным циклом, обычно тут это называют LMS, learning management system)
-- ...

UPDATE: обсуждение в https://www.facebook.com/groups/blended.learning.russia/posts/2955315174711012/