Forwarded from xCode Journal
Скотт Чакон считает, что классический Git УСТАРЕЛ И плохо работает в мире, где код пишут не только люди, но и ИИ-агенты. Поэтому он создал пару лет назад GitButler и теперь выкатил CLI-версию. Главная его идея — более удобный интерфейс и отсутствие классического переключения между ветками + параллельная работа.
Вообще внутри много прикольных фич — сразу видно, что разрабатывал не новичок
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍6
Forwarded from xCode Journal
Скилл из 4 инструкций, которые меняют поведение Claude Code. Благодаря им модель больше планирует, проверяет себя, пишет аккуратнее и меньше галлюцинирует. Автор вдохновился размышлениями отца вайбкодинга и формализовал его подход к работе с кодом и ИИ.
Чтобы вы понимали — репа набрала почти 40 тысяч звезд за пару дней.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤1
Forwarded from xCode Journal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17🔥9❤2⚡1
Ошибки при train/test split
Train/test split — кажется самой простой частью ML.
Но именно здесь чаще всего ломают всю модель.
И самое опасное — ты можешь даже не заметить
Data Leakage — тихий убийца моделей
Случайный split там, где нельзя
Игнорирование времени
4️⃣ Дисбаланс классов в split
Слишком маленький test
Тест используется как валидация
Дубликаты в train и test
Неправильный split в CV
Главный инсайт
Train/test split — это не про «разделить данные».
Это про симуляцию реального мира.
Если split не отражает прод —
все метрики бесполезны.
В одном предложении
Плохой split может сделать плохую модель «идеальной» —
до момента, когда она выйдет в прод.
Train/test split — кажется самой простой частью ML.
Но именно здесь чаще всего ломают всю модель.
И самое опасное — ты можешь даже не заметить
Data Leakage — тихий убийца моделей
Ты случайно «подсматриваешь» в тест.
Примеры:
👉 нормализация на всём датасете до split
👉 target encoding на всех данных
👉 feature, напрямую связанная с таргетом
Модель показывает космический скор,
а в проде — провал.
Случайный split там, где нельзя
Ты делаешь random split…
но данные зависимы.
Примеры:
👉 временные ряды
👉 пользователи (один и тот же user в train и test)
👉 сессии
Модель узнаёт данные, а не обобщает.
Игнорирование времени
В задачах с временем:
👉 ❌ случайный split
👉 ✅ train = прошлое, test = будущее
Иначе ты:
👉 обучаешься на будущем
👉 предсказываешь прошлое
Это не ML. Это читерство.
4️⃣ Дисбаланс классов в split
Ты сделал split и получил:
👉 train: 5% positive
👉 test: 1% positive
Метрики начинают врать.
Решение:
👉 stratified split
Слишком маленький test
Test = 50 объектов
Accuracy = 90%
Звучит круто.
Но это статистический шум.
Маленький test = ненадёжная оценка.
Тест используется как валидация
Классическая ошибка:
👉 обучился
👉 посмотрел на test
👉 подкрутил модель
👉 снова посмотрел
Это уже не test. Это validation 2.0.
Дубликаты в train и test
Если один и тот же объект попал в обе выборки:
Модель просто запоминает.
Особенно критично:
👉 CV
👉 e-commerce
👉 табличные данные с ID
Неправильный split в CV
Cross-validation тоже можно сломать:
👉 leakage между фолдами
👉 группы не учитываются
👉 time-series перемешаны
Используй:
👉 GroupKFold
👉 TimeSeriesSplit
Главный инсайт
Train/test split — это не про «разделить данные».
Это про симуляцию реального мира.
Если split не отражает прод —
все метрики бесполезны.
В одном предложении
Плохой split может сделать плохую модель «идеальной» —
до момента, когда она выйдет в прод.
👍12👎2
Feature Engineering важнее выбора модели
Самый непопулярный факт в ML:
модель — это не главное.
Можно часами выбирать между:
…и получить +1% к качеству.
А можно поменять фичи — и получить +20%.
Разберёмся, почему так 👇
Модель учится только на том, что ты ей дал
Пример из жизни
Feature Engineering = внедрение знаний о задаче
Где FE особенно решает
Почему все игнорируют FE
Главный инсайт
ML — это не соревнование моделей.
Это соревнование представлений данных.
В одном предложении
Лучший способ улучшить модель —
👉 перестать тюнить модель и начать тюнить данные
Самый непопулярный факт в ML:
модель — это не главное.
Можно часами выбирать между:
XGBoost
LightGBM
CatBoost…и получить +1% к качеству.
А можно поменять фичи — и получить +20%.
Разберёмся, почему так 👇
Модель учится только на том, что ты ей дал
Garbage in → garbage out
Если признаки:
- шумные
- нерелевантные
- плохо отражают задачу
👉 никакая модель не спасёт
Даже самая большая.
Пример из жизни
Задача: предсказать отток клиентов
Фичи:
- возраст
- город
- тариф
Модель: ок, но слабый результат
Добавили:
- время с последнего действия
- частоту использования
- изменение активности
👉 резкий рост качества
Почему?
Потому что фичи начали отражать реальное поведение
Feature Engineering = внедрение знаний о задаче
Модель не знает:
- бизнес
- контекст
- причинно-следственные связи
Зато ты знаешь.
И когда ты создаёшь фичи —
ты “вшиваешь” это знание в данные.
Модель vs Фичи
Что меняем → эффект
Модель → +1–5%
Гиперпараметры → +1–3%
Feature Engineering → +10–50%
Где FE особенно решает
- Табличные данные
- Маленькие датасеты
- Бизнес-задачи
👉 там, где нет миллионов примеров, фичи — это всё
Когда модель важнее
- CV (изображения)
- NLP (тексты)
- Speech
👉 там фичи учатся автоматически
Почему все игнорируют FE
Потому что:
- это сложно
- это долго
- нет “магической кнопки”
- требует понимания данных
Гораздо проще:
“давай попробуем ещё одну модель”
Главный инсайт
ML — это не соревнование моделей.
Это соревнование представлений данных.
В одном предложении
Лучший способ улучшить модель —
👉 перестать тюнить модель и начать тюнить данные
⚡5❤4
Forwarded from xCode Journal
This media is not supported in your browser
VIEW IN TELEGRAM
Заводчане в Индии носят камеры на голове, чтобы на этих видео потом могли обучать роботов
Для корпораций это фактически бесплатно, а датасет выходит уникальным — таких данных нет в интернете и их невозможно сгенерировать синтетически.
Так что да, люди сами помогают создавать себе замену.
✖️ xCode Journal
Для корпораций это фактически бесплатно, а датасет выходит уникальным — таких данных нет в интернете и их невозможно сгенерировать синтетически.
Так что да, люди сами помогают создавать себе замену.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👀1
Data Leakage: как незаметно сломать модель
Самая коварная ошибка в ML — это не плохая модель.
Это data leakage.
Потому что:
👉 модель показывает идеальные метрики
👉 ты радуешься
👉 выкатываешь в прод
👉 всё разваливается
Что такое Data Leakage
Data leakage — это ситуация, когда модель
получает доступ к информации из будущего или из target’а,
которой не будет в реальном использовании.
Почему это так опасно
Потому что leakage:
👉 не очевиден
👉 не даёт ошибок
👉 сильно улучшает метрики
Классические примеры leakage
1. Нормализация до split
Сделали scaling на всём датасете,
а потом разбили на train/test.
2. Target encoding на всех данных
Посчитали средний target по категории
используя весь датасет.
3. Фичи из будущего
Пример:
👉 предсказываем отток
👉 используем действия после момента предсказания
4. Дубликаты
Один и тот же объект:
👉 в train
👉 и в test
5. Неправильный split
Временные ряды:
👉 случайный split
Как понять, что у тебя leakage
Сигналы:
👉 слишком высокий score
👉 огромный разрыв между offline и продом
👉 модель «слишком уверена»
👉 странно важные фичи
Как защититься
1. Делай split до любых преобразований
Сначала:
👉 train / test
Потом:
👉 scaling
👉 encoding
👉 feature engineering
2. Следи за временем
👉 train = прошлое
👉 test = будущее
3. Используй pipeline
Все трансформации:
👉 обучаются только на train
👉 применяются к test
4. Проверяй фичи
Задай вопрос:
Если нет — удаляй.
5. Делай sanity check
👉 обучись на случайных данных
👉 убери подозрительные фичи
Главный инсайт
В одном предложении
Самая коварная ошибка в ML — это не плохая модель.
Это data leakage.
Потому что:
👉 модель показывает идеальные метрики
👉 ты радуешься
👉 выкатываешь в прод
👉 всё разваливается
И ты не понимаешь почему.
Что такое Data Leakage
Data leakage — это ситуация, когда модель
получает доступ к информации из будущего или из target’а,
которой не будет в реальном использовании.
Модель читерит, а не учится.
Почему это так опасно
Потому что leakage:
👉 не очевиден
👉 не даёт ошибок
👉 сильно улучшает метрики
Чем лучше скор — тем подозрительнее.
Классические примеры leakage
1. Нормализация до split
Сделали scaling на всём датасете,
а потом разбили на train/test.
Модель уже «видела» test.
2. Target encoding на всех данных
Посчитали средний target по категории
используя весь датасет.
В train попала информация из test.
3. Фичи из будущего
Пример:
👉 предсказываем отток
👉 используем действия после момента предсказания
Модель знает будущее.
4. Дубликаты
Один и тот же объект:
👉 в train
👉 и в test
Модель просто запоминает.
5. Неправильный split
Временные ряды:
👉 случайный split
Модель обучается на будущем.
Как понять, что у тебя leakage
Сигналы:
👉 слишком высокий score
👉 огромный разрыв между offline и продом
👉 модель «слишком уверена»
👉 странно важные фичи
Если выглядит слишком хорошо — скорее всего, так и есть.
Как защититься
1. Делай split до любых преобразований
Сначала:
👉 train / test
Потом:
👉 scaling
👉 encoding
👉 feature engineering
2. Следи за временем
👉 train = прошлое
👉 test = будущее
3. Используй pipeline
Все трансформации:
👉 обучаются только на train
👉 применяются к test
4. Проверяй фичи
Задай вопрос:
Эта информация доступна в момент предсказания?
Если нет — удаляй.
5. Делай sanity check
👉 обучись на случайных данных
👉 убери подозрительные фичи
Если качество не падает — что-то не так.
Главный инсайт
Data leakage — это не баг.
Это иллюзия качества.
В одном предложении
Если модель слишком хороша —
сначала проверь leakage, а потом радуйся.
❤4🔥2
Роскошный максимум: получить приглашение в команду SberAds за один день! 😉
Сделать это можно на One Day Offer* для Data Analyst**, который пройдёт уже 25 апреля. Сбер ждёт специалистов, которые готовы:
✔️ создавать и улучшать модели для real-time аукционов
✔️ трансформировать SberAds — вывести на пик эффективности, качества и релевантности рекламы
✔️ стать частью команды из 8000+ коллег (это вау! 🤩)
Занимай место в проекте мечты!
* One Day Offer — предложение о работе за один день.
** Data Analyst — аналитик данных.
Сделать это можно на One Day Offer* для Data Analyst**, который пройдёт уже 25 апреля. Сбер ждёт специалистов, которые готовы:
✔️ создавать и улучшать модели для real-time аукционов
✔️ трансформировать SberAds — вывести на пик эффективности, качества и релевантности рекламы
✔️ стать частью команды из 8000+ коллег (это вау! 🤩)
Занимай место в проекте мечты!
* One Day Offer — предложение о работе за один день.
** Data Analyst — аналитик данных.
Forwarded from xCode Journal
На GitHub появился прокси, который подменяет API и гоняет запросы через бесплатные или локальные модели. Запросы перенаправляются к NVIDIA NIM (~40 запросов в минуту бесплатно), OpenRouter, где более 100 моделей, а также через LM Studio или llama.cpp.
Весь остальной функционал на месте — агентский режим, работа с файлами и другие фичи будут доступны.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👎3🔥2
Большие данные требуют порядка, а платформа — инструментов, которые этот порядок поддерживают. Такой вывод можно сделать после митапа YTsaurus, посвященного трехлетию выхода платформы в опенсорс.
Максим Бабенко — руководитель команды, преподаватель ШАДа и ВШЭ, кандидат физико-математических наук — рассказал о развитии платформы и её возможностях для ML. В Яндексе YTsaurus активно используется как основная инфраструктура для запуска GPU-вычислений. Все обучение моделей и batch-инференс делается при помощи YTsaurus.
Команда активно развивает платформу, появились разные вспомогательные инструменты и микросервисы, за последний год вышло много обновлений.
Максим Бабенко — руководитель команды, преподаватель ШАДа и ВШЭ, кандидат физико-математических наук — рассказал о развитии платформы и её возможностях для ML. В Яндексе YTsaurus активно используется как основная инфраструктура для запуска GPU-вычислений. Все обучение моделей и batch-инференс делается при помощи YTsaurus.
Команда активно развивает платформу, появились разные вспомогательные инструменты и микросервисы, за последний год вышло много обновлений.
ytsaurus.tech
YTsaurus Блог
YTsaurus — платформа с открытым исходным кодом, способная хранить и обрабатывать большие данные для десятков тысяч пользователей одновременно. Выполняйте задачи по Batch-обработке, Ad hoc аналитике, OLTP, машинному обучению, построению хранилищ данных и ETL!
❤2👍2👎2🔥1
Forwarded from xCode Journal
This media is not supported in your browser
VIEW IN TELEGRAM
Этот сервис на Go даёт OpenAI-совместимый API поверх всего зоопарка: от OpenAI и Claude до Groq и Ollama. По сути это уже API-шлюз для LLM, как nginx когда-то для веба.
Главный кайф — двухслойный кэш
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1👎1
Random Forest vs Gradient Boosting — реальное сравнение
Самый частый вопрос в табличных данных:
что выбрать — Random Forest или Gradient Boosting?
Но давай разберёмся по-честному, без мифов.
Что такое Random Forest
Это ансамбль деревьев, где:
👉 каждое дерево обучается независимо
👉 используются случайные подвыборки данных и фич
Что такое Gradient Boosting
Это ансамбль деревьев, где:
👉 каждое следующее дерево исправляет ошибки предыдущего
👉 обучение идёт последовательно
Главное отличие
👉 Random Forest → деревья независимы
👉 Gradient Boosting → деревья зависят друг от друга
👉 RF = параллель
👉 GB = последовательность
Качество модели
В большинстве задач:
👉 Gradient Boosting выигрывает
Почему:
👉 лучше улавливает сложные зависимости
👉 оптимизирует ошибку напрямую
Поэтому:
👉 XGBoost
👉 LightGBM
👉 CatBoost
Переобучение
Random Forest:
👉 устойчив к переобучению
👉 работает «из коробки»
Gradient Boosting:
👉 легко переобучается
👉 требует настройки
Скорость
Обучение:
👉 RF → быстрее и параллелится
👉 GB → медленнее (последовательность)
Инференс:
👉 часто сопоставим
Чувствительность к данным
Random Forest:
👉 менее чувствителен к шуму
👉 проще в использовании
Gradient Boosting:
👉 чувствителен к:
👉 шуму
👉 выбросам
👉 плохим фичам
Когда выбирать Random Forest
👉 нужен быстрый baseline
👉 мало времени на тюнинг
👉 данные шумные
👉 нужна стабильность
Когда выбирать Gradient Boosting
👉 нужна максимальная точность
👉 есть время на тюнинг
👉 данные относительно чистые
👉 важен результат
Главный инсайт
В одном предложении
Самый частый вопрос в табличных данных:
что выбрать — Random Forest или Gradient Boosting?
Ответ, который никто не любит:
зависит от задачи.
Но давай разберёмся по-честному, без мифов.
Что такое Random Forest
Это ансамбль деревьев, где:
👉 каждое дерево обучается независимо
👉 используются случайные подвыборки данных и фич
Идея: уменьшить variance за счёт усреднения.
Что такое Gradient Boosting
Это ансамбль деревьев, где:
👉 каждое следующее дерево исправляет ошибки предыдущего
👉 обучение идёт последовательно
Идея: минимизировать ошибку шаг за шагом.
Главное отличие
👉 Random Forest → деревья независимы
👉 Gradient Boosting → деревья зависят друг от друга
👉 RF = параллель
👉 GB = последовательность
Качество модели
В большинстве задач:
👉 Gradient Boosting выигрывает
Почему:
👉 лучше улавливает сложные зависимости
👉 оптимизирует ошибку напрямую
Поэтому:
👉 XGBoost
👉 LightGBM
👉 CatBoost
Стали стандартом индустрии.
Переобучение
Random Forest:
👉 устойчив к переобучению
👉 работает «из коробки»
Gradient Boosting:
👉 легко переобучается
👉 требует настройки
GB мощнее, но опаснее.
Скорость
Обучение:
👉 RF → быстрее и параллелится
👉 GB → медленнее (последовательность)
Инференс:
👉 часто сопоставим
Чувствительность к данным
Random Forest:
👉 менее чувствителен к шуму
👉 проще в использовании
Gradient Boosting:
👉 чувствителен к:
👉 шуму
👉 выбросам
👉 плохим фичам
Зато раскрывает хороший feature engineering.
Когда выбирать Random Forest
👉 нужен быстрый baseline
👉 мало времени на тюнинг
👉 данные шумные
👉 нужна стабильность
«Запустил и работает».
Когда выбирать Gradient Boosting
👉 нужна максимальная точность
👉 есть время на тюнинг
👉 данные относительно чистые
👉 важен результат
«Выжать максимум».
Главный инсайт
Random Forest — надёжный середняк.
Gradient Boosting — инструмент для победы.
В одном предложении
Хочешь быстро и стабильно → Random Forest.
Хочешь максимум качества → Gradient Boosting.
❤11👍1
Forwarded from xCode Journal
Разработчик Митчелл Хашимото, создатель популярного эмулятора терминала Ghostty, переносит проект из-за проблем со стабильностью платформы.
«Я пользователь GitHub под номером 1299, присоединился в феврале 2008 года. Я заходил на GitHub почти каждый день в течение более 18 лет. Для меня никогда не было вопроса, куда размещать свои проекты: всегда GitHub. Мне очень грустно это говорить, но пришло время уходить», — пишет он.
Please open Telegram to view this post
VIEW IN TELEGRAM
👀8❤3
Forwarded from xCode Journal
Так говорит айтишник Disney. Дело в том, что компания Disney сделала для своих программистов «панель мониторинга внедрения ИИ» с лидербордом. Чем больше дней подряд ты используешь Cursor или Claude, тем больше у тебя ачивок.
Некоторые сотрудники говорят, что чувствуют давление «максимально использовать токены».
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11❤2
This media is not supported in your browser
VIEW IN TELEGRAM
🤔Что происходит, когда AI выходит за пределы прототипа?
20 мая в 15:00 приглашаем на Inside AI Meetup от Wildberries & Russ.
Там обсудят реальные кейсы: от высоконагруженной модерации с векторным поиском и AIOps-подходов к управлению ML-сервисами до практики построения RAG-систем, тонкостей реранкинга и реальных этапов запуска LLM-продуктов.
Среди спикеров эксперты Wildberries & Russ, MWS, Avito, Сбера, Альфа-Банка, red_mad_robot. Принять участие советуем senior ML/AI инженерам, MLE, DS, инженерам платформ и всем, кто строит или масштабирует AI-системы в продакшене.
Митап пройдет в Москве + будет трансляция. Подробности и регистрация — на сайте.
20 мая в 15:00 приглашаем на Inside AI Meetup от Wildberries & Russ.
Там обсудят реальные кейсы: от высоконагруженной модерации с векторным поиском и AIOps-подходов к управлению ML-сервисами до практики построения RAG-систем, тонкостей реранкинга и реальных этапов запуска LLM-продуктов.
Среди спикеров эксперты Wildberries & Russ, MWS, Avito, Сбера, Альфа-Банка, red_mad_robot. Принять участие советуем senior ML/AI инженерам, MLE, DS, инженерам платформ и всем, кто строит или масштабирует AI-системы в продакшене.
Митап пройдет в Москве + будет трансляция. Подробности и регистрация — на сайте.
❤4👀3🔥2👎1
Как бороться с переобучением в нейросетях
Переобучение — это момент, когда модель:
👉 идеально знает train
👉 и плохо работает на новых данных
Разберём, как с этим бороться на практике.
1. Больше данных
Самый надёжный способ.
Если данных мало:
👉 собирай новые
👉 делай data augmentation
👉 используй синтетические данные
2. Regularization
Добавляем штраф за сложность модели.
Основные варианты:
👉 L2 (weight decay)
👉 L1
3. Dropout
Во время обучения случайные нейроны «выключаются».
Что происходит:
👉 модель не может полагаться на конкретные связи
👉 учится быть более устойчивой
Обычно используют:
👉 0.2 – 0.5
4. Early Stopping
Следим за валидацией:
👉 train loss падает
👉 val loss сначала падает, потом растёт
Это один из самых эффективных методов.
5. Упростить модель
Иногда решение очевидное:
👉 меньше слоёв
👉 меньше параметров
👉 проще архитектура
6. Data Augmentation
Особенно важно для:
CV:
👉 повороты
👉 шум
👉 кропы
NLP:
👉 перефразирование
👉 замены
7. Batch Normalization
Помогает:
👉 стабилизировать обучение
👉 немного снижает переобучение
8. Правильная валидация
Если плохой split — ты не заметишь проблему.
Используй:
👉 train / val / test
👉 k-fold при малых данных
Главный инсайт
Переобучение — это сигнал:
👉 либо мало данных
👉 либо модель слишком сложная
👉 либо обучение настроено неправильно
В одном предложении
Переобучение — это момент, когда модель:
👉 идеально знает train
👉 и плохо работает на новых данных
Она запоминает, а не обобщает.
Разберём, как с этим бороться на практике.
1. Больше данных
Самый надёжный способ.
Если данных мало:
👉 собирай новые
👉 делай data augmentation
👉 используй синтетические данные
Больше разнообразия = меньше шансов запомнить шум.
2. Regularization
Добавляем штраф за сложность модели.
Основные варианты:
👉 L2 (weight decay)
👉 L1
Меньше веса → проще модель → меньше overfitting.
3. Dropout
Во время обучения случайные нейроны «выключаются».
Что происходит:
👉 модель не может полагаться на конкретные связи
👉 учится быть более устойчивой
Обычно используют:
👉 0.2 – 0.5
4. Early Stopping
Следим за валидацией:
👉 train loss падает
👉 val loss сначала падает, потом растёт
Останавливаем обучение в момент роста val loss.
Это один из самых эффективных методов.
5. Упростить модель
Иногда решение очевидное:
👉 меньше слоёв
👉 меньше параметров
👉 проще архитектура
Большая модель легче переобучается.
6. Data Augmentation
Особенно важно для:
CV:
👉 повороты
👉 шум
👉 кропы
NLP:
👉 перефразирование
👉 замены
Модель видит больше вариантов одного и того же.
7. Batch Normalization
Помогает:
👉 стабилизировать обучение
👉 немного снижает переобучение
Не основное решение, но усиливает остальные.
8. Правильная валидация
Если плохой split — ты не заметишь проблему.
Используй:
👉 train / val / test
👉 k-fold при малых данных
Иначе будешь оптимизировать иллюзию.
Главный инсайт
Переобучение — это сигнал:
👉 либо мало данных
👉 либо модель слишком сложная
👉 либо обучение настроено неправильно
В одном предложении
Чтобы уменьшить переобучение —
добавь данных или убери сложность модели.
❤5👍1👀1
Forwarded from xCode Journal
Запускаешь
npx autoskills, и он сканирует репозиторий: читает package.json и конфиги, определяет технологический стек и ставит нужные скиллы из проверенного списка. Короче, сильно экономит время на ручной настройке и поиске.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4