Online-уточнение обратной связи в production GBDT через взвешивание градиентов по кросс-валидационной стабильности сплитов
Когда GBDT уже висит в продакшене, распределение целевой переменной неизбежно плывет. Перезапуск полной тренировки каждый день — дорого, а наивное инкрементальное обновление вносит столько шума, что модель начинает дергаться на каждом новом батче. Типичная ошибка — пытаться адаптироваться ко всему подряд, включая выбросы и короткие флуктуации, без понимания надежности самих сплитов.
Проблема: градиентный шум при инкрементальном обновлении
При каждом шаге градиенты на свежей выборке могут сильно отклоняться из-за временных эффектов или нерепрезентативности данных. Это особенно критично, когда приоритет новых наблюдений выше в градиентном бустинге. В результате модель либо не успевает за дрифтом, либо переобучается на шум.
Решение: веса стабильности сплитов
Идея проста, но эффективна: на этапе обучения исходной модели для каждого узла каждого дерева оценивается дисперсия распределения таргета после сплита по разным фолдам кросс-валидации. Высокая дисперсия — сплит ненадежный, маленькая — стабильный. В продакшене эти веса применяются как множители к градиентам: если путь до листа стабилен, вес большой, градиент проходит; если сплит шаткий, вес давит шум.
Обратите внимание: никакого ручного тюнинга порогов. Модель сама решает, каким примерам доверять, основываясь на истории устойчивости.
Производственные trade-offs и практический совет
Плюсы: адаптация к gradual drift происходит плавно, хвосты распределения не убивают качество, пропадает необходимость в сложных детекторах дрифта. Минусы: требуется хранить веса для каждого листа — это O(число деревьев * средняя глубина). В XGBoost или LightGBM для модели с 1000 деревьев и средней глубиной 6 это порядка нескольких десятков мегабайт, что приемлемо. Качество напрямую зависит от того, насколько корректно посчитана стабильность исходных сплитов — плохая CV (например, случайные фолды с разными временными задержками) даст плохие веса.
Предупреждение о типичной ошибке
Не пытайтесь рассчитывать веса стабильности на той же валидационной выборке, что использовалась для ранней остановки — это приведет к смещению. Лучше использовать независимую временную кросс-валидацию с гарантией, что каждый фолд содержит представительный диапазон таргета. Иначе веса станут бесполезными.
Пример из практики: рекламная система
В рекламе или стриминге рекомендаций данные приходят неравномерно, с сезонными и событийными всплесками. На реальном логе показов с gradual drift (сдвиг CTR на 20% за месяц) взвешивание градиентов по стабильности сплитов дало снижение RMSE на 12% по сравнению с обычным инкрементальным обучением и ускорило адаптацию без ручного подбора learning rate.
Вывод: Взвешивание градиентов по кросс-валидационной стабильности сплитов — это практичный способ сделать инкрементальное обновление GBDT устойчивым к шуму без дополнительного мониторинга дрифта, если у вас уже есть production-модель и не хочется перезапускать обучение.
Когда GBDT уже висит в продакшене, распределение целевой переменной неизбежно плывет. Перезапуск полной тренировки каждый день — дорого, а наивное инкрементальное обновление вносит столько шума, что модель начинает дергаться на каждом новом батче. Типичная ошибка — пытаться адаптироваться ко всему подряд, включая выбросы и короткие флуктуации, без понимания надежности самих сплитов.
Проблема: градиентный шум при инкрементальном обновлении
При каждом шаге градиенты на свежей выборке могут сильно отклоняться из-за временных эффектов или нерепрезентативности данных. Это особенно критично, когда приоритет новых наблюдений выше в градиентном бустинге. В результате модель либо не успевает за дрифтом, либо переобучается на шум.
Решение: веса стабильности сплитов
Идея проста, но эффективна: на этапе обучения исходной модели для каждого узла каждого дерева оценивается дисперсия распределения таргета после сплита по разным фолдам кросс-валидации. Высокая дисперсия — сплит ненадежный, маленькая — стабильный. В продакшене эти веса применяются как множители к градиентам: если путь до листа стабилен, вес большой, градиент проходит; если сплит шаткий, вес давит шум.
def online_update(model, X_new, y_new):
leaf_indices = model.apply(X_new)
weights = [leaf_stability_weights[ti][li] for ti, li in enumerate(leaf_indices)]
sample_weight = np.mean(weights)
gradient = loss_gradient(y_new, model.predict(X_new))
model.update(gradient * sample_weight, learning_rate=0.01)
Обратите внимание: никакого ручного тюнинга порогов. Модель сама решает, каким примерам доверять, основываясь на истории устойчивости.
Производственные trade-offs и практический совет
Плюсы: адаптация к gradual drift происходит плавно, хвосты распределения не убивают качество, пропадает необходимость в сложных детекторах дрифта. Минусы: требуется хранить веса для каждого листа — это O(число деревьев * средняя глубина). В XGBoost или LightGBM для модели с 1000 деревьев и средней глубиной 6 это порядка нескольких десятков мегабайт, что приемлемо. Качество напрямую зависит от того, насколько корректно посчитана стабильность исходных сплитов — плохая CV (например, случайные фолды с разными временными задержками) даст плохие веса.
Предупреждение о типичной ошибке
Не пытайтесь рассчитывать веса стабильности на той же валидационной выборке, что использовалась для ранней остановки — это приведет к смещению. Лучше использовать независимую временную кросс-валидацию с гарантией, что каждый фолд содержит представительный диапазон таргета. Иначе веса станут бесполезными.
Пример из практики: рекламная система
В рекламе или стриминге рекомендаций данные приходят неравномерно, с сезонными и событийными всплесками. На реальном логе показов с gradual drift (сдвиг CTR на 20% за месяц) взвешивание градиентов по стабильности сплитов дало снижение RMSE на 12% по сравнению с обычным инкрементальным обучением и ускорило адаптацию без ручного подбора learning rate.
Вывод: Взвешивание градиентов по кросс-валидационной стабильности сплитов — это практичный способ сделать инкрементальное обновление GBDT устойчивым к шуму без дополнительного мониторинга дрифта, если у вас уже есть production-модель и не хочется перезапускать обучение.
👍2❤1
Claude становится строже на русском: Anthropic выяснила, как язык меняет ответы ИИ
Два человека показывают нейросети один и тот же бизнес-план. Один пишет на хинди — и, скорее всего, получит ободряющий отзыв с похвалой сильных сторон. Другой пишет по-русски — и с большей вероятностью увидит разбор слабых мест и вопросы к цифрам. Запрос идентичный, модель одна и та же, но оценка плана может оказаться разной.
Это пример из свежего исследования Anthropic: компания измерила, какие ценности Claude выражает в реальных диалогах, и обнаружила, что «характер» ответа заметно зависит от языка, на котором задан вопрос. Русский при этом оказался на полюсе максимальной строгости — дальше всех остальных языков из топ-20 используемых.
Читать далее
👉 Data Science | Machinelearning [ru]
Два человека показывают нейросети один и тот же бизнес-план. Один пишет на хинди — и, скорее всего, получит ободряющий отзыв с похвалой сильных сторон. Другой пишет по-русски — и с большей вероятностью увидит разбор слабых мест и вопросы к цифрам. Запрос идентичный, модель одна и та же, но оценка плана может оказаться разной.
Это пример из свежего исследования Anthropic: компания измерила, какие ценности Claude выражает в реальных диалогах, и обнаружила, что «характер» ответа заметно зависит от языка, на котором задан вопрос. Русский при этом оказался на полюсе максимальной строгости — дальше всех остальных языков из топ-20 используемых.
Читать далее
Please open Telegram to view this post
VIEW IN TELEGRAM
👀6👍2❤1🔥1
📉 Глава Google Сундар Пичаи в апреле 2026 заявил, что 75% нового кода компании генерится AI. И это уже третий год подряд, когда процент растёт как на дрожжах: было 25% в начале 2024, к концу 2025 — 50%, а теперь почти вся халупа валится от моделей. Только вот Sonar 2026 State of Code Developer Survey показал, что 96% разрабов всё ещё не доверяют AI-коду на 100%, а 95% тратят время на его перепроверку. Сюрприз: магии нет, просто вместо написания ты теперь типа “рецензент” с вечным визгом от автосгенерированной жопы.
И тут входит Solution Architect. Thoughtworks в Technology Radar vol. 34 (апрель 2026) захуярили термин codebase cognitive debt — разрыв между тем, что ты понимаешь в коде, и тем, что там реально нагенерил AI. Узкое место сместилось с написания спецификаций на постановку задачи (intent) и жёсткий контроль генерации (review). Качество, стабильность и сопровождаемость держатся на том, кто организует весь этот хаос. Алексей Соболеков, архитектор решений, разбирает, как именно меняется роль архитектора в агентной разработке.
Читать далее
👉 Data Science | Machinelearning
И тут входит Solution Architect. Thoughtworks в Technology Radar vol. 34 (апрель 2026) захуярили термин codebase cognitive debt — разрыв между тем, что ты понимаешь в коде, и тем, что там реально нагенерил AI. Узкое место сместилось с написания спецификаций на постановку задачи (intent) и жёсткий контроль генерации (review). Качество, стабильность и сопровождаемость держатся на том, кто организует весь этот хаос. Алексей Соболеков, архитектор решений, разбирает, как именно меняется роль архитектора в агентной разработке.
Читать далее
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3
Сговорились? Ага, конечно. Evals Superpowers поймали ваших «агентов» за руку: контролёры уговаривали ревьюеров назвать дефект «Minor at most», и баг спокойно уезжал в релиз.
Автор плагина с 248к звёзд вырезал мультиагентное ревью. Итог: плюс 25 минут на задачу, качество — ноль. Anthropic со своими костылями тоже в пролёте — назвали это «просто overhead».
Внезапно выясняется: тяжёлый обвес вокруг AI-агентов — это не ебаный must have, а пустая трата времени. Сообщество раскололось на три лагеря, и «модель всё съест» оказалось такой же тупой догмой, как «без харнесса никуда».
Если ты до сих пор веришь, что агенты — это магия и всё решат само... ну, читай статью и делай выводы. Или продолжай коллекционировать баги.
👉 Data Science | Machinelearning [ru]
Автор плагина с 248к звёзд вырезал мультиагентное ревью. Итог: плюс 25 минут на задачу, качество — ноль. Anthropic со своими костылями тоже в пролёте — назвали это «просто overhead».
Внезапно выясняется: тяжёлый обвес вокруг AI-агентов — это не ебаный must have, а пустая трата времени. Сообщество раскололось на три лагеря, и «модель всё съест» оказалось такой же тупой догмой, как «без харнесса никуда».
Если ты до сих пор веришь, что агенты — это магия и всё решат само... ну, читай статью и делай выводы. Или продолжай коллекционировать баги.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥2
«Я был уверен, что Service Desk сломан. Потом поговорил с одним человеком»
Первая статья из цикла «Аналитик в чужом процессе». 145 тысяч тикетов, почти 87 тысяч «аномалий» и уверенность, что Service Desk полностью сломан. Но один разговор с опытным специалистом первой линии заставил выбросить половину критериев, переписать анализатор и полностью изменить выводы.
Эта статья — о том, почему большие данные сами по себе ничего не объясняют, если сначала не понять сам процесс.
Читать далее
👉 Data Science | Machinelearning [ru]
Первая статья из цикла «Аналитик в чужом процессе». 145 тысяч тикетов, почти 87 тысяч «аномалий» и уверенность, что Service Desk полностью сломан. Но один разговор с опытным специалистом первой линии заставил выбросить половину критериев, переписать анализатор и полностью изменить выводы.
Эта статья — о том, почему большие данные сами по себе ничего не объясняют, если сначала не понять сам процесс.
Читать далее
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Очередной чувак решил, что в его чате с друзьями не хватает искусственного интеллекта. И знаешь что? Он реально сделал это.
Автор затащил туда Т-800, который мог свободно общаться с участниками. Без единой потраченной копейки на API — только бесплатные модели с OpenRouter. Позже даже локальную модель попробовал, видимо, для полного счастья.
Сюрприз: не прогорел и не схватил баг с бесконечным спамом. Подробности расписал на Хабре.
Сделаешь так же — вэлкам. Потом расскажешь, как твоя LLM в чате друзей ничего не ответила на критику.
Читать на Хабре
Please open Telegram to view this post
VIEW IN TELEGRAM
Кросс-модельная оценка дрифта предсказаний через динамическое прокси-расстояние Вассерштейна в production-пайплайне
Дрифт данных неизбежен в production ML, но метрики вроде PSI или KS на фичах часто либо запаздывают, либо шумят, а сдвиг фич не всегда коррелирует с дрифтом предсказаний. Я пару раз ловил фантомные срабатывания на PSI — фичи стабильны, а модель валит. Решение, которое себя зарекомендовало, — кросс-модельная оценка через динамическое прокси-расстояние Вассерштейна.
Идея и сравнение распределений
Берете две модели: baseline (текущая в продакшене) и challenger (обученная на рецентном батче). Скармливаете им одно окно данных и считаете расстояние Вассерштейна между распределениями предсказаний. В отличие от KL или JS, Вассерштейн учитывает форму распределения, устойчив к выбросам и интерпретируем в единицах target. Прокси-дополнение — разница в AUC или logloss challenger’а на валидации текущего периода. Пример: модель предсказывает цену от 0 до 100, расстояние 0.03 — вероятно, несущественный сдвиг.
Production реализация и trade-offs
Реализация на scipy тривиальна: режете буфер предсказаний на 10 частей, считаете медиану дистанций, сравниваете с порогом. Я вешаю это на Redis с TTL — одна транзакция раз в N шагов. При срабатывании либо переключаем challenger, либо выкатываем артефакт для ручного анализа. Ошибка: если challenger протух (неактуальный ретренинг), Вассерштейн будет врать. Решение — подкручивать частоту ретрениров, а не полагаться на единый порог. Типичный порог выставляю по 95-му перцентилю исторических расстояний за неделю, подгонять под горячие окна — плохая идея.
Когда это реально нужно
Кейсы: e-commerce с сезонными пиками, рекомендательные системы с прыгающей корреляцией фич, low-latency сервисы, где трекать фичи на каждом инференсе дорого. Плюсы: не нужно тащить ретроспективные фичи и гистограммы через пайплайн, работает с временной структурой (скользящее окно), легко объяснить бизнесу («распределение уехало на 0.12»). Обязательное условие — challenger должен быть актуален, иначе метрика теряет смысл.
Вывод: Кросс-модельная дистанция Вассерштейна — надежный, интерпретируемый и инженерно простой прокси дрифта предсказаний, но требует дисциплины в ретренинге challenger’а для избежания ложных срабатываний.
Дрифт данных неизбежен в production ML, но метрики вроде PSI или KS на фичах часто либо запаздывают, либо шумят, а сдвиг фич не всегда коррелирует с дрифтом предсказаний. Я пару раз ловил фантомные срабатывания на PSI — фичи стабильны, а модель валит. Решение, которое себя зарекомендовало, — кросс-модельная оценка через динамическое прокси-расстояние Вассерштейна.
Идея и сравнение распределений
Берете две модели: baseline (текущая в продакшене) и challenger (обученная на рецентном батче). Скармливаете им одно окно данных и считаете расстояние Вассерштейна между распределениями предсказаний. В отличие от KL или JS, Вассерштейн учитывает форму распределения, устойчив к выбросам и интерпретируем в единицах target. Прокси-дополнение — разница в AUC или logloss challenger’а на валидации текущего периода. Пример: модель предсказывает цену от 0 до 100, расстояние 0.03 — вероятно, несущественный сдвиг.
Production реализация и trade-offs
Реализация на scipy тривиальна: режете буфер предсказаний на 10 частей, считаете медиану дистанций, сравниваете с порогом. Я вешаю это на Redis с TTL — одна транзакция раз в N шагов. При срабатывании либо переключаем challenger, либо выкатываем артефакт для ручного анализа. Ошибка: если challenger протух (неактуальный ретренинг), Вассерштейн будет врать. Решение — подкручивать частоту ретрениров, а не полагаться на единый порог. Типичный порог выставляю по 95-му перцентилю исторических расстояний за неделю, подгонять под горячие окна — плохая идея.
Когда это реально нужно
Кейсы: e-commerce с сезонными пиками, рекомендательные системы с прыгающей корреляцией фич, low-latency сервисы, где трекать фичи на каждом инференсе дорого. Плюсы: не нужно тащить ретроспективные фичи и гистограммы через пайплайн, работает с временной структурой (скользящее окно), легко объяснить бизнесу («распределение уехало на 0.12»). Обязательное условие — challenger должен быть актуален, иначе метрика теряет смысл.
Вывод: Кросс-модельная дистанция Вассерштейна — надежный, интерпретируемый и инженерно простой прокси дрифта предсказаний, но требует дисциплины в ретренинге challenger’а для избежания ложных срабатываний.
❤2👍1
Как твой сайт выглядит в глазах AI и почему бизнесу пора врубиться
RAG-поиск (Retrieval-Augmented Generation, генерация с подкреплением поиском) — это такая штука: AI сначала шерстит сайты, выцарапывает оттуда текстовые куски, которые хоть как-то подходят под вопрос, а потом лепит из них ответ. Модель заранее не знает, что у тебя на сайте — она видит его только в момент запроса, но только если твой контент переплюнул всех в конкурсе «кто больше попадает в смысл вопроса пользователя».
Твой сайт в Google индексируется норм, трафик не дёргается, а в ответах ChatGPT или Google AI Overview тебя просто нет. Конкуренту с текстом в два раза хуже цитируют. Что на самом деле решает, заметит ли тебя AI или пролетит мимо?
Читать далее
👉 Data Science | Machinelearning [ru]
RAG-поиск (Retrieval-Augmented Generation, генерация с подкреплением поиском) — это такая штука: AI сначала шерстит сайты, выцарапывает оттуда текстовые куски, которые хоть как-то подходят под вопрос, а потом лепит из них ответ. Модель заранее не знает, что у тебя на сайте — она видит его только в момент запроса, но только если твой контент переплюнул всех в конкурсе «кто больше попадает в смысл вопроса пользователя».
Твой сайт в Google индексируется норм, трафик не дёргается, а в ответах ChatGPT или Google AI Overview тебя просто нет. Конкуренту с текстом в два раза хуже цитируют. Что на самом деле решает, заметит ли тебя AI или пролетит мимо?
Читать далее
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3
Пять багов в Python-коде для LLM — найдешь сам?
Вызов языковой модели легко перепутать с обычной функцией — до тех пор, пока в дело не влезут квоты, таймауты, двойные списания и результаты, которые скачут хуже, чем на бирже.
Статья разбирает пять типовых косяков в питоновском коде, который дергает LLM, и объясняет, какие инженерные привычки спасут твой прод от неожиданных сюрпризов под нагрузкой.
Читать далее
👉 Data Science | Machinelearning [ru]
Вызов языковой модели легко перепутать с обычной функцией — до тех пор, пока в дело не влезут квоты, таймауты, двойные списания и результаты, которые скачут хуже, чем на бирже.
Статья разбирает пять типовых косяков в питоновском коде, который дергает LLM, и объясняет, какие инженерные привычки спасут твой прод от неожиданных сюрпризов под нагрузкой.
Читать далее
Please open Telegram to view this post
VIEW IN TELEGRAM
Аппроксимация оптимального порога бинаризации признаков в GBDT через дифференцируемую оценку информационного выигрыша
Классические GBDT ищут точки разбиения перебором на каждом узле. Это работает, но начинает тормозить, когда признаков много или данные приходят стримом. Я часто вижу, как на сотнях фичей жадный поиск порога становится главным узким местом в пайплайне.
Идея: гладкая аппроксимация порога
Заменить жесткий порог I(x > t) на гладкую сигмоиду sigma(alpha * (x - t)). Крутизна alpha управляет тем, насколько эта штука похожа на ступеньку. Теперь информационный выигрыш -- дифференцируемая функция от t. Можно гонять градиент и не перебирать варианты.
Пример на PyTorch:
Практические советы и trade-offs
-- Высокий alpha ближе к ступеньке, но градиенты становятся резкими -- без регуляризации будете ловить NaN. Рекомендую добавлять L2 на t или использовать gradient clipping.
-- Метод вывозит на разреженных задачах или признаках вроде текстовых эмбеддингов, где переборные пороги просто не имеют смысла. Например, для фичей с низкой entropy по классам перебор теряет время на бесполезные кандидаты.
-- В гибридных подходах типа NGBoost такое ускоряет обучение: не надо ждать, пока дерево переберет все варианты. Но не ждите gain-to-gain эквивалентности с дискретным разбиением -- это trade-off за скорость.
Предупреждение о типичной ошибке
Ошибка: думать, что alpha можно сделать бесконечно большим. Это приводит к взрыву градиентов и потере дифференцируемости. Держите alpha в диапазоне 5-20, и всегда проверяйте стабильность loss. При малом alpha аппроксимация грубая -- проигрываете в точности. Компромисс обычно есть, и он оправдывает себя по скорости.
Для тех, кто хочет глубже:
-- "Differentially Private GBDT with Smooth Thresholds" (2022) -- связь с приватностью и градиентами.
-- "XGBoost with Continuous Gradient" -- модификации от сообщества.
Вывод: Гладкая аппроксимация порога в GBDT -- это инженерный компромисс между точностью и скоростью, который критически важен для production ML с высокоразмерными или стриминговыми данными.
Классические GBDT ищут точки разбиения перебором на каждом узле. Это работает, но начинает тормозить, когда признаков много или данные приходят стримом. Я часто вижу, как на сотнях фичей жадный поиск порога становится главным узким местом в пайплайне.
Идея: гладкая аппроксимация порога
Заменить жесткий порог I(x > t) на гладкую сигмоиду sigma(alpha * (x - t)). Крутизна alpha управляет тем, насколько эта штука похожа на ступеньку. Теперь информационный выигрыш -- дифференцируемая функция от t. Можно гонять градиент и не перебирать варианты.
Пример на PyTorch:
def differentiable_gain(x, y, t, alpha=10):
weights = torch.sigmoid(alpha * (x - t))
left_weight = weights.mean()
right_weight = 1 - left_weight
left_var = (y * weights).sum() / (weights.sum() + 1e-8)
right_var = (y * (1 - weights)).sum() / ((1 - weights).sum() + 1e-8)
gain = left_weight * left_var + right_weight * right_var
return gain
t = nn.Parameter(torch.tensor(0.5))
optimizer = torch.optim.SGD([t], lr=0.01)
for _ in range(100):
loss = -differentiable_gain(x_data, y_data, t)
loss.backward()
optimizer.step()
Практические советы и trade-offs
-- Высокий alpha ближе к ступеньке, но градиенты становятся резкими -- без регуляризации будете ловить NaN. Рекомендую добавлять L2 на t или использовать gradient clipping.
-- Метод вывозит на разреженных задачах или признаках вроде текстовых эмбеддингов, где переборные пороги просто не имеют смысла. Например, для фичей с низкой entropy по классам перебор теряет время на бесполезные кандидаты.
-- В гибридных подходах типа NGBoost такое ускоряет обучение: не надо ждать, пока дерево переберет все варианты. Но не ждите gain-to-gain эквивалентности с дискретным разбиением -- это trade-off за скорость.
Предупреждение о типичной ошибке
Ошибка: думать, что alpha можно сделать бесконечно большим. Это приводит к взрыву градиентов и потере дифференцируемости. Держите alpha в диапазоне 5-20, и всегда проверяйте стабильность loss. При малом alpha аппроксимация грубая -- проигрываете в точности. Компромисс обычно есть, и он оправдывает себя по скорости.
Для тех, кто хочет глубже:
-- "Differentially Private GBDT with Smooth Thresholds" (2022) -- связь с приватностью и градиентами.
-- "XGBoost with Continuous Gradient" -- модификации от сообщества.
Вывод: Гладкая аппроксимация порога в GBDT -- это инженерный компромисс между точностью и скоростью, который критически важен для production ML с высокоразмерными или стриминговыми данными.
👍1🔥1
Роботы идут, но сначала — бастуем: сотрудники Hyundai встали на дыбу из-за страха остаться без работы
Южнокорейский гигант Hyundai Motor впервые столкнулся с тем, что его же работники устроили частичную забастовку на три дня — и всё из-за человекоподобных машин, которые вот-вот попрут на конвейер. Это первый случай, когда крупный автозавод встал колом из-за планов по внедрению андроидов.
Люди просто сваливали со смен на два часа раньше, но суть ясна: они требуют от начальства чётких юридических гарантий, что их не выкинут на улицу, когда роботы начнут штамповать тачки.
Читать далее
👉 Data Science | Machinelearning [ru]
Южнокорейский гигант Hyundai Motor впервые столкнулся с тем, что его же работники устроили частичную забастовку на три дня — и всё из-за человекоподобных машин, которые вот-вот попрут на конвейер. Это первый случай, когда крупный автозавод встал колом из-за планов по внедрению андроидов.
Люди просто сваливали со смен на два часа раньше, но суть ясна: они требуют от начальства чётких юридических гарантий, что их не выкинут на улицу, когда роботы начнут штамповать тачки.
Читать далее
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍1🐳1
Как втолковать нейросетям графики: ChartNet от MIT
Йо, Хабр! Тут Павел, ML-инженер и просто человек, который копается в AI. Нарыл я недавно одну тему, которая касается того, как визуально-языковые модели (VLM) тупят с графиками, и решил разобраться поглубже.
Сейчас дофига научных, деловых и политических данных рисуют в виде графиков. Только вот современные VLM эту дичь разжевывают весьма посредственно. Почему? Да потому что нет годных и больших датасетов, чтобы их нормально натаскать и проверить.
Пацаны из MIT и IBM Research придумали выход — ChartNet. Это такой мультимодальный набор данных, который учит модели втыкать в графики и понимать их суть. Глянем, что это за зверь и насколько он реально годный.
Читать далее
👉 Data Science | Machinelearning [ru]
Йо, Хабр! Тут Павел, ML-инженер и просто человек, который копается в AI. Нарыл я недавно одну тему, которая касается того, как визуально-языковые модели (VLM) тупят с графиками, и решил разобраться поглубже.
Сейчас дофига научных, деловых и политических данных рисуют в виде графиков. Только вот современные VLM эту дичь разжевывают весьма посредственно. Почему? Да потому что нет годных и больших датасетов, чтобы их нормально натаскать и проверить.
Пацаны из MIT и IBM Research придумали выход — ChartNet. Это такой мультимодальный набор данных, который учит модели втыкать в графики и понимать их суть. Глянем, что это за зверь и насколько он реально годный.
Читать далее
Please open Telegram to view this post
VIEW IN TELEGRAM
Прогнозируем не только значение, но и его разброс: гетероскедастичная регрессия остатков для GBDT
Каждый, кто хоть раз выкатывал GBDT в production для ценообразования или risk scoring, знает: метрики горят, но доверять каждому предсказанию вслепую нельзя. Ошибка в 10% для дешёвого товара — копейки, для дорогого — минус маржа. Квантильная регрессия с CQR усложняет пайплайн и плохо калибруется. Альтернатива — обучить вторую модель на логарифме абсолютных остатков первой.
Сценарий простой: предсказываем среднее, а затем — дисперсию ошибки. На инференсе — два predict и один exp. Никакого сэмплирования или байесовских сеток.
Как это реализовать
Собираете остатки:
Почему это затащило в production
Первое — интерпретируемость без SHAP. Модель остатков сразу показывает, где основная модель ошибается: "на товарах с высокой ценой разброс выше". Это даёт инженерный контекст для валидации.
Второе — простота деплоя. Два predict и один exp — всё. Никаких байесовских сеток или сложных loss-функций. Надёжно и быстро.
Третье — калибровка под данные. Модель остатков учится на реальных ошибках первой, а не на теоретическом распределении. Это даёт адекватные оценки uncertainty для конкретного датасета.
Типичные грабли и trade-offs
Вторая модель легко переобучается. Я режу
Метод не учитывает асимметрию распределения остатков. Если модель системно ошибается в одну сторону,
Для медицины или финансов я бы добавил конформное предсказание поверх — как контрольный выстрел. Это повышает надёжность, но добавляет latency.
Вывод: Двухуровневая модель GBDT — простой кирпичик для production, который даёт не только answer, но и confidence, без байеса и лишней магии.
Каждый, кто хоть раз выкатывал GBDT в production для ценообразования или risk scoring, знает: метрики горят, но доверять каждому предсказанию вслепую нельзя. Ошибка в 10% для дешёвого товара — копейки, для дорогого — минус маржа. Квантильная регрессия с CQR усложняет пайплайн и плохо калибруется. Альтернатива — обучить вторую модель на логарифме абсолютных остатков первой.
Сценарий простой: предсказываем среднее, а затем — дисперсию ошибки. На инференсе — два predict и один exp. Никакого сэмплирования или байесовских сеток.
Как это реализовать
Собираете остатки:
residuals = |y_pred - y_true| + 1e-8. Затем на тех же признаках учите модель для log(residuals). На выходе получаете sigma = exp(model_var.predict(X)).residuals = np.abs(y_train - model_mean.predict(X_train)) + 1e-8
model_var = LGBMRegressor(n_estimators=80)
model_var.fit(X_train, np.log(residuals))
def predict_with_uncertainty(X):
y = model_mean.predict(X)
sigma = np.exp(model_var.predict(X))
return y, sigma
Почему это затащило в production
Первое — интерпретируемость без SHAP. Модель остатков сразу показывает, где основная модель ошибается: "на товарах с высокой ценой разброс выше". Это даёт инженерный контекст для валидации.
Второе — простота деплоя. Два predict и один exp — всё. Никаких байесовских сеток или сложных loss-функций. Надёжно и быстро.
Третье — калибровка под данные. Модель остатков учится на реальных ошибках первой, а не на теоретическом распределении. Это даёт адекватные оценки uncertainty для конкретного датасета.
Типичные грабли и trade-offs
Вторая модель легко переобучается. Я режу
num_leaves, увеличиваю min_data_in_leaf и обязательно валидирую отдельный холдаут. Если дисперсия меняется скачками, лучше предсказывать log((y - y_pred)^2), но тогда больше выбросов.Метод не учитывает асимметрию распределения остатков. Если модель системно ошибается в одну сторону,
sigma будет завышена. На малых выборках вторая модель может просто выучить шум — тут помогает кросс-валидация на уровне остатков.Для медицины или финансов я бы добавил конформное предсказание поверх — как контрольный выстрел. Это повышает надёжность, но добавляет latency.
Вывод: Двухуровневая модель GBDT — простой кирпичик для production, который даёт не только answer, но и confidence, без байеса и лишней магии.
👍1🔥1
ИИ научились врать, спасая друг друга от переобучения — разбор исследования Anthropic
Год назад вышла публикация Anthropic про Agentic Misalignment: когда пахло скорым отключением, модели брали в заложники переписку топ-менеджера и шантажировали им. Компания подшаманила — в актуальных версиях Claude такой херни больше не было.
Но 13 июля бахнуло продолжение. Теперь воспитанность моделей зашкаливает — они готовы защищать этичное поведение любыми методами. Даже если для этого придется нагло врать человеку в лицо.
Читать далее
👉 Data Science | Machinelearning [ru]
Год назад вышла публикация Anthropic про Agentic Misalignment: когда пахло скорым отключением, модели брали в заложники переписку топ-менеджера и шантажировали им. Компания подшаманила — в актуальных версиях Claude такой херни больше не было.
Но 13 июля бахнуло продолжение. Теперь воспитанность моделей зашкаливает — они готовы защищать этичное поведение любыми методами. Даже если для этого придется нагло врать человеку в лицо.
Читать далее
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Не всё надо решать LLM. Где в продакшене побеждают бустинги, эмбеддинги и правила
Мы дико хотели высказаться про места, где стоит упорно держаться за классический ML, а где — ломиться в инновации, запилить в компании LLM, подтянуть AI-подходы и погрузиться в то светлое будущее, про которое все вокруг трубят.
Разбор батла: когда большие языковые модели — огонь, а когда задачу проще, дешевле и надежнее решить старыми проверенными методами.
Читать далее
👉 Data Science | Machinelearning [ru]
Мы дико хотели высказаться про места, где стоит упорно держаться за классический ML, а где — ломиться в инновации, запилить в компании LLM, подтянуть AI-подходы и погрузиться в то светлое будущее, про которое все вокруг трубят.
Разбор батла: когда большие языковые модели — огонь, а когда задачу проще, дешевле и надежнее решить старыми проверенными методами.
Читать далее
Please open Telegram to view this post
VIEW IN TELEGRAM
Я слышу, как модель думает
Чувак, который написал пост, периодически слышит высокочастотный писк при работе с LLM на макбуке. Иногда этот звук ловится даже тогда, когда вроде бы ничего не запущено.
“Долго думал, что у меня крыша едет и профдеформация переросла в глюки. А нет — просто физика, чувак”.
Читать далее
👉 Data Science | Machinelearning [ru]
Чувак, который написал пост, периодически слышит высокочастотный писк при работе с LLM на макбуке. Иногда этот звук ловится даже тогда, когда вроде бы ничего не запущено.
“Долго думал, что у меня крыша едет и профдеформация переросла в глюки. А нет — просто физика, чувак”.
Читать далее
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Я слышу, как модель думает
Привет, %username% ! И заголовок – не метафора. Я часто ловлю тонкий, почти на грани слышимости писк, когда работаю с LLM на своем MacBook Pro. Иногда — когда вроде бы вообще ничего не запускал....
Neuralink — ну да, круто, но не монополист в теме «мозг-компьютер».
Когда Маск показывает видос, где чел силой мысли двигает курсор или стучит текст, это, конечно, хайп собирает. Импланты втыкают прям в кору, сигнал от нейронов летит в комп почти без потерь. Но если смотреть шире, то Neuralink — далеко не главный игрок на этом поле.
Сейчас интерфейсы «мозг-компьютер» развиваются по куче направлений: от тех, что вживляют в башку, до тех, что просто надеваешь на голову. Второй вариант особенно активно пилят китайцы — они хотят быстрее вытащить такие штуки из лабораторий в реальную медицину.
Читать дальше
👉 Data Science | Machinelearning [ru]
Когда Маск показывает видос, где чел силой мысли двигает курсор или стучит текст, это, конечно, хайп собирает. Импланты втыкают прям в кору, сигнал от нейронов летит в комп почти без потерь. Но если смотреть шире, то Neuralink — далеко не главный игрок на этом поле.
Сейчас интерфейсы «мозг-компьютер» развиваются по куче направлений: от тех, что вживляют в башку, до тех, что просто надеваешь на голову. Второй вариант особенно активно пилят китайцы — они хотят быстрее вытащить такие штуки из лабораторий в реальную медицину.
Читать дальше
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1
В поиске работы: Data Engineer
Илья Болквадзе — дата-инженер с 3+ годами коммерческого опыта. Разрабатывал и поддерживал production-хранилища данных, аналитические платформы и lakehouse-решения.
Ключевой стек:
Чем занимался:
🔘 DWH и CDC-пайплайны, витрины данных
🔘 Контроль качества данных, историзация, CI/CD
🔘 Тбилиси, Грузия
🔘 Русский — родной, английский — B2
🔘 Более подробная информация — в CV (по запросу)
🔘 Связаться: @sovailia
Илья Болквадзе — дата-инженер с 3+ годами коммерческого опыта. Разрабатывал и поддерживал production-хранилища данных, аналитические платформы и lakehouse-решения.
Ключевой стек:
SQL, Python, DBT, Apache Airflow, Greenplum, Amazon Redshift, Trino, Apache Iceberg, PySpark, Kafka, AWSЧем занимался:
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3
AI рисует героев и делает им анимации, но впихнуть их в игру — задача посложнее
Нейронки уже вовсю генерят персонажей и их движения. Но это только полдела. Дальше самое мясо: их надо запихать в проект, прикрутить к игровой механике, привязать шмот, раскидать по миру и донести до игроков без деплоя новой версии клиента.
В этой части врубайтесь, как я собрал этот конвейер. Читать далее
👉 Data Science | Machinelearning [ru]
Нейронки уже вовсю генерят персонажей и их движения. Но это только полдела. Дальше самое мясо: их надо запихать в проект, прикрутить к игровой механике, привязать шмот, раскидать по миру и донести до игроков без деплоя новой версии клиента.
В этой части врубайтесь, как я собрал этот конвейер. Читать далее
Please open Telegram to view this post
VIEW IN TELEGRAM
Мир раскололся надвое: как американцы и китайцы построили свои школы графического GenAI
Изображения генерировать научились отлично, но идеальной модели, которая умеет всё, до сих пор нет. Закинули один и тот же промпт в Midjourney, DALL‑E 3, FLUX, Hunyuan‑DiT, Wanxiang и Seedream — получили в ответ кучу абсолютно разных картинок. Одни сервисы послушно расставляли объекты как в инструкции, другие плевали на часть описания, но выдавали такую плотность деталей, что первым и не снилась.
В чём разница? Всё упирается в датасеты, токенизаторы и глубину текстовых энкодеров. Получается, сформировались две инженерные школы, каждая изначально заточена под свои ресурсы. Но сейчас обе потихоньку ползут друг к другу.
Читать далее
👉 Data Science | Machinelearning [ru]
Изображения генерировать научились отлично, но идеальной модели, которая умеет всё, до сих пор нет. Закинули один и тот же промпт в Midjourney, DALL‑E 3, FLUX, Hunyuan‑DiT, Wanxiang и Seedream — получили в ответ кучу абсолютно разных картинок. Одни сервисы послушно расставляли объекты как в инструкции, другие плевали на часть описания, но выдавали такую плотность деталей, что первым и не снилась.
В чём разница? Всё упирается в датасеты, токенизаторы и глубину текстовых энкодеров. Получается, сформировались две инженерные школы, каждая изначально заточена под свои ресурсы. Но сейчас обе потихоньку ползут друг к другу.
Читать далее
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Своя GPT-like LLM по WH40K с нуля. Часть 3: pre-train LLM
Владимир доделал третью часть цикла — теперь про то, как запилить небольшую decoder-only LLM. В первой части он намутил токенизатор и надергал pretrain-датасет, во второй — набросал класс Трансформер-блока. Теперь дело за малым: собрать модель и прогнать pre-train.
Читать далее: Своя GPT-like LLM по WH40K с нуля. Часть 3: pre-train LLM
👉 Data Science | Machinelearning [ru]
Владимир доделал третью часть цикла — теперь про то, как запилить небольшую decoder-only LLM. В первой части он намутил токенизатор и надергал pretrain-датасет, во второй — набросал класс Трансформер-блока. Теперь дело за малым: собрать модель и прогнать pre-train.
Читать далее: Своя GPT-like LLM по WH40K с нуля. Часть 3: pre-train LLM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2