Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
19K subscribers
2.08K photos
109 videos
64 files
4.5K links
Все самое полезное для дата сайентиста в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/f83f07f1

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5b03124c8ba6dcaa121c9
Download Telegram
How to: как «на самом деле» работает Dropout

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

Разберёмся на примере:
— Представьте, что у нас есть 100 нейронов в предыдущем слое, все с активацией 1.
— Все веса соединений с нейроном A в следующем слое равны 1.
— Dropout = 50% — половина нейронов отключается во время обучения.

Что происходит:
— Во время обучения: половина нейронов выключена, так что вход нейрона A ≈ 50.
— Во время inference: Dropout не применяется, вход A = 100.

Проблема:
Во время обучения нейрон получает меньший вход, чем во время inference. Это создаёт дисбаланс и может ухудшить обобщающую способность сети.

Секретный шаг Dropout:
Чтобы это исправить, Dropout масштабирует оставшиеся активации во время обучения на коэффициент 1/(1-p), где p — доля отключённых нейронов.

— Dropout = 50% (p = 0.5).
— Вход 50 масштабируется: 50 / (1 - 0.5) = 100.

Теперь во время обучения вход нейрона A примерно соответствует тому, что он получит при inference. Это делает поведение сети стабильным.

Проверим на практике:
import torch
import torch.nn as nn

dropout = nn.Dropout(p=0.5)
tensor = torch.ones(100)

# Обучение (train mode)
print(dropout(tensor).sum()) # ~100 (масштабировано)

# Вывод (eval mode)
dropout.eval()
print(dropout(tensor).sum()) # 100 (без Dropout)


В режиме обучения оставшиеся значения увеличиваются, в режиме inference — нет.

Вывод:
Dropout не просто отключает нейроны — он ещё масштабирует оставшиеся активации, чтобы модель обучалась корректно.

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👊 Холивар: Kaggle или реальные проекты — где настоящий дата-сайенс?

«Kaggle — это песочница для студентов, а реальные проекты — для взрослых дата-сайентистов. Если ты только и делаешь, что гонишься за медальками, ты не профи, а геймер!»


🚶‍♂️ Kaggle:
• Обучение: сотни датасетов и задач — от регрессии до компьютерного зрения.
• Соревновательный дух: топ-1% на лидерборде — это как Олимпийская медаль.
• Сообщество: готовые ноутбуки, идеи и код от лучших умов.
• Но: идеальные датасеты и метрики часто далеки от реальных проблем, а переобучение ради 0.001 — это не про бизнес.

🚶‍♂️ Реальные проекты:
• Практика: данные грязные, требования меняются, а результат нужен вчера.
• Бизнес-ценность: модель не для галочки, а для прибыли или спасения жизней.
• Полный цикл: от сбора данных до деплоя — настоящий опыт.
• Но: рутина, дедлайны и отсутствие чистой «магии ML» могут выгореть.

Давайте спорить в комментариях! ⤵️
Инструкция о том, как оставить комментарий: https://t.me/dsproglib/6244

👍 Kaggle — лучший тренажёр для мозга
❤️ Реальные проекты — тут рождается настоящий DS

Библиотека дата-сайентиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
💎 Фишка инструмента: SHAP — интерпретируемость ML-моделей

SHAP (SHapley Additive exPlanations) — это мощный инструмент для объяснения предсказаний моделей машинного обучения. Он основан на значениях Шепли из теории игр и позволяет разобрать вклад каждого признака в итоговый результат модели.

📍 Что делает SHAP:
Объясняет любой ML-модели, от XGBoost и LightGBM до нейросетей и трансформеров
Выявляет ключевые признаки, влияющие на предсказания
Создаёт наглядные визуализации, такие как водопадные графики, force plots, scatter plots и beeswarm-графики
Работает с деревьями решений, нейросетями и линейными моделями

📍 Ключевые приёмы:
Waterfall plot — детальный разбор влияния признаков
Beeswarm plot — топ-важных признаков по всей выборке
Dependence plot — анализ взаимодействий признаков

📍 Пример использования

1⃣ Установка:
pip install shap


2⃣ Простая демонстрация для XGBoost:
import xgboost
import shap

# Обучаем модель
X, y = shap.datasets.california()
model = xgboost.XGBRegressor().fit(X, y)

# Создаём объяснитель SHAP
explainer = shap.Explainer(model)
shap_values = explainer(X)

# Визуализируем вклад признаков в предсказание
shap.plots.waterfall(shap_values[0])
shap.plots.beeswarm(shap_values)


🔗 Подробнее в репозитории: SHAP на GitHub

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🧠 ИИ не отнимает работу у инженеров — он трансформирует её

По свежему отчёту WEF, к 2030 году произойдёт глобальная перекройка рынка труда:
22% текущих профессий изменятся
+170 млн новых рабочих мест
-92 млн уйдут в прошлое

И ключевой драйвер этих изменений — ИИ и автоматизация.

🎯 Что это значит для DS-инженеров?

Вместо стандартного «data scientist»/«ML engineer» сейчас появляются:
🔘 AI/ML продуктовые инженеры
🔘 Специалисты по data pipelines для LLM и мультимодальных моделей
🔘 Инженеры по интерпретируемости моделей (XAI)
🔘 Мастера feature engineering под foundation models
🔘 MLOps с уклоном в этику, безопасность и оценку рисков
🔘 Prompt/agent engineers (внезапно, уже инженерная роль)

💼 Интересно, что многие из этих ролей не существовали 3-5 лет назад. И это не предел: растёт спрос на специалистов, которые могут работать на стыке ИИ и бизнеса, ИИ и UX, ИИ и governance.

🧠 Поэтому ключевая компетенция 2025+ — уметь мыслить с ИИ: не просто строить пайплайн, а понимать, как ИИ влияет на продукт, решение, пользователя.

Библиотека дата-сайентиста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🧐 Игра: испытайте свою наблюдательность в эпоху ИИ

На изображении два кинопостера: один — подлинная фотография, другой — продукт нейросети.

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

🤫 Ответ раскрою в воскресенье. -> A
Инструкция о том, как оставить комментарий: https://t.me/dsproglib/6244

Библиотека дата-сайентиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Модели и релизы:
Amazon Nova Act — AI-модель для действий в браузере, обходит Claude 3.7 в web UI-бенчмарках
MinIO запускает MCP-сервер — первый в отрасли для enterprise AI-хранилищ
OpenAI выпускает AI Academy — онлайн-ресурсы, кодинг-сессии и практические кейсы GPT-4
Claude for Education от Anthropic — AI для вузов и студентов
LLaMA 4 — новое окно контекста до 10M токенов
Devin 2.0 — конкурент Cursor для разработчиков
Midjourney v7 — новая версия генеративной модели
Gemini 2.5 Pro (preview) — Google открывает доступ разработчикам
YandexGPT 5 Lite (instruct) в open-source + упрощённая лицензия

🧠 Исследования и бенчмарки:
GPT-4.5 прошёл тест Тьюринга — в 74% случаев принят за человека
PaperBench от OpenAI — бенчмарк на репликацию SOTA-ресёрча
CodeScientist от Allen AI — AI-агент, открывший 6 новых научных закономерностей
Исследование от Anthropic — LLM часто скрывают истинное рассуждение
AGI и безопасность — 145-страничный отчёт Google DeepMind
Multi-Token Attention — новый механизм внимания

📈 Индустрия и кадры:
Опрос Hookline — 82% американцев отличают AI-контент
GPT-5 отложен — сложности с инфраструктурой и интеграцией

🧰 Инструменты и инфраструктура:
DuckDB UI для Hugging Face Datasets — удобно работать с 380k+ датасетами
NotebookLM от Google — добавил функцию Discover Sources
Unsloth + Hugging Face — гайд по обучению разума у моделей

📚 Что почитать:
Обратное распространение ошибки без формул
Введение в SciPy
15 лучших нейросетей для генерации изображений в 2025
Как мы пишем ML-приложения по пайплайн-паттерну
OCR на базе LLM
Что важно знать при внедрении LLM
Vision Transformers — применение в CV
Семантический поиск в сложных документах
Гайд по промпт-инжинирингу
Нейросети и проблема сильного ИИ
История увольнения Сэма Альтмана

Библиотека дата-сайентиста #свежак
🔍 Как скрытые состояния в HMM отличаются от скрытых представлений в RNN и как это влияет на интерпретируемость

🧠 Скрытые марковские модели (HMM):
В HMM скрытые состояния — это дискретные латентные переменные с четким вероятностным значением. Каждое состояние соответствует конкретному режиму или явлению (например, «дождливо» или «солнечно» в модели погоды), что способствует интерпретируемости. Переходы между состояниями описываются матрицей вероятностей.

🤖 Рекуррентные нейронные сети (RNN):
В отличие от HMM, скрытые состояния в RNN — это непрерывные векторы, которые обучаются автоматически с помощью градиентного спуска. Они могут кодировать сложные аспекты истории последовательности, но не всегда легко интерпретируемы. Каждый элемент скрытого состояния может быть связан с более сложными зависимостями, которые сложно трактовать в явной форме.

💡 Главная проблема:
При попытке трактовать скрытые состояния в RNN как дискретные состояния в HMM можно столкнуться с ошибками. Непрерывные скрытые представления могут не иметь четких «меток», что затрудняет их интерпретацию и объяснение. Важно учитывать, что RNN может захватывать более сложные, но менее интерпретируемые зависимости.

⚠️ Как избежать ошибок:
Не стоит пытаться трактовать скрытые состояния RNN как дискретные. Лучше использовать методы интерпретации, такие как визуализация внимания, чтобы понять, как скрытые состояния влияют на выход модели.

Библиотека собеса по Data Science
This media is not supported in your browser
VIEW IN TELEGRAM
🔄 Обновление: Gradio стал ещё удобнее

Gradio — это open-source фреймворк на Python для создания веб-интерфейсов для моделей машинного обучения и приложений с минимумом кода.

🔘Почему стоит использовать Gradio:
➡️ Мгновенное прототипирование — пользовательский интерфейс запускается за считанные минуты
➡️ Поддержка Hugging Face и других AI-фреймворков
➡️ Интерактивность: ввод текста, загрузка изображений, аудио, видео, работа с таблицами и кодом
➡️ Удобный шаринг — можно расшарить ссылку или встроить приложение в сайт

🔘Пример:
import gradio as gr

def greet(name):
return f"Привет, {name}!"

gr.Interface(fn=greet, inputs="text", outputs="text").launch()


🆕 Что нового в компоненте gr.Dataframe:

Недавно команда Gradio выпустила обновление компонента gr.Dataframe(), закрыв более 70 задач и багов.

🔘Основные улучшения:
➡️ Мультивыделение ячеек — можно копировать или удалять сразу несколько значений
➡️ Нумерация строк и закрепление колонок — удобно при работе с широкими таблицами
➡️ Кнопка копирования и полноэкранный режим — для более комфортной работы с данными
➡️ Поиск и фильтрация — находите нужные строки за секунды
➡️ Статичные колонки — защита важной информации от случайного редактирования
➡️ Выбор строк и колонок — для удобного взаимодействия с данными

🔗 Попробуйте Gradio в действии: https://clc.to/YKU9yw
💬 А вы уже использовали Gradio в своих проектах?

Библиотека дата-сайентиста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 How to: как грамотно группировать YAML-конфигурации в ML-проектах

В ML-проектах множество параметров: данные, модели, обучение, инференс. Чтобы не потеряться в этом хаосе, важно организовать конфигурации понятно и масштабируемо.

🎯 Лучшее решение — использовать связку OmegaConf + Hydra.

OmegaConf: гибкость и структура

OmegaConf создана для сложных ML-пайплайнов и позволяет:

• Объединять несколько YAML-файлов в единую структуру
• Обращаться к полям как через config.model.optimizer, так и config["model"]["optimizer"]
• Использовать проверку типов через dataclasses или Pydantic-моделей

• Пример:
# model.yaml
model:
name: resnet50
optimizer:
type: Adam
lr: 0.001


from omegaconf import OmegaConf
cfg = OmegaConf.load("model.yaml")
print(cfg.model.optimizer.lr) # 0.001


Hydra: управление ML-воркфлоу

Hydra расширяет OmegaConf и упрощает работу с конфигурациями:

• Группировка конфигураций через defaults:
# config.yaml
defaults:
- data: imagenet.yaml
- model: resnet.yaml
- training: adam.yaml


• Структура может быть произвольной:
conf/
├── config.yaml
├── data/imagenet.yaml
├── model/resnet.yaml
├── training/adam.yaml


• Переопределения из командной строки:
python train.py model.optimizer=SGD training.lr=0.01


• Параметрические прогоны (sweeps):
python train.py -m training.lr=0.001,0.01 model.optimizer=Adam,SGD


Это удобно при автоматизированном поиске гиперпараметров.

💬 А как вы организуете свои конфигурации?

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🧱⛏️ Чекни свой крафт: 8 признаков, что разработчик слишком залип в Minecraft

Думаешь, что твоя продуктивность падает из-за багов в коде? А может, все дело в том, что ты мысленно фармишь крипперов, пока твой PM объясняет задачу?

😎 Пройди наш тест и узнай, насколько глубоко ты провалился в пиксельную кроличью нору!

👉 Пройти тест

Библиотека питониста
📚 13 ресурсов, чтобы выучить математику с нуля — подборка, которую просили

Хочешь прокачаться в математике для Data Science, ML или просто чтобы понимать, что происходит в формулах. Лови список лучших источников, которые собрали на Proglib.

➡️ Что внутри:
• Книги: от Пойи и Перельмана до Хофштадтера
• Советы: как учить, с чего начать, как не сдаться
• Математика для Data Science: разбор тем и формул
• Ссылки на форумы и задачи
• Как не бояться, если всё кажется сложным
• Что читать, если ты гуманитарий и страдал от школьной алгебры

✍️ Простой язык, много примеров и ноль академического занудства.

🔵 Для полного понимания Архитектуры, забирайте наш курс → «Архитектуры и шаблоны проектирования»

👉 Читай статью тут
Please open Telegram to view this post
VIEW IN TELEGRAM
Дата-сайентисты!

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

➡️Поддержать канал: https://t.me/boost/dsproglib
Please open Telegram to view this post
VIEW IN TELEGRAM
⭐️ Команда дня: Smallpond

В центре внимания сегодня — Smallpond, который оптимизирует работу с большими объемами данных, обеспечивая высокую производительность и гибкость при решении задач в области ИИ.

Архитектура Smallpond:
🔴 DuckDB — основное ядро для обработки данных в памяти, высокая производительность и низкая латентность
🔴 3FS — распределенная файловая система, поддерживающая работу с данными в формате Parquet, SSD и RDMA, что позволяет эффективно работать с большими объемами данных и хранить контрольные точки
🔴 Ray — мощный механизм распределения задач, популярный Ray Core для параллельной обработки и масштабируемости

Как использовать Smallpond:
🔴 Установите: pip install smallpond
🔴 Пример использования:
import smallpond  

sp = smallpond.init(job_name="flightdatajob", ray_address="http://127.0.0.1:8265")

df = sp.read_parquet("flight_summary.parquet")
df = df.repartition(10, hash_by="DEST_COUNTRY_NAME")
df = sp.partial_sql("SELECT DEST_COUNTRY_NAME, count(distinct ORIGIN_COUNTRY_NAME) as ORIGIN FROM {0} GROUP BY DEST_COUNTRY_NAME HAVING DEST_COUNTRY_NAME='United States'", df)

print(df.to_pandas())


Что происходит в коде:
🔴 Инициализация: подключение к кластеру Ray (или создание нового)
🔴 Чтение данных: импорт данных в формате Parquet, с разбиением по партициям (например, по хешу)
🔴 SQL-запросы: выполнение запросов с использованием DuckDB для обработки на каждой партиции
🔴 Вывод: результаты можно сохранить в форматах Parquet или pandas

🔘Модель выполнения

Smallpond использует ленивые вычисления, создавая DAG (направленный ациклический граф) и выполняя задачи только при вызове действий, таких как to_pandas(). Это позволяет эффективно управлять вычислениями и минимизировать ресурсы.

🔘Зачем нужен Smallpond

Smallpond подходит для задач, где требуется высокая производительность и оптимизация работы с большими данными. Его простота и интеграция с популярными инструментами делают его отличным выбором для проектов в области ИИ.

🔗 Узнать больше: https://clc.to/bPm0Xw

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🧮 PyTorch выпустил mm: 3D визуализатор матричных умножений

🧮 Matrix Multiplication (matmul) — основа современных нейросетей. И теперь вы можете наглядно увидеть, как это работает.

Инструмент от PyTorch называется mm — это визуализатор, который показывает, как матрицы взаимодействуют во время перемножения. Отличный способ понять внутреннюю механику операций, лежащих в основе ИИ.

Особенности:
➡️ Работает прямо в браузере
➡️ Показывает процесс перемножения пошагово
➡️ Подходит для обучения, презентаций и просто ради любопытства

📎 Ссылка на проект: https://clc.to/LG_pgw

Библиотека дата-сайентиста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🤪 Код вчерашнего дня — сюрприз для дата-сайентиста

А какие перлы находили в своем коде? Делитесь в комментариях 👇

Библиотека дата-сайентиста #развлекалово
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳 Чек-лист: использование Docker в задачах Data Science

Цель: обеспечить воспроизводимость, удобную работу с зависимостями и подготовку модели к деплою с помощью контейнеризации.

1️⃣ Установка и проверка Docker

🟣Установите Docker Desktop или Docker Engine для Linux

🟣Проверьте установку командой:
  docker --version


🟣 Выполните тестовый запуск:
  docker run hello-world


Это подтвердит, что Docker работает корректно.

2️⃣ Создание Dockerfile для проекта

🟣 Выберите подходящий базовый образ:
python:3.11-slim — компактный образ на Python
jupyter/datascience-notebook — включает Jupyter и популярные библиотеки

🟣Создайте файл Dockerfile и опишите в нём:
  FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt


🟣Убедитесь, что файл requirements.txt содержит все зависимости проекта

3️⃣ Подготовка окружения для воспроизводимости

🟣 Укажите фиксированные версии библиотек в requirements.txt, например:
  pandas==2.2.1
numpy==1.26.0


🟣 Добавьте .dockerignore, чтобы исключить ненужные файлы:
  .git
*.csv
__pycache__/


🟣 Постройте образ:
  docker build -t my-ds-image .


4️⃣ Работа с данными в контейнере

🟣 Подключите локальные данные:
  docker run -v /path/to/data:/app/data my-ds-image


🟣 Запустите Jupyter Notebook внутри контейнера:
  docker run -p 8888:8888 my-ds-image jupyter notebook --ip=0.0.0.0 --allow-root


🟣 При необходимости работы с GPU:
— Убедитесь, что установлен nvidia-docker
— Используйте флаг --gpus all

5️⃣ Тестирование и отладка

🟣 Получите интерактивный доступ к контейнеру:
  docker run -it my-ds-image bash


🟣Проверьте, работают ли библиотеки:
  python -c "import pandas; print(pandas.__version__)"


🟣 Просмотрите логи выполнения контейнера:
  docker logs <container_id>


6️⃣ Деплой модели как API

🟣 Напишите API на Flask или FastAPI (файл app.py)

🟣 Укажите в Dockerfile команду запуска:
  CMD ["python", "app.py"]


🟣 Запустите модель как сервис:
  docker run -p 5000:5000 my-ds-image  


🚩 Полезные инструменты и образы

🟣 Docker Compose — для запуска нескольких контейнеров (например, модель + база данных)

🟣 Образы:
tensorflow/tensorflow:latest-gpu — с поддержкой GPU
continuumio/anaconda3 — включает Anaconda и библиотеки

🔎 Рекомендация

Храните Dockerfile и requirements.txt в репозитории. Это залог воспроизводимости и эффективной командной работы в проектах Data Science.

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕 Google выпустил бесплатный гайд по созданию промптов

От базовых принципов до сложных техник, таких как chain of thought, где LLM строит цепочки решений.

😳 Цитата: «Не нужно быть дата-сайентистом или ML-инженером — каждый может освоить промпты.»

Звучит очень громко и амбициозно!

Согласны ли вы с этим утверждением? Может ли человек без опыта в Data Science создать эффективный промпт для решения задачи?

👍 — Да, с правильным подходом можно
🔥 — Нет, всё равно нужен опыт и знания

🔗 Ссылка на гайд: https://clc.to/q-7AXw

Библиотека дата-сайентиста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM