Недавно узнал о мемной конференции — SIGBOVIK. Это просто кладезь мемов на тему computer science, machine learning и вот этого всего. Например, в статье 2024 года под названием "The Ballmer Peak: An Empirical Search" исследователи задались вопросом, насколько алкоголь в крови влияет на скорость решения задач. Естественно было проделано множество экспериментов. В конце авторы пришли к выводу, что лучше решать задачки немного пьяным. А, например, одна из статей этого года описывает, что бывает с исследователями, если они выходят на улицу потрогать траву.
#random_article
#random_article
😁8🍾1
На конференции в Сколково как-то услышал термин Noise-induced AI, мол этот вид AI появился совсем недавно и термин только входит в оборот. Стало интересно, что ж это за AI такой. Оказалось, это системы, в которых шум в данных является не помехой, которую надо устранять, а чуть ли не ключевым фактором "интеллектуальности" системы. Собственно, сам термин ввели в статье Noise-induced artificial intelligence (2022), в которой показали, что шум, интенсивность которого зависит от состояния самой системы, может внести качественные изменения в работу этой системы. Кажется, в статье это всё было привязано к специальным клеткам в мозге, астроцитам, которые, я так понял, вместе с нейронами участвуют в обработке информации и больше нейронов взаимодействуют с шумом, но в этой части я на правдивость рассказа не претендую.
Идея и правда интересная, до этого я видел только работы по типу "мы добавили в данные для обучения шум — модель стала работать лучше на данных с шумом". А здесь авторы утверждают, что при наличии шума можно не просто улучшить работу системы, а именно получить качественно новые свойства. Однако никаких конкретных моделей предложено не было. Посмотрим, что будет дальше.
#random_article
Идея и правда интересная, до этого я видел только работы по типу "мы добавили в данные для обучения шум — модель стала работать лучше на данных с шумом". А здесь авторы утверждают, что при наличии шума можно не просто улучшить работу системы, а именно получить качественно новые свойства. Однако никаких конкретных моделей предложено не было. Посмотрим, что будет дальше.
#random_article
🔥4
Я часто генерю простые скрипты на питоне llm-ками, поэтому решил попробовать Cursor -- вроде как самую ходовую IDE со встроенным ИИ. Уже больше месяца пользуюсь, поэтому захотелось описать плюсы и минусы. Начнем с плюсов:
1. И правда, генерировать и править скрипты там проще, чем через браузер в перплексити. Всё сразу пишется в файлик, ничего не надо копировать.
2. Проще править нагенерённое и легко всё откатить.
3. Выбор моделей, возможность иметь несколько диалогов -- вроде уже стандарт, а всё равно приятно
4. Помимо написания кода llm-ка сама может запускать команды в консоли. Можно просто попросить править код, пока не перестанет ругаться линтер. Через перплексити, конечно, такое делалось бы дольше.
Минусы я бы отметил такие:
1. Cursor как-то странно в своём терминале и окружении, в котором работает llm, ломает переменные окружения. Llm-ка банально не может запустить компиляцию, потому что нет путей до компилятора. Конечно, она в состоянии найти абсолютные пути до компилятора, но дальше компиляция ломается, потому что компилятор не видит путей до пакетов. И на этом llm-ка ломает свой контекст и начинает галлюцинировать. Вот зачем так сделали? Это сильно ломает автоматизацию.
2. Я не нашёл в Cursor инструмента, чтобы на каком-нибудь питоне написать агента. Лично мне было бы удобно один раз написать такого агента, который запускает линтер, вывод передаёт в llm-ку, та правит код и так в цикле, пока линтер не перестанет ругаться. Но мне приходится это всё описывать словами, llm-ка начинает путаться из-за разросшегося контекста и сломанного окружения Cursor, а я начинаю бомбить, что Cursor это инструмент для вайб кодеров😡.
3. Проблема, конечно, не Cursor, а в принципе llm-ок — они не могут охватить большой контекст. С маленькими скриптами и правками работает всё прекрасно. Но даже уже на моём пет проекте всё начинает валиться, циклиться, галлюцинировать и генерировать код, вообще не решающий задачу.
По итогу: да, выполнение части задач удаётся ускорить. Но чуда пока нет, приходится всё равно работать😢
#random_experiment
1. И правда, генерировать и править скрипты там проще, чем через браузер в перплексити. Всё сразу пишется в файлик, ничего не надо копировать.
2. Проще править нагенерённое и легко всё откатить.
3. Выбор моделей, возможность иметь несколько диалогов -- вроде уже стандарт, а всё равно приятно
4. Помимо написания кода llm-ка сама может запускать команды в консоли. Можно просто попросить править код, пока не перестанет ругаться линтер. Через перплексити, конечно, такое делалось бы дольше.
Минусы я бы отметил такие:
1. Cursor как-то странно в своём терминале и окружении, в котором работает llm, ломает переменные окружения. Llm-ка банально не может запустить компиляцию, потому что нет путей до компилятора. Конечно, она в состоянии найти абсолютные пути до компилятора, но дальше компиляция ломается, потому что компилятор не видит путей до пакетов. И на этом llm-ка ломает свой контекст и начинает галлюцинировать. Вот зачем так сделали? Это сильно ломает автоматизацию.
2. Я не нашёл в Cursor инструмента, чтобы на каком-нибудь питоне написать агента. Лично мне было бы удобно один раз написать такого агента, который запускает линтер, вывод передаёт в llm-ку, та правит код и так в цикле, пока линтер не перестанет ругаться. Но мне приходится это всё описывать словами, llm-ка начинает путаться из-за разросшегося контекста и сломанного окружения Cursor, а я начинаю бомбить, что Cursor это инструмент для вайб кодеров😡.
3. Проблема, конечно, не Cursor, а в принципе llm-ок — они не могут охватить большой контекст. С маленькими скриптами и правками работает всё прекрасно. Но даже уже на моём пет проекте всё начинает валиться, циклиться, галлюцинировать и генерировать код, вообще не решающий задачу.
По итогу: да, выполнение части задач удаётся ускорить. Но чуда пока нет, приходится всё равно работать😢
#random_experiment
🫡4🎉1
Я оказался неправ, и у Cursor, оказывается, есть свой cli под названием cursor-agent. Правда, я о нём узнал случайно из какого-то блога, а не с сайта или приложения. Ну да ладно, хотят скрывать существование такого агента, пусть скрывают, а мне не терпелось попробовать.
Для эксперимента задачу я выбрал простую, но рабочую. Мне в проекте на питоне нужно было логер дописать, чтобы он логи отправлял на определённый сервис по определённому флагу. В ci я разворачивал сам сервис и запускал тесты, в которых что-нибудь логируется и проверяется, увидел ли это сервис. Так вот, ci не проходил, и это я дал исправить агенту. Я поставил себе пакет, чтобы локально ci запускать и сгенерировал простой скрипт для правки: в цикле запускается ci, его вывод скармливается агенту, агент правит код.
И агент не справился😢. В логе ci было много информации про установку пакетов, и он как будто в ней путался и начинал галлюцинировать. В итоге пришлось разбираться самому. А проблема в ci оказалась простая -- сервис просто не успевал обработать лог до того, как тест проверял, обработал ли сервис лог.
Опять замена меня ии-шкой отменяется(
#random_experiment
Для эксперимента задачу я выбрал простую, но рабочую. Мне в проекте на питоне нужно было логер дописать, чтобы он логи отправлял на определённый сервис по определённому флагу. В ci я разворачивал сам сервис и запускал тесты, в которых что-нибудь логируется и проверяется, увидел ли это сервис. Так вот, ci не проходил, и это я дал исправить агенту. Я поставил себе пакет, чтобы локально ci запускать и сгенерировал простой скрипт для правки: в цикле запускается ci, его вывод скармливается агенту, агент правит код.
И агент не справился😢. В логе ci было много информации про установку пакетов, и он как будто в ней путался и начинал галлюцинировать. В итоге пришлось разбираться самому. А проблема в ci оказалась простая -- сервис просто не успевал обработать лог до того, как тест проверял, обработал ли сервис лог.
Опять замена меня ии-шкой отменяется(
#random_experiment
👏3🎉3
Вот вы знали, что, оказывается, для сборки cmake проекта на cpp может понадобиться интернет?! Да, чисто технически cmake может вызывать команды, требующие интернета, но мне казалось, что никто так делать не будет. Типа зачем?
А узнал я об этом случайно. Как-то раз у меня интернет пропал, и я решил просто посидеть и попрогать рабочие задачи. И смотрю, что у меня проект не собирается с такой ошибкой. Оказалось, что в либе, которую мы тащили сабмодулем для http и websocket сервиса на плюсах, стали использовать CMake Package Manager. Он позволяет тянуть зависимости прям во время сборки и хешировать их, чтобы сабмодулями зависимости не тащить, как это мы делаем.
Это, конечно, интересно, но как будто странно, что мне нужно проделать cmake конфигурацию перед тем, как уехать в лес изолироваться и прогать🧐
#random_github #random_cpp
А узнал я об этом случайно. Как-то раз у меня интернет пропал, и я решил просто посидеть и попрогать рабочие задачи. И смотрю, что у меня проект не собирается с такой ошибкой. Оказалось, что в либе, которую мы тащили сабмодулем для http и websocket сервиса на плюсах, стали использовать CMake Package Manager. Он позволяет тянуть зависимости прям во время сборки и хешировать их, чтобы сабмодулями зависимости не тащить, как это мы делаем.
Это, конечно, интересно, но как будто странно, что мне нужно проделать cmake конфигурацию перед тем, как уехать в лес изолироваться и прогать🧐
#random_github #random_cpp
🔥3
Forwarded from Кулешов разгоняет IT
Трансгендеры, Code Property Graph и при чём здесь AI
В мире анализа кода есть такая современная сущность: CPG — графовое представление программы, по сути привычное всем программистам дерево AST, дополненное CFG и PDG. Все крутые современные анализаторы стараются этим пользоваться.
И вот дают мне почитать свежую научную статью про то, как большие языковые модели можно подружить с CPG для поиска ошибок в коде.
Буквально в самом начале, в контексте межпроцедурного анализа, натыкаюсь на список литературы. Взгляд сразу подозрительно цепляется за пункт 28:
И дальше я минут десять искренне пытаюсь понять, не пролистнул ли я куда-то не туда и ту ли вообще статью открыл. Почему в контексте анализа кода внезапно появляется ежеквартальное исследование трансгендеров с названием Reveal?
“Раскрытие” (the reveal) — это момент в жизни трансгендерного человека, когда на него давит гендерная система, требующая «обнародовать правду» о теле или идентичности. Ну, думаю я: намоленный Запад окончательно оплёл всё повесточкой — даже в статьи про графы и анализ кода.
Сначала я проникся и глубоко изучил все грани собственной сексуальности. А затем понял простую вещь: уважаемые учёные из уважаемых университетов просто слепили эту статью с помощью ИИ, который перепутал фреймворк REVEAL для фронтендеров с ежеквартальным исследованием трансгендеров. Смеялся.
⚠️ UPD: Статья в таком виде принята на уважаемую USENIX conference 2025.
В мире анализа кода есть такая современная сущность: CPG — графовое представление программы, по сути привычное всем программистам дерево AST, дополненное CFG и PDG. Все крутые современные анализаторы стараются этим пользоваться.
И вот дают мне почитать свежую научную статью про то, как большие языковые модели можно подружить с CPG для поиска ошибок в коде.
Буквально в самом начале, в контексте межпроцедурного анализа, натыкаюсь на список литературы. Взгляд сразу подозрительно цепляется за пункт 28:
First, they typically focus on function-level analysis, overlooking crucial inter-procedural dependencies and broader program context [5,18,19,21,27,28,43].
[28] Danielle M Seid. Reveal. Transgender Studies Quarterly, 1(1–2):176–177, 2014. Danielle M. Seid is a PhD student at the University of Oregon, where she specializes in film/TV, queer studies, and critical race theory.
И дальше я минут десять искренне пытаюсь понять, не пролистнул ли я куда-то не туда и ту ли вообще статью открыл. Почему в контексте анализа кода внезапно появляется ежеквартальное исследование трансгендеров с названием Reveal?
“Раскрытие” (the reveal) — это момент в жизни трансгендерного человека, когда на него давит гендерная система, требующая «обнародовать правду» о теле или идентичности. Ну, думаю я: намоленный Запад окончательно оплёл всё повесточкой — даже в статьи про графы и анализ кода.
Сначала я проникся и глубоко изучил все грани собственной сексуальности. А затем понял простую вещь: уважаемые учёные из уважаемых университетов просто слепили эту статью с помощью ИИ, который перепутал фреймворк REVEAL для фронтендеров с ежеквартальным исследованием трансгендеров. Смеялся.
⚠️ UPD: Статья в таком виде принята на уважаемую USENIX conference 2025.
🌚5🙈2
Пару недель назад побывал на конференции Центра ИИ СПбГУ. Она длилась 4 дня, я побывал слушателем на трёх из них. Впечатления такие:
1. Первый день был в особняке Кельха, там красиво, фоточки прикрепил. Нам провели экскурсию, довольно интересная история у дома и его хозяев. И покушал вкусно, даже с собой забрал. А посвящён этот день был аспирантам моего научника, он собрал всех, до кого мог дотянуться. Тематику работ я и так представлял, но познакомиться было классно.
2. Второй день был объединён с каким-то другим промышленным мероприятием. Собственно, и тематика касалась использованию ИИ в разработке и промышленности. Тут я тоже много каких мыслей много где слышал, но было интересно послушать доклад Владимира Волковича, как он по стилю теста определял, Шекспир это один автор или несколько. У него получилось, что примерно 2/3 написано одним человеком, а 1/3 другим🧐
3. Третий день проходил в Mendeleev Hall, я там был в апреле на подобной же конференции. Тут день был самый насыщенный и посвящён образованию. Послушал и про содержание курсов различных преподавателей, и проблемы образования, и предложения по решению. На таком я ещё не был, поэтому было интересно.
А на четвёртый день я выдохся, меня уже не хватило, поэтому спокойно дома дела накопившиеся поделал. Как-то так.
#random_conference
1. Первый день был в особняке Кельха, там красиво, фоточки прикрепил. Нам провели экскурсию, довольно интересная история у дома и его хозяев. И покушал вкусно, даже с собой забрал. А посвящён этот день был аспирантам моего научника, он собрал всех, до кого мог дотянуться. Тематику работ я и так представлял, но познакомиться было классно.
2. Второй день был объединён с каким-то другим промышленным мероприятием. Собственно, и тематика касалась использованию ИИ в разработке и промышленности. Тут я тоже много каких мыслей много где слышал, но было интересно послушать доклад Владимира Волковича, как он по стилю теста определял, Шекспир это один автор или несколько. У него получилось, что примерно 2/3 написано одним человеком, а 1/3 другим🧐
3. Третий день проходил в Mendeleev Hall, я там был в апреле на подобной же конференции. Тут день был самый насыщенный и посвящён образованию. Послушал и про содержание курсов различных преподавателей, и проблемы образования, и предложения по решению. На таком я ещё не был, поэтому было интересно.
А на четвёртый день я выдохся, меня уже не хватило, поэтому спокойно дома дела накопившиеся поделал. Как-то так.
#random_conference
🔥5👍2🎉2
Вы знали, что есть академическая конференция по вахе? Я вот не знал, а она есть: https://warhammer-conference.com/. Даже в универе проходит, а именно Гейдельбергском университете в Германии. Там собираются фанаты вахи и обсуждают её лор со всяких академических углов. Вот, например, доклад про данные и информацию в лоре вахи https://warhammer-conference.com/ctrlaltdeus-the-ridiculous-rise-of-data/.
#random_conference
#random_conference
😱5🥴2🏆2
Праздники праздниками, но иногда и на отдыхе хочется чего-нибудь интересного почитать. Вот и я так листал гитхаб и нашёл кое-чего занятное.
Для меня особый вайб имеют несложные пет проекты с прикольной фичой, написанные чисто на поиграться с каким-нибудь языком или технологией и не гоняющиеся за хайпом (я уже не могу смотреть на очередной AI фреймворк на питоне с пачкой промтов и кучей звёздочек). Пример такого: witr. Простенькая утилита на go, которая выводит информацию о процессе в системе. Конечно, подобных утилит уже дофига, взять те же мои любимые top-ы, но здесь упор сделан на то, чтобы пользователю проще было понять, кто этот процесс запустил (буквально "Why is this running?"). Да и всё, просто и прикольно.
Надеюсь, когда-нибудь и у меня дойдут руки сделать какой-нибудь такой пет проект...
#random_github
Для меня особый вайб имеют несложные пет проекты с прикольной фичой, написанные чисто на поиграться с каким-нибудь языком или технологией и не гоняющиеся за хайпом (я уже не могу смотреть на очередной AI фреймворк на питоне с пачкой промтов и кучей звёздочек). Пример такого: witr. Простенькая утилита на go, которая выводит информацию о процессе в системе. Конечно, подобных утилит уже дофига, взять те же мои любимые top-ы, но здесь упор сделан на то, чтобы пользователю проще было понять, кто этот процесс запустил (буквально "Why is this running?"). Да и всё, просто и прикольно.
Надеюсь, когда-нибудь и у меня дойдут руки сделать какой-нибудь такой пет проект...
#random_github
🔥4🎉2
На гитхабе при наблюдении за возникающими AI фреймворками мне интересно смотреть, как люди пытаются применить ИИ для решения конкретных задач программной инженерии. Вот один из примеров.
Известно, что сложно автоматизированно тестировать UI. Можно как-то проверять DOM, можно написать кликер, который ориентируется на тот же DOM. Но даже при небольших изменениях в интерфейсе (например, переместили кнопку на экране) DOM может сильно измениться, что вынуждает часто править тесты. В таких условиях проще тестировщиков нанять, которые будут периодически протыкивать UI при получении списка изменений.
Так вот, наткнулся на ИИ аналог playwright — skyvern. Они предлагают вместо указания конкретных мест тыкания, как в playwright, описывать сценарии, которые агенты будут проходить — зарегистрироваться, указать такие то данные, сделать такой то заказ и тому подобное. И как бы ИИ агент сам должен разобраться, можно ли это сделать на страничке, и не триггериться на простой перенос кнопок.
Звучит здорово, хотя и слабо верится, что такое легко работает. Но у них в репозитории есть примеры, как оно работает, может когда-нибудь и дойдёт до такой же популярности, как и playwright, на что я надеюсь.
#random_github
Известно, что сложно автоматизированно тестировать UI. Можно как-то проверять DOM, можно написать кликер, который ориентируется на тот же DOM. Но даже при небольших изменениях в интерфейсе (например, переместили кнопку на экране) DOM может сильно измениться, что вынуждает часто править тесты. В таких условиях проще тестировщиков нанять, которые будут периодически протыкивать UI при получении списка изменений.
Так вот, наткнулся на ИИ аналог playwright — skyvern. Они предлагают вместо указания конкретных мест тыкания, как в playwright, описывать сценарии, которые агенты будут проходить — зарегистрироваться, указать такие то данные, сделать такой то заказ и тому подобное. И как бы ИИ агент сам должен разобраться, можно ли это сделать на страничке, и не триггериться на простой перенос кнопок.
Звучит здорово, хотя и слабо верится, что такое легко работает. Но у них в репозитории есть примеры, как оно работает, может когда-нибудь и дойдёт до такой же популярности, как и playwright, на что я надеюсь.
#random_github
🤔4❤2