Lytdybr -- от 8 июля 2024

Переписка “Методологии” ползёт, готово 38%. Приходится переписывать практически всё. Про первый раздел мне писали, что “читается как роман”, ибо там проводится история усложнения представлений разложения метода – от простых “линеечек” через деревья декомпозиций, через “графы принципиальных схем” с прилагающимися к ним описаниям дифуров для расчёта потоков к кодам на декларативных (например, функциональных) языках, а дальше – окончательная формализация в терминах теории категорий. Вчера я туда добавил ещё кусочек – в пример с методологией систем AI вставил язык описания принципиальных схем систем AI на базе диаграмм теории категорий, работа появилась в Gonzo-обзорах Telegram: Contact @gonzo_ML (ссылка на статью – [2407.02423] On the Anatomy of Attention). Так что в этом примере подряд будет две картинки таксономии методов: классическая и теоркатегорная. Второй раздел будет как роман тоже — если в первом разделе показано “как мы всё потихоньку усложняем”, то во втором разделе — история проблем с представлением жизненного цикла и попыток их исправления, включая исчезновение понятия “жизненный цикл”. Так что получается пока “дважды роман”, а там посмотрим. Вот эта таксономия методов внимания на базе теоркатегорных диаграмм систем AI:

“Ридеро” сегодня закончило вёрстку – и прислало текст А4 на 894 страницы, неожиданка, это на 129 страниц больше, чем вордовый A4 текст, который я отдавал. Максимум для книги – 800 страниц. Сказать об этом раньше у них почему-то не получилось, эти 129 лишних страниц оставались незамеченными до самого конца вёрстки. Не спрашивайте, как можно не заметить такого роста объёма. Материал из книги выкидывать не хочется, так что придётся таки бить на два тома. И оба тома теперь будут A4. От чего уходили переходом на A4 к тому и пришли.

В каких случаях применять системное мышление? Вопрос повторяется из группы в группу. Тема часто всплывает, поэтому в новом “Системном мышлении” об этом вдвое больше материала. Вопрос для меня звучит примерно как “а ты когда думаешь, а когда можно не думать? А можешь что-то делать, и вообще не думать? А можешь в мире устойчиво существующие объекты явно не выделять, письменные модели их не делать? А границы между ними и средой не проводить? А если у тебя проект маленький, типа чистки зубов, можно не обсуждать явно, что там за цели, какие методы, какие нужны инструменты – а просто брать и чистить зубы?”. У студентов-новичков было раньше: “не нашёл ситуации, где бы применить”. Потом мы начали учить вниманию к объектам, которые имеют уже понятный тип мета-модели с типами мета-мета-модели из нашего курса — и проблема вроде испарилась, но не совсем. что такое вообще “системное мышление”? Это просто про многоуровневость частей-целых и переходе к разным онтикам описаний на каждом уровне — с учётом, что часть играет какую-то роль в целом (выполняет там свою функцию). Неявно в распределённых представлениях об этом можно как угодно думать. Но в ситуациях, когда надо организовать совместное действие, то важно договориться о границах объектов и приемлемых значений их характеристик — и тут системное мышление помогает наладить коммуникацию. Оно вполне и в быту проявляется, только с диким количеством упрощений и ошибок. Просто при осознанном применении ошибки эти находятся и вычищаются, а при “просто думании” — не вычищаются. Не всё мышление вообще понятийно, распределённые представления, теория прототипов — они ж вполне в мозгу наличествуют. Но если ты уж задействуешь логику с объектами и пытаешься с кем-то что-то обсудить, то дальше азы системного мышления у тебя обязательно проявятся, куда ж без объектов, среды и границы между ними. Это для меня сводится к эффективности выхода из бессознанки S1 в трудоёмкий S2 (там, конечно, шкала – но это всё шкала хоть какой-то формализации, постепенного перехода к понятиям от “образов”, а хоть и “словесных образов”). Если уж включил понятийную думалку, именно что “размышления” — то она будет системна, а не включил — ну, там могут автоматом какие-то паттерны проявляться, но я даже не буду считать, что это “системно”. Скажем, почувствовал дискомфорт в теле, но не стал разбираться, что у меня там внутри тела, а оглянулся вокруг (взгляд от меня в окружение) — на автомате я не буду это называть системным мышлением, но оглядываться-то всё одно буду, что это на меня влияет так, что внутри дискомфортно. Или же “что-то непонятное, давай думалку включу” — но тогда уж сразу перейду на системное мышление.

Очередная попытка устроить какой-нибудь кэш памяти в системах AI — попытка воткнуть ещё один уровень памяти между RAG и параметрами, “явную память”, Memory3 — [2407.01178] $\text{Memory}^3$: Language Modeling with Explicit Memory. Конечно, там заявляется про SoTA, но вполне себе сравнимая с альтернативными вариантами, поэтому прошло не слишком замеченным. Ситуация может, однако, быть другой на всяких вариантах CoT. Но и другие подходы к кэшированию или хотя бы компилированию содержимого памяти не сдаются. Скажем, Minference (GitHub - microsoft/MInference: To speed up Long-context LLMs' inference, approximate and dynamic sparse calculate the attention, which reduces inference latency by up to 10x for pre-filling on an A100 while maintaining accuracy.) предлагает компилировать заполнение длинных (1М) контекстов, увеличивая скорость вывода с такими контекстами x10. Эти контексты ведь — тоже память! Дальше будет как с кэшами в процессорах: мало того, что там много уровней кэшей внутри чипа, так я знаю много команд программистов, которые явно используют знание о том, что там кэшируют — и оптимизируют код как раз для этого кэширования. Так и тут — будут всякие варианты LangChain для эффективного задействования всех этих вариантов кэшей при каких-то вариантах использования. Какого-то драматического эффекта на результаты в бенчмарках это всё, конечно, не будет иметь — но всё это серьёзно удешевляет вывод. А если он будет дешёвый, то его можно будет сделать 100 раз и отобрать лучшие результаты из ста попыток. Вот это уже серьёзно, прямо как человек думает: чем больше думает, тем больше вероятность, что что-нибудь придумает, а если ещё десять человек посадить думать (мультиагентные системы) и есть для этого ресурсы оплаты времени размышлений — то вероятность хорошего ответа после “а если подумать?” может быть ещё выше. И это работает даже на плохом железе – вот тут обсуждение этой методы (решение задач мат.олимпиады на плохом железе): x.com ( The submission of the team relied on self-consistency decoding (aka majority voting) to generate N candidates per problem, но хинт был генерировать дерево решений Tree of Thoughs, [2305.10601] Tree of Thoughts: Deliberate Problem Solving with Large Language Models, затем the Kaggle submissions had to run on 2xT4s in under 9h which is really hard because FA2 doesn’t work and you can’t use bfloat16 either. Есть и критика, что это решение не так уж сильно отличается от полученного за три месяца до самой олимпиады – но там по принципу всё то же самое, рулит “генерация вариантов и отбор лучших”, Telegram: Contact @seeallochnaya).

4 лайка