Big Ledovsky | AI изнутри
1.84K subscribers
228 photos
18 videos
4 files
190 links
Александр Ледовский
Head of AI | stealth ecom стартап, ex: Avito, Сбер, ШАД
ML в проде и что реально происходит в AI
DS карьера и менеджмент

@aledovsky
Download Telegram
Мысли после месяца кодинга c AI

В интернетах ходят самые разные мнения по поводу написания кода с помощью LLM. Появился термин - вайб-кодинг 🏄‍♂. Это когда вместо того чтобы писать код, пишете инструкцию AI ассистенту, что вы хотите, чтобы он написал за вас.

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

В сообществе появилось сразу несколько лагерей

🐙 Очевидно активизировались начинающие и авторы курсов для них. Там буря эмоций и космические ожидания. Теперь каждая домохозяйка сможет статьи программистом.

🐙 Одна часть опытных людей горит 😆, что наберут толпу вайб-кодеров из предыдущего пункта. Они так накодят, что ИТ системы по всему миру будет не откачать после такого вмешательства

🐙 Другая часть опытных людей предсказывает серьезные изменения в профессии и вымирание джунов как класса (т.е. людей из того же первого пункта 🤪)

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

Поэтому я жду, что будет смесь. Будут те, кто хорошо пишут код "по-старому", и те кто "по-новому". И "по-новому" тоже нужно будет немало учиться, чтобы хорошо писать промпты.

Что я пробовал

💎 Сперва я начал писать в веб-интерфейс ChatGPT и мне так понравилось, что я купил подписку за 20$.

💎 Затем я попробовал Cursor - редактор кода, сделанный на основе VSCode с AI помощником. Он произвел на меня не меньшее впечатление. Но после 2-недельного пробного периода подписку я пока не купил. Хочу попробовать другие инструменты

💎 И последнее - это терминал Warp. В нем можно писать команды в командную строку, а можно попросить что-нибудь написать за тебя. Очень удобно.

С следующих постах я подробнее расскажу о том, как эти инструменты работают, и как я работаю с ними.

Что хочу попробовать еще

Инструменты, работающие через API, совместимые с разными нейросетями.

🌳 В первую очередь хочу попробовать Aider. Это open-source проект и вы можете посмотреть его промпты на гитхабе. А еще он мне откликается по духу, т.к. работает из командной строки

🌳 Continue.dev - расширение для VSCode

🌳 Zed - Еще один трендовый редактор со встроенным AI. Может быть у VSCode наконец появился достойный конкурент (не то что бы против JetBrains и NeoVim, но у них другая ниша)

Итого

Пока использую ChatGPT через Web. Не прям чтобы очень удобно заниматься постоянным копипастом. Но все-таки я использую LLM точечно и плюс контроллирую что я посылаю, поэтому пока терпимо.

В любом случае в будущем хочется уйти от Web-UI и найти и настроить себе удобную среду.

PS. Узнали оригинал картинки?)
PPS. Буду рад вашим реакциям!

#productivity@big_ledovsky

🔜Читайте также
Мой сетап MacOS
Почему Jupyter ноутбукам придет замена
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥82🥴1
Есть условно 4 типа людей, которые делятся по комбинации признаков: хорошие/плохие работники и умеют/не умеют проходить собесы.

И кстати тех, кто хорошо проходил собесы, но потом плохо перформит, не так много. А вот хороших инженеров, которые плохо проходят собесы достаточно. Поэтому к собесам нужно готовиться.

Чтобы следить за трендами о том, что сейчас спрашивают, и не замыкаться на наших интервью я хожу по собеседованиям читаю канал Димы Ebout Data Science. В отличии от других каналов, мне нравится его стиль - не душно, но и не треш-контент. Вот несколько интересных постов:

- Разбор собеса на Middle DS в NLP
- Self-attention в одном посте
- ML System Design RAG системы в одном посте

В общем, рекомендую обратить внимание. А еще меня зацепили видео с разборами на ютубе. Их пока немного, но они прям хорошего качества, с монтажом и хорошим звуком. Хочется чтобы такого контента в русскоязычном DS было больше.
🤡14👍5😐32🔥2
Правда про АБ тесты

Знаю, что меня читают аналитики.

Обратите внимание на митап Trisigma 16 апреля. Trisigma - это наша АБ платформа, которую мы выпустили наружу в качестве продукта.

А я поделюсь своим взглядом на АБ-тесты. Люблю, когда в блоге Валеры выходят разборы статей про мат методы в АБ. Но на самом деле АБ-ница - это не про кьюпеды, а про процессы.

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

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

На практике тесты отличаются от теоретических знаний, которые вы могли увидеть на курсах (не является рекомендацией или официальной позицией 😅 просто правда жизни)

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

В общем, тема тестов очень богатая и интересная. И стоит того, чтобы в ней разобраться 🙂

🙈 если тоже подглядывайте
😈 если осуждаете
🤔 если хотите узнать что такое прокрасы, и что такое красный и зеленый тест
🙈23🤔12😈10🔥4
К предыдущему посту - разговорник по АВ-тестам

Было довольно много реакций, чтобы узнать что такое прокрасы и красные и зеленые тесты. Думаю, что могу объяснить это в двух словах.

Итак. АВ-тест делит пользователей на две группы. Одна группа работает, как работала. А на второй вы раскатываете новый функционал. Суть в том, что метрики в двух группах всегда будут отличаться. Но вопрос - это случайность или следствие отличий между группами?

Статистический критерий выдает пороговое значение, чтобы изменение не считалось случайным. Критерий зависит от объема трафика, дисперсии метрики (= величины шума) и вероятности ошибок, на которые вы соглашаетесь.

Если изменение метрики больше порога - говорят, что она прокрасилась

- Если метрика изменилась положительно, говорят, что прокрас зеленый 🟢 . Если отрицательно, то красный 🔴

- Если в тесте положительно прокрасились ключевые метрики - говорят, что тест зеленый 🟢

- Если отрицательно, то красный 🔴

- Если ничего не прокрасилось, говорят, что серый 🔲

- Если есть как положительные, так и отрицательные прокрасы, говорят, что тест зелено-красный 🟢🔴

- Если прокрасы положительные или отрицательные, но на грани значимости, то говорят, что тест серо-зеленый 🔲🟢 или серо-красный 🔲🔴
🔥16👍53
На Data Fusion

Итак, в этом году я наконец-то попал на Data Fusion. Во-первых, я получил приглашение (как блогер 😅) и офигенную толстовку. Во-вторых, я участвовал в соревнованиях Data Fusion этого года и поэтому хотел поучаствовать и в самой конфе. На этот раз не могу похвастаться призовыми, но задача определения категории была супер полезна c точки зрения опыта. Научился дообучать берт, замораживать и размораживать веса и вот это все.

Я немного шокирован масштабом программы, т.к. она состоит их двух полных дней по 7 параллельных треков с утра до вечера. Вот буквально с 9-30 до 20-00. Происходит все это дело в кластере Ломоносов - однозначно живописном месте. Забавный факт, что я долгое время был убежден, что кластер Ломоносов - это суперкомпьютер и не понимал как люди могли его посещать 😂

Встретил Никиту и моих старых коллег по DS консалтингу IBM Дениса и Артура

Ждите следующего поста с впечатлениями!
🔥33❤‍🔥104😁2😍2👍1
Про доклад о природе последовательных рекомендаций на Data Fusion

Думал чем поделиться с прошедшего Data Fusion. Были и интересные доклады, и интересные знакомства. В итоге решил поделиться с вами докладом, который мне запомнился, и который является хорошим примером прикладного рисерча. Постараюсь все рассказать доступным языком 😛

Доклад на тему рекомендаций и называется «Does It Look Sequential? Анализ последовательных паттернов в датасетах для рекомендательных систем». Спикером была Анна Володкевич, а выступление основано на этой статье.

Предыстория: тренды в рекомендательных системах

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

Вы можете удивиться, потому что кажется, что многие сервисы уже довольно давно учитывают последнюю историю в рекомендационных лентах. На самом деле это обычно работает по-другому: выдача состоит из смеси "общих" user-to-item рекомендаций и "свежих" item-to-item рекомендаций по вашим последним действиям.

Суть исследования

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

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

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

Выводы

Во-первых, если вы обучаете SASRec на своих данных, неплохо провести такой тест.

Во-вторых, если последовательный сигнал в данных отсутствует, то модель делает тучу "лишней работы". Но не факт что это плохо. Например, известно, что 4 слоя нейросети теоретически могут обучить любую зависимость. Однако выдающиеся результаты пришли только при использовании "избыточных" глубоких сетей с десятками слоев.

Но может быть, эффект трансформерных моделей связан с тем, что датасайнтистам очень хочется обучать трансформеры и поэтому они больше стараются и дожимают результат 😅

Я везде люблю искать продуктовую природу. Лично у меня пока нет интуитивного понимания, в чем отличие выдачи классических ALS моделей и трансформерных sequential. И было бы интересно его получить.

Спасибо, что дочитали! Если пост откликнулся, буду рад вашим реакциям 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥285
Aider - впечатления

Практически сразу после прошлого поста про AI ассистенты для кодинга я начал пользоваться Aider-ом. Он мне невероятно зашел и я чувствую себя еще более воодушевленным от LLM технологий.

Несколько фактов про Aider

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

- Он лежит на гитхабе и вы можете посмотреть его исходный код (и код промптов, который он посылает)

- Вы можете настроить его с любой LLM, в том числе локальной. Я использую gpt-o4-mini - это рекомендованная модель из стека OpenAI.

Aider зашел мне больше, чем Cursor, потому что он дает больший контроль за происходящим. Поэтому на нем легче повышать свой скилл в общении с AI. Я кстати еще больше убедился, что вайб-кодинг - это отдельный навык, который нужно качать.

В чем состоит повышенный контроль у Aider

Кроме возможности посмотреть промпты и потестировать разные модели:

Во-первых, каждое изменение фиксируется коммитом. Вы можете четко понять, что поменялось на каждой итерации.

Во-вторых, в Aider явно присутствует 3 режима работы. Code - попросить что-то сделать. Ask задать вопрос или спланировать изменение, при этом изменения в файлах не будет. И Architect - что-то среднее.

Architect я лично еще не освоил, в основном использую Code. В документации рекомендуется работать по принципу комбинирования Ask-Code и это неплохо работает.

Сложность работы с ассистентом

Основная проблема, с которой я столкнулся в вайб кодинге - это когда не получается с первого раза получить хороший результат. В отличии от ChatGPT в UI просьбы сделать правки довольно часто упираются в то, что Aider не может применить изменения. Изменения в коде делаются так - модель возвращает результат в формате «файл - код до - код после». Aider пытается найти в файле нужный фрагмент и заменить. Когда вы делаете правку, иногда модель предлагает правку к исходному коду, а не промежуточному варианту. В этот момент Aider ломается и выдает ошибки.

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

Выводы и рекомендации

В целом инструмент очень крутой. У меня получилось сделать на нем довольно сложные вещи. Например, доработать телеграм бота, чтобы в docker compose добавилась крон джоба с тем же контейнером. Или написать тесты для миграций на sqlalchemy+alembic. ML модели вообще кодятся без каких-либо проблем.

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

Атомарные коммиты Aider приходится склеивать git rebase -i + squash, но это как мне кажется не проблема.

Такие дела, как всегда буду рад вашим реакциям 🔥
🔥20👍7👌1
Шашлыки на 9 мая или Как любые активности с моим участием превращаются в поход

Легально сходить на шашлыки в Москве непросто. Все началось с того, что наша подруга Маша нашла, что можно бронировать беседку для шашлыков бесплатно на сайте mos.ru. 9-го мая за бесплатно желающих понятно было много. Поэтому забронировать удалось только с 9 утра до часа дня на пляже в Покровском Стрешнево. Ну чтож, завтрак шашлыками звучит прикольно, мы с женой вписались.

Вечером 8 мая ребята уже замариновали мясо и даже купили запасной мангал (вообще мангал должен предоставляться). Я вспомнил про свою супер горелку для того, чтобы делать на ней кофе - не зря ж я походник. Но тут возникла проблема. Объявили, что 9-го мая выключают мобильный интернет. Машины у нас ни у кого нет, карш и такси не вызвать, а у ребят грудной ребенок.

Утром в 8-30 мы пришли к нашим друзьям с моим большим походным рюкзаком, куда я загрузил большую часть вещей. Мы с женой сразу отправились своим ходом. Было страшно входить в мцк с рюкзаком в котором газовый баллон, т.к. насколько я знаю провозить его нельзя. Я предпочел войти через метро и потом пересесть, т.к. там меньше проверяют. Оказалось 9-го мая всем было пофиг, проверяющие не лютовали и порадовались моему рюкзаку, и что у меня впереди какое-то приключение.

Т.к. заказать такси у друзей не получилось, мы с ними встретились на Шелепихе и поехали в сторону Покровского-Стрешнево: они с коляской, мы с походным рюкзаком. Интернет не работал, поэтому я построил глазами маршрут и взялся всех довести. Мы вышли на Балтийской и пошли пешком. Минут через 20, когда мы почти пришли, дорога неожиданно прервалась замурованными воротами - мы уперлись в военную базу 🤷‍♂️. Чтобы ее обойти пришлось пройти добрые 40 минут, чтобы наконец добраться до пляжа с беседкой. Было около 10 утра. Маша переживала, что бронь нашей беседки пропадёт. Однако проблема оказалась совсем не в этом.

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

Путь занял у нас еще минут 40. GPS не работал, и это была настоящая тренировка по спортивному ориентированию. Периодически я даже смотрел в компас. К 11 мы почувствовали запах жаренного мяса. Формат зоны на самом деле хороший: много мангалов и беседки. Правда все беселки конечно были заняты. В части из них сидели одинокие студенты, которые за деньги держали их для своих заказчиков, которые подходили позже. Сам контингент был на любителя. Две трети шашлычников были студенты из МАИ, пьющие уже в это время, а также трудовые мигранты.

Тем не менее атмосфера в этом импровизированном комьюнити была хорошей и даже праздничной. Мы нашли себе мангальчик. Есть хотелось безумно - мы же не завтракали! Мясо получилось очень вкусное. Я спросил где Даня научился так мариновать шашлык, он сказал, что спросил пропорции у ChatGPT 😅 В 2 часа дня мы уже сели на МЦК Стрешнево, которое оказалось в 10 минутах от площадки. Выход на шашлыки в этом году можно считать успешным.

#lifestyle@big_ledovsky
😁27🔥116👍4