tgindex
M

ML без потерь

Статистика
@ml_no_lossesрусский

Автор канала @vdimitrov_ai

Последний пост
16 июн.
Последнее чтение
ещё не заходили
Постов за неделю
0
Всего постов
26
Тип
открытый
Язык
русский
В каталоге с
13 авг.
Подписчики
458
+2 за 4 дн.
Сутки
+1
+0,22%
Неделя
 
Месяц
 
Просмотров на пост
785
26 постов
Вовлечённость
171,4%
к подписчикам
Постов в день
0,0
всего 26
Упоминаний
0
каналов
Охват размещения
оценка
1/24сутки в ленте
1/48двое суток
1/72трое суток

Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.

Посты

  • Платформа для менторства В какой-то момент подумал, что можно структурировать свои курсы, материалы и обучающие пособия. Так и появилась идея для платформы. Помню этот чудный зимний вечер, когда я только задумал создать то, чем на данный момент пользуются около 50 пользователей 🥳 MVP Первую версию сайта я завайбкодил за день Что было хорошо: • Визуал. Он был приятный, элементы могли интерактивно двигаться при наведении, каждый раз, когда я смотрел на него - я понимал, что ai могет. • Неплохое качество кода. У меня есть знакомый фронтенд специалист, который периодически делает review. Сначала он немного куксился (выглядело так ❓), но чем больше он видел код и понимал внутреннюю магию AI-реализации, тем меньше оставлял комментариев. Видимо перестал читать • И самое главное: оно работало 😎 А минусы? • Контент. Я попробовал создать с нейронкой контент. Боже, как это было плохо. Если учить по такому материал, мне кажется, может стать еще хуже, чем было. Примеры сухие, на практике такие кейсы не встречаются. Здесь меня спас мой контент. • Нейронка любит писать код с нуля, а не переиспользовать уже имеющийся. Здесь я старался работать с памятью агента и скиллами, чтобы он не забывал, что такой модуль уже есть, и его нужно просто переиспользовать Что в итоге имеем • Материал. Собрал 20 курсов по различным тематикам: от классического ML до A/B тестирования • Матрица компетенций для учеников: теперь понятно, кто ты из феечек винкс • Поиск по материалам. Когда материалов становится слишком много, самое время делать по ним поиск • Сделал секцию с доп. материалами: это отдельные мелкие задачки, которые у меня встречались в работе • Сделал нотификацию, сдачу заданий через pr, аналитику и так далее • В общем, проделано много работы Для моих подписчиков 👉 Кто хочет попользоваться платформой: welcome заполнять короткую форму, первым 5 людям дам доступ к своему курсу по классификации комментариев.

  • Skills Активно внедряю на работе практику пользования скиллами. Начинаю свою миссию ai инфоцыгана энтузиаста в этом канале тоже. Что такое скиллы? Это переиспользуемые инструкции для агента: ты один раз описываешь, как делать конкретную задачу, и дальше агент делает ее сам. По сути, это упакованный кусок твоего опыта, который не надо каждый раз переписывать в промпте. То есть, когда работа инженера превратилась в написание промптов, это тот инструмент, который повысит тебе продуктивность в разы 🐺 Как создать скилл Идеальный скилл получается следующим образом: 1. Сначала пытаешься с claude code/codex/cursor решить какую-то задачу 2. Когда задача решена, просишь агента создать скилл 3. Вуаля, ты великолепен Во время использования скилла, если замечаешь что-то не то, то не терпишь, а просишь агента исправить правильно + просишь переписать скилл. Что творят скиллы: A. Позволяют делать свою работу намного быстрее 🤩 Пример: у меня на работе есть однотипные задачи, это может быть добавление похожего функционала или анализ багтрека. Благодаря скиллу я просто прошу сделать что-то, и это делается правильно и в разы быстрее. B. Можно делегировать свою работу другим людям 😐 Скилл — это персонификация твоих знаний, отправь свой скилл хоть продукту/бекендеру/тестеру и он может сделать то же самое, что и ты (вот так нас и заменили) С. Намного быстрее идет онбординг 😎 Здесь это одна из главных фич. Я смотрю, как новые люди залетают в проект, в мои времена я за это время только документацию успевал почитать и кофе попить, а люди тут уже в прод коммитят. В общем каеф Вывод Используйте скиллы. Если наберется много (хз сколько) 🔥, покажу, какие скиллы использую в работе.

  • 1 июн.528413

    Всем привет! Давно не писал в канале, последние месяцы были довольно плотные, но зато накопилось много обновлений 1. Наконец-то запустили наш продукт в Авито на реальных пользователях 🥳 Провели множество пилотов, добавили еще фичей, сделали бота омниканальным и вроде как нашли свой маркет-фит. Дальше ждет процесс тюнинга и масштабирования нашего продукта 2. Прочитал курс в МГИМО «Машинное обучение в задачах продуктовой разработки» Впервые был в роли лектора, и это оказался очень интересный опыт: 1,5 часа без остановки говорить, еще чуть-чуть и стану продуктом. В целом оцениваю себя на уверенную 4: получилось хорошо, но точно есть куда расти. 3. Создал свою платформу для обучения 👉 Начал заниматься этим примерно полгода назад, и за это время удалось: • собрать команду • подготовить материалы • запустить первых учеников В целом все работает, в дальнейших постах расскажу более подробно, как ее делал. Ну и по мелочи - сделал ремонт в квартире. Тоже, как оказалось, отдельный проект со своими дедлайнами, багами и неожиданными релизами. В общем, обновлений было много. Дальше - больше. Обещаю чаще постить в этот канал 😳

  • Суверенные LLM они такие Промпт: Напиши сайт про себя

  • 3 апр.1 1232840

    Всем привет! Сейчас пилим оценочную систему для RAGа в компании, решил подготовить методичку для моих подписчиков. Надеюсь, получилось полезно. Можете поделиться в комментариях, как вы готовите RAG

  • 31 мар.1 1604214

    Anthropic, Google, OpenAI инвестируют миллионы в безопасность Тем временем Яндекс:

  • Собрать за 8 часов AI-агента, который заменяет CEO: шутка или нет? 🤔 Всем привет! Давайте знакомиться: меня зовут Владимир Димитров, я работаю в Авито в команде DS Jobs. Недавно я был ментором на хакатоне SnowBase от South Hub. Попал туда благодаря AITH, за что им большое спасибо! Что меня зацепило в хакатоне: участникам предложили сделать AI-агента, который сможет заменить CEO компании. Согласитесь, уже звучит достаточно любопытно) Участники работали в формате вайбкодинга, а основным инструментом был Claude Code. Отдельное удовольствие — наблюдать, как руководители промптили свои хотелки, а потом удивлялись, когда получали рабочий функционал. И самое интересное: всего за 8 часов участникам удалось собрать рабочий прототип. Не идеальный, не production-ready, но уже такой, который можно показать, потестировать и обсудить предметно. Хакатон получился очень кайфовым: сильные участники, интересный формат и много живого интереса к AI — не на словах, а на практике. Мы, кстати, тоже планируем сделать свой однодневный хакатон на Data Fest 2026. Что скажете? 👇 ❤️ — кайф, обязательно приду 👍 — не приду, но звучит интересно 🤔 — напишу мысли в комментариях

  • Продолжаем разбор задачи мэтчинга, сегодня обсудим модели для кадгена и скоринга Модели Для задачи мэтчинга нужно найти все дубликаты айтема и иметь понятную меру уверенности, что объекты действительно совпадают. Самое лучшее, это использовать трёхступенчатый пайплайн: генерация кандидатов → скоринг → кластеризация. Такой подход позволяет работать быстро, масштабироваться и гибко управлять precision/recall. Candidate generation На первом этапе мы резко сокращаем пространство поиска. Для каждого айтема X ищем ограниченное число похожих объектов. Использовали HNSW для ANN (approximate nearest neighbor) поиска и выбирали top-k кандидатов. Каждый объект кодируется компактным вектором структурных характеристик (цена, размер, цвет и др.), что позволяет быстро находить близкие варианты. Ключевая метрика здесь — recall@k. Мы достигали ≈ 0.99, то есть почти все реальные дубликаты попадали в кандидаты. На этом этапе не требуется сложная модель: дубликаты, как правило, находятся рядом в векторном пространтсве и имеют схожие ценовые и структурные характеристики. Поэтому достаточно быстро найти ближайших «похожих» кандидатов, а более сложная логика применяется позже. Scoring После candidate stage для айтема X у нас есть кандидаты A₁ … A₁₀₀. Теперь нужно понять, является ли каждая пара (X, Aᵢ) дублем. Подход простой и практичный: мы берём признаки первого объекта, признаки второго объекта и добавляем признаки, описывающие их сходство. В модель подаются: • признаки объекта X • признаки кандидата Aᵢ • кросс-признаки, описывающие их разницу или сходство Кросс-признаки — ключевой элемент. Они показывают, насколько объекты похожи: — сходство текстовых описаний (cosine similarity между текстовыми эмбеддингами) — сходство изображений (cosine similarity между image embeddings: max по всем парам изображений / агрегирование mean(max) по изображениям) — разница в цене (абсолютная разница, относительная разница или разница логарифмов цен) Таким образом модель видит не просто два объекта, а их взаимное сходство. Для скоринга мы использовали CatBoost. Он хорошо работает с табличными данными, устойчив к шуму и умеет улавливать нелинейные зависимости между признаками. Нелинейные зависимости важны, потому что отдельные признаки часто слабо информативны сами по себе, но их комбинации резко повышают вероятность дубля. Например, небольшая разница в цене допустима, если совпадают цвет и фотографии, но та же разница цены при другой модели уже почти всегда означает разные объекты. На выходе модель возвращает вероятность того, что пара объектов является дублем. Качество оценивается по precision, recall и F1 — как в целом, так и отдельно по категориям.— сходство текстовых описаний (cosine similarity между TF-IDF векторами или текстовыми эмбеддингами) — сходство изображений (cosine similarity между image embeddings: max по всем парам изображений / агрегирование mean(max) по изображениям) — разница в цене (абсолютная разница, относительная разница или разница логарифмов цен)

  • 12 февр.1 6343316

    Разбор с сеньором Всем привет! Сегодня запускаю новую рубрику на канале, разбор кейсов с сеньором. Сегодня в гостях Макс, он работает Senior ML в Jetbrains (ex. Microsoft). Разберем с ним кейс мэтчинга товаров. Пойдем по классическу подходу в систем дизайне, сначала опишем требования, потом данные, в конце поговорим про модель. Так как пост получился слишком большой, то разобью его на части. Погнали! Требования Разберем функциональные и нефункциональные требования нашей системы. Здесь мы исходим из своего практического опыта построения таких систем. Функциональные требования: - Система должна точно и своевременно мэтчить товары - Группировать одни и те же товары в один кластер - Давать confidence level, который можно регулировать online Нефункциональные требования: - SLA: должны укладываться за 3-4 часа. Чтобы дальше аналитики/модерация/рекомендация успели обработать наши данные - Only CPU. Пока GPU не будем использовать - В среднем 300 RPS - Решение должно быть масштабируемо Данные - Есть данные от разметки. 1 разметчик в среднем в день может разметить порядка 1000 примеров. - Есть внутренние даннные Фичи В целом здесь понадобятся все фичи, до которых может достать рука: - Картинки -> из них мы будем вытягивать фичи с помощью эмбедов - Текста -> опять эмбеды, скорее всего будем использовать "быстрые" модельки (RPS большой, а времени мало): TF-IDF, BM25, можно статистики дополнительно брать (левентшейн, джакард, fuzzy_search) - Табличные фичи -> здесь нужен отбор самые значимые + feature engineering

  • 16 янв.9953410

    Всем привет! Тут прикатила моя статья на Хабр про агентные системы, велком читать! Попытался затронуть моменты проектирования и современный стэк для агентов. Поддержите upvote по максимуму, а то там есть провокационные шутки...

  • 14 янв.1 0324154

    Всем привет! Собрал небольшую подборку сложных вопросов на интервью, которые либо задавали мне, либо я их где-то слышал. Сохраняйте к себе И ставьте 🔥, если нужно больше подобного контента #собесы

  • Если вы не пришли в себя после январских, вспомните это

  • без подписи

  • CPT Далее мы применяем CPT (Continued Pre-training). На вход модели подается следующее описание: <sid_1> <channel_name> <watch_ratio> <watch_time>... То есть, помимо простых SIDов подается еще дополнительная информация, что позволяет модельке использовать свои знания о мире. Здесь просто пытаемся предсказать следующий токен: <sid_1> -> <channel_name> <sid_1> <channel_name> -> <watch_ratio> <sid_1> <channel_name> <watch_ratio> -> <watch_time> Это стадия нужна, так как мы хотим чтобы модель что-то знала о SIDах. SFT Здесь мы пытаемся уже предсказать следующее видео, которое посмотрит пользователь (см. картинку 1). Таргет сложный, состоит из видео, которое кликнуто, лайкнуто, просмотрено долго. Так как опять решается задача авторегресии, то на выходе ожидаем следующее видео, которое представлено, как последовательность SID токенов. Также сделали функцию для отбора хороших примеров. Скорее всего это эвристика на основе клика, долгого просмотра, лайка и так далее. Вывод Результаты показывают (см. картинку 2), что данный алгоритм эффективнее своих братьев LEM (Large Embedding Models): - меньше потребление по памяти - выше CTR/Watch time/Views. Все доказано в A/B тестах - косты на тренировку каждый день намного ниже

  • без подписи

  • PLUM: Adapting Pre-trained Language Models for Industrial-scale Generative Recommendations На днях прочитал классную статью про адаптацию LLM к домену рекомендаций. Авторы привнесли в этот мир: - более сжатое представление айтемов через Semantic IDs (далее SIDs). Теперь не нужно хранить огромную матрицу эмбедов, достаточно все хранить в скромной последовательности. - показали эффективность трехстадийного обучения: Item Tokenization + Continued pre-training (CPT) + Specific fine-tuning (SFT). SIDs Когда мы обучаем трансформер на предсказание поведения пользователей, нам необходимо хранить огромную матрицу эмбедингов. Допустим, у нас 100 миллионов айтемов и размер эмбединга 256 в float32, тогда размер матрицы будет: 100M × 256 × 4 байта ≈ 102 ГБ Мы должны это хранить и к этому обращаться, что очень долго и неэффективно. А теперь представьте, что к этому добру еще добавилась огромная LLM, согласитесь, больно... Авторы предлагают следующий способ хранения, давайте представим каждый айтем, как последовательность чисел: Item = [x1, x2, x3, x4, x5] Каждое число отвечает за то, какой вектор мы берем из нашего словаря эмбедингов (авторы называют его Codebook). По сути мы взяли и применили сжатие. Тогда по памяти: 100M x 5 × 2 байта ~ 1ГБ Вуаля, х100 экономия, вроде легкая премия. Давайте теперь посмотрим, как они добиваются репрезентативного представления. Codebooks Как получаются данные эмбединги? Они обучаемые и должны в сумме своей давать вектор, который находится максимально близко к изначальному вектору. Первый вектор наиболее хорошо объясняет основной смысл айтема и дает наибольший вклад, второй имеет вес поменьше (т.к. обучается хорошо предсказывать остаток), и так далее. Чем-то напоминает бустинговые механики. Общий пайплайн продемонстрирован на 1 картинке, для понимания работы кодбуков смотреть картинку 2. Progressive masking Для того, чтобы все это обучалось нормально, а не уходило в первый вектор кодбуков, авторы применяют прогрессивное маскирование. Это когда мы случайно выкидываем последние k векторов из кодбуков, чтобы усложнить восстановление изначального вектора. Если так не делать, то высока вероятность, что модель положит всю важную информацию в последние уровни.

  • 4 янв.653289

    ТГ каналы с вакансиями На праздниках стало скучновато, а терять форму не хотелось — поэтому накидал простой парсер тг-каналов с вакансиями по AI 🤓 Все написал на telethon, дальше - немного ручного скрининга и на выходе получилась вполне рабочая подборка. Файл со списком телеграм-каналов оставил в комментариях, пользуйтесь 👇

  • Немного отошел от оливье и хочу подвести небольшой итог Этот год был очень сложный... Очень рад, что есть возможность превращать свои мысли в текст, и кто-то это читает, лайкает и пересылает. Спасибо вам всем ❤️ В следующем году буду завозить еще больше контента, хочу выйти на другие площадки (youtube, хабр), писать еще больше и умнее, попробовать новые жанры, надеюсь, все получится! Всех с новым годом! Обнял 😘

  • 27 дек.7123119

    Триллионы долларов на GPUs. Многие тома ресерча Миллиарды киловатт энергии И все ради этого:

  • Ty Там опять uv создатели решили все переписать на Rust. Теперь вместо православного mypy, супер-быстрый Ty. Обещают дикий прирост в 20 раз Есть поддержка для всех популярных IDE. Учитывая, что первая не alpha версия вышла совсем недавно, это очень круто) Из личного опыта: у ty пока страдает покрытие, поэтому для более строгой типизации - mypy. Но скорость потрясает. Ждем дальнейших улучшений и можно будет внедрять в продакшен