Интересное что-то
517 subscribers
2.71K photos
253 videos
138 files
4.51K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.iss.one/asisakov_channel
Чат: https://t.iss.one/youknowds_chat
Download Telegram
Forwarded from EasyData
Привет, друзья!
Совместно с коллегами из МФТИ выпустили статью на Хабре: как линал помогает заглянуть внутрь ML-моделей и понять, как они работают ♾️

Материал больше для новичков, но если слова "матрицы", "ранги", "сингулярные разложения" до сих пор вызывают зевоту или панику - вам сюда😉

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

#математика@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from EasyData
Привет, друзья!
В DS-задачах часто важно не только получить точное предсказание модели, но и понять, как именно каждый признак влияет на результат. А простые встроенные методы оценки feature importance часто показывают лишь общее влияние, не раскрывая деталей и взаимодействий между признаками 🤷‍♀️

Зато есть мощная библиотека SHAP - она позволяет объяснять предсказания любой классической модели, давая детальные и справедливые оценки вклада каждого признака в конкретное предсказание. SHAP-значения основаны на теории игр и помогают понять не только важность, но и направление влияния признаков (подробнее про них тут и в colab😉).

В карточках листайте примеры основных возможностей SHAP, а в уже упомянутом ноутбуке - какими командами всё это построить на питоне 🐍

🔗 Ещё полезные ссылки для изучения SHAP:
- Официальная документация
- Репозиторий на GitHub
- Статья с обзором и более глубокой теорией

Откройте черный ящик моделей 😁

#classic_ml@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from EasyData
Привет, друзья!
Вы не раз спрашивали в комментариях про книги по Deep Learning, и, как оказалось, про это у нас ещё не было поста… Исправляем эту оплошность! Сохраняйте подборку - будет полезно как новичкам, так и тем, кто хочет копнуть глубже ❤️

🔥 Deep Learning - Ian Goodfellow, Yoshua Bengio, Aaron Courville
Библия по глубокому обучению: от основ нейросетей до продвинутых тем. Отлично подойдёт тем, кто хочет получить фундаментальное и строгое понимание.
Источники: версия на русском.

🔥 Neural Networks and Deep Learning - Michael Nielsen
Простой и интуитивный вход в мир нейросетей, материал относительно небольшой. Много визуализаций, понятные объяснения, минимум формальностей - идеально для первого знакомства.
Источники: оригинал, перевод на русский.

🔥 Dive into Deep Learning (D2L) - Aston Zhang, Zachary Lipton, Mu Li, Alexander Smola
Книга-учебник с интерактивными ноутбуками: теорию можно сразу пробовать в коде. Построена на PyTorch и MXNet, активно обновляется. Хороший баланс между практикой и объяснениями.
Источники: оригинал, перевод на русский.

🔥 Deep Learning for Coders with fastai and PyTorch - Jeremy Howard, Sylvain Gugger
Книга для тех, кто хочет быстро перейти к решению реальных задач. Много примеров, best practices и объяснений - особенно подойдёт тем, кто уже умеет кодить и хочет перейти к серьёзным DL-проектам.
Источники: оригинал на английском.

Если вы только начинаете - начните с Nielsen или D2L. Если хотите системности - читайте Goodfellow. А если тянет в продвинутую практику - берите последнее из списка

#dl@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from EasyData
Привет, друзья!
В продолжение к предыдущему посту: на GitHub докинули ноутбуки для файнтюна gpt-oss с LoRA и запуска gpt-oss-20B в Colab (вторая ссылка может не открыться на самом GitHub, попробуйте скачать ноутбук).

Обещают, что последнее запустится даже в бесплатном Colab… но нет - 15 Гб видеопамяти не хватает ☹️ Пробуйте на Kaggle, там дают 16 ГБ (кстати, там ещё и сессия до 12 часов:)).

🤔 И ещё одна интересная деталь...
Если заглянуть в код ноутбука run-colab, можно заметить строчку с установкой triton. Это не просто библиотека, а важная часть ускорения современных моделей: именно Triton лежит в основе многих оптимизаций PyTorch 2.x и кастомных операций в LLM, позволяя получать скорость уровня CUDA, но писать код почти как на Python.

🤔 Поподробнее про Triton...
➡️ Это язык и компилятор для написания собственных GPU-ядер, но с синтаксисом, который больше напоминает Python, чем C++ / CUDA. Он избавляет от рутины вроде ручного управления памятью и потоками - достаточно понимать принципы работы GPU и знать нужные команды.
➡️ Активно используется в PyTorch (например, в torch.compile).
➡️ Позволяет писать свои высокопроизводительные матричные умножения, операции внимания, редукции и вообще всё, что можно распараллелить на GPU.

🤔 В чём плюсы тритона?
➡️ Простота: код выглядит дружелюбно, но под капотом превращается в оптимизированный PTX для NVIDIA GPU (к слову, пока официально есть поддержка только NVIDIA GPU; для других архитектур либо отсутствует, либо ещё на экспериментальном уровне).
➡️ Автоматическая оптимизация: Triton сам раскладывает данные по блокам, чтобы GPU был загружен на максимум.
➡️ Производительность: в некоторых кастомных сценариях Triton-ядра догоняют и даже обгоняют cuBLAS/cuDNN.

🔗 Если хотите больше примеров, вот несколько полезных ссылок:
➡️ Документация
➡️ Репозиторий на GitHub
➡️ И отличная вводная статья от OpenAI с примерами кода

#dl@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from EasyData
Привет, друзья!
В продолжение подборки вводных курсов по ml держите коллекцию свежих бесплатных пособий и материалов по продвинутому DL и LLM
Тут и академические курсы, и практические репозитории, и настоящие «инженерные экскурсии» в мир SOTA-моделей 🤓

📚 Курс от MIT «Introduction to Deep Learning»
Самый полный и актуальный ввод в deep learning на 2025 год.
➡️ Лекции от основ до LLM и генеративного ИИ.
➡️ Практика из трёх крупных проектов: CV, LLM и музыка.
➡️ Всё запускается в Colab, можно не беспокоиться о ресурсах.
🔗 Сайт курса
🔗 Код и задания

📚Hugging Face «UltraScale LLM Playbook»
Руководство, как обучать LLM-модели на триллионы параметров.
➡️ Разбирается весь стек технологий: Tensor/Pipeline/Data Parallelism.
➡️ Оптимизация памяти и советы по железу.
➡️ Взгляд изнутри на инженерные задачи уровня SOTA.
🔗 Playbook на Hugging Face

📚 GitHub-репозиторий «LLM from scratch»
Это сокровище уже собрало почти 70k звезд!
➡️ Реализация GPT и attention с нуля.
➡️ Основы CUDA и PyTorch, пошаговые видео.
➡️ Предобучение, файнтюн, работа с текстовыми данными.
🔗 GitHub-репозиторий

📚LLM Agents Learning (Fall 2024)
Курс о том, как работают и строятся LLM-агенты: от базовых концепций до сложных пайплайнов. Отличный старт для тех, кто хочет разобраться, что «под капотом» у современных чат-ботов.
🔗 Сайт курса

📚 LangChain Academy «Intro to LangGraph»
Бесплатный курс от создателей LangChain.
Покрывает основы LangGraph: библиотеки для построения графов агентов и оркестрации LLM.
🔗 Сайт курса


Успехов в наступающем учебном году!😄🍀

#nlp@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from EasyData
Привет, друзья!
Мы привыкли считать, что на табличных данных бустинг не победить: CatBoost, LightGBM и XGBoost долгие годы остаются золотым стандартом. Но последнее время появляется много нейросетевых моделей "из коробки" специально для таблиц, которые даже местами обгоняют классиков. Ниже - подборка трёх наиболее интересных архитектур.

🐱 TabM
Архитектура основана на MLP с параметрически-эффективным ансамблированием. Внутри одной сети обучаются несколько "виртуальных моделей", которые делят общие веса и отличаются только небольшими адаптер-модулями.
Сама модель от Яндекса, на больших бенчмарк-датасетах уверенно конкурирует с CatBoost и LightGBM.
репозиторий на GitHub
статья на arXiv
демо в colab

🐱 TabPFN
Модель на базе трансформера, предобученного на огромном количестве синтетических таблиц. Работает как готовое универсальное решение "из коробки": вы подаёте данные, а она сразу выдаёт предсказания без длительного дообучения. Отлично подходит для малых и средних наборов данных, где нет времени или ресурсов на настройку.
репозиторий на GitHub
официальная страничка решения
демо в colab
статьи: оригинальная и более свежая про улучшенную версию

🐱 SAINT
Transformer-архитектура с вниманием не только по признакам, но и между самими объектами. Дополнительно использует контрастивное предобучение, что помогает лучше выделять структуру данных и устойчиво обучаться.
Особенно хороша на датасетах, где важно учитывать сложные зависимости между объектами, а также для задач с большим числом категориальных признаков.
репозиторий на GitHub
статья на arXiv

Судя по бенчмаркам, эти архитектуры полезны на больших и сложных таблицах с множеством признаков/категорий, где классический бустинг может упираться в ресурсы. На простых или небольших датасетах легендарное Boost-трио пока надёжнее и проще в настройке🐈🐈🐈


Удачных экспериментов и высоких метрик!

#classic_ml@data_easy
#dl@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from EasyData
Привет, друзья!
Сегодня - короткая подборка роадмапов и ресурсов по изучению DS-ML. Всё проверенное и пригодное для подготовки к интервью и планирования обучения.

🐾 Матрицы компетенций от AndersenLab
Показывает, какие навыки ожидаются на разных грейдах и уровнях, удобно для формирования чек-листа роста и оценки прогресса.
ссылка (выбирайте Python в специализации и AI/DS/DE/ML в Skill category)

🐾 Machine Learning Roadmap от MachineLearningMastery
Большая пошаговая инструкция: от математики и базовых алгоритмов до продакшена и MLOps, где расписаны все шаги со ссылками на книги, полезные статьи и курсы.
ссылка

🐾 Deep-ML - практические ML/DL задачки
Онлайн-платформа с наборами реальных задач по ML/DL/NLP/CV. Формат близок к продакшену: нужно думать не только о модели, но и о фичах, пайплайнах, метриках. Есть задания для прокачки инженерных навыков.
ссылка

🐾 NeetCode - roadmap + LeetCode-style подготовка
Сайт, посвященный алгоритмам и структурам данных: задачи собраны в тематические дорожки (arrays, trees, graphs и т.д.), есть разборы и объяснения. По духу похож на LeetCode, но структурированнее и понятнее для быстрой подготовки.
ссылка

😎 Рецепт, как собрать из этого рабочий план:
1. Берём матрицу компетенций, отмечаем свои навыки и пробелы, получаем список приоритетов.
2. По роадмапам строим порядок изучения и выбираем подходящие ресурсы.
3. Подключаем практику: задачи на Deep-ML, вопросы для повторения, тренировка алгоритмов и структур.

А ещё на прошедшей неделе в канале стукнуло 💯 подписчиков!

Спасибо каждому, кто читает, комментирует, задаёт вопросы и просто остаётся здесь.
Этот канал начинался как небольшой личный проект, а превратился в сообщество, где можно вместе учиться и расти в Data Science.
Дальше - больше💜

#карьера@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Data Science News (Andrey)
Готовимся к собесу, шпаргалка по деревьям

Общее понимание градиентного бустинга

Изначальный алгоритм Фридмана (Friedman, 2001) задаёт базовый принцип.
Идея: мы берём функцию потерь (loss), которую нужно минимизировать ансамблем слабых моделей (обычно деревья решений).

Начинаем с базовой константы (например, среднее значение таргета).

На каждом шаге строим новое дерево по текущим градиентам функции потерь (первая производная по предсказанию).

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

Каждое дерево добавляется в модель с коэффициентом обучения (learning rate), чтобы не переобучиться.

Фридман показал, что этот подход работает и для регрессии (MSE), и для классификации (логлосс/NLL).

Chen & Guestrin, 2016 — это про XGBoost.

В XGBoost формализовали общее выражение для прироста качества (gain) узла с учётом первых и вторых производных.

Значение листа считается по формуле:

w_j = - (sum(g_i)) / (sum(h_i) + lambda)


где
g_i — первый градиент,
h_i — второй градиент (Гессиан),
lambda — коэффициент регуляризации.

Прирост качества (gain) при разбиении узла:

gain = 0.5 * ( ( (sum(g_left))^2 / (sum(h_left) + lambda) )
+ ( (sum(g_right))^2 / (sum(h_right) + lambda) )
- ( (sum(g_total))^2 / (sum(h_total) + lambda) ) ) - gamma


где
g_left, h_left — суммы градиентов и Гессианов для левого узла,
g_right, h_right — суммы для правого узла,
g_total, h_total — суммы для всего узла до разбиения,
gamma — минимальный прирост, чтобы оставить разбиение (если меньше, то узел схлопывается, читай прунинг).

Prokhorenkova et al., 2018 — про CatBoost.
Там основное — как бороться с переобучением и эффективно работать с категориальными признаками.

Категориальные фичи: кодирование делается через "средние по таргету", но с порядковым шифтом (ordered target encoding). То есть значение для объекта считается только по предыдущим объектам в случайной перестановке. Это сильно уменьшает target leakage.

Симметричные деревья: все разбиения на одном уровне одинаковые (level-wise). Это ускоряет инференс (можно SIMD/CPU оптимизации).

Очень много готовых функций потерь (MSE, логлосс, ранжирование, custom).

Для ранжирования — используют попарные лоссы (например, YetiRank, Pairwise). Данные группируются по запросам, и дерево строится так, чтобы правильно упорядочивать документы внутри группы.

Вопросы на собесе

1. Можно ли параллелить инференс?
Да. Каждое дерево считается независимо, потом результаты суммируются. Сумма — операция коммутативная, значит, можно распараллелить по деревьям.

2. Можно ли исключить дерево из ансамбля?

Формально да — это просто сумма функций. Но в отличие от бэггинга, деревья в бустинге строятся последовательно: каждое корректирует ошибки предыдущих. Если убрать дерево, качество почти всегда ухудшится.

3. В чём отличие от бэггинга/Random Forest?

В бустинге деревья строятся последовательно и учитывают ошибки прошлых шагов.

В RF деревья строятся независимо, а результат усредняется.

RF больше про снижение дисперсии, boosting — про уменьшение смещения.

4. Почему используют вторые производные (Hessian)?
Потому что это даёт более точную аппроксимацию loss при подборе весов листьев (аналог Ньютона вместо градиентного спуска).