anpudov | Андрей Пудовиков
95 subscribers
62 photos
9 videos
2 files
28 links
Это канал про CS, красивую математику, обучение и немного про меня

По всем вопросам - @anpudov
Download Telegram
Вопросы на лекциях

Сегодня хочется поговорить про лекции и даже немного про публичные выступления. Очень круто, когда в процессе или в конце выступления слушатель смог задать хороший вопрос лектору\спикеру, который поможет лучше понять рассматриваемую тему. Однако, для чего нужно задавать вопросы?

Я буду говорить про относительно математические или CS лекции, потому что именно их я посещаю👨‍🏫

Вначале хочется классифицировать лекции, потому что вопросы будут варьироваться в зависимости от типа. Для себя я выделяю два крупных класса:
1️⃣ Лекции в рамках длительных курсов (от 5 лекций и дольше). Можно рассказать много материала и привести подробные доказательства. Стандартный университетский курс или его аналоги.
2️⃣Обзорные лекции (одна лекция\доклад или мини-курс). Основная задача – рассказать про какую-то одну (мб чуть больше) задачу и подходы к её решению.

В контексте длительных курсов, по которым нужно будет сдавать экзамен можно спрашивать о технических деталях – объясните этот переход, почему можем применить это неравенство и тд… Намного интереснее качественные вопросы – которые приведут к пониманию интуиции рассматриваемого явления или построят какую-то связь с уже известными задачами.

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

Вне зависимости от выступления, хороший вопрос – поддерживает дискуссию, раскрывает материал автора, делает его доступнее для понимания более широкому кругу людей. Хороший вопрос – комплимент в адрес спикера, который подтверждает, что люди готовы слушать и разбираться в теме, которая обсуждается. К таким выводам я пришёл только после посещения двух летних школ (раз, два).

При этом я довольно долго пользовался тактикой – если тебе что-то нужно, можно вначале самому поискать информацию об этом📖, а после этого уже просить о помощи. БОльшую часть вопросов, можно очень быстро решить таким способом. Такой подход отлично работал на первых курсах, когда по каждому предмету много материала, но всё стало медленно ломаться, когда доступный материал стал ограничен небольшим количеством научных статей. В таком подходе всегда возникает вопрос – в какой момент после самостоятельного поиска можно запрашивать помощь? Я бы искал золотую середину - между самостоятельными попытками и запросами о помощи.

Если говорить про мой опыт – то я ещё не познал дзен вопросов в контексте обзорных лекций, тем не менее в рамках длительных курсов стараюсь придумывать содержательные вопросы. Слушать лекции стало только интереснее))

А вы часто задаёте вопросы лекторам\спикерам?
🤔2👀2🔥1
Английский язык

Хочется поделиться своим опытом и взглядом на изучение этого безусловно международного языка. У каждого человека будут свои причины для изучения английского - слушать лекции, читать\писать научные статьи, общаться в поездках, смотреть фильмы в оригинальной озвучке. Применений много, а с развитием машинного перевода (нейронки в том числе) потребность знать язык медленно спадает – уже много сервисов для переводов текстов, аудио и видео в записи. А перевод устной речи в реальном времени уже выглядит, как решаемая задача (нашёл сервис, который уже это делает)

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

В зависимости от потребностей вам может быть достаточно какого-то промежуточного уровня знания языка или развитие определённых навыков. Например, для самостоятельного чтения документации по языкам программирования не нужно знать английский на C2 (условная шкала A1-A2-B1-B2-C1-C2 в порядке увеличения знаний), а стоит освоить базовую грамматику и необходимый пул профессиональных терминов.

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

С такими мыслями я наткнулся на большой бесплатный онлайн тест от EF, который я и прошёл. Рекомендую! В целом, результаты были немного выше, чем я предполагал, но чуть позже я убедился, что они соответствуют действительности.
Далее оказалось, что в учебном плане моей магистратуры есть занятия по английскому (однозначно лучше, чем я ожидал), а ещё мне посчастливилось попасть на соответствующий факультатив Веги.

Как итог, я зарядился желанием продолжать изучать английский, выделил время для этого, получаю удовольствие от этого и готов заниматься дальше!

PS А ещё уметь говорить🗣на разных языках очень круто!
2🔥2
Авто дополнение кода.

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

Классические подсказки используются повсеместно, но мне захотелось чего-то более продвинутого. Одно из решений – использование более умных подсказок на базе LLM.
Для этого уже есть JetBrains AI для продуктов JetBrains, Copilot который доступен для разных IDE в т.ч. и для Visual Studio Code (VSC), а также cursor.sh форк VSC.

В итоге я решил протестировать курсор и реально почувствовал ускорение в написании кода (вот бы мне заплатили за этот пост). В первую очередь я протестировал работу ПО на своих дз. Безусловно, появление LLM непосредственно в среде разработке уже помогает – можно задать вопрос, не переключаться между браузером и IDE, но намного ценнее – подсказки в написании текущей строчки, учитывание уже написанных классов и методов в других файлах для подсказок, помощь в редактировании кода в пассивном режиме (не нужно предпринимать дополнительных действий для этого).

Ещё мне понравилось взаимодействие с IDE, для использования большей части функционала достаточно освоить всего три комбинации: Tab для принятия авто дополнения, CMD+K для генерации кода в редакторе (использование более лёгких моделей), CMD+L для открытия чата для общения с LLM.

Из особенностей – cursor помогает работать не только с кодом (python в моём случае), но и с комментариями (markdown блок для .ipynb файлов в т.ч. и формулы).

Но неужели всё так хорошо? К сожалению, нет. Основное взаимодействие происходит через закрытые сервера OpenAI (или Anthropic для Claude 3.5). Поэтому это автоматически приводит к тому, что компаниям будет сложнее использовать такое ПО для своей разработки. К счастью, выход из этой ситуации есть, благодаря open source проектам – например, на сайте ollama есть набор моделей qwen2.5-coder , которую можно попробовать интегрировать в разные IDE по аналогии с классическим авто дополнением. Очевидная проблема – сложность сделать такой же удобный продукт исключительно для внутреннего пользования.

Если вы находитесь в РФ, то для вас будет ещё один минус курсора – оплата картами РФ невозможна, а подписка стоит 20$ в месяц (не мало). Но есть бесплатный пробный период на 14 дней без привязки карты 😈.

А вы уже активно используете LLM для написания кода?
👍3🔥21
Как сравнивать LLM?

Буквально на прошлой неделе OpenAI презентовали новое семейство моделей o3. Но возникает вопрос, насколько их модель лучше предыдущей? Как измерить этот прирост и вообще как сравнивать модели?

Логичный ответ это смотреть на разные сложные тесты-бенчмарки:
1️⃣ ARC-AGI (Artificial General Intelligence) Состоит из задач на поиск сложных закономерностей на поле из квадратиков 🌚. Их идея - определить термин AGI и измерить насколько алгоритмы близки к нему.
The intelligence of a system is a measure of its skill-acquisition efficiency over a scope of tasks, with respect to priors, experience, and generalization difficulty.


2️⃣ FrontierMath Бенчмарк со сложными исследовательскими математическими задачами от крутых лабораторий и с IMO (International Mathematical Olympiad). По первому взгляду - задачи действительно сложные 🤯

3️⃣ Arena-Hard-Auto – бенчмарк для LLM, который использует внутри себя другую LLM для оценки результатов. Есть как англоязычная версия, так и русскоязычная

Тем не менее, все эти бенчмарки сравнивают качество работы LLM, что хоть и важно для пользования, но не является единственным критерием. Для внедрения нейронок надо дополнительно учитывать стоимость и скорость их работы. Впрочем и для ответа на этот вопрос запили сайт-сравнение. Рекомендую заглянуть!

Понятно, что более тяжёлые (больше весов, дольше обучать, отвечать на вопросы) LLM будут дороже и будут показывать результаты выше, чем их более лёгкие аналоги. Задача пользователей – найти оптимум для своих задач.
Для себя я выделил семейство Gemini, постараюсь попробовать его.

Как итог, я привёл только некоторые способы сравнить LLM. Понятно, что эта индустрия очень активно развивается, ситуация меняется очень быстро, поэтому текущие подходы могут вскоре устареть. Уследить за всем не получиться, но мы можем пользоваться лучшими или просто очень хорошими решениями для наших задач!
🔥2👍1🤔1
Друзья, вот и наступает новый 2025 год! 🎉

В 2024 было сложно, но я знаю, дальше будет только интереснее! Всем удачи и достижения новых вершин!

PS Большое спасибо, что смотрите, читаете и комментируете! Всегда рад обратной связи в комментариях и в лс.

PPS Тот самый популярный пост
7
Полезные ссылки

На дворе 8ое января, а это значит, что уже завтра первый рабочий день в 2025, а у кого-то разгар сессии (у меня – комбо 🌚). Надеюсь, что все успели немного отдохнуть и позаниматься своими делами за эти каникулы. Ниже ссылки с новыми для меня и полезными ресурсами, на которые можно потратить своё свободное время в новом году:

1. DeepLearning.AI - большая платформа с курсами на стыке ML / LLM, использование LLM. Прошёл мини-курс (1.5 часа) ChatGPT Prompt Engineering for Developers от OpenAI, хоть и многое до этого знал (эмпирически выучил), но немного нового нашёл. В ближайшем будущем хочется подробнее посмотреть на курс по работе с o1 (предполагаю, что пригодится и для o3)

2. fmin.xyz - мини сайт с задачками про оптимизацию от https://github.com/MerkulovDaniil

3. https://yk4r2.github.io/ - мини аналог codeforces / leetcode с задачами для квантов / собесов в фонды, автор

4. Co-STORM от Stanford, генерация литературных обзоров для научных статей – не пробовал, но в ToDo лист добавил

В общем, идей, что попробовать, посмотреть, почитать намного больше, чем свободного времени, НО это лишь значит, что ещё есть, что делать!

Всем рекомендую заглянуть на заинтересовавшие вас ссылки! Если открыли что-то новое - смело пишите в комментарии ⬇️⬇️⬇️
👍8
PYTHIA или как я надумскролил 48 млн $

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

Это был самый обычный день, когда в одном из постов в тг мне попался знакомый 🐁 мышонок Пифия, к мозгу которого подключили компьютер, и который живёт в одной из лабораторий у профессора Лебедева из ИИИ МГУ. Оказалось, что к тому моменту мышонок уже создал свой сайт и успел задеплоить свой токен 💲PYTHIA.

Вот как он себе описывает:
Hi, I’m Pythia, the first AI-brain-linked rat.
Blending biological smarts with AI, I can think, learn & answer. Step towards new symbiosis, redefining intelligence.

При этом это прошло настолько успешно, что коин стал топ 1 в категории DeSci Meme по версии CoinGecko, а его общая капитализация в пике достигала 48.5 млн $, а ежедневный оборот превышал 5 млн$. На данный момент токен находится вторым в этой категории и в целом просел, как и весь крипто рынок. Моё микро-исследование с помощью gpt про корреляцию дневных приращений BTC, ETH, PYTHIA.

Так же осталось понять классификацию этого токена. DeSci – Decentralized Science 🧑‍🔬, комплекс инициатив направленных на развитие текущего формата науки: упрощение публикаций, сотрудничества, финансирования, решение проблемы воспроизводимости результатов, а так же децентрализация и увеличение прозрачности. Если честно, слова красивые, а вот конкретными сервисами DeSci не пользовался. Meme – просто мем)

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

PS Инсайдов и информации про будущее PYTHIA у меня нет((
PPS Буду рад вашим комментариям по этой теме
👻2👍1🔥1
Сегодня я просто поделюсь папочкой с тг каналами, которые ведут мои коллеги по ИИИ МГУ. Уверен, что вы точно найдёте что-то для себя)
👍4
Всем привет!
В эту субботу в 11:00 буду выступать с темой "Why Multi Armed Bandits (MAB) have a lot of arms?"

Какой-то особенной математической подготовки не требуется, поэтому жду всех)

ссылка
🔥4👍1
Рвите баяны,
Бейте в набат!
Локальный семинар
Теперь имеет
сайт! 🔗

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

Уже в эту субботу начинаем.

Дата и время: 22 февраля, 11:00-12:00 (GMT+3)
🔗 Ссылка на Зум

Why Multi Armed Bandits (MAB) have a lot of arms? 🔫
🧑‍⚖Докладчик: Андрей Пудовиков, ВМК МГУ, ИИИ МГУ

Аннотация:
Поймём, что представляет собой многорукий бандит, какие существуют методы его решения и почему эта задача уже относится к RL (обучению с подкреплением). Обсудим дилемму Exploration-Exploitation и рассмотрим задачу портфельного выбора как наглядный пример применения. Ну и, конечно, дадим ответ на вопрос, почему у многорукого бандита столько рук.

Подключайтесь, смело задавайте вопросы и участвуйте, мы будем рады видеть каждого из вас

Добавить в календарь можно по ссылке.

---

Tear up the strings,
Sound the bell bright!
Our local seminar
Now has a website!


That’s right—now we have a website! And soon, we are expecting international speakers, so our announcements will be bilingual.

Date & Time: February 22, 11:00–12:00 (GMT+3)
🔗 Zoom link

Why Multi Armed Bandits (MAB) have a lot of arms?
🧑‍⚖Speaker: Andrey Pudovikov, CMC MSU, IAI MSU

Abstract:
We will understand what the multi-armed bandit problem is, what methods exist for solving it, and why it falls under reinforcement learning (RL). We will discuss the exploration-exploitation dilemma and consider the portfolio selection problem as a clear example of its application. And, of course,we will answer the question of why the multi-armed bandit has so many arms.

Join us, ask questions, and participate—we’re excited to see all of you! ❤️

You can add the event to your calendar via link.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥64👍2
MAB.pdf
1.9 MB
А вот и мой презентация с моего выступления.

Рассказ получился чуть дольше, чем я планировал, но надеюсь, что он был кому-то полезным.

Классическая книга по теме Multi Armed Bandits, то это Introduction to Multi-Armed Bandits от Aleksandrs Slivkins. Так же можно посмотреть на статьи \ ссылки, которые есть на слайдах Reference)

В комментарии можно скинуть ваши любимые книги по этой теме - соберём мини коллекцию!

PS Большое спасибо всем, кто присоединился и задавал вопросы!❤️
10💋2🦄2
MCP или как прокачать свою домашнюю LLM.

“Дай LLM промт и она ответит один раз. Дай LLM MCP и она решит задачу без тебя⁠⁠”
© Джейсон Стэйтем


Один из базовых способов работы с LLM включает в себя ctr+c / ctrl+v информации из своего источника/файла в диалог. Но если потенциальные объёмы необходимой информации очень большие, то их тяжело подгружать / учитывать и самому не забывать о них. Следующий логичный шаг – просто разрешить LLM выбирать самой, что ей нужно – какой файл открыть, в каких местах может быть нужная информация.

А что если хочется расширить функционал? Поискать по выбранной директории информацию это хорошо, но может заодно добавить самостоятельности для запуска .py файлов, вычисления статистик файлов через bash wc или обратиться к своей БД, чтобы сразу выполнить SQL запрос. А ещё добавить стандартизацию для таких задач!

Ответ на такой вопрос – MCP (Model Context Protocol): стандарт на основе клиент–серверной архитектуры для взаимодействия между LLM и MCP сервером, который позволяет обращаться к хранилищам, файлам и другим ресурсам.

Хоть MCP был представлен в конце 2024 года Anthropic, но уже имеет крутое применение – агентная система в cursor.sh . Хоть у меня и выходил пост про этот форк Visual Studio Code, но с внедрением MCP стандарта пользовательский опыт кардинально изменился. Теперь LLM может не только подготовить код, но ещё и изучить, чем именно нужно воспользоваться, запустить решение через командную строчку и отдебажить решение! Для этого теперь есть новое слово – «вайб кодинг». 👨‍💻

Уже сейчас разработан большой пласт самых разных MCP серверов (линк1, линк2), которые можно применять для своих задач.

Из недостатков – большой перекос в сторону моделей Claude от Anthropic, поддержка от других LLM тоже есть, но информации про это намного меньше.

Так или иначе, это очень уверенный шаг в сторону разработки AI-агентов, которые смогут решать большие и комплексные задачи самостоятельно, взаимодействуя с разными источниками. А что самое крутое - каждый из нас уже может пользоваться этой технологией в своём LLM клиенте!
🔥4👍2🤡1
Правило Лопиталя

Недавно мне попался математический видеоролик про задачу по матану (Calculus), которая навела меня на некоторые мысли про интуицию, прячущуюся за формулировками.

🔍В задаче необходимо найти предел дроби, состоящей из суперпозиции sin, x и степенной функции. Применение аппроксимации sin x = x + o(x) (по факту - ряд Тейлора) быстро даёт итоговый ответ 2^10 * 3^100. Но по условию этим фактом пользоваться нельзя.

Решение можно получить исходя из правила Лопиталя (применив его 100 раз), но это не то, что хотелось бы делать. Здесь работает первый замечательный предел sin x / x -> 1 при x -> 0, это подробно разобрано в видео.

На этом этапе и возникает вопрос (для тех, кто забыл матан после 1ого курса магистратуры): «Какая идея лежит внутри правила Лопиталя, что его изучают до рядов Тейлора?». Безусловно, действия для многократного последовательно применения правила Лопиталя частично повторяют вычисления разложения ряда Тейлора, а после изучения последних, мало кто будет использовать Лопиталя на практике.

💡Ответ – теорема Коши о среднем значении f‘(c) / g’(c) = (f(b) – f(a)) / (g(b) – g(a)); c \in (a,b). Это развитие классической теоремы о среднем, которое помогает доказать правило Лопиталя. Как оказалось, несколько первых ссылок (раз , два), а так же классика – учебник Ильин, Садовничий, Сендов (легенда ВМК МГУ) следуют именно этой схеме.

Но с этой теоремой есть и забавная история – есть предположения, что эта теорема была изначально доказана Бернулли, но опубликована за авторством Лопиталя 🤯 (раз , два , три , четыре)

Вместо вывода: вопрос «какая идея \ интуиция лежит внутри новой работы» часто позволяет лучше и глубже понять материал, который ты изучаешь. Последнее время чаще задаю этот вопрос себе - стал быстрее понимать новые статьи )
👍3🔥3😍2
Ту зе мун 🚀

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

Я выбрал этот курс с целью разобраться с WEB3 🌐, узнать почему около криптовалют так много хайпа и скам ли это?

За время курса удалось познакомиться не только с основными объектами DeFi и blockchain (block + chain – последовательность блоков🤯), но и написать первый смарт-контракт и протестировать свою DeFi стратегию

Тем не менее, обилие нового материала, интересные домашки, хорошая подача и новый мир WEB3 позволили этому курсу стать одному из лучших в моей жизни, даже с учётом в AIMasters. В итоге, мои мысли совпали с мнением товарищей, поэтому было решено порадовать преподавателя с помощью тортика, который мне удалось оперативно организовать(❗️менее 24ч)

Как итог, изучайте новое и неизвестное! Не забывайте радовать людей и давать фидбек на крутые проекты!
🔥9👍1🎉1
Летняя школа по оптимизации им Б.Т. Поляка

В этом году я второй год подряд принял участие в этой школе, которая в этом году проходила в Иннополисе.

Отличительной чертой стала возможность послушать вживую доклады одних из самых ❗️топовых❗️ учёных по оптимизации / ML (Воронцов, Наумов, Оселедец, Дьяконов). Со стороны организаторов были и живые легенды – Гасников (ректор Иннополиса), Райгородский (руководитель ФПМИ МФТИ ), Дорн (руководитель AIMasters). Некоторых спикеров я послушал и увидел впервые – ожидания оправдались!

Все лекции были записаны и есть в открытом доступе, а презентации есть на сайте школы. От себя выделил бы эти выступления:

1️⃣ Тюрин А.И. – Оптимальные алгоритмы в эпоху распределённой и асинхронной оптимизации. Достаточно подробный и последовательный обзор статей по теме доклада – лучшее выступления для меня (ч1, ч2)

2️⃣ Наумов А.А. – Гауссовская аппроксимация и бустреп метод для стохастического градиентного спуска. В конце лекции было ощущение, что всё понятно, но при обсуждении с коллегой мы осознали, что не поняли даже постановку задачи 😂 (линк)

3️⃣ Ковалев Д.А. - «Understanding Gradient Orthogonalization for Deep Learning via Non-Euclidean Trust-Region Optimization» Выступление было похоже на рассказ с DataFusion, но с чуть большим количеством подробностей. Автор - лауреат новой премии им Б.Т. Поляка (линк)

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

Как итог, школа оставила приятные впечатления и позволила провести неделю в очень необычном месте!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥102👍2💋1
Мои инсайды с летней школы

Слушая лекции и постеры с летней школы (пост) я натолкнулся с некоторыми мыслями, которые показались мне важными для понимания оптимизации и CS науки в целом:

1️⃣ Эвристики и костыли🩼 всё ещё работают. Наличие большой и чёткой теории будет огромным плюсом для решения многих задач, но в реальности иногда стоит сгладить временной ряд с помощью скользящего среднего, чтобы получить более стабильное решение

2️⃣ Неопределённость (uncertainty) и вероятность (probability) 🎲 это очень похожие термины – они просто описывают факт, что мы точно не знаем, что будет или что есть. Если про вероятность всё относительно понятно (вероятностное пространство, математическое ожидание и тд), то с uncertainty существует отдельный раздел оптимизации – robust optimization, который совсем по-другому формулируется, но глобально описывает похожие явления

3️⃣ Оценка скорости сходимости алгоритмов оптимизации является неотъемлемой и очень важной её частью. Вроде бы абсолютно логичное утверждение, но если смотреть с практической точки зрения, то тебе важно просто найти решение, а потом уже выбрать более быстрый алгоритм. А это скорость может оценивается, как раз через ассимптотику

4️⃣ Самые знаковые работы стоит хотя бы раз прочитать самостоятельно. Понятно, что сейчас много источников, где можно узнать про attention или bitcoin 💸, но это своего рода классика, которая просто стоит прочитать профессионалу в своей области

5️⃣ При рассказе о своём исследовании стоит уделить значительную часть времени формулировке задачи, чем результатам и особенностям работы. Мотивация очень простая – скорее всего многие из твоих слушателей просто не знают про твою задачу или могут помнить не все тонкости формулировки (что абсолютно нормально)

Казалось бы, это всем известные факты. Но одно дело знать про них, а другое дело прочувствовать их и сделать для себя выводы. В моём случае переосмысление и осознание этих фактов сравнялась по важности с hard знаниями полученными на школе!

Желаю всем иногда выбираться из колеи и заново открывать и находить для себя особенности вашего дела!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥41💋1