Telegram Web
🎯 SemHash — очистка датасетов с помощью семантического поиска

SemHash — это лёгкий и быстрый инструмент для:
— дедупликации (поиск и удаление дубликатов)
— фильтрации выбросов
— выбора репрезентативных примеров

Работает на базе:
🤖 Model2Vec — генерация эмбеддингов
🤖 Vicinity — быстрый поиск по векторной близости (ANN)

Что умеет SemHash:
🤖 Очистка одного датасета (дубликаты, выбросы, ядро)
🤖 Исключение пересечений между train/test
🤖 Работа с простыми текстами и сложными multi-column датасетами
🤖 Удобный просмотр причин дедупликации и выбросов

Быстрый старт:
pip install semhash


from datasets import load_dataset
from semhash import SemHash

texts = load_dataset("ag_news", split="train")["text"]
semhash = SemHash.from_records(records=texts)

deduplicated = semhash.self_deduplicate().selected
filtered = semhash.self_filter_outliers().selected
representative = semhash.self_find_representative().selected


Также можно:
— Удалять дубликаты между двумя датасетами (train/test leakage)
— Работать с датасетами QA-формата (columns=["question", "context"])
— Использовать DataFrame и кастомные эмбеддинги

Пример: исключаем утечку между train и test
train = load_dataset("ag_news", split="train")["text"]
test = load_dataset("ag_news", split="test")["text"]

semhash = SemHash.from_records(records=train)
clean_test = semhash.deduplicate(records=test, threshold=0.9).selected


Почему это удобно:
— Быстро: работает на ANN-поиске
— Гибко: один или два датасета, текст или таблицы
— Пояснимо: можно посмотреть, почему запись считается дубликатом
— Масштабируемо: работает с миллионами записей
— Легковесно: минимум зависимостей

📌 Совет: для больших датасетов (>1M) оставляйте use_ann=True, это сильно ускоряет работу при высокой точности.

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯 Мы больше года строим мультиагентные системы

Грабли, находки, паттерны, эксперименты — всё это накопилось и в какой-то момент стало жалко держать только у себя.

Никита — рассказывает (и показывает) базу: токенизация, LLM, SFT, PEFT, локальный инференс + RAG и как оценивать его качество.
Диана — как строят мультиагентные системы, какие есть паттерны проектирования и библиотеки.
Макс — про инференс в проде + разберет CoPilot, соберет с вами из кусочков свой копайлот, а затем его сломает через prompt injection. // Макс фанат autogen (а если нет — он вас разубедит в своем классном канале)
Финальным аккордом Дима углубится в MCP и соберет несколько кейсов повзрослее.

Курс тут: https://clc.to/47pgYA
Промокод: datarascals действует до 23:59 29 июня
🎯 9 метрик расстояния, которые должен знать каждый Data Scientist

Расстояние — ключ к алгоритмам машинного обучения: от кластеризации до рекомендаций. Вот что действительно используют на практике:

Евклидово расстояние
🏮 √(Σ (xi − yi)²)
🏮 KNN, K-Means, SVM
🏮 Геометрическая дистанция
🏮 Обязательно нормируйте данные

Манхэттенское расстояние
🏮 Σ |xi − yi|
🏮 Высокие размерности
🏮 L1-регуляризация, деревья решений

Расстояние Минковского
🏮 (Σ |xi − yi|ᵖ)¹/ᵖ
🏮 Универсальное: p=1 → Манхэттен, p=2 → Евклид
🏮 Гибкость для вариаций KNN/K-Means

Косинусное расстояние
🏮 A·B / (| |A | | × | | B | |)
🏮 NLP, сравнение текстов
🏮 Оценивает угол между векторами
🏮 Отлично для разреженных данных

Расстояние Жаккара
🏮 1 − (|A ∩ B| / |A ∪ B|)
🏮 Бинарные/категориальные данные
🏮 Рекомендательные системы

Расстояние Хэмминга
🏮 Кол-во несовпадающих позиций
🏮 NLP, обнаружение ошибок, ДНК
🏮 Только для строк одинаковой длины

Расстояние Махаланобиса
🏮 (x − μ)ᵀ S⁻¹ (x − μ)
🏮 Учитывает корреляции
🏮 Поиск аномалий, классификация

Расстояние Чебышёва
🏮 max(|xi − yi|)
🏮 Захватывает наибольшую разницу
🏮 Сеточные модели, алерты

Bray-Curtis
🏮 Σ |xi − yi| / Σ (xi + yi)
🏮 Экологические и количественные данные
🏮 Не является метрической функцией!

Гайд по выбору:
📟 Нормализованные числовые признаки → Евклид/Манхэттен
📟 Текст, категории → Косинус/Жаккар
📟 Гауссовские признаки с корреляцией → Махаланобис
📟 Побитовые сравнения → Хэмминг
📟 Состав экосистем → Bray-Curtis

💡 Важно помнить:
Расстояние — это не просто математика.
Это контекст. Выбирайте метрику под данные, а не только под формулу.

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🧩 Задача для продвинутых дата-сайентистов: фильтрация по датам

Дано:
import pandas as pd

data = {
'order_id': [1, 2, 3, 4, 5],
'order_date': ['2023-01-01', '2023-02-15', 'not available', '2023-03-10', '2023-04-05'],
'amount': [100, 150, 200, 130, 170]
}

df = pd.DataFrame(data)
print(df)


Результат:
   order_id    order_date  amount
0 1 2023-01-01 100
1 2 2023-02-15 150
2 3 not available 200
3 4 2023-03-10 130
4 5 2023-04-05 170


💡 Задача:

Отфильтровать заказы с датами после 2023-02-01:
filtered = df[df['order_date'] > '2023-02-01']
print(filtered)


Вывод:
   order_id     order_date  amount
1 2 2023-02-15 150
2 3 not available 200
3 4 2023-03-10 130
4 5 2023-04-05 170


Вопросы:
1. Почему результат фильтрации не соответствует ожиданиям?
2. Как правильно работать с колонкой order_date, чтобы фильтрация по датам работала?

🎯 Подвох:
— Колонка order_date — это строки (object), а не тип datetime.
— Сравнение строк по дате работает не как с датами, а лексикографически.
— Значение 'not available' мешает конвертации.

💡 Решение:
df['order_date'] = pd.to_datetime(df['order_date'], errors='coerce')
filtered = df[df['order_date'] > '2023-02-01']
print(filtered)


pd.to_datetime с errors='coerce' заменит неправильные даты на NaT.
— Фильтрация по datetime теперь корректна.

Итог:
— Всегда проверяйте типы данных перед операциями с датами.
— Обрабатывайте некорректные даты сразу при загрузке.
— Это критично для корректного анализа и отчетности.

Библиотека дата-сайентиста #междусобойчик
🆕 Свежие новости для дата‑сайентистов

🚀 Модели, релизы и агентные системы
Gemini 2.5 раскрыла секреты мышления — модель от DeepMind играла в Pokémon 813 часов, делая десятки тысяч инференс-циклов
Mistral Small 3.2 (24B) — улучшен 5-shot MMLU, tool calling и инструкции
Gemma 3n — новый open‑релиз от Google, уже 160M+ загрузок
Google AI‑Colab теперь доступен всем
Gemini CLI — агент прямо в терминале
ElevenLabs 11ai — голосовой ассистент с подключением инструментов

🧠 Исследования и инсайты
Reinforcement Learning Explained — без математики и жаргона
Evaluating Long‑Context Q&A — как оценивать модели на длинных контекстах
Tensor Cores: от Volta до Blackwell — эволюция матричных блоков NVIDIA
Sam Altman: путь OpenAI и взгляд в будущее

📚 Обучение и практика
Новый курс от Andrew Ng — Building with Llama 4
Vision Transformer — как трансформеры «увидели» мир
Инференс с множеством LoRA-адаптеров
Компьютерное зрение в сельском хозяйстве
Компьютерное зрение для начинающих
HandReader и Znaki — архитектура и датасет для русского дактиля
Главное по ML/DL: SVD, PCA, бустинг и многое другой

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

Data Scientist (Customer Value Proposition), удалёнка

Data Analyst (Маркетинг) — от 180 000 ₽, удалёнка

ML-разработчик/Data science — до 350 000 ₽, гибрид (Москва)

Аналитик данных/Data Analyst/BI-аналитик — от 120 000 до 150 000 ₽, офис (Москва)

Data Scientist / Ведущий специалист по NLP/LLM — от 300 000 ₽, гибрид (Москва)

➡️ Еще больше топовых вакансий — в нашем канале Data jobs

Библиотека дата-сайентиста
Please open Telegram to view this post
VIEW IN TELEGRAM
🔍 How-to: как отладить модель, если метрика «просела» после дообучения

Ситуация: вы дообучили модель, но метрика резко ухудшилась. Что делать?

Вот пошаговая инструкция для анализа и устранения проблемы:

1️⃣ Сравните распределения признаков на train, valid и test

Проверьте, изменилось ли распределение важных признаков:
import seaborn as sns

for col in important_features:
sns.kdeplot(train[col], label='train')
sns.kdeplot(test[col], label='test')
plt.title(col)
plt.show()


👉 Если распределения отличаются — возможен data drift.

2️⃣ Проверьте целевую переменную

— Не изменилось ли определение таргета?
— Нет ли утечки целевой переменной (label leakage)?
— Не изменилась ли доля классов?

df['target'].value_counts(normalize=True)


3️⃣ Посмотрите на топ ошибок модели

Соберите DataFrame с предсказаниями и ошибками:
df['pred'] = model.predict(X)
df['error'] = abs(df['pred'] - df['target'])
df.sort_values('error', ascending=False).head(10)


👉 Так вы найдёте выбросы или сегменты, где модель работает плохо.

4️⃣ Используйте SHAP или Permutation Importance

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

5️⃣ Убедитесь, что пайплайн не «сломался»

После дообучения могли потеряться:
— нормализация или масштабирование признаков;
— one-hot encoding;
— порядок признаков в модели.

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

В металлургии каждая секунда на счету — чугун быстро остывает, оборудование простаивает, а убытки растут.

Раньше НЛМК контролировал ковши с расплавленным металлом «по старинке»: звонками и рациями. Теперь же у каждого ковша есть свой «мозг»: система в реальном времени отслеживает его местоположение, температуру и маршрут движения.

Результат? Значительная экономия и повышение эффективности.

🔗 Подробнее по ссылке в новой статье: https://proglib.io/sh/mXKzViUZen

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔓 Анализ данных с новой Python-библиотекой для Data Commons

Data Commons — это открытый граф знаний от Google, который объединяет сотни тысяч статистических переменных из множества публичных источников. Он упрощает доступ к важной информации по демографии, экономике, здравоохранению и другим сферам.

Теперь доступна новая версия Python-клиента Data Commons на базе V2 REST API! Эта библиотека позволяет легко выполнять запросы, получать данные и анализировать их в привычном Python-окружении.

Что нового в V2:
Поддержка Pandas DataFrame — работать с данными стало еще удобнее
Упрощённые методы для частых запросов
Управление API-ключами прямо из клиента
Поддержка нескольких форматов ответа (JSON, dict, list)
Интеграция с Pydantic для проверки типов и валидации данных
Возможность работать с публичными и приватными инстансами Data Commons, включая кастомные на Google Cloud

Пример использования:
variable = "sdg/SI_POV_DAY1"  # Доля населения ниже международной черты бедности  
df = client.observations_dataframe(variable_dcids=variable, date="all", parent_entity="Earth", entity_type="Continent")
df = df.pivot(index="date", columns="entity_name", values="value")

ax = df.plot(kind="line")
ax.set_xlabel("Year")
ax.set_ylabel("%")
ax.set_title("Proportion of population below international poverty line")
ax.legend()
ax.plot()


Вам не нужно копаться в куче CSV и API — просто берите данные и начинайте исследовать!

🔥 Для дата-сайентистов и аналитиков, которые хотят работать с крупными наборами данных быстрее и эффективнее.

➡️ Подробнее: https://clc.to/epdx-A

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Последняя неделя перед стартом курса по AI-агентам

Старт курса уже 5го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место

На курсе:
разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах

📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями

И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»

👉 Курс здесь
🔍 Как искать аномалии в данных без моделей

1️⃣ Статистический анализ

➡️ Значения за пределами 3σ (стандартных отклонений)
Вычислите среднее и стандартное отклонение, найдите значения, выходящие за ±3σ — они часто считаются аномалиями.

➡️ Используйте квантильный анализ (IQR)
Рассчитайте интерквартильный размах (IQR = Q3 – Q1).

Аномалии — это точки вне диапазона:
[Q1 - 1.5 * IQR, Q3 + 1.5 * IQR].

2️⃣ Визуализация данных

➡️ Boxplot — визуально выявляет выбросы.
➡️ Гистограмма — смотрите на распределение и выбивающиеся столбцы.
➡️ Scatter plot — для выявления выбросов в двухмерных данных.
➡️ Парные графики — помогает понять аномалии в связях между переменными.

3️⃣ Логика и доменная экспертиза

➡️ Проверяйте данные на логические ошибки:
— отрицательные значения там, где их быть не может,
— даты в будущем или прошлом вне контекста,
— значения параметров вне физических или бизнес-ограничений.

4️⃣ Проверка на дубликаты

➡️ Часто дубликаты могут «маскировать» аномалии или искажать статистику.
➡️ Используйте .duplicated() или аналогичные методы.

5️⃣ Сравнение с историческими данными

➡️ Сравните текущие значения с типичными значениями за предыдущие периоды.
➡️ Внезапные резкие изменения — потенциальные аномалии.

6️⃣ Использование агрегированных метрик

➡️ Анализируйте суммарные и средние значения по группам.
➡️ Если одна группа сильно выделяется — это может быть аномалия.

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🧠 «Поиграйся с LLM, почитай про агентов — и сам поймёшь, как это работает»

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

Поиграйся — это как?
Потыкать пару промптов в ChatGPT и решить, что теперь ты можешь строить мультиагентные системы? 🤡 Ну-ну.

AI-агенты — это не «очередная обёртка над GPT». Это архитектура. Состояния, инструменты, цепочки вызовов, память, оценка качества и адекватность поведения.

➡️ Чтобы разобраться, нужно:
— понимать, как устроен LLM под капотом
— уметь подключать внешние данные (RAG, retrievers, rerankers)
— уметь масштабировать и дебажить поведение агентов
— разбираться в фреймворках вроде AutoGen, CrewAI, LangChain
— знать, как всё это тащится в прод

Если вы реально хотите не «поиграться», а научиться собирать рабочие агентные системы — у нас стартует курс по разработке ИИ-агентов 5го июля

P.S: не упусти свой шанс, промокод: LASTCALL на 10.000₽
🎧 Что послушать: из ноутбука в продакшн: реальный путь Data Scientist’а

Работаете в Jupyter, а хотите в прод?
Этот выпуск подкаста — как раз об этом.

🔍 Тема — как перейти от локальных ноутбуков и экспериментального анализа к настоящим production-системам в Data Science.

Обсуждают подходы, инструменты и культуру разработки, когда DS — это не просто ресёрч, а часть продукта.

➡️ Cсылка на подкаст: https://clc.to/A0ezRA

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😤 Пока вы думаете — остальные уже учатся строить системы, которые работают за них

24 часа до старта курса по AI-агентам. Самое время задуматься о прокачке скиллов, потому что места ограничены!

Если вы до сих пор думаете, что LLM — это просто «вызов через API», то вы рискуете очень скоро оказаться за бортом индустрии.

Модели больше не в центре. Решают те, кто умеет собирать интеллектуальные системы, а не просто «дообучать модельку».

➡️ Что вы потеряете, если не впишетесь:
— навык, который уже востребован на рынке
— понимание, как из GPT сделать полноценного помощника, агента или продукт
— шанс догнать тех, кто уже перешёл на следующий уровень

📌 Курс стартует уже завтра
— 5 вебинаров, живая практика, код, разборы, продовые кейсы
— без «посмотрите статью», только то, что реально нужно

Спикеры: Никита Зелинский (МТС), Диана Павликова, Макс Пташник, Дима Фомин — те, кто реально собирает агентные системы, а не просто про них пишет.

Старт уже завтра — забронируйте место на курсе сейчас
💭 Почему LLM работают с токенами, а не словами

Большие языковые модели (LLM) не читают текст так, как мы — они видят токены. Это не совсем слова и не просто символы. Зачем вообще нужен токенизация и почему слова — не лучший вариант? Рассказываем.

🔎 Почему не просто слова

Слова — неудобны: их много, они часто пишутся с ошибками, в разных языках — разные формы.
Если модель не видела слово раньше, она теряется.
Слова вроде running, runs, runner — все о разном, хотя корень один. Слово как единица — слишком «грубая».

🔎 Первые решения

До LLM токенизацией занимались FastText и char embeddings:
— FastText разбивал слова на подстроки (например, unhappinessun, happi, ness) и пытался понять смысл по кусочкам.
— Character embeddings брали каждый символ как токен. Работает для опечаток, но плохо понимает смысл (dockduck? Нет же).

🔎 Взлет LLM: умная токенизация

Современные LLM (GPT, Claude и др.) используют Byte-Pair Encoding (BPE):
— Начинаем с символов, потом часто встречающиеся пары объединяем.
— Пример: loweringlow, er, ing
— Получаем разумные токены, экономим память и длину последовательностей.

🔎 Новые подходы

— Byte-level токенизация: работает напрямую с байтами (даже с эмодзи и редкими символами).
— Морфемная токенизация: разбивает слова по смысловым единицам (misunderstandingmis, understand, ing). Хорошо для языков со сложной грамматикой, но требует знаний языка.

🔎 Что дальше: токены уходят

На горизонте — Large Concept Models (LCM):
Они строят представление сразу на уровне фраз или предложений, а не отдельных токенов:
— Больше смысла, меньше ошибок
— Лучшая многозадачность и кросс-языковое понимание
— Меньше параметров = ниже стоимость

📌 Если вам интересны детали токенизации, статья обязательно к прочтению: https://clc.to/6bmuZA

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/07/04 19:43:35
Back to Top
HTML Embed Code: