Привет, друзья!
Сегодняшний рассказ про marimo - реактивный блокнот для Python, который многие уже называют заменой Jupyter👀
🤔 Что это вообще такое?
Если коротко - как Jupyter, только лучше.
Помните, этот вечный ужас, когда прогнали ячейки не по порядку, а потом непонятно, в каком состоянии сейчас ноутбук?
Здесь такого точно не случится - и это главная фишка marimo, которую называют реактивность: когда вы меняете переменную в одной ячейке, он сам автоматически пересчитывает все остальные ячейки, которые от неё зависят.
🤔 Какие ещё плюсы?
🤔 Как поставить?
🤔 Но было замечено и несколько минусов:
🤔 Полезные ссылки:
• официальная документация: тык
• проект на GitHub: тык
• облачный molab: тык
В общем, штука и правда отличная, но надо привыкнуть. Кто уже пробовал marimo - делитесь впечатлениями✨
#mlops@data_easy
Сегодняшний рассказ про marimo - реактивный блокнот для Python, который многие уже называют заменой Jupyter
Если коротко - как Jupyter, только лучше.
Помните, этот вечный ужас, когда прогнали ячейки не по порядку, а потом непонятно, в каком состоянии сейчас ноутбук?
Здесь такого точно не случится - и это главная фишка marimo, которую называют реактивность: когда вы меняете переменную в одной ячейке, он сам автоматически пересчитывает все остальные ячейки, которые от неё зависят.
Зацепило ещё несколько моментов:
• Ноутбук хранится как обычный .py файл, а не как огромный json - а значит, git наконец-то будет нормально показывать различия.
• Никакого скрытого состояния - удаляете ячейку, и marimo вычищает её переменные из памяти автоматически.
• Встроенные интерактивные элементы управления - ползунки, выпадающие списки, таблицы. Например, двигаете ползунок прямо в ноутбуке - и связанные с ним вычисления пересчитываются.
• Тот же ноутбук можно развернуть как полноценное веб-приложение или запустить как обычный скрипт из командной строки.
• Есть нативная поддержка SQL - можно гонять запросы прямо по датафреймам и csv (под капотом DuckDB).
• Отлично дружит с ИИ-агентами - можно подключиться в пару кликов.
Если по-минимуму:pip install marimo
А если хотите сразу со всеми наворотами (SQL-ячейки, ИИ-автодополнение, серверный рендеринг графиков), то:pip install "marimo[recommended]"
Дальше можете запустить обучающий ноутбук-туториал:marimo tutorial intro
Создать свой новый ноутбук:marimo edit notebook.py
Превратить его в веб-приложение:marimo run notebook.py
Ставить можно куда угодно - локально, на сервер, в любое окружение (отлично дружит с pip, uv, conda). А если совсем не хочется - есть molab, облачная версия в духе Google Colab, достаточно просто зарегистрироваться.
Кстати, переезжать со всем нажитым добром не придётся - старые Jupyter-ноутбуки конвертируются одной командой:marimo convert your_notebook.ipynb > your_notebook.py
• Та самая реактивность поначалу непривычна - нельзя дважды определить одну переменную в разных ячейках, и переменные не должны ссылаться на то, что ещё не определено. Это сделано специально, но в первое время немного ломает мозг после Jupyter.
• Горячие клавиши и автодополнение работают иначе - придётся переучиваться.
• На GitHub ноутбук показывается как обычный .py, а не как красивый рендер с графиками. Удобно для код-ревью, но если вы привыкли делиться готовым ноутбуком "с картинками" прямо в репозитории - имейте в виду.
• Если ячейки тяжёлые и считаются долго, та самая реактивность может стать врагом... Но на этот случай есть ленивый режим - в нем marimo не пересчитывает всё сразу, а просто помечает ячейки как устаревшие.
• официальная документация: тык
• проект на GitHub: тык
• облачный molab: тык
В общем, штука и правда отличная, но надо привыкнуть. Кто уже пробовал marimo - делитесь впечатлениями✨
#mlops@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤🔥6❤6🙏4
Why_machines_learn.zip
48.2 MB
Привет, друзья!
Устали от стандартных учебников по ML? Материалов с каждым месяцем и правда становится всё больше - но среди них попадаются и оригинальные новинки! Держите две по-настоящему необычные книги "с изюминкой".
📘 Why Machines Learn?
Это не учебник в привычном смысле, а редкая смесь истории ML, математики и научпопа. Главы начинаются с живых историй про конкретных исследователей и читаются как увлекательная статья. Но математику автор при этом не прячет: тут есть честные выводы формул и геометрические соображения.
Зайдет и новичкам, и опытным. Кстати, сам Джеффри Хинтон назвал её шедевром - за то, что математика подаётся прямо в контексте живой истории.
➡️ Официальная версия на английском и неофициальный перевод на русский во вложениях.
🐰 Alice's Adventures in a Differentiable Wonderland
А это совсем другой жанр: книга рассказывает о нейросетях с нуля, причём повествуется как про путешествие Алисы по стране чудес - от самых основ (автоматическое дифференцирование, оптимизация) до современных архитектур: свёрточных, рекуррентных, attention-блоков.
Подача интуитивная и с юмором, но без потери глубины: теория честно стыкуется с кодом на PyTorch и JAX. Бонусом на официальном сайте автора можно посмотреть ещё и упражнения к теории.
➡️ Ссылки:
• PDF с сайта автора
• версия на arXiv (самая новая)
• сайт с доп. главами и упражнениями
Порой свежий взгляд на привычное помогает наконец понять самую суть 🌿
#dl@data_easy
#classic_ml@data_easy
Устали от стандартных учебников по ML? Материалов с каждым месяцем и правда становится всё больше - но среди них попадаются и оригинальные новинки! Держите две по-настоящему необычные книги "с изюминкой".
📘 Why Machines Learn?
Это не учебник в привычном смысле, а редкая смесь истории ML, математики и научпопа. Главы начинаются с живых историй про конкретных исследователей и читаются как увлекательная статья. Но математику автор при этом не прячет: тут есть честные выводы формул и геометрические соображения.
Зайдет и новичкам, и опытным. Кстати, сам Джеффри Хинтон назвал её шедевром - за то, что математика подаётся прямо в контексте живой истории.
🐰 Alice's Adventures in a Differentiable Wonderland
А это совсем другой жанр: книга рассказывает о нейросетях с нуля, причём повествуется как про путешествие Алисы по стране чудес - от самых основ (автоматическое дифференцирование, оптимизация) до современных архитектур: свёрточных, рекуррентных, attention-блоков.
Подача интуитивная и с юмором, но без потери глубины: теория честно стыкуется с кодом на PyTorch и JAX. Бонусом на официальном сайте автора можно посмотреть ещё и упражнения к теории.
• PDF с сайта автора
• версия на arXiv (самая новая)
• сайт с доп. главами и упражнениями
Порой свежий взгляд на привычное помогает наконец понять самую суть 🌿
#dl@data_easy
#classic_ml@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥23🔥6🤩6👌1👀1
Привет, друзья!
Представьте: у вас есть паркет на 10 гигов, и надо всего лишь посчитать по нему пару агрегаций... А что если можно не тащить его целиком в память и не городить пайплайны, а просто написать SQL прямо по файлу - без всякой базы и серверов? 🦆
Есть такой инструмент - DuckDB, и за последние пару лет он потихоньку прописался в арсенале у многих DS-команд.
🦆 Что это такое?
Если в двух словах - это "SQLite для аналитики". Появился он ещё в 2019 году (кстати, вырос из амстердамского института CWI - того самого, откуда родом Python), но по-настоящему зрелым стал не так давно. Технически это встраиваемая колоночная база данных, заточенная под аналитические запросы.
🦆 Почему он такой быстрый?
• Хранение колоночное: если вам нужны две колонки из тридцати, DuckDB прочитает с диска только их (это называют projection pushdown).
• Фильтр из WHERE он старается применить как можно раньше, ещё на этапе чтения (это predicate pushdown) - то есть лишние строки даже не поднимаются в память.
• Плюс векторизованное исполнение: данные обрабатываются не по одной строчке, а пачками - отсюда и скорость на больших файлах.
🦆 Установка и использование
Ставится одной строчкой, без серверов и докера:
Самый частый сценарий - SQL прямо по паркет-файлу, без загрузки куда-либо:
Обратите внимание: файл указан прямо в FROM, никакой предварительной загрузки в таблицу. В конце .df() возвращает результат обычным pandas-датафреймом.
Можно так же легко пройтись сразу по нескольким файлам по маске:
И самая приятная часть - дружба с pandas:
DuckDB видит переменную df в вашем Python-коде и работает с ней как с таблицей, причём без лишнего копирования данных туда-сюда - обмен идёт напрямую.
А ещё можно смешивать источники в одном запросе: сджойнить pandas-датафрейм, паркет с диска и CSV из интернета в одном SELECT😏
🦆 Что почитать:
• Официальная документация: тык
• Раздел Guides с готовыми рецептами кода: тык
• Блог с разборами внутренностей и бенчмарками: тык
Пусть ваши запросы летают, а память не кончается!💨
#аналитика@data_easy
#classic_ml@data_easy
Представьте: у вас есть паркет на 10 гигов, и надо всего лишь посчитать по нему пару агрегаций... А что если можно не тащить его целиком в память и не городить пайплайны, а просто написать SQL прямо по файлу - без всякой базы и серверов? 🦆
Есть такой инструмент - DuckDB, и за последние пару лет он потихоньку прописался в арсенале у многих DS-команд.
🦆 Что это такое?
Если в двух словах - это "SQLite для аналитики". Появился он ещё в 2019 году (кстати, вырос из амстердамского института CWI - того самого, откуда родом Python), но по-настоящему зрелым стал не так давно. Технически это встраиваемая колоночная база данных, заточенная под аналитические запросы.
Что это значит на практике:
• Работает прямо внутри вашего Python-скрипта - никаких серверов, подключений и конфигов.
• Читает CSV, Parquet, JSON, а также pandas- и polars-датафреймы напрямую, без предварительной загрузки в базу.
• Это полноценный SQL - с оконными функциями, подзапросами, джойнами и всем, что вы любите.
• Многопоточность из коробки + отлично работает с данными, которые больше оперативной памяти!
По сути это способ писать SQL по чему угодно: по файлам, датафреймам, бакетам в облаке, без построения пайплайнов и поднятия инфраструктуры.
🦆 Почему он такой быстрый?
• Хранение колоночное: если вам нужны две колонки из тридцати, DuckDB прочитает с диска только их (это называют projection pushdown).
• Фильтр из WHERE он старается применить как можно раньше, ещё на этапе чтения (это predicate pushdown) - то есть лишние строки даже не поднимаются в память.
• Плюс векторизованное исполнение: данные обрабатываются не по одной строчке, а пачками - отсюда и скорость на больших файлах.
🦆 Установка и использование
Ставится одной строчкой, без серверов и докера:
pip install duckdb
Самый частый сценарий - SQL прямо по паркет-файлу, без загрузки куда-либо:
import duckdb
result = duckdb.sql("""
SELECT category,
AVG(price) AS avg_price,
COUNT(*) AS orders
FROM 'sales.parquet'
WHERE price > 100
GROUP BY category
ORDER BY orders DESC
""").df()
Обратите внимание: файл указан прямо в FROM, никакой предварительной загрузки в таблицу. В конце .df() возвращает результат обычным pandas-датафреймом.
Можно так же легко пройтись сразу по нескольким файлам по маске:
duckdb.sql("SELECT * FROM 'data/2024_*.parquet'").df()
И самая приятная часть - дружба с pandas:
import pandas as pd
import duckdb
df = pd.read_csv("orders.csv")
# обращаемся к df по имени переменной прямо в SQL
result = duckdb.sql("""
SELECT user_id, SUM(amount) AS total
FROM df
GROUP BY user_id
HAVING total > 1000
""").df()
DuckDB видит переменную df в вашем Python-коде и работает с ней как с таблицей, причём без лишнего копирования данных туда-сюда - обмен идёт напрямую.
А ещё можно смешивать источники в одном запросе: сджойнить pandas-датафрейм, паркет с диска и CSV из интернета в одном SELECT
🦆 Что почитать:
• Официальная документация: тык
• Раздел Guides с готовыми рецептами кода: тык
• Блог с разборами внутренностей и бенчмарками: тык
Пусть ваши запросы летают, а память не кончается!
#аналитика@data_easy
#classic_ml@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22❤8👍7🆒1
Привет, друзья!
Автор возвращается с каникул с полным мешкомпирожков полезных материалов для подготовки к собесам😄 Осенний сезон найма на носу, так что держите свежую подборку ресурсов, которых ещё не было в канале👇
🙂 Interview Query
Это интерактивная платформа с вопросами из 9300+ компаний - преимущественно международных, но есть и кое-какие из РФ. Прикольная фишка: загружаете туда своё резюме, выбираете роль и желаемые компании - и платформа сама подсказывает, какие навыки у вас уже прокачаны, а что стоит подтянуть + составляет персональную подборку заданий (начало бесплатное, но за полную версию ожидаемо придется платить🤭 ).
По классике здесь собраны задачи по теории и программированию + продуктовые и поведенческие кейсы. Также найдете много статей и обсуждений. Ещё удобно, что для задачек на код есть встроенный редактор со всеми подключенными БД.
🔗 ссылка
🙂 MLStack.Cafe
А это просто огромная база задач - больше 2000 вопросов с ответами по ML, DS, Python, NLP, DL, LLM, MLOps и даже отдельные разделы по AWS и промпт инжинирингу. Все разбито по темам и уровням сложности: джуновские вопросы доступны с ответами бесплатно, а вот для middle/senior/expert уровней можно просмотреть только сами вопросы - для ответов нужна платная подписка (ну, или сходить за помощью к любимому LLM-другу🙂 ).
🔗 ссылка
🙂 Machine Learning Interviews Book
Легендарная бесплатная книга от ex-NVIDIA / Snorkel AI. Внутри не только 200+ вопросов с уровнями сложности, но и разбор того, как вообще устроен ML-собес в топ-компаниях: какие бывают роли (research vs production, MLE vs DS), из каких этапов состоит процесс, на что реально смотрят интервьюеры, красные флаги, как читать оффер... - словом, концентрат опыта, который обычно получают за годы практики. И всё полностью бесплатно!
🔗 ссылка
🙂 Stanford CS 229 / 230 / 221
Тут шпаргалки к курсам Stanford - вся классика ML/DL/AI в сжатом виде на нескольких страницах:
• CS 229 - классический ML
• CS 230 - простой deep learning: CNN, RNN, LSTM, backprop
• CS 221 - AI в широком смысле: MDP, RL, байесовские сети
Плюс отдельные странички по статистике, теорверу и линалу - идеально, чтобы освежить матан за пару часов. И ещё из приятного - есть официальный русский перевод.
🔗 офиц. ссылка, странички с переводом
PS: похожие посты с подборками
• https://t.me/data_easy/276
• https://t.me/data_easy/304
• https://t.me/data_easy/310
Продуктивной осени!!!💪
#карьера@data_easy
Автор возвращается с каникул с полным мешком
Это интерактивная платформа с вопросами из 9300+ компаний - преимущественно международных, но есть и кое-какие из РФ. Прикольная фишка: загружаете туда своё резюме, выбираете роль и желаемые компании - и платформа сама подсказывает, какие навыки у вас уже прокачаны, а что стоит подтянуть + составляет персональную подборку заданий (начало бесплатное, но за полную версию ожидаемо придется платить
По классике здесь собраны задачи по теории и программированию + продуктовые и поведенческие кейсы. Также найдете много статей и обсуждений. Ещё удобно, что для задачек на код есть встроенный редактор со всеми подключенными БД.
🔗 ссылка
А это просто огромная база задач - больше 2000 вопросов с ответами по ML, DS, Python, NLP, DL, LLM, MLOps и даже отдельные разделы по AWS и промпт инжинирингу. Все разбито по темам и уровням сложности: джуновские вопросы доступны с ответами бесплатно, а вот для middle/senior/expert уровней можно просмотреть только сами вопросы - для ответов нужна платная подписка (ну, или сходить за помощью к любимому LLM-другу
🔗 ссылка
Легендарная бесплатная книга от ex-NVIDIA / Snorkel AI. Внутри не только 200+ вопросов с уровнями сложности, но и разбор того, как вообще устроен ML-собес в топ-компаниях: какие бывают роли (research vs production, MLE vs DS), из каких этапов состоит процесс, на что реально смотрят интервьюеры, красные флаги, как читать оффер... - словом, концентрат опыта, который обычно получают за годы практики. И всё полностью бесплатно!
🔗 ссылка
Тут шпаргалки к курсам Stanford - вся классика ML/DL/AI в сжатом виде на нескольких страницах:
• CS 229 - классический ML
• CS 230 - простой deep learning: CNN, RNN, LSTM, backprop
• CS 221 - AI в широком смысле: MDP, RL, байесовские сети
Плюс отдельные странички по статистике, теорверу и линалу - идеально, чтобы освежить матан за пару часов. И ещё из приятного - есть официальный русский перевод.
🔗 офиц. ссылка, странички с переводом
PS: похожие посты с подборками
• https://t.me/data_easy/276
• https://t.me/data_easy/304
• https://t.me/data_easy/310
Продуктивной осени!!!💪
#карьера@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤24👍10🔥7🤩6⚡2
Привет, друзья!
Adam и AdamW правят балом почти десять лет... Претенденты на замену были, но одно дело красивая идея на бумаге, и совсем другое - алгоритм, который реально закрепится. И вот появился Muon, который за последние 1.5 года тихо просочился в обучение крупнейших моделей. Давайте разберёмся, как он устроен!🧐
🔠 Как было?
🔠 Как стало?
🔠 Как ортогонализовать и зачем?
🔠 Кто такой Newton-Schulz?
➕ Плюсы
➖ Минусы
🤔 Это будущее?
🔗 Что почитать и где попробовать?
Мораль такая: иногда научный прорыв - это не новая сложная формула, а свежий взгляд на привычное 🌿
#dl@data_easy
Adam и AdamW правят балом почти десять лет... Претенденты на замену были, но одно дело красивая идея на бумаге, и совсем другое - алгоритм, который реально закрепится. И вот появился Muon, который за последние 1.5 года тихо просочился в обучение крупнейших моделей. Давайте разберёмся, как он устроен!
Классический градиентный спуск двигает все веса на один и тот же шаг вдоль антиградиента. Adam умнее: он хранит моментум (сглаженные предыдущие направления) + подбирает индивидуальный размер шага для каждого параметра, исходя из его истории. Но “взгляд” у него поштучный: каждый вес - сам по себе, а градиент по слою рассматривается как длинный вектор независимых чисел.
Например, веса полносвязного слоя записываются матрицей, физически она задаёт линейное преобразование (привет всем, кто спрашивал про практическое применение теории на парах по линалу✌️). Градиент по такой матрице весов тоже можно записать в матричной форме - а не вектором, как делают обычные оптимизаторы.
Так и поступает Muon: он берёт матрицу обновления (сглаженный моментумом градиент), оставляет её в родной матричной форме -> а затем превращает в ортогональную (как именно - вспомним ниже). Это основная идея, и отсюда пошло название: MomentUm Orthogonalized by Newton-Schulz.
Есть проблема, что у матрицы обновления весов обычно пара направлений сильно доминирует, а остальные почти нулевые. Получается, обучение пойдет вдоль этих немногих осей, а вся остальная “ёмкость” слоя простаивает. Как раз с этим и помогает ортогонализация!
Теперь “как это реализуется”: вспомним SVD - он раскладывает любую матрицу на две ортогональные (которые задают повороты) + одну диагональную посередине (она задаёт растяжение/сжатие, числа на диагонали называют “сингулярными”). Ортогонализацией мы превращаем все сингулярные значения в единицу, как раз убирая проблему “перекоса”. За счёт этого шаг делается во все стороны поровну, и слой учится целиком.
Итак, честно ортогонализировать матрицу можно через SVD - но высчитывать его на каждом шаге и для каждого слоя неподъёмно дорого... Поэтому, как обычно, пользуемся эвристиками: Newton-Schulz даёт почти тот же результат за несколько матричных умножений (а их видеокарта уважает). Обычно хватает 5 итераций - так что Muon вполне пригоден для реального обучения.
• Быстрее сходится: примерно вдвое эффективнее AdamW по замерам Moonshot (они посчитали, что один прогон обходится в 2x дешевле).
• Экономит память: у Adam на каждый вес два состояния, у Muon - только моментум. Около трети памяти под оптимизатор долой.
• Применим только к слоям, где вес - это полноценное преобразование: например, полносвязные и attention. Но нормировки, свободные члены, выходной слой и эмбеддинги (обновляются построчно) учатся через AdamW.
• Каждый шаг дороже: Newton-Schulz добавляет матричные умножения, которых у AdamW нет. Шагов, конечно, нужно меньше, но с ростом модели расходы приходится отдельно оптимизировать.
• На больших моделях чаще всплывает нестабильность: значения внимания разгоняются и обучение может разойтись.
Похоже, что да - Muon уже вышел из разряда экспериментов:
• Обучает топовые открытые модели: Kimi K2 (1 трлн параметров) и GLM-5 (744 млрд), DeepSeek-V4.
• Нестабильность научились лечить: например, Moonshot добавили приём MuonClip, который придерживает разгоняющиеся значения внимания.
• Уже адаптируется под инфраструктуру: NVIDIA встроила Muon в свой Megatron + команда DeepSpeed реализует поддержку.
• Оброс модификациями: за год вышли десятки ускоренных версий (Gram Newton-Schulz от Три Дао, NorMuon, Hierarchical Muon и другие) - так что направление живое.
🔗 Что почитать и где попробовать?
• Оригинальный пост Keller Jordan - с интуицией и картинками
• Референс-реализация
• Вывод "с нуля" для любителей математики
• Newton-Schulz в доках Modula - с визуализациями сходимости
Мораль такая: иногда научный прорыв - это не новая сложная формула, а свежий взгляд на привычное 🌿
#dl@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤5⚡3❤🔥2👍2🙏1
Привет, друзья!
Давайте разберём, как оценивать RAG-пайплайн. Тема довольно острая: например, на оффлайне Recall@10 может быть 0.99, но пользователи всё будут равно жаловаться на выдуманные факты...
Важно помнить, что RAG - это две системы в одной, и сломаться они могут независимо друг от друга:
• нужный чанк может не найтись
• может оказаться на 9-й позиции и утонуть в контексте
• может попасть в топ-1, но генератор всё равно ответит мимо
Каждую поломку ловит своя метрика, поэтому одной цифрой тут не обойтись.
🔗 Ссылки на библиотеки с последней карточки:
• RAGAS, DeepEval, TruLens, Arize Phoenix
Материалом поделились коллеги из Embedika
Листайте в карточках - идеальная шпаргалка для быстрого повторения!
И хороших выходных🙂
#nlp@data_easy
Давайте разберём, как оценивать RAG-пайплайн. Тема довольно острая: например, на оффлайне Recall@10 может быть 0.99, но пользователи всё будут равно жаловаться на выдуманные факты...
Важно помнить, что RAG - это две системы в одной, и сломаться они могут независимо друг от друга:
• нужный чанк может не найтись
• может оказаться на 9-й позиции и утонуть в контексте
• может попасть в топ-1, но генератор всё равно ответит мимо
Каждую поломку ловит своя метрика, поэтому одной цифрой тут не обойтись.
🔗 Ссылки на библиотеки с последней карточки:
• RAGAS, DeepEval, TruLens, Arize Phoenix
Материалом поделились коллеги из Embedika
Листайте в карточках - идеальная шпаргалка для быстрого повторения!
И хороших выходных
#nlp@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤6👍4