TGStat
TGStat
Type to search
Advanced channel search
  • flag English
    Site language
    flag Russian flag English flag Uzbek
  • Sign In
  • Catalog
    Channels and groups catalog Regional compilations Thematic compilations Платные каналы Search for channels
    Add a channel/group
  • Ratings
    Rating of channels Rating of groups Posts rating
    Ratings of brands and people
  • Analytics
  • Search by posts
  • Telegram monitoring
  • Promotion
    Advertising through Yandex Business Advertising in channels through TGStat Agency Advertising on TGStat.ru website
Maxim.ML - канал

15 Dec 2025, 12:43

Open in Telegram Share Report

Prev Next
🤓 Интересное из собесов на ML-щика

Давно не было про собесы, поэтому принес важные кейсы с моих собесов, что сейчас есть актуального по теории ML и практике в system design

⚡️ Кейс 1 - Алгоритмы бустинга

Вот тут писал 💡, что сделаю разбор, что я спрашиваю на собесах про catboost. Исправляюсь - сегодня расскажу про важные особенности основных алгоритмов, понимание которых отличает новичка от профи.

Джентельменский набор алгоритмов бустинга: Аманда, Линда и Роуз XGBoost, LightGBM и CatBoost


🌟 XGBoost (2016, original paper 📑)

🔵Особенность 1 - Функция оптимизации для деревьев. В objective явно добавляется штраф за сложность дерева (например, за число листьев и L2 по весам листьев), поэтому контроль переобучения вшит в математику алгоритма, а не только в внешние приемы вроде early stopping

🔵Особенность 2 - Параллелизация и системные оптимизации. XGBoost проектировался как scalable GBDT - поддерживает параллельный поиск сплитов (по фичам/блокам данных), эффективные структуры хранения и обработку данных, что дает выигрыш на больших датасетах и многоядерных CPU (один из самых первых!)

🔵Особенность 3 - Second-order boosting (использование гессиана). В XGBoost каждый шаг бустинга минимизирует локальную квадратичную аппроксимацию лосса: дерево строится так, чтобы наилучшим образом уменьшить сумму grad и hess вкладов по объектам, где градиенты задают направление исправления ошибок, а гессианы - насколько агрессивным может быть это исправление; из этой аппроксимации напрямую выводятся формулы и для выбора сплитов (gain), и для оптимальных весов листьев, что делает обучение и точнее, и стабильнее



🌟 LightGBM (2017, original paper 📑)

🔵Особенность 1 - Histogram-based обучение (binned признаки). Непрерывные величины бьются на бины, дальше сплиты считаются по гистограммам, что резко снижает стоимость поиска сплитов и память

🔵Особенность 2 - Leaf-wise (best-first) рост дерева. LightGBM обычно растит дерево в глубину по самому выгодному листу, а не layer-wise по уровням, из‑за чего при той же глубине может быть быстрее/точнее, но легче переобучиться (нужны ограничения вроде max_depth/num_leaves/min_data_in_leaf)

🔵Особенность 3 - Две ключевые оптимизации: GOSS и EFB. GOSS (Gradient-based One-Side Sampling) для уменьшения числа объектов при оценке gain и EFB (Exclusive Feature Bundling) для склейки взаимно-исключающих sparse фич (например one-hot), чтобы уменьшить effective features



🌟 CatBoost (2019, original paper 📑)

🔵Особенность 1 - Ordered boosting. Обучающие градиенты/статистики строятся по перестановке (permutation), чтобы снизить специфический target leakage, который возникает в классическом бустинге при некоторых схемах использования таргета/статистик

🔵Особенность 2 - Ordered target statistics / target encoding для categorical фичей. Категориальные признаки обрабатываются через целевые статистики по таргету, рассчитанные аккуратно (в ordered-порядке), чтобы не подглядывать в истинный таргет текущего объекта

🔵Особенность 3 - Симметричные деревья. Деревья одной структуры на уровне (один и тот же split на каждом уровне) дают быстрый инференс и удобную реализацию/векторизацию, ценой ограничений на класс деревьев (это часто ключ к скорости CatBoost на CPU)


⚡️ Кейс 2 - System design

Это свежий кейс с недавнего собеса. Кандидату надо было показать и рассказать, как бы он собрал RAG Pipeline удобного QnA поиска по корпоративной JIRA, и его итоговый результат на картинке (последняя картинка 🖼). Вы уже могли заметить проблемы в схеме, особенно если помните эту публикацию 💡, в которой детально разобрано, что надо реализовывать и как улучшать.

Вообще, вес секции system design сейчас подрос, особенно на middle+ позиции. И конечно одна из причин - активное внедрение copilots и coding agents. Становится критически важно держать в голове полную схем проекта, даже при разработке маленькой его части. Кстати, уже поднимал эту тему и писал об этом здесь 💡.


Всем сильных собесов 💪 и усидчивости при подготовке

730 0 61 2 20
Catalog
Channels and groups catalog Channels compilations Search for channels Add a channel/group
Ratings
Rating of Telegram channels Rating of Telegram groups Posts rating Ratings of brands and people
API
API statistics Search API of posts API Callback
Our channels
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Read
Академия TGStat Telegram Research 2019 Telegram Research 2021 Telegram Research 2023
Contacts
Справочный центр Support Email Jobs
Miscellaneous
Terms and conditions Privacy policy Public offer
Our bots
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot