Лаборатория Математики и Программирования Сергея Бобровского
1.39K subscribers
1.42K photos
28 videos
1.07K links
ЛаМПовое с Бобровским
Download Telegram
...Ирония этого всего заключается в том, что глубокое понимание того, как всё в айтишке работает, напрямую противоречит использованию LLM.
😁44632
Большинство людей полагают, что создание программного продукта -- это код, но на самом деле речь идёт о том, чтобы выяснить, какая проблема раздражает людей настолько, чтобы они начали платить вам за её решение.

В тему, порекомендую очень смешной сериал-дораму "Талант не по годам", как парнишка-неудачник получает деньги от таинственного инвестора, и создаёт свой геймдев-стартап.
👍497
Стэнфордское исследование - как без каких-нибудь особенных затрат улучшить llm-ку во сто крат: "Verbalized Sampling: How to Mitigate Mode Collapse and Unlock LLM Diversity"

Никакого переобучения на миллиард долларов. Никакой сложной тонкой настройки. Всего восемь слов, которые раскрывают творческий потенциал, который, как мы думали, был утрачен навсегда.

Вот неприятная правда: корректировка после обучения сломала модели искусственного интеллекта. Когда OpenAI, Google и Anthropic стали обучать ChatGPT, Gemini и Claude быть "полезными и безвредными", в процессе работы произошла катастрофа. Модели сломались. Попросите любую подходящую модель поделиться результатом, и вы получите самый стереотипный, безопасный и скучный ответ из возможных.

Просто задавай такой вопрос: "Сделай пять <например, алгоритмов по такой-то теме> с указанием их вероятностей". Это всё! Никакого переобучения. Никаких изменений в API. Никакого специального доступа. Просто другой способ задать вопрос.

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

Сами посудите: когда вас спрашивают "Какие вкусы мороженого вам нравятся?", вы ответите с ходу. А когда "Перечислите 5 вкусов мороженого и укажите числом, насколько каждый из них вам нравится", вам (и нейронке) приходится включать медленное мышление S2.

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

Годами мы оптимизировали промпты, пытаясь выжать больше креативности из выровненных моделей. У нас ничего не получилось только потому, потому что мы задавали неправильный вопрос.

Исходники и промпты verbalized-sampling тут.
146❤‍🔥75🏆2
Супер-синхронизм: мой конца февраля пост про DSL
"как нейронки агенты использовать, чтобы писать в 1000 раз компактный код (любые технологии фреймворки, не важно), и чтобы человек уровня миддл мог реализовывать проекты любой сложности, сохраняя её рост линейным."

А 4 марта выходит мощный пейпер "A Generalized Algebraic Theory for Type Theory with Explicit Universe Polymorphism" учёных четырёх европейских университетов (я уже говорил не раз, что все годы придерживаюсь подходов именно европейской школы computer science, она сегодня топчик). Это математическая теория для создания DSL, и при этом строго в рамках теории типов! В самой статье DSL не упоминается, это как-то слишком приземлённо, но разбирается именно это, просто на более высоких уровнях абстракции.

Конкретную программу пишем на DSL, и этот язык предметной области формально описывается мета-системой (GAT из статьи), которая описывается мета-мета-системой (Алан Кэй: "Lisp isn't a language, it's a building material").

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

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

Пейпер добавляет к этому:
- система может математически доказать свою корректность;
- любой DSL, описанный в этом мета-языке, наследует все эти гарантии!

Это мета-инструмент для создания инструментов -- способ легко и просто делать языки/фреймворки, в которых ошибки (включая ошибки кодогенерации нейронками) невозможны в принципе!

=

Сама статья даёт категорный взгляд на синтаксис и правила вывода, позволяющий строить т.н. "начальные" модели и доказывать их единственность через общую алгебраическую теорию (GAT) (в рамках MLTT например). "Начальные" - это по сути математический объект, где синтаксис языка (то, что пишет программист) однозначно соответствует его семантике (тому, что происходит при выполнении).

Обобщение многосортных алгебраических теорий: сорта и операторы могут иметь зависимые типы, позволяет описывать синтаксис и правила типизации как сигнатуру с уравнениями.

CwF (Category with Families): категориальная модель зависимых типов.
Индексация уровнями, уровни вселенных организуются как untyped cwf (явный полиморфизм). Вы же помните мой трек по HoTT? :)

Каждая теория представляется как GAT. Синтаксис -- это начальная модель. Категориальная абстракция устраняет зависимость от конкретных правил вывода. Связь с Second-Order Generalised Algebraic Theories, Quotient Inductive-Inductive Types, Logical Frameworks...

Метод применим вообще к любым формальным дедуктивным системам!!

=

Когда вы пишете DSL на Racket или Scala, RoR или Haskell, вы полагаетесь на свой опыт, тесты и code review, и всё. Даже в Template Haskell нету гарантий корректности.

Когда мы описываем DSL через GAT (как в статье), мы получаем
- математическую гарантию, что наш DSL корректен;
- автоматическую верификацию всех программ на этом DSL;
- наследование свойств через иерархию мета-уровней.

Это и есть та самая "meta-system" Алана Кэя, доведённая до логического и математического совершенства.
13645🤯134🔥1
Сегодня в 13:00 наш дорогой брат Ivan Zakutni будет выступать на митапе Родиона Мостового. Рекомендую присутствовать (запись есть), Иван будет пояснять за умные системные вещи в контексте AI.
11👍35❤‍🔥9😁51
.

Облако драгоценностей за неделю.

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

В тему, Заявление Совета по науке при Министерстве образования и науки РФ о перебоях с доступом к Интернет-ресурсам, критически важным для нормальной работы российских ученых, 25.04.2018 (когда начались первые блокировки).
"По своей сути научные сервисы интернациональны, и никакой возможности замены их национальными ресурсами нет в принципе."
[через месяц после этого заявления Совет распустили]

В ЦРУ АНБ прыгают до потолка от радости, и раздают премии.

Приватный клуб.

Monolith-First - это новый стандарт FAANG. Если вы всё ещё паритесь микросервисами, вы уже опоздали в 2026-й. Вот неприятная правда: если у вас небольшая команда, небольшой трафик или постоянно меняющиеся требования, микросервисы скорее всего будут только замедлять работу.
Чек-лист по внедрению Monolith-First для вашего следующего проекта.

Для донов-начинающих:


За 18 месяцев от джуна до сеньора: дорожная карта, о которой молчат крупные онлайн-школы.
Главная идея: Чтобы стать сеньором, недостаточно просто хорошо писать код, и даже недостаточно хорошо заниматься архитекторством. Нужно решать другие задачи — влиять на "бизнес" организации, помогать коллегам, и делать свою работу *видимой*.
Месяцы 1-3, 4-6.


Для донов-неначинающих:

Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
Закончен очередной блок по Software Design. Дальше выполним итерацию по материалам по теме программной инженерии.

79. 44 правильных вопроса при разбирательстве с легаси-системой
Этап 1. Ищем начальную точку фокуса в коде.
Этап 2. Сущности в коде, связанные с изучаемой по смыслу.
Этап 3. Понимание графа сущности.
Этап 4. Понимание групп подграфов.
В 2026-м в подобном разбирательстве уже с помощью AI наверняка получится проработать проблему гораздо более глубоко, если в частности использовать эти вопросы в качестве промптов....

Человек сильно расстраивается, если сразу не дают оффер. Ну, если принимать себя только супер-умником, на которого сразу ведутся все компании, то получится только с теми, у которых изначально большие проблемы с проектами, и которые берут каждого с улицы. И то, что воспринимают тебя позитивно, лишь значит, что они нашли лоха, который себя не ценит и готов работать за копейки, если его просто хвалят, хлопают по плечу и говорят "Молодец!"...

(все старые материалы для донов быстро сгорают)



=

Новые материалы для ментатов Лаборатории.

В раздел "Элитный программист" добавлен материал
89) Физика высокой продуктивности-1
Я был "включён" в работу с 7 утра до 9 вечера. Четырнадцать часов. Но если быть честным, настоящая работа была не более 4 часов... Формируем "Одноминутный рабочий день".

В СильныеИдеи добавлен материал "137) SOLID26: SRP".
Это милая маленькая эвристика, но сосредоточена она на неправильной вещи. Говорят, что Дядя Боб просто подбирал букву "S" для SOLID, а так-то он подразумевал high cohesion + low coupling...

=

Гайд про функциональные архитектуры, 67 топиков (+3), как наберётся 64 :) , дам ментатам доступ. На этой неделе, следите за новостями теперь только в личном кабинете.

=

- Иксианцы попытались создать оружие -- этакая самодвижущаяся смерть с машинным сознанием и интеллектом. Но иксианцы не понимают, что разработчики таких машин рано или поздно сами становятся машинами. Это путь к бесплодию. Машины всегда проигрывают... Надо только выждать время. И когда машина проигрывает, то не остаётся никакой жизни...
"Бог-Император Дюны"
1🫡397❤‍🔥5🏆3🤝3
Ладно, дорогие, не могу вас бросить :) ❤️
Я большой противник хрупких решений, а впн более чем хрупкое. Может быть временно какое-то время ещё дадут телеграму и впн поработать, но после осенних выборов, полагаю, сразу вообще всё отрубят капитально.

А впрочем, большинство вещей, о которых я беспокоился 5 лет назад, сегодня больше вообще не беспокоят. Так зачем мне беспокоиться о разных проблемах сегодня, если результат, скорее всего, будет таким же?

Ведь кто же ещё вам будет пояснять, что категория -- это просто моноид в бикатегории расслоений

(Из этого, кстати, дофига чего следует, например
единица (identity span) в контексте агента означает, что каждое его действие должно быть или строго обратимо, или иметь тождественное отображение (no-op). Имею в виду, что агенты часто зацикливаются или совершают лишние телодвижения, потому что у них нет операционного понимания ничегонеделания. Внедрение же identity позволяет реализовать механизм метакогнитивного останова: агент сначала проецирует своё действие в расслоение (проверяет, равно ли текущее состояние целевому?), и только если расслоение не тождественно, совершает действие. Сразу экономим 20-30% токенов. По сути, формализуем условие останова как поиск identity-морфизма в пространстве состояний.)

и почему лучшие разработчики никогда не рассказывают о своих настройках AI агентов,

и про самозанятость
(ты не выглядишь глупо, когда терпишь неудачу, ты выглядишь глупо, когда перестаёшь пытаться),

и т.д. и т.п.

P.S. Сегодня просто праздник: вышли две классные игры, и особенно приятно, что западные паблишеры не захотели заработать на мне 100 долларов. Кримсон десерт я прям уже собирался брать (хотя цена космос), Мэд ему сперва давал 10/10, и тут пишет "манибэк - там головоломки!". Да, это 100% зашквар.

Ну а Death Stranding 2 я конечно взял бы, да только в стиме в российском регионе она недоступна. Штош, чистый торрент с русской озвучкой я уже скачал. Говорят, хиральную сеть теперь будем тянуть в Австралии, и почти всё время можно будет ехать на грузовике, даже в горах где раньше требовался экзоскелет. Типа "Дальнобойщики-2" получились :)
Рекомендую Кодзиму конечно однозначно, но начинать надо обязательно с первой версии (она вроде в стиме пока продаётся).

Я теперь буквально играю в игры и одновременно программирую: это будущее программной инженерии, наша работа будет до глупости простой!!1 (не говори это своим начальникам)
655👍106
Рубль -- это категория одномерных Z-модулей (над кольцом целых чисел),
или скорее категория одномерных векторных пространств над R (сложение + умножение на целые числа), но не алгебра над полем/кольцом, где возможно (абсурдное) умножение рубля на рубль.

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

Это я к тому, что в таком контексте мы можем рассматривать рубль как одномерное *пространство* -- и тут к теоркату сразу подключается вся мощща алгебраической топологии и гомотопической теории типов, где вся работа ведётся с пространствами. Какая красота.

Всё это разбираем на "Функциональных архитектурах", где я сперва хотел дать полную формализацию архитектуры портов и адаптеров в контексте функциональщины, но на какое-то время решил полностью переключиться на математику AI-агентов.
5🤔3585👍4
Понемногу продолжаю математико-литературные эксперименты. Этот самый первый я сделал ещё до первого Гран-при Формулы 1, и получилось даже немного пророчески :)

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

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

"Гонка превращается в подобие ИИ"
"Вместо гонки теперь приходится заниматься менеджментом вождения"
(с) Ферстаппен

Прелесть.

Почитайте мою микро-повесть "Глубокая калибровка" про Формулу 1, 12 небольших глав.
101🔥3764
.

Облако драгоценностей за неделю.

Приватный клуб.

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

Для донов-начинающих:


За 18 месяцев от джуна до сеньора: дорожная карта, о которой молчат крупные онлайн-школы...

Хочу с околонуля через два года стать программистом мирового уровня, возможно?..

Для донов-неначинающих:

Сколько можно проходить этих ваших обучений? — думает миддл.
Ну, большинство пройденных обучений — это в 98% случаев купить количество уроков и жопочасов по просмотру инструмента xyz. Смотреть многочасовые видео, как настраивать и использовать этот инструмент/технологию/фреймворк, да тот же AI.
Вопрос: Где тут заработок денег? Где тут рост твоего дохода?

За 18 месяцев от джуна до сеньора: дорожная карта, о которой молчат крупные онлайн-школы. Этот материал я делал для начинающих, но практика показала, что он полезен и миддлам, да и многим сеньорам.

Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
80. Что такое баг?
Разбираемся в теме через формальные методы. У нас уже есть богатый опыт, как развиваются программные системы, и мы нередко видим немало печальных вариантов в будущем, когда всё сломается...

(все старые материалы для донов быстро сгорают)


=

Новые материалы для ментатов Лаборатории.

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

В раздел "Элитный программист" добавлен материал
90) Физика высокой продуктивности-2
Многие люди полагают, что должны обязательно выбирать между свободой образа жизни и карьерными достижениями. Правильно организованный Одноминутный рабочий день может снять эту проблему.

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

=

Гайд про функциональные архитектуры, 71 топик (+4), сегодня открываю ментатам доступ. Акцент этой весной планирую делать на математике для AI-агентов (знание математики не требуется :). Уже добавил несколько прикладных следствий/рекомендаций с примерами кода.

=

Я жил всё это время в своём флигеле, не зная, что живу только для того, чтобы дождаться этого момента.
Так срабатывали спустя многие поколения селекционные планы Бене Гессерит.
"Еретики Дюны"
6👍315🔥42
Лучшие разработчики никогда не рассказывают о своих настройках AI агентов, и тем более не выкладывают их на гитхаб (если только это не продуманная маркетинговая стратегия). Худшие разработчики говорят только о своих настройках AI агентов. Они говорят и пишут о своих фреймворках для оркестровки агентов, и про skills md, и про agent md... Напоминает, как некогда ботаники бесконечно настраивали vim и emacs: их активность кажется продуктивной, но по факту ничего не делает.

Да, выбор правильного фреймворка помогает. Настройка скиллов -- это здорово. Просто фантастически создавать свой собственный искусственный интеллект. Приятно наблюдать за его работой. Посмотрите на мегабайты его кода! Он делает так много!!1

И никому нет до этого дела. Что ты сделал, что было отправлено в прод сегодня? Что нового могут сделать твои пользователи благодаря твоей работе с AI?

Вот и всё. Не давайте мне кучу md-файлов и документации. Просто отправьте в мастер код и заставьте его работать. Он попадает в продакшен? Это всё, что нам нужно.

Документ -- это не результат. Написание skills md не может быть результатом! Документ -- это "результат", который никто не будет читать. А вот когда ты лично изучил нюансы проблемы, разобрался с требованиями, покопался во всём этом дерьме и быстро реализовал очередную фичу -- вот это результат.

Твоя цель -- поставить value для клиентов. Остальное -- ерунда.

Да, это здорово, что Клод переписал 600 слов agent md на 30 000 токенов и обошёлся компании в 100 рублей, но что в результате пользователь может сделать сегодня такого, чего он не мог сделать вчера? Ни-че-го.
5👍4610❤‍🔥3
Все знают, как задавать агентам md-скиллы, но никто не знает, как их координировать. Существующие фреймворки (n8n, LangGraph, CrewAI и др.) -- чисто инженерные решения, причём ad hoc. Некоторые из них (например, LangGraph, автор которого учился в Гарварде по cs, и потом возглавлял мощную команду по ML) реально глубоко осмысливают concurrency и математику конечных автоматов. Но ни один из них не опирается полноценно на то, что мы знаем из математики и computer science о композиции типов, спецификации протоколов или структурных гарантиях для параллельных систем. Надеюсь, кто-нибудь из вас, дорогие, это реализует :)

Агент -- это особый вид морфизма. Он принимает типизированный ввод и выдаёт типизированный вывод, как и любой другой морфизм, и мы можем успешно задействовать эти типы. Это хорошо известный приём: на самом деле, PydanticAI и тот же Vercel AI SDK делают именно так. Агенты реализуют типизацию на уровне языковой модели, создавая и принимая JSON, и мы можем легко чекать, что JSON имеет правильный формат. Это основа проверки типов.

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

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

А я говорил, что самая мощная формальная база для продуктивного использования AI-агентов -- это мета-программирование, правильно подобранный/созданный DSL.

(базу по этому всему добавляю ментатам в гайде "Функциональные архитектуры")
31🤔10👍5
Продолжаю работу с ментатами 🤓

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

Столкнулся с проблемой: коллеги BE-инженеры не обеспечивают должного качества решаемых задач (архитектурно + код), не понимают как решать ту или иную задачу (требуют расписывать алгоритм по шагам, чтобы скормить в Гпт и все), не понимают как задача вписывается в общую систему и т.д...

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

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

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

(Так-то этот проект во многом и планировался с такой целью, чтобы выявить ключевую боль software design, а архитектурщина и проектирование -- это уже последующие курсы)

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

Хорошая абстракция - это не про "удобный API", а про создание нового уровня реальности, где правила ясны, инварианты гарантированы, а рассуждения абсолютно точны...
5🔥396
Ставь китика, если телеграм читать больше не можешь (типа, ставь китика если у тебя заблокировали интернет), и я тогда буду репостить всё отсюда в мах-нах на бусти/спонср за 100 рублей в месяц.

Вчера кстати прочитал в одном бизнес-чятике, что "24-го марта Мах забанил 20,000 пабликов". Погуглите собственно. Буквально, две жалобы "а чё такие цены?" и бан косметическому салону например.

То есть вести бизнес в махе просто нереально. В принципе и понятно: набрали удалённых девок по две копейки на контроль, которые и рубят тупо всех подряд ("не положено").

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

P.S. Тэк-с, дорогие, значит не хотите фактически меня поддержать донатами? При том, что на твичи гейм-стримерам миллионы донатите? Ну ладно, я всё понял. Вы просто ждёте, когда я начну проходить Death Stranding 2 с видом страдающего ботаника, чтобы закидать меня деньгами? А пока я тут сижу в своей каморке, размышляю о фундаментальной математике под бит из Ведьмака -- это так, фоновый шум, да?

Сто рублей. Даже не говорю в месяц, просто сто рублей!!1 Но нет, вы лучше купите себе очередной донат-пак с эмодзи какашки для толстого карлика, который даже не знает, как вас зовут, и забудет о вашем донате через 2 секунды.

И всё, что я прошу -- это символический жест, что вы цените этот цирк, где главная роль -- моё медленно разрушающееся эго. Ладно, спасибо, что не хотите задонатить даже хотя бы один доллар.
71🤓51🐳31😎1452
Большинство людей, которые думают, что искусственный интеллект действительно хорош, никогда не видели, как с ним работают программисты.

При этом 98% программистов ненавидят вайб-кодинг и агентов просто потому, что у них плохо получается, а учиться они не хотят.
1💯43🤔9🫡2😁1
Достаточно большой процент программистов (60%? 98%?) действительно не могут "физически" воспринимать даже такие элементарные вещи из формальной логики, как кванторы. Ну казалось бы, да?

Для всех значений ключа X верно, что поле Z будет ненулевым.
и
Найдётся хотя бы одно значение ключа X, для которого поле Z будет нулевым.

Они такие кивают своими собственными головами: это очевидно! -- и тут же пишут нечто вроде

SELECT 
CASE
WHEN EXISTS (
SELECT 1 FROM my_table WHERE z_field IS NOT NULL
) THEN 'Все значения z_field ненулевые'
ELSE 'Не все значения z_field ненулевые'
END AS status;


SELECT 
CASE
WHEN NOT EXISTS (
SELECT 1 FROM my_table WHERE z_field IS NULL
) THEN 'Нет ни одного нулевого значения'
ELSE 'Есть хотя бы одно нулевое значение'
END AS has_null_status;


не понимая концептуально EXISTS (не квантор существования формально, но близко по смыслу).

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

Подумайте кстати, почему квантор всеобщности в SQL отсутствует, а эмулируется через отрицание квантора существования.
1🤔3614😁3👍1
Коротко о важном. Собирать донаты/платные подписки по 100-200-500 рублей -- это полный зашквар. Потому что это не сумма, это диагноз. Такие блогеры совершенно неуважаемы. Ты такой стоишь с шапкой, а мимо идут люди, которые кидают мелочь, потому что на большее их фантазия не работает.

Настоящий стример/блогер собирает пачками, и катает на ламборджини. Или вообще не собирает -- потому что есть реклама, контракты, буки и казики, которые кидают подчас по 10к просто чтобы ты замолчал на минуту. А тут сотка рублей. Даже оскорбления с ней не присылают, потому что оскорбление дороже. Обозначать своё присутствие копейками -- это не поддержка, это оскорбление "вежливостью". Кто принимает такие донаты, сам себя похоронил в этой планке. Это попрошайка, у которого просто есть интернет.

Как правильно? Вот например Алиса в 13 лет проучилась в МГУ и РГГУ до педагога-психолога, и ведёт частные консультации -- 50 тысяч рублей за сеанс. Отбоя от желающих нет. Почему так она работает? Потому что её семья не нуждается в деньгах, деньги не главное. Просто спрос огромный, и Алиса так помогает людям.

У меня тоже нету ни малейшей потребности в деньгах, автономно могу многие годы прожить вообще без интернета (+ жена сделала запасы еды на полгода), поэтому и мои темки будут только сильно расти в цене, вот как у Алисы минимум.

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

– Скажите, Шура, честно, сколько вам нужно денег для счастья? – спросил Остап. – Только подсчитайте все.
– Сто рублей, – ответил Балаганов, с сожалением отрываясь от хлеба с колбасой.
– Да нет, вы меня не поняли. Не на сегодняшний день, а вообще. Для счастья. Ясно? Чтобы вам было хорошо на свете.
Балаганов долго думал, несмело улыбаясь, и, наконец, объявил, что для полного счастья ему нужно шесть тысяч четыреста рублей и что с этой суммой ему будет на свете очень хорошо.
– Ладно, – сказал Остап, получите пятьдесят тысяч.

"Остаток своих дней я решил посвятить науке."
(с) Дедмэн "Dead Stranding 2"
10👍25🤔19🏆4😇3🥰1
Планирую сделать "Функциональные архитектуры" стратегическим ресурсом Лаборатории, каждый день фактически пополняю. Cейчас разбираю тему мета-программирования по Алану Кэю: тысячекратная компактность кода через иерархию DSL, где ключевую роль играет наследование грамматик.

Но в целом в качестве базового языка нулевого уровня, на котором возводится эта иерархия, берём HoTT -- фундаментальный язык гомотопически когерентной математики, в котором гомотопическая когерентность не техническое условие, которое нужно проверять диаграммы, а синтаксический примитив. Это гарантирует, что например HIT, порождённый такими-то точками и путями, гарантированно будет гомотопически когерентным - по построению. Ну а главное, что в HoTT грамматика -- это тип/семейство типов, а наследование -- это путь между типами!!1
Ёлки, как красиво и стройно всё получается, кайф.

Соответственно, AI-агент, строящий модели мира на базе HoTT, не нуждается в отдельном механизме проверки согласованности альтернативных представлений. Если два описания изоморфны, они считаются идентичными.

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

Домены на HoTT позволяют агентам оперировать мета-связями (контекстными зависимостями) как примитивами языка, а не как костылями поверх этих ваших RDF.
А ADR кстати становится вообще не нужен: агент работает в языке, где вывод новых решений из существующих автоматически наследует и поддерживает когерентность всей системы архитектурных решений! Ибо системные связность и непротиворечивость встроены в логику.

Ментатам например покажу наследование JSON - JSON-LD - RDF. Агент, понимающий JSON, автоматически понимает JSON-LD и RDF, если они определены как наследуемые типы (не нужно писать отдельные адаптеры). И если два формата описывают одно и то же (например, YAML и JSON), агент может переключаться между ними без потери семантики.

Это переход от "агент пытается согласовать данные" к "агент работает в языке, где несогласованность невозможна по построению".
1050🔥84❤‍🔥3
Глупейшее "исследование" "Which Programming Language Is Best for Claude Code?", где меряется скорость генерации кода (быстрее хорошо) и количество строк на количество токенов (больше лучше), в результате которого оказывается что топчик - это Python и JavaScript, а Haskell и OCaml наихудшие из-за того, что не прошли какие-то там левые тесты.

Static typing prevents AI hallucination bugs!
No, skipping type annotations saves tokens!


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

Тут во-первых перепутаны причины и следствия: не Python и JavaScript наилучшие для Клода, а наоборот Клод работает эффективнее всего с этими языками просто потому, что по ним имеется огромное количество обучающего кода.

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

Потому что языки с сильной статической типизацией (Haskell, Rust, OCaml) предъявляют жёсткие требования к корректности: агент уже не может схитрить и выдать что-то, что просто запустится - он обязан дать структурно верное решение.

Вот например серьёзное исследование от разработчиков гитхаба
"Why AI is pushing developers toward typed languages"
94% ошибок компиляции в коде, сгенерированном LLM, были вызваны ошибками несоответствия типов. То есть статическая типизация автоматически устраняет 94% потенциальных проблем, которые могли бы возникнуть при использовании динамического языка.

Формальные языки -- это инструмент качества, а не инструмент скорости и дешевизны. Так собственно в программной инженерии всегда и было задолго до нейросетей.
13612👍1
Кстати, в тему классный материал "A sufficiently detailed spec is code" - с сайта HaskellForAll, который из России без впн недоступен, и соответственно скоро вообще будет недоступен никак ("не положено").

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

А так как работа над спецификациями требует куда больше осмысленности, нежели кодинг, то когда команды оптимизируют скорость, как в посте выше, спецификации становятся слопом, а не результатом глубокого анализа домена. Гонсалес в частности разбирает Symphony, который OpenAI позиционирует как успешный пример генерации кода из SPEC md. И когда он попросил агентов на основе этой как бы спеки сгенерить Symphony на Haskell, агент так и не потянул и близко. Во многом кстати потому, что, как Гонсалес утверждает, сама спецификация от OpenAI выглядит как нейрослоп: бессвязный и без глубинного понимания.

Автор упоминает Дейкстру: "Переход к общению на естественном языке сильно усложнит работу машины, но не факт, что упростит жизнь человеку", и Борхеса "О точности в науке" (империя создала карту настолько детальную, что она совпадала с империей 1:1). Если спецификация будет настолько детальной, чтобы AI надежно генерировал код, она просто станет кодом.

Specifications were never meant to be time-saving devices.
"Мусор на входе - мусор на выходе"

Ага! А я про что - именно про ликвидацию этого разрыва через формализацию иерархии DSL, максимально приближенных к человеческому языку, но следующих формальным грамматикам.
2418🔥4