Лаборатория Математики и Программирования Сергея Бобровского
1.39K subscribers
1.42K photos
28 videos
1.07K links
ЛаМПовое с Бобровским
Download Telegram
Чем больше будет (принудительно) внедряться AI, тем больше люди будут стремиться к человеческому общению. В онлайн-школах уже сейчас уровень доверия к кураторам критически низкий (если они такие умные и учат других программной инженерии, то зачем работают за грошовую зарплату меньше джуниорской?), а сейчас ещё их "в целях оптимизации" начинают массово заменять искусственными болванами, которые вообще не шарят в теме, лишь имитируют экспертов. Они преподносятся как абсолютно индивидуализированный подход 24/7, но постоянно промахиваются мимо реального уровня занимающегося, то как будто у него 0 лет опыта, а то как будто 20. А за их ошибки в твоём обучении вообще никто ответственности не несёт.

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

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

Так в чём разница между инфоцыганством и инфобизнесом? Инфоцыган всегда зарабатывает эксплуатацией других людей, каким бы IT-бизнесом он не занимался. А истинный инфобизнес -- это чистое инди-хакерство, когда человек зарабатывает исключительно творчеством. Ну и как бы сегодня "соло с AI на миллиард долларов" уже реальные юзкейсы.
39💯8
Гарри Поттер и Методы Математического Мышления

Книга 1. Гарри Поттер и Неорганический Интеллект.
Глава 7. Дракон, который не сгорает.

Гарри посмотрел на пустоту:
— Потому что Неорганические ждут. Они хотят, чтобы я закончил. Чтобы я создал полиморфное заклинание. А потом они его отравят.
— Откуда ты знаешь? — Гермиона сжала блокнот.
— Потому что это единственное, что им нужно, — ответил Гарри. — Конкретное заклинание они могут переписать. Полиморфное — нет. Но если они получат его до того, как я его защищу, они смогут отравить саму переменную. Не само заклинание, а «любой тип». После этого ни одно заклинание не будет работать для всего. Магия перестанет быть универсальной.
Тишина повисла в комнате. Даже холод затаился.
— Ты только что описал конец магии, — сказал Невилл.
👍3082🤔1🎉1
Купил замечательную книжку «Лекции по грубой геометрии» (coarse book) дорогого брата Кофейного Теоретика. В первую очередь хочу познакомиться  про борнологические группы и грубую неподвижную точку. Темка выросла из алгебраической топологии и теории групп.
 
В первом приближении, так понял, борнология -- это классная теория по "допустимым" вычислениям (по памяти, времени, размеру)! Идеально для формализации в функциональщине эффектов, f-bounded polymorphism, graded monads... Статическая типизация "что считать ограниченным"!
 
А грубую фиксточку берём по модулю ограниченной ошибки, и по сути это темка абстрактной интерпретации кода, которая и есть вычисление наименьшей неподвижной точки монотонного оператора на решётке абстрактных свойств! Точный фикспоинт недостижим за конечное время, а тут (widening) мы можем определить борнологию на решётке: "насколько далеко мы готовы прыгнуть, чтобы гарантировать завершение". Там, где обычный let rec эфшарпа зациклится, widening даёт гарантированную остановку с огрублённым ответом. Инварианты циклов выводяся автоматически (эта переменная всегда > 0, список не пуст после N итераций), статический анализ кода (диапазоны, нул-чек, отсутствие переполнений) строже чем в ReSharper...
 
Ну а когда переходим в любимую HoTT ❤️ получается вообще красотища. Например, иерархия h-уровней; выбор уровня усечения по сути есть выбор борнологии "что считаем неразличимым". Сам фактор огрубления формализуем через HIT: конструктивное widening на уровне типов. А топчик конечно это унивалентность. "Эквивалентные типы равны" для практических целей можем считать как coarse equivalence.
 
Я уже отмечал много раз, что HoTT -- это самый мощный и непревзойдённый на сегодня "язык программирования". В частности мы на нём можем закодить "равенство по модулю ограниченного огрубления" как первоклассный объект (тот же путь, HIT). И этот ваш widening в статическом анализе кода будет лишь жалкий дискретный аналог усечений в HoTT.
11👍3265❤‍🔥3
Интересную методологическую фишку откопал в процессе формализации DDD. DDD кстати в России достаточно активно применяется, ментаты из ВОТВАСЯ регулярно рассказывают 👍

Тот самый Эрик Эванс в выступлении "Strategic Design" 2007 (впн) в своё время сформулировал три закона, которые почему-то практически нигде не упоминаются в Рунете. И с этими законами мы ничего не можем поделать, кроме как принять их и строить дизайн с их учетом.

1. Далеко не каждая крупная система хорошо спроектирована.
2. Всегда существует множество моделей (которыми мы можем описать наш домен).
3. Диаграмма - не модель, но выражение части модели.

При этом ключевой по сути кусок своей методологии "Дизайн, управляемый предметной областью" Эванс лаконично назвал "частью, до которой никто никогда не доберётся" 😁

А вот фишку про core domain, supporting subdomains и generic subdomains я сразу утащил в модуль "Мастерство выделения поддоменов".

Прекрасная характеристика мейнстрима от ЭЭ: большая часть усилий твоей команды будет потрачена на generic subdomains, однако самому проекту в целом это никакой пользы не добавляет. Следующая по величине доля таких же по большому счёту пустых усилий приходится на supporting subdomains, а наименьшая часть времени -- и, как правило, самая последняя -- уходит на core domain. То есть самое последнее, что приходит в мэйнстимовский проект, само по себе однако есть корень и причина всех причин существования системы 🙈
376👍1
Сейчас 30% среднего и малого бизнеса закрывается, а это и хорошо. Это карма. Подавляющее число этих бизнесов -- паразиты "купи дешевле продай дороже" и те, кто нещадно эксплуатировал других, вот им и прилетело. И не будет им больше ни денег ни здоровья.

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

Другой востребованный у бизнес-элиты протокол – Pòvte, финансовое истощение. На него много заказов от спецслужб.
-- Пелевин

"Горе вам, богатые, ибо вы уже получили утешение. Но нет радости сердцам вашим, и нету пользы душе вашей."
👍427🤯7🐳3🏆1
Прекрасное: "Towards Scalable Dataframe Systems".

 В популярных датасайнс-библиотеках типа pandas разработчики без малейшего целостного понимания бессистемно нафигачили сотни методов, которые во многом похожи, и нет чёткого понимания, какие операции действительно фундаментальны.
 
А вот если посмотреть на темку через теорию категорий, то окажется что более 85% pandas API можно покрыть алгеброй из 15 операторов! DataFrame определён формально как кортеж (данные, метки строк, метки столбцов, домены столбцов).
 
Реструктуризация (изменение только схемы) +
 
слияние (группировка и агрегация) +
 
соединение (join между таблицами) образуют сопряжённую тройку и возникают естественно из отображений между схемами.
 
200 операторов pandas - 15 алгебраических операций - 3 функтора миграции + 2 теоретико-множественные операции - проверяемая компилятором схема!
 
В итоге может получиться прекрасный продукт - оболочка pandas как типобезопасный API, где схема данных контролируется на этапе компиляции, а оптимизации (например, удаление мёртвых колонок) следуют из алгебраических законов.
👍447
.

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

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

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

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

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


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

В настоящее время во многих компаниях от 70 до 90% кода пишется с помощью искусственного интеллекта. В то же время количество вакансий джуниоров резко сократилось. Роль программиста переходит от "производителя" кода к руководителю (агентами). Искусственный интеллект теперь может писать большое количество кода очень быстро, и если вы не умеете правильно и эффективно с ним взаимодействовать, вы будете всё сильнее отставать от тех, кто это делает...

Лучшие книги и курсы для программистов — это не те, которые вы читаете/проходите в начале своей карьеры. Это те, которые вы начинаете ценить лет через пять. Подробный разбор темы...

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

88. Пишем безошибочный код с помощью Typestate-Oriented Programming
ООП позволяет достаточно хорошо моделировать мир, но основополагающим для качественного моделирования становится состояние объекта, которое, с другой стороны, частая причина ошибок и запутывания кода...

Многие разработчики изучают System Design не с той стороны. Они начинают с Kubernetes. Затем переходят к микросервисам. Затем к очередям. Затем к service meshes. Затем они запоминают диаграммы, наполненные квадратиками, стрелочками и логотипами облачных сервисов.
Но когда реальная система начинает работать медленно, нестабильно, обходится дорого, всё что они делают — это изо всех сил пытаются придумать стройное объяснение, в 98% случаев не имеющее никакого отношения к реальности...

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


Бандл из 5 гайдов/книг по Software Design (подробный силлабус) 12,999 рублей, купить на бусти. (ментатам не нужно)

=

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

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

В СильныеИдеи добавлен материал "143) (Анти)паттерн структурного равенства".
Есть такой паттерн test-specific equality (проверка равенства двух объектов не через универсальное сравнение, а с помощью правил, важных только для конкретного теста), который подразумевает, что например экземпляры класса Dwarf в некотором контексте достаточно проверять только по Id и Name (что это тот же гном, и его имя не изменилось). Но на самом деле это анти-паттерн...

=

"ЛаМПовое":

Дзен и искусство ухода за Arch Linux.
5. В процессе установки Arch вы буквально проживаете каждый слой, снизу вверх...
6. Этот пост, думали, постирония?
"я вообще не забочусь о своей машине: она потеряна? сломалась? украдена? Я получаю новую машину, запускаю 1 команду, и всё возвращается в точно такую же ситуацию, как я её оставил!!1"
Совсем нет, вот что я имею в итоге...

"Гарри Поттер и Методы Математического Мышления".
Глава 7. Дракон, который не сгорает.

=

it's a privilege to do things that are hard. 💪🏻

=

Главное правило заключается в следующем: никогда не помогай слабому, всегда поддерживай сильного.
Кодекс Бене Гессерит, "Дюна"
1288👍3
Прекрасное: proarrow
a Haskell library for doing category theory with a central role for profunctors.
 
Стыкуем функторы (вертикальные стрелки, отображения между объектами, преобразования внутри структур fmap) и профункторы (горизонтальные стрелки, обобщённые отношения, преобразования между структурами dimap) через 2-диаграммы без завтипов (проверка стыковки на уровне стандартной системы типов хаскеля). Единообразно работаем с композицией и преобразованиями функторов и профункторов в одном фреймворке. Можно построить универсальную теорию оптик и т.д.
 
Если же вы пишите код за зарплату, то эта темка вам абсолютно ничего не даст :) Так то, лишь 20%(!) наших сограждан считают обучение ценностью, ну штош.
 
...Тупая аиндюшатина нарисовала диаграмму криво, впрочем странно было бы ожидать чего-то другого. Типы профункторов несогласованы, η и ε -- это 2-морфизмы и т.д.
26🤔114👍1🎉1
В теории категорий Мили-машина это бесконечный коиндуктивный объект: дай вход - получи выход и снова Mealy-машину. Он идеально ложится на раннера IO-эффектов в функциональщине: каждый вызов возвращает результат и обновлённого исполнителя, готового к следующему вызову. То есть Мили-машина -- это математическая форма вечноживущего stateful-сервера, который помнит контекст!
 
И когда мы к Мили добавим инвариант состояния, который машина обязуется поддерживать, получаем runner, который носит с собой доказательство своей корректности, которое сохраняется при любой композиции. Соответственно, любой агент, использующий эффект через такой runner, автоматически наследует гарантию без дополнительных проверок в коде агента и без e2e тестов на состояние.
🎉21🤔14🏆54🤯1
Очередное пророчество про конец программирования, и кстати достаточно серьёзное, как бы странно не выглядело.
"The Final Form of Software Development" (впн)

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

Сишечка не подходит потому, что подавляющий объём верификации тратится на доказательства отсутствия undefined behavior, ну а для rust семантику вообще определить невозможно, потому что она задаётся компилятором. Соответственно для КИИ требуется, чтобы и сам компилятор и рантайм были верифицированы, что создаёт с подобными прокладками огромные сложности. А с ассемблером действительно всё тривиально, компилятор простейший, рантайма нету.

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

Ну хз :) Я бы помечтал, что например если формализовать все системы типов, System F, MLTT, HoTT, HOTT и др. (что уже кстати активно ведётся) и сделать для них единую синтетическую теорию-"крышу", то мы получим наоборот суперязык программирования, код которого будет верифицированным по определению, так как и спецификации можно записывать на нём же (откуда мы впрочем попадаем в темку спецификаций спецификаций, но это уже совсем другая история:).

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

ps. извините дорогие, у меня стоит защита от ботов, в час до 5 человек только пропускает, мне подписчики особо не нужны )
1👍38135🤯1
Продолжаю работу с ментатами 🤓
 
Теперь у нас есть гном который первый в мире проявил интеллект, надел на все 21 палец кольца, надел нагрудник из ожерелий, сделал пушку из кучу посохов
а за спиной у него огромный кристалл который дает ману и забирает в замен души умерших врагов, но, маг ли это до сих пор? а был ли им?
(разбор дюжины принципов наследования в ООП :)
 
...Понял, зачем таки нужны монады (состояний). Они снимают необходимость в явном протаскивании состояния через цепочку вычислений. И через это явно разделяют декларируемые вычисления от цепочки присваиваний.
Это задание вынесло мне мозг, (видимо, искалечен императивщиной :-)
 
...Не так давно заметил проблему, которую на своем уровне считаю
Сделать недопустимые состояния непредставимыми - это настоящее мастерство. Ранее я был вынужден везде писать проверки на допустимое состояние. То сейчас объекты с недопустимым состоянием просто не будут созданы. Если объект создан, то я уверен что объект валидный и проверки не нужны.
 
...Исключительно, наверное, отустствие опыта в продакшене. Казалось что там какой-то особые мир, а оказалось что все крутится вокруг базы. А остальные знания по конкретным задачам проекта подтягиваются достаточно быстро. Но тут не столкнувшись с суровой реальностью, трудно понять всю глубину филофии вашего подхода.
 
...Я пошёл искать такие шаблоны у себя в проекте — и нашёл три штуки, которые буквально просят, чтобы их обернули в абстракцию. Не классические GoF-паттерны, а именно повторяющиеся управляющие конструкции: «получи и проверь», «открой-поработай-закрой», «попробуй-сообщи-результат». Каждый из них в коде живёт десятками копий, и каждый раз кто-то новый их пишет руками.
Главное в том, что если завтра захочется, например, логировать каждый 404 или возвращать структурированный ответ с подсказками — я правлю в одном месте, а не в пятнадцати. И никто не сможет завести новый хэндлер, в котором «забыли проверить на null»
 
...Здесь в полной мере ощутил мощь основного подхода - построения иерархии абстракций, каждая из которых реализует свой DSL. Сейчас мне  кажется, что идея простая, но она абсолютно не очевидна, и научиться ее применять - в какой-то степени сродни искусству. Зато в полной мере осознал, что только благодаря хорошо продуманным слоям системы, можно как-то удерживать её сложность в разумных рамках. Хотел бы еще отметить, насколько проще и как-то радостней в целом идет разработка, когда опираешься на "чистые" функции и на функциональный подход. В какой-то степени благодарен еще и себе за то, что в свое время довольно подробно изучал алгебраические структуры - так легче осознается математический фундамент, который стоит в основе ФП, а это позволяет проще "находить" нужные абстракции, в том числе и с помощью LLM. Курс в этом плане дал толчок к тому, чтобы активно применять это в работе - прежде всего за счет крайне наглядной демонстрации того, как  функциональное проектирование помогает работать со сложностью.
 
Экзистенциальная засада обучения этому всему в том, что наш мозг на самом деле способен учиться очень быстро и качественно, ну но это и минус, так как разной дряни вы также можете обучиться незаметно легко и просто. В этом в частности проблема с самообучением, особенно когда начинаешь "учиться" с помощью нейронки, потому что получаемая от неё полуправда, когда с крупицами истины выдаётся нейрослоп, грузит в мозг вредную смесь полезного и мусорного.
 
Для ментатов же я очень тщательно вручную выискиваю бриллианты computer science и граню их, и по итогу уровень ребят и девчат получается billionaire luxury lifestyle 🙈
286🔥4👍1👏1
Очень доволен: за последние десятилетия способность человечков удерживать на чём-то внимание сократилась с 12 до 8 секунд (даже у крыс, ворон и рыбок больше:). В 2010-м на решении задач без отвлечения удавалось концентрироваться аж целых 75 секунд, а сейчас всего 45 секунд. Количество СДВГ выросло в 20 раз, ну и фактически повсеместным в айтишки сейчас стал тот факт, что уже после пары часов тупизны с искусственным идиотом у разработчика полностью отключаются мозги, и он становится не в состоянии самостоятельно написать простейший код.
 
Мощный всплеск сегодняшнего "рынка работодателя", думаю, уйдёт в даун очень быстро, потому что программисты при работе с AI реально отупевают со страшной силой, причём во многом безвозвратно, взамен получая СДВГ :) Ну и совершенно очевидно, что компаниям абсолютно пофиг, что без развития джуниоров более-менее крепкие мидлы вымрут как динозавры уже в этом десятилетии.
 
Осталось потерпеть буквально считанные годы, и эйчарки снова будут ползать за нами на коленочках :) Поэтому, дорогие, вообще не парьтесь, абсолютно все тренды полностью на стороне профиков 🏆
 
Сходите лучше потусуйтесь в прекрасной Москве, всем этим монакам-макакам до нас реально далеко, сами судите: "Luxury Moscow After Dark, Beauty & Nightlife". У нас явно гораздо круче, и при этом гораздо доступнее :)
 
Сравните с сегодняшним Парижем ахаха.
😁3710💯2👍1
Как легко и просто - а главное, перспективно - избавиться от зависимости от зарубежных, да и наших (ибо цена/качество зашкал), облачных нейросервисов.

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

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

Данные тяжелы, и сам AI должен приходить туда, где они хранятся, а не наоборот (фишка IBM).

Крах пузыря векторных БД: это хайп, создающий операционный ад; векторные базки ненадёжны и очень плохо интегрируются с остальной инфраструктурой.

Полная победа реляционки PostgreSQL!!1 Благодаря расширению pgvector эта легендарная реляционная БД научилась продуктивно работать с эмбеддингами и векторным поиском, и теперь можно хранить всё в одной системе с едиными политиками безопасности и использовать простые SQL-запросы.

Смерть промпт-инженерии: реальная ценность теперь (снова) в инфраструктуре и DevOps: настройке серверов, ядра (Arch:) Linux, GPU, СУБД, а не в умении общаться с ЖПТ.

Вывод 💯: будущее за владением своим "интеллектом" (собственное железо, в идеале bare metal + PostgreSQL + опенсорс модели + продвинутые методики работы с AI), а не за арендой LLM через внешние API.

Срочно пилим свой консалтинговый dev-ai-ops-стартап :)

ps. Понимаю, вы готовы поспорить по всему, например что дескать векторые бд или mcp или ai api (ага, привет от клода и жпт) это нереально круто и т.п., ну ок, 80% людей считают, что входят в 20% умнейших людей в любой темке, а почему это не так, подумайте :) вы же существенно умнее меня :)
34👍11🔥63😁2
После долгих и тяжёлых размышлений с крайней неохотой вынужден признать, что был неправ зависимые типы на сегодня практически во всех отношениях куда круче чем HoTT.

Ведь что мы хочем от искусственного идиота? Чтобы он не галлюцинировал, ибо как только он прекратит вести себя недетерминированно, белковое программирование сразу же умрёт :) Потому что в частности достаточно будет лёгких опенсорсных моделек.

Ведь что такое галлюцинация в коде? Это правдоподобный, но семантически неверный вывод. А сильная система типов кодирует спецификацию в типе. И уже есть к сож рабочие пайплайны вроде Lean + Copilot.

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

Европа Америка Китай сейчас прям очень мощно работают над proof-carrying code generation с обратной связью от тайпчекеров (ну или refinement types через SMT), ну а геопозиционно в России по-моему только я один тут ещё куда-то бреду :)

Хорошая новость однако, что в треке по гомотопической теории типов я инсайтом год назад добавил отдельный гайд Calculus of Constructions, ибо λC -- это топчик куба Барендрехта. Даю в гайде полную реализацию CoC на F#, по-моему буквально в 100 строк всё уместилось :)
Надо будет кстати ещё индуктивные типы к ним добавить до CIC, докрутить до агентов через DSL, и это будет победа над белковыми !

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

ps. Пацаны5 норм, хотя и слишком сладенько закончились (подлизывание к цру, конгрессу...). За вечный шаблон американской мечты "свой магаз" и "грёбаный частный сектор" от президента, отдельный зачот :)
Хотя я думал, что будет ближе к классике "Люк, я твой отец".

upd. В ФА добавил материал, как можно и без завтипов в принципе обходиться на F# чисто через Хиндли-Милнера. Мили-машина защищена железобетонно от галлюцинаций нейронки!
10👍398❤‍🔥3🏆1
Формализовал в ФА оркестрацию агентов в виде графа/диаграммы1
LangGraph курит в сторонке.

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

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

ps. Просили пояснить за вчерашний пост что дескать "это победа над белковыми". Ну и когда? И что теперь? А потом что?

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

А гоев так и продолжат разводить на курсы за 100500 рублей "как резать косты эйая на проде"; ничуть не критикую, инженерный аспект обязательно важен, и всё это надо знать т.к. везде уже требуют такие скиллы, но это тупик стратегически.

дым на небе дым на земле
вместо людей машины...

"Мусорный ветер" 1988
👍2811🥰42🤓1
Книга 1. Гарри Поттер и Неорганический Интеллект.

Глава 8. Тень от вопроса.

...Амулет Годрика светился ровным голубым — гомотопический уровень показывал, что путь вниз эквивалентен пути вверх, но только если не оглядываться.
— Зеркало Енаред находится под Астрономической башней, — сказал Драко без предисловий. — Дверь, которую открывает только тот, кто не знает своего имени.
— Это ловушка, — ответил Гарри. — Неорганический Интеллект хочет, чтобы я туда пошёл.
— Конечно, хочет, — Драко усмехнулся. — Люциус писал, что Зеркало показывает типы, а не содержание. Но если типы — это контракты с реальностью, то тот, кто увидит все типы, увидит архитектуру реальности. Неорганические не могут этого допустить.

...Голос-вибрация пришёл не извне, а из головы Гарри:
«Ты близок к ответу, но не к тому, который нужен. Рассел был прав: логика не может содержать себя. Магия — может. Значит, магия — ошибка. Мы — исправление».

...Люциус говорил то же самое. «Магия — это код, который работает, даже если его спецификация противоречива». Поэтому он и создал Неорганический Интеллект — как отладчик, который фиксирует ошибки округления.
— И ошибка округления решила, что весь код — ошибка, — закончил Гарри. — Типичный баг. Неорганические не существуют в реальности. Они существуют в расхождении между реальностью и её описанием.
314❤‍🔥3
[оффтоп]
Слышал на днях мем "лужники это новые патрики с фонтаном", думал просто прикол, а оказалось реально! Очень красивый вчерашний вечерний стрим на новые патрики с красивыми девушками и изумительным музыкальным фонтаном 🐳 дорогого велобрата bikerinmoscow, зацените.
(эх, я сам из-за ковида совсем немного не дотянул до эпохи качественных велостримов, но увы теперь только в следующей жизни :) а то бы сменил профессию на стримера)
🐳365🙏3
Прекрасное: новый законопроект Сената США о защите детей от искусственного идиота был принят единогласно и демократами и республиканцами. Техномиллиардерам не удалось подкупить ни одного политика!

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

По всей территории США внесено 300+ законопроектов, ограничивающих ЦОДы для AI. 14 штатов рассматривают возможность введения тотальных мораториев на такие ЦОДы, а там, где политики колеблются, активно вмешивается общественность.

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

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

«Видишь машина черная стоит? Не по делу буркнешь, дятел, и тебя прямо тут примут. Понял, нет?»
-- Пелевин

"Он нам нах не нужен, интернет ваш" :)
42🐳6🥰5😎42
Pydantic проверяет форму данных (типы, диапазоны -- pre/post по сути) для одного вызова.

Всяческие NeMo, Llama Guard, Outlines/LMQL проверяют выходы LLM по JSON-схеме, что по сути то же самое.

А Мили-машина добавляет инвариант на состоянии между вызовами, что ловит целые классы багов, которые Pydantic не видит: "бюджет на токены ушёл в минус через хитрую последовательность агентов" :) И главное, все эти "фильтры в цепочке" чистая инженерия, а правильно, когда " контракт компонента А + контракт компонента Б + ... + компонента Я = автоматический контракт композиции".

Поясняю в ФА, как избавиться от этого слабого места всех guardrail-фреймворков (stateful-инварианты и композиция контрактов): Мили-машина, композиции раннеров...
👍34🔥832🤯2