Your trial period has ended!
For full access to functionality, please pay for a premium subscription
KA
картинка со смыслом
https://t.me/kartinka_so_smyslom
Channel age
Created
Language
Russian
-
ER (week)
-
ERR (week)

Рад тебя видеть! Рассказываю о Deep Learning, разбираю задачи Computer Vision, делюсь мыслями о технологиях и карьерными лайфхаками. Также тут немного о жизни эмигранта. Админ -> @smyslovmax Обо мне читай в закрепе.

Messages Statistics
Reposts and citations
Publication networks
Satellites
Contacts
History
Top categories
Main categories of messages will appear here.
Top mentions
The most frequent mentions of people, organizations and places appear here.
Found 64 results
04/19/2025, 10:52
t.me/kartinka_so_smyslom/110
04/19/2025, 10:52
t.me/kartinka_so_smyslom/111
🔥 Продолжение про "компьютерное зрение в офлайн ритейле"

Довольно частое применение computer vision в магазинах подразумевает интеграцию с обычными камерами наблюдения, к этому можно придумать много применений.

1⃣ Сбор метрик по магазинам, как офлайн, так и в реальном времени:

🔸Сколько человек зашло/вышло (foot traffic)

🔸Как долго находились в магазине (dwell time)

🔸В каких зонах магазина больше всего людей (heatmaps) — можно определить куда заходит мало покупателей для решения о перепланировке

🔸Где стоят в очередях, как долго (queue analytics) - здесь можно подключить уведомления сотрудникам, чтобы открыли новую кассу

2⃣ Обнаружение краж и подозрительного поведения (loss prevention)

⭐️ Одна из самых "хайповых" тем. Идея в том, чтобы камеры и CV-модели отслеживали поведение, отличающееся от обычного: резкие движения, прятание товара под одежду, странные маршруты, многократное возвращение в одну и ту же зону и т.д.

Правда, на практике всё не так просто — даже SOTA модели делают ошибки и могут принять обычное поведение за "аномальное". Да и понятие аномального поведения очень размытое и у каждого будет своё. А при высоком false positive легко "отпугнуть" реальных покупателей.

Обычно здесь используют: action recognition модели (например, что человек положил товар в карман) или multi-camera tracking (для определения пути клиента в магазине и нахождения аномалий)

❗️Максимум использования таких систем — полуавтоматический режим, когда о потенциальной краже сообщают охране, а дальше решение принимает человек.

3⃣ По наблюдениям самый нужный и прибыльный продукт который сейчас успешно делают — это приложения для мерчандайзинга.

📌 Если не знаете что такое мерчандайзинг - это когда приходит специальный работник и проверяет как стоит товар на полках магазина. Это может быть как магазинный сотрудник, так и сторонняя компания, нанятая брендами товаров, которые там выставляются, но тогда он будет "мерчить" только свои полки.

©️Мерчандайзер обычно выставляет товар на полки согласно планограмме выкладки, если товар кончился или лежит неправильно. Это такая матрица, показывающая где и сколько должно быть фейсингов товаров (про фейсинги расскажу в следующей статье)

🔥 На мерчандайзинг компании тратят кучу денег и это прекрасное место для оптимизации. Есть куча компаний которые пытаются закрыть эти потребности.

Есть ещё возможность отслеживать наличие товара с помощью камер видеонаблюдения, но как я понимаю — это не такой популярный кейс как мерчандайзинг.
©️К тому же это гораздо сложнее: обычно с таких камер плохо видно наличие товара в глубине стеллажа.
©️Но есть у такого и плюсы — можно отслеживать наличие весовых товаров, однако нужно понимать насколько в этом есть выгода. Так как финансово это может не иметь смысла.

🥱 Хочу раскрыть тему моделей для мерчандайзинга поподробнее с точки зрения компьютерного зрения, поэтому скоро будет ещё один пост.
04/19/2025, 10:52
t.me/kartinka_so_smyslom/112
04/19/2025, 10:52
t.me/kartinka_so_smyslom/109
Давайте поговорим на тему "как может помочь компьютерное зрение в офлайн ритейле?"

Сначала приведу некоторые самые популярные кейсы, которые используются сейчас (или идёт разработка в этом направлении), и для некоторых напишу почему они не такие уж и полезные:

1️⃣Умные магазины без кассира — когда отсканировал, например, QR код приложением, чтобы тебя идентифицировали, а дальше можешь брать товары с полок, а они будут автоматически добавляться в корзину. Здесь камеры берут на себя роль идентификации "кому" и "что" добавить в корзину.

Самый популярный кейс — это Amazon Go и вот полная статья почему он не удался, а я вам кратко перескажу:

🔸Высокая стоимость: было очень затратно повсюду поставить камеры. Также из-за того, что точность алгоритмов идентификации не 100%, то расходы сильно возрастали (особенно если маленькая маржа). Были ещё помню новости, что вместо ML, был целый штат индусов, которые смотрели в камеры, но там скорее всего они были для валидации, а не как основной способ работы.

🔸Инклюзивность: В некоторых городах запретили делать магазины с полностью безналичным расчётом (чтобы все могли пользоваться ими, даже те у кого нет телефонов, кредиток и т.д.). Поэтому пришлось нанимать кассиров для оплаты наличными, что увеличивало расходы.

🔸Операционная сложность: невозможность продажи весовых товаров, сложность идентификации, кража товаров (особенно когда в стране разрешено воровать, как, например, в некоторых штатах сша😳 Речь о misdemeanour за кражу до +-1к$)

2️⃣A/B тесты с помощью VR — вместо выкатки тестирования на магазины, можно делать копию магазина в виртуальной реальности и давать людям потестить новые фичи там.

🔸Это не совсем компьютерное зрение напрямую, но можно добавить его туда. Например, отслеживать куда смотрят глаза, рисовать heatmap определять на чём заостряют больше внимания.

🔸Вот например
статья, где исследовали виртуальную реальность, и как покупатели воспринимают реальный магазин и виртуальный.
©️Там делают вывод, что метрики удовлетворения (satisfaction) от шоппинга и восприятия ширины ассортимента не различаются стат. значимо между реальным магазином и виртуальным (спорно конечно, можно ли по ним сделать прямой вывод о релевантности таких тестов)
©️Однако очень осторожно делают рекомендации по проведению таких тестов, ссылаясь на недостатки в доступных на тот момент технологиях.

Скоро будет прода 👍
04/17/2025, 23:12
t.me/kartinka_so_smyslom/108
Опа, в этом году к городам датафеста ODS добавляется Белград 🦜💸

P.S. Если живёте в Сербии, приходите нетворкать
04/17/2025, 10:37
t.me/kartinka_so_smyslom/106
🎤 Data Fest 2025 в Белграде — Call 4 Speakers на 25 мая!

🔥 С 24 мая по 1 июня пройдёт Data Fest 2025 — главное событие года для OpenDataScience сообщества

Традиционно Data Fest проходит в разных городах и 25 мая Яндекс откроет для нас двери своего офиса в Белграде!

Приглашаем спикеров со всех Балкан

Хотите рассказать о своём опыте в NLP, CV, Speech, MLOps, LLM, Open-Source, карьере или тимлидстве? Выбирайте свой трек и подавайтесь — даже если вы выступаете впервые 🦜

📍 Где: Белград
📅 Когда: 25 мая
⏳ Дедлайн подачи: 7 мая
💬 Язык выступления: русский (или другой по согласованию с огранизаторами вашего трека)

🔗 Стать с
пикером <–– тык

☺️ Пересылайте этот пост друзьям и до встречи на Data Fest!

По любым вопросам можно писать представителю ODS в Белграде — @salavat_mj
04/17/2025, 10:37
t.me/kartinka_so_smyslom/107
Астрологи объявили неделю дедлайнов - количество постов снижено 😓

Ладно, курс на самом деле не сложный, хотя первая домашка была объёмная из-за того, что надо было разобраться в большом количестве кода. Однако в любом случае каждую неделю надо что-то делать и сдавать.

А дедлайны скорее на работе. Да ещё и двух недельный отпуск скоро, в который не хочу брать ноут и фиксить баги.

Видос передаёт мои страдания, когда столкнулся с реальностью в которой надо что-то делать, а не просто покупать курсы 😣
04/12/2025, 12:29
t.me/kartinka_so_smyslom/105
Какую локацию выбрать, работая айти специалистом?
надеюсь поймёте, что за мем на картинке

У меня был пост про зарплатные карты по странам и городам от levels.fyi. Также много инфы про страны можно найти на Numbeo: crime index, cost of living и т.д.

В целом, размышляя над этим последние несколько лет и копая информацию, наблюдение пока такое, что в Европе денег в найме не заработаешь, кроме как в двух странах: Швейцарии🇨🇭 и Великобритании🇬🇧. Там большое количество вакансий в AI/ML сфере, не такие огромные налоги и достаточно высокий уровень средней зп.

Есть ещё другой вариант как неплохо жить - работать удалённо и жить в не очень дорогой стране.
©️Так можно получить номад визу в Испанию на 3 года. Мне кажется это сейчас самая лучшая опция в ЕС.
©️Также есть номад виза в Италии, Венгрии, Португалии (последняя была очень популярна из-за доступности и запаха близкого паспорта, но многие застряли в бюрократии, и сидят даже без внж)

Я до сих пор думаю насчёт временного переезда в Испанию🇪🇸, но пока минусы перевешивают и мне не настолько ещё надоело жить в Сербии.
©️Для меня останавливающими факторами являются высокие налоги, дорогая и некачественная недвижимость, жаркий климат.
©️В целом всем довольно известные факторы, но давайте по порядку:

🔸Я посчитал разницу налогов на ИП в Сербии и Испании, и получается для меня +-7000€/год. 💸

🔸Недвижимость смотрел исходя из двух человек, +-60 квадратов, чтобы можно работать удалённо и не мешать друг другу. Хочется большой город и жить на окраине, но Барселона оверпрайс — остаётся Валенсия и Мадрид.
©️И вот теперь дилема — что выбрать? И надо ли вообще выбирать?
©️На
idealista аренда квартир в Валенсии под эти параметры около 1000€/мес (что на 300€ больше чем у меня в Белграде), а Мадрид где-то 1100€. Но прикол в том, что 95% квартир в Валенсии с ужасным старым ремонтом, плиткой на полу во всех комнатах, без посудомойки и часто стиралки, и без отопления. (а зимой без отопления даже в Испании холодно и по всюду появляется плесень)
©️В Мадриде дела обстоят гораздо лучше, и если выбирать только по этому критерию, то точно выбираю Мадрид. (нет, море мне не нужно)
©️В общем в год выходит ещё 3.5-4к€ дополнительной нагрузки 💸

И вот надо ли мне платить 11000€/год ради европейского ВНЖ? Пока не могу ответить на этот вопрос с уверенностью. Ведь получать шенгены можно и из Белграда за 90€ с человека, а тратить тысячи евро можно на путешествия, а не на содержание окупасов.

❗️Одно я понял, что Латинская Америка в плане жизни не для меня. У меня был пост почему уехал из Аргентины, да и в целом не мой вайб.

🚀 Для себя ставлю сейчас цель — понять где хочу жить больше нескольких лет хотя бы, поэтому этот год планирую путешествовать по Европе. В мае загляну в Италию, Францию и Испанию, а в августе попытаюсь поехать в Лондон и окрестности (если всё норм и дадут визу. Может даже 2 поездки в uk будет — we will see).
©️Хочу понять стоит ли того виза таланта, чтобы следующие несколько лет собирать на неё кейс.
04/07/2025, 10:45
t.me/kartinka_so_smyslom/104
☺️ Нас уже 111 человек!

Если честно, когда заводил канал не думал, что получится дорасти до этой цифры так быстро. Каналу даже двух месяцев нету! 👉

P.S. на картинке моя любимая франшиза с имхо лучшей частью в лице New Vegas, которую прошёл 2.5 раза.
04/06/2025, 22:13
t.me/kartinka_so_smyslom/103
04/06/2025, 10:31
t.me/kartinka_so_smyslom/101
Как использовать аугментации на практике?
Первая часть про аугментации

Есть аугментации, встроенные уже в библиотеку torchvision (часть фреймворка PyTorch🔥). Однако существуют полноценные отдельные инструменты:

1️⃣ Albumentations (14.8k stars, самый популярный) - 70+ различных трансформаций. Оптимизирован для быстрой работы на CPU с данными в формате NumPy (то есть удобно при работе с OpenCV, однако нужно не забывать про конвертирование BGR в RGB).

2️⃣ Imgaug (14.5k stars) — 40+ техник аугментации, развитая система определения параметров трансформаций, поддерживающая различные форматы — от дискретных значений до непрерывных интервалов и распределений вероятностей.

3️⃣ AugLy (5k stars) — это библиотека от Meta по аугментации данных, которая в настоящее время поддерживает четыре модальности (аудио, изображение, текст и видео) и более 100 трансформаций.

4️⃣ Augmentor (5.1k stars) — простой высокоуровневым API для построения конвейеров аугментации данных и поддержкой многопоточной обработки, в том числе с использованием генераторов.

5️⃣ Kornia - аугментации на GPU. Стоит рассмотреть при использовании огромных датасетов и после того как отдебажили через profiling свои даталоадеры. (мб тоже расскажу как-нибудь про это)
©️То есть если понимаем, что bottleneck именно в аугах, а не в загрузке данных или ресайзе больших изображений (последнее можно вынести вообще отдельно и ресайзнуть изначально весь датасет до обучения), то тогда можно попробовать перенести ауги на GPU. Вот пример использования pytorch-lightning с Kornia.

Мне лично нравится Albumentations из-за своей документации и популярности в open-source проектах и курсах.
©️Тем более по бенчмаркам он вроде как лидирует. Вот ещё статья с бенчмарком (отсюда картинка 2).
©️В документации к Albumentations, кстати, есть таблица аналогов аугов из TorchVision.
©️Также там указан список курсов, чтобы прокачаться в этой теме.

📌Расписывать как это использовать непосредственно в коде я не буду, за меня это может сделать документация с примерами. Вот ещё из ImgAug. В целом API у всех библиотек очень похожий и использовав одну, легко перейти на остальные.

📌Также не буду раскрывать тему аугментаций для доменов кроме CV, могу только поделиться ссылкой на обзорную статью про NLP аугментации. Там можно почитать какие аугментации используются с текстом и позаимствовать тулзы/библиотеки для этого домена.

Какой набор аугментаций выбрать?

Эта тема очень индивидуальна, и зависит в первую очередь от задачи. Нужно понимать какие аугментации подойдут и не будут неверными по смыслу задачи. Как, например, с дорожными знаками, светофорами, лицами и т.д.

🔸Для начала лучше взять аугментации, которые использовались при тренировке выбранной вами архитектуры модели.

🔸Далее можно поискать статьи, где на похожей задаче тестируют различный набор аугментаций и взять лучшие оттуда.

🔸Ну а теперь уже только эксперименты, во время которых будет полезно написать логирование сэмплов из обучения для проверки, что изображения выглядят адекватно. (например написать callback для логирования в ClearML, Wandb или другую платформу)
©️Вот, например, есть дока по логированию pytorch-lightning в разные платформы.

В общем пробуйте и делитесь своими техниками❗️
04/06/2025, 10:31
t.me/kartinka_so_smyslom/102
😮 Cool story про минусы Supervisely как платформы разметки

Я в посте про платформы разметки нахваливал Supervisely, а после вчерашнего инцидента решил немного г*вна на вентилятор накинуть.

Для контекста: На удалённом сервере были неполадки с интернетом и скорость на загрузку датасетов с платформы была низкая. А мне нужно было выкачать около 200+ гигов видео.

Ну думаю ок, через UI качать не вариант.
Так получается схема Supervisely ➡️ Прослойка из SuperviselyApp (многие манипуляции с данными так организованы) ➡️ мой PC ➡️ Сервер.

Взял из SuperviselyApp код скачивания (которые доступны для всех обычно open-source), перенёс себе и запустил. Больше суток качалось, я иногда проверял, что папка наполняется.

©️Почти под конец упало с ошибкой, что соединение прервано. Думаю, ну ок. 🍴

❗️А данных в директории нет...

©️Думал я сумасшедший, всё облазил, но не нашёл. 😔

©️Когда провалился в исходники SDK Supervisely (библиотека для python), понял в чём проблема... Я обнаружил, что у функции download_async_or_sync, если во время асинхронного скачивания выпадает исключение, то оно УДАЛЯЕТ всё скачанное и переходит на синхронный метод...😵

©️Так я впустую потратил сутки на скачивание. Код функции можно глянуть на скрине (если что параметр resume_download в принципе нельзя прокинуть, иначе функция не запускается, т.к. он там ещё в другие функции дальше идёт. Да и это кажется нелогичным, что при первом запуске его обязательно прокинуть)

Ну и в целом что не удобно в UI Supervisely:

🔸Нельзя просто скачать одно видео или картинку, можно только датасет целиком.

🔸Функционал в датасетах с видео меньше чем с изображениями. Нет, например, даже базовой фильтрации по тегам и объектам.

🔸Есть функционал создавания ML пайплайнов, но туда нельзя положить свои веса. Появляются только веса моделей, обученных на этой платформе.

🔸Хочешь сделать свой SuperviselyApp - купи Enterprise лицензию. С Pro лицензиями для маленьких команд такой возможности нет.

📌В общем функционала много, но он сыроват.
04/04/2025, 19:15
t.me/kartinka_so_smyslom/100
04/04/2025, 12:55
t.me/kartinka_so_smyslom/97
Как делать модель более устойчивой к входному шуму?
можно назвать это продолжением рубрики #просвещение ч.2

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

📌Аугментации - это такие преобразования изображений, которые нужны для большей устойчивости обучаемых моделей.

Представим у вас есть набор изображений машин на улице и разметка номеров для распознавания.
©️Вы обучили модель детектировать и распознавать эти номера, запустили модель в прод, а она перформит плохо.
©️Начали отсматривать вручную предсказания и поняли, что ночью модель не находит номера, в дождь и туман не находит и т.д.
©️Посмотрели датасет, а там и правда только изображения в ясную погоду днём. Привет, data distribution shift.

❗️Как вариант можно набрать новых данных, разметить и дообучить модели, но это долго и дорого.

Тут на помощь приходят аугментации.

©️Мы можем симулировать разнообразие данных за счёт различных трансформаций входных изображений — без необходимости ручного сбора новых сэмплов. Плюс, это ещё и регуляризация, которая помогает избежать оверфита.

Можно задать набор аугментаций с параметрами и вероятностью применения, и каждый раз на обучении изображения будут "чуть-чуть другими".

Вот самые популярные и часто используемые трансформации:

🔸Resize — изменение размера до нужного для модели (например, 224×224). Обычно обязательная операция, но не считается "обогащением" данных. Также можно делать изображения чуть больше, чем нужно на вход модели, а затем делать random crop до нужного размера.

🔸Random crop — случайно вырезает участок изображения. Помогает учить модель фокусироваться не только на центре.

🔸Random rotation — поворот изображения на случайный угол. Работает хорошо, если объект в кадре не зависит от ориентации.

🔸Horizontal/Vertical flip — отражение по горизонтали/вертикали.

🔸Translation / Shift — смещение изображения по осям.

🔸Scaling — увеличение или уменьшение масштаба. Помогает при обучении моделей, которые должны быть инвариантны к размеру объектов.

🔸Color jitter — изменение яркости, контраста, насыщенности, оттенка. Хорошо симулирует разные условия освещения.

🔸Noise / blur — добавление шума и размытия. Полезно при обучении на изображениях с реальными искажениями (например, камеры на дорогах, старые сканы).

Из не настолько базовых и очевидных:

🔸Jpeg Compression — сжатие изображения с потерей качества. Нужна для большей устойчивости к jpeg формату. Есть статья, где исследуется проблема jpeg сжатия.

🔸CutMix — упоминал её тут. Вместо того, чтобы просто удалять пиксели, как в вырезании, мы заменяем удаленные области на патч из другого изображения. Хорошо работает в классификации, где мы сглаживаем метку пропорционально площади замены. [напр. p(dog) = 0.6, а p(cat) = 0.4]

🔸Mosaic - она включает в себя создание составных изображений (или мозаики), объединяя несколько изображений в один образец обучения. Пример на картинке 2.

Не забываем что у нас к изображениям идут метки (labels) и они тоже меняются вместе с картинкой. Пример можно посмотреть на картинке 3.

⭐️Есть кстати бородатая задача с собеседований: "Нам нужно распознавать дорожные знаки для автопилота, какие аугментации мы можем/не можем применять?" Спойлер: если делать например horizontal flip, то знаки поворота будут неправильно распознаны.

Полезно будет почитать:
Искусство аугментации: как улучшить модели компьютерного зрения без сбора
новых данных
04/04/2025, 12:55
t.me/kartinka_so_smyslom/99
04/04/2025, 12:55
t.me/kartinka_so_smyslom/96
04/04/2025, 12:55
t.me/kartinka_so_smyslom/98
Эти индусы добрались и до меня

Предлагают позицию, где надо участвовать в собеседованиях и выдавать себя за US разработчика🇺🇸 🦅

Чтобы получать офферы для других людей.

Они даже не парятся, чтобы убрать "email template" из сообщения мне, о каком фроде вообще идёт речь😑
04/02/2025, 10:29
t.me/kartinka_so_smyslom/95
Конфиги для определения всего 📄

На прошлой неделе была первая учебная лекция курса, и она натолкнула меня на мысль написать этот пост.

Последнее время очень много занимаюсь объединением и унификацией пайплайнов предобработки данных из разных репозиториев.
©️Суть в том, что когда берёшь какой-нибудь репозиторий с архитектурой модели, там обычно всегда по разному написан код предобработки входных данных, а когда хочешь взять себе потестить, то нужно всё это легаси как-то помёржить.

Как вариант - написать кучу if выражений и в зависимости от выбранной архитектуры выполнять нужный код.🤦‍♂️
©️Но так явно делать не стоит

⭐️Гораздо лучший вариант - перенести весь пайплайн предобработки в yaml конфиги, а в коде сделать только прямолинейный код, читающий эти самые конфиги. Так проект будет более гибким и иметь более низкий порог входа.

Чтобы удобнее работать с ними в коде рекомендую использовать связку omegaconf + pydantic.

©️Pydantic нужен для подсвечивания типизации и автодополнения в коде. Эта библиотека пошла из бэкенда и является стандартом для создания структур данных в Python. Также отдельный респект за валидацию и конверсию типов данных.
🔸Лайфхак который недавно узнал - можно автоматически конвертировать List в Tuple при чтении из yaml (yaml изначально не поддерживает Tuple)

©️Omegac
onf - cистема иерархической конфигурации на основе YAML с поддержкой слияния конфигураций из нескольких источников - пишет нам документация. Хороший инструмент для чтения и манипуляций с yaml конфигами.

Ещё немного полезных вещей:

©️Преобразования из Albumentations (популярная библиотека для пайплайнов предобработки данных и аугментаций) можно также указывать в конфигах, а в коде просто загружать их.

©️Pydantic структуры можно удобно и нативно экспортировать в JSON формат

©️Конфиги легко трекать при обучении. Можно логировать конфиги в сервисы по трекингу экспериментов (MLFlow, ClearML и т.д.). Так мы получаем прозрачность и воспроизводимость обучения моделей, и сможем легче сравнивать изменения.

©️Использовать этот стек можно не только при обучении моделей, но и в продовых сервисах для инференса.
04/01/2025, 22:20
t.me/kartinka_so_smyslom/94
03/30/2025, 19:34
t.me/kartinka_so_smyslom/91
03/30/2025, 19:34
t.me/kartinka_so_smyslom/92
03/30/2025, 19:34
t.me/kartinka_so_smyslom/90
03/30/2025, 19:34
t.me/kartinka_so_smyslom/88
Первая часть

Причём я готовился к финалке. Посмотрел, что и них за продукт и какое там качество, чтобы позадавать вопросы и показать вовлечённость. В общем, качество можете глянуть сами 💀

Только с бутылкой была бутылка в поисковой выдаче и то на 3ем месте 😂

Какие модели у них на тот момент использовались в проде, они не стали говорить, просто сказали, что старые и будут менять))

В поиск меня тогда не взяли, весь фидбек был, что немного недотянул по релевантным знаниям для этой команды...

Я пробовал ещё в другую команду, где надо следить за людьми в ПВЗ 😐
©️Там был наверно самый неприятный этап, который у меня был: 1.5 часа кодишь ML задачу, которую даёт собеседующий.
©️Нужно было написать RestAPI сервис и обучить CV модель (данных не было, но была одна картинка пример), пока собеседующий молча смотрит...

©️Это пока самая худшая практика, что я видел, не делайте так, лучше тогда уж дать в качестве тестового, а потом на созвоне разобрать. У меня там тупо был какой-то баг с установкой библиотеки и вообще собес не клеился, в итоге минут через 40-50 я предложил разойтись и не тратить время друг друга.

Вот собственно и The End. Потом приглашали ещё в другую команду, но на собесе выяснилось, что ВБ на той неделе запретил удалёнку по всему миру новым сотрудникам .

Потом я нашёл компанию, где сейчас работаю, но это уже совсем другая история... 👴
03/30/2025, 19:34
t.me/kartinka_so_smyslom/93
03/30/2025, 19:34
t.me/kartinka_so_smyslom/89
Пол года назад я поменял работу. Хотел поделиться процессом поиска и забавными моментами 🤑

На фотке мой эксель, который вёл, чтобы ничего не пропустить и никого не забыть. К сожалению, под конец забил на него и нету ещё некоторых компаний. Был, кстати, один ещё оффер после часового простейшего собеса, но с релокацией в рф. Когда он пришёл я даже на день задумался про него, так как устал от жизни в Аргентине и в целом уже надоело собеситься.

На самом деле искал довольно долго по нескольким причинам:

1️⃣У меня был часовой пояс -6 от МСК (аргентинское время). Хоть я и собирался переехать тогда, это было только в будущем и надо было ещё поработать из Буэнос-Айреса. 90% HR сливались после уточнения локации.

2️⃣Я хотел найти работу в довольно узкой сфере - было интересно только компьютерное зрение, причём не генеративное, так как в этом у меня нет практического опыта.

3️⃣Искал только на русскоговорящий рынок, так как были сложности с юридическим оформлением (ещё жил в Аргентине, но планировал уехать и не хотел там ничего оформлять, а через рф, если что, было бы легче)

По итогу поиск занял около полугода. Прошёл 7 (5 тех. + 3 HR) собесов в ВБ 🤡, и ещё с десяток в другие компании.

В ВБ были вообще странные собесы. Я шёл сначала в одну команду (ранжирование поиска).

©️Я идеально прошёл технический скрининг (ну почти, был там ещё литкод на котором потупил немного)

©️Потом был ML System Design (этап, где нужно проектировать ML систему от бизнес задачи до "как в прод выкатывать будем"), где меня собесил лид поиска, которому в начале интервью позвонили и я буквально 15+ минут его ждал и смотрел как он болтает. Предложил ему перенести, он отказался.

©️В итоге я дизайнил поиск по картинке. Это прошло максимально отстойно, я в пустоту вещал 40 минут, а потом ко мне вернулись и сказали, что фидбека не дали, но я не прошёл.

А так как фидбека нет, можно попробовать ещё раз - сказала мне hr...

©️Дали мне другого собеседующего, там был приятный парень из Core CV, ему прям респект, мне понравился собес. Он задавал вопросы на углубление в какие-нибудь штуки, которые я дизайнил. Ну оно и понятно: в вб он сказал, что только пришёл, а до этого работал 5 лет в Яндексе. В общем чего говорить, тут я хорошо прошёл. (P.S. дизайнил опять поиск по картинке😳)

К сожалению позицию в Сore CV закрыли другим человеком, который изначально туда собесился. Я подождал, и в команде поиска по картинке 🎃 открылась позиция - пошёл к ним на финалку.

©️Там был опять технический этап, где угадайте что... я дизайнил поиск по картинке 🤔, но теперь мы углублялись в архитектуру модели CLIP и дизайн поиска - если нет ещё прямой разметки пар "запрос (поисковый) - ответ (список товаров)". А я только поверхностно знал и про модель, и про поиск, без глубоких деталей.
03/30/2025, 19:34
t.me/kartinka_so_smyslom/87
Как можно исключить ошибку хирурга с помощью ML?



Писал в посте, что во время холецистэктомии есть шаг с наложением клипсы и пересеканием артерии и желчного протока (третья фаза).

©️Так вот, чтобы максимально исключить ошибку придумали набор правил, которые нужно соблюсти перед клипирование, и называется это Critical View of Safety.



Сейчас будет немного медицинской информации для контекста. Если будут неправильные переводы медицинских названий - сорян, нет медицинского образования, а все статьи на английском (переводчик иногда тупит).



Нужно соблюсти три следующих критерия:



1️⃣Очищение гепатоцистозного треугольника (hepatocystic triangle) от всей жировой ткани (см. картинку 1 для понимания)



2️⃣Видны две и только две структуры, соединенные с желчным пузырем. (имеется ввиду артерия и желчный проток)



3️⃣Нижняя треть желчного пузыря отделена от cystic plate (соре, не нашёл нормального перевода, это по сути место крепления желчного пузыря за печень)



⭐️Большинство серьезных травм желчных протоков обусловлены неправильной идентификацией. Поэтому эти критерии направлены на обеспечение максимальной видимости перед наложением клипсы.



❗️Есть исследования, которые доказывают эффективность этого метода, где количество повреждений желчного пузыря уменьшилось примерно в 10 раз.



В ML сообществе эту задачу по проверке соблюдённых критериев пытаются отдать на алгоритмы Computer Vision.

©️То есть задача построить классификатор, который будет в определённый момент понимать соблюдены ли все критерии безопасности.

©️Задача сложная и до сих пор нет хороших метрик на открытых датасетах. На данный момент они варьируются от 40 до 65 mAP (из 100) [на Endoscapes2023 и Endoscapes-WC70, например, про них тоже расскажу], что очень мало, особенно для медицины.



⭐️Есть даже ML соревнование, где нужно решить эту проблему. Там дают 1000 видео по 90 секунд каждое, которые размечены на multi-label классификацию по тем трём критериям (бинарные признаки - соблюдено/не соблюдено). Эти 90 секунд взяты до момента "point of no return", когда произошло наложение клипсы.

©️Разметка есть как для всего видео, так и для кадров (каждые 18 кадров имеют свою разметку)

©️Нагляднее можно посмотреть на картинке 3

©️Однако доступ к датасету предоставляли только для участников соревнования, а для научного и коммерческого использования не дают 😫



Есть видео от создателей этого соревнования, где рассказывают о сборе данных, их статистиках и т.д.



🚀 Сделаю как-нибудь разбор статей с необычными архитектурами моделей, так как мне эта тема интересна. Видел статьи с графами и с action recognition, будем вместе погружаться.
03/28/2025, 00:17
t.me/kartinka_so_smyslom/84
⚡️Сегодня забрал в посольстве долгожданную шенген визу

Подавались в консульство Италии в Белграде. Поймали слот для записи ещё в феврале. Их выкидывают раз в пару месяцев на сайте консульства и разбирают за 5-10 минут...

Ловили слот сами и собирали документы сами (точнее жена👍) Консул даже похвалил, что собрали документы с первого раза идеально! Так что скоро открываем визовое агенство.

После подачи документов дали бумажку для забора паспортов с визой через 12 дней.

Выдали визу по схеме 15/30, то есть на 30 дней с одной поездкой на 15 дней максимум (столько дней и запрашивали).
©️Это первый шенген у меня за долгое время и точно первый в Белграде (шенгены из рф обычно не играют роли). До этого только было парочку в детстве.

⭐️Сейчас пошёл тренд на выдачу виз с условием, что ты по возвращении идёшь отмечаться в консульство и прикладываешь посадочные талоны, показываешь где был. Я так понимаю это именно прикол итальянского консульства в Белграде.

🔥 Как-то так. Отчёт с евротура обязательно будет!

P.S. Знаю, на меня подписаны те, кто проживает в Сербии - вот основной тг чат про получение виз.
03/25/2025, 13:38
t.me/kartinka_so_smyslom/83
03/25/2025, 13:38
t.me/kartinka_so_smyslom/82
Как составлять план развития?

Есть разные фреймворки, которые можно взять в основу:
�OKR (Objectives and Key Results)
🔸GROW (Goal – Reality – Options – Will)
🔸Формулирование целей по SMA
RT

⭐️ Но сегодня поговорим о фреймворке 70/20/10

70/20
/10 — это широко применяемая модель развития сотрудников, которая помогает эффективно распределять усилия между разными видами обучения. Придумана ещё в 1996 году.
©️Основная идея в том, что люди осваивают новые навыки и знания через практический опыт, взаимодействие с другими и формальное обучение в следующих пропорциях:

🔸70% Практики - рабочие проекты и задачи. Тут мы описываем "что", в каком объёме и к какому сроку лично мы должны выполнить.
©️Это как раз тот пункт, который поможет договориться на более интересные вам проекты. Также при желании перейти в другое направление, можно набрать задач уже оттуда, чтобы начать приобретать необходимые там навыки, решая задачи из новой области.

🔸20% Взаимодействия - социальная составляющая, где путём общения с коллегами, вы перенимаете их опыт.
©️Мой личный опыт показал, что самое продуктивное это найти ментора из коллег выше грейдом и шире опытом и устроить регулярные 1-to-1 встречи (хотя бы раз в 2 недели). При чём это именно должен быть практикующий разработчик, а не менеджер (если хочется развивать харды)!

🔸10% Формального обучения - курсы, книги и т.д. Могу посоветовать за год проходить хотя бы один профильный курс, круто если компания оплатит вам его (обычно на это закладывается бюджет, надо спрашивать).

Как часто нужно сверяться с планом?

В больших компаниях есть практика делать ревью раз или два в год, но это скорее формальные ревью.
©️Я бы посоветовал сверять прогресс чаще - хотя бы раз в квартал устраивать с руководителем 1-to-1 встречи, просить фидбек и оценивать продвижение.

🔥 Мне такой подход позволил получить 2 повышения в предыдущей компании: со стажёра в штатного джуна и далее до мидла. Также сейчас внедряем похожую практику в текущей компании.
03/24/2025, 22:29
t.me/kartinka_so_smyslom/81
Давайте поговорим об Индивидуальных Планах Развития (ИПР)

Зачем нужен план развития?
Если думаешь, что он нужен, чтобы компания контролировала твою продуктивность, и если плохо перформишь, то уволить тебя - то ты отчасти прав 😢

🔖 НО он также нужен и тебе и на то есть причины:
🔸Так ты сможешь работать над проектами, которые тебе более интересны
🔸Приводить это как аргумент к повышению зп/грейда

План должен быть реалистичным, чтобы ты мог его выполнить и не выглядеть в глазах руководителя слабо перформящим.

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

Вопросы которые следует задать себе при составлении целей:
©️Как я вижу свое‌ развитие в ближайшие полгода, год, два?
©️Какую позицию хочу занять следующей?
©️В че‌м вижу свои сильные стороны?
©️А что мне даётся с трудом?
©️Какие компетенции стоило бы подтянуть?
©️Какие задачи (проекты) могли бы приблизить меня к желанной цели?

Однако надо не забывать согласовывать план с руководителем!
🔸Во-первых, чтобы тебе подтвердили его, что он реалистичный и мэтчится с целями команды/компании.
🔸Во-вторых, чтобы давали возможность работать над проектами и развивать компетенции, которые хочется.
03/24/2025, 22:28
t.me/kartinka_so_smyslom/80
Ещё немного про датасет Cholec80 и определение фаз/инструментов в холецистэктомии с помощью ML
Ссылка на первую часть

Отсмотрел много видео из этого датасета и могу сказать, что он очень стерильный, то есть на нём в целом не построить устойчивую систему, которая будет обобщена на нестандартные кейсы.

©️Когда отсматривал операции за пределами этого датасета, замечал множество отличий.

🔖Кстати, подаваясь на вакансию, где сейчас работаю, боялся, что будет сложно или неприятно работать с видеозаписями операций, но это прошло буквально через пару дней и произошла "профдеформация" как у врачей, что это больше не воспринимается как что-то необычное.

Но вернёмся к датасету. Выделю основные наблюдения и замечания:

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

🔸Простые кейсы - не происходит редких событий, нет хирургических неточностей, вроде сильных кровотечений и т.д. (для пациента это прекрасно, но к сожалению в ML важны такие данные)

🔸Мало жировой ткани - то есть пациенты с ожирением будут для модели выглядеть по-другому.

🔸Нет разметки out-of-body - есть моменты в датасете когда камеру достают из пациента, а разметка продолжается, будто это часть фазы. Для модели это вносит шум, так как обычно используется не такое большое временное окно контекста. Да и вообще такая разметка может пригодиться для анонимизации лиц и безопасного хранения данных.

⭐️Задача действительно сложная. Во время операции происходят непредвиденные события, а чтобы их хорошо обрабатывать модели должны учиться на этих случаях.

©️Как вы понимаете, достать такие данные очень сложно и их мало. Сама разметка стоит дорого - одно видео должно независимо разметить как минимум 3 хирурга для исключения ошибок, ведь на некачественных данных хорошую модель не построить.

Про эксперименты рассказывать не буду, так как это статья 2016 года и использованные подходы уже устарели. Но если вкратце:

🔸Предложенная архитектура основана на AlexNet. При этом уже вышла VGG-19 годом ранее, чем опубликована статья 👴

🔸Для tool detection выбрана метрика Average Precision (AP), для phase recognition - precision, recall и accuracy. На самом деле позже в статьях появляется как стандарт - метрика macro F1, посчитанная на уровне видео и усреднённая по всем видео.

upd: немного оговорился, vgg19 вышла на 2 года раньше чем эта статья, а годом раньше вышел ResNet. И я не понял почему они берут AlexNet за основу. Мб из-за того, что медицина слишком консервативна?😐
03/22/2025, 17:06
t.me/kartinka_so_smyslom/79
03/22/2025, 17:06
t.me/kartinka_so_smyslom/78
Стартовал 2 поток курса «Деплой DL-сервисов» 🚀

На этой неделе мы провели вводную встречу, на которой студенты нового потока познакомились друг с другом. А уже 25 марта ребят ждёт первая лекция по настройке репозитория🔥

Если вам тоже интересно научиться создавать и деплоить DL-сервисы и стать частью коммьюнити, которое объединяет опытных и начинающих специалистов из разных компаний и стран, то до первой лекции ещё можете присоединиться к курсу!

Узнать подробнее о программе и оплатить курс можно по ссылке!
03/22/2025, 14:53
t.me/kartinka_so_smyslom/77
Ору с того как я получился тут) ⌨️

P.S. Вот если хотите такой же офигенный ковёр на фон как у меня.

После переезда в Белград мне начали нравиться красные ковры. Вот ещё в ленте попадался ролик и запомнился один оттуда. И у ребят с квартирника классно вписывался в интерьер (хоть и не красный 🙂)
03/22/2025, 14:53
t.me/kartinka_so_smyslom/76
Помощь хирургам во время холецистэктомии с помощью Computer Vision 👀

Хочу раскрыть получше тему AI в хирургии. У меня уже был обзорный пост на эту тему, но сейчас начну серию статей с детальным разбором каждой ML задачи, решаемой в научном сообществе, касающейся лапароскопической холецистектомии.

Что это вообще за операция?
Холецистэктомия — это хирургическое удаление желчного пузыря, обычно проводимое при желчнокаменной болезни или воспалении пузыря. В одной только США проводится 300,000 операций ежегодно. Операция выполняется лапароскопически в 90% случаев (по крайней мере в штатах), то есть через небольшие разрезы с помощью эндоскопической камеры и инструментов.
©️На всякий случай вот полное описание операции.

Сегодня разберём статью EndoNet: A Deep Architecture for Recognition Tasks on Laparoscopic Videos, в которой был представлен датасет Cholec80. Этот датасет в дальнейшем цитируется в огромном кол-ве статей.

Датасет содержит 80 видео-операций, проведённых 13ю хирургами, и размечен на две задачи:
🔸Phase recognition - классификация текущей фазы операции (каждый кадр размечен одним из 7 классов-фаз)
🔸Tool presence detection - мультиклассовая разметка инструмента в кадре (в одном кадре может быть несколько инструментов). Разметка бинарная по каждому инструменту - есть или нет его в кадре.

Какие фазы распознаются?

1️⃣Preparation (Подготовка) - на этом этапе устанавливаются троакары и вводится лапароскопическое оборудование в брюшную полость. Также хирург выбирает удобный ракурс для себя. Обычно в этой фазе в кадре не появляются инструменты

2️⃣Calot triangle dissection (диссекция треугольника Кало) - производится очищение пузырного протока и пузырной артерии в области треугольника Кало.

3️⃣Clipping & cutting (клипирование и пересечение) - на пузырный проток и артерию накладываются клипсы, после чего они пересекаются. Очень ответственный шаг, где ошибку нужно максимально исключить. Об этом напишу в следующих статьях, так как ML тут тоже может помочь! 🔥

4️⃣Gallbladder dissection (отделение желчного пузыря) - желчный пузырь отделяется от ложа печени.

5️⃣Gallbladder packaging (упаковка желчного пузыря) - удалённый желчный пузырь помещается в специальный контейнер (Specimen bag) для извлечения из брюшной полости.

6️⃣Cleaning & coagulation (Очистка и коагуляция): Производится очистка операционного поля и коагуляция мелких кровоточащих сосудов.

7️⃣Gallbladder extraction (извлечение желчного пузыря) - контейнер с желчным пузырём извлекается из брюшной полости через один из разрезов.

Распределение классов в датасете и примеры инструментов можно посмотреть на картинке.

Чем полезно решение этих задач?

©️Например, распознавание фаз является важным компонентом для разработки контекстно-зависимых систем, которые смогут контролировать хирургические процессы, оптимизировать операционные и планировать расписание персонала, а также предоставлять автоматизированную помощь клиническому персоналу.

©️Благодаря возможности сегментировать хирургические процессы можно будет автоматизировать индексацию баз данных хирургических видео, что сейчас является трудоемким ручным процессом.

©️В долгосрочной перспективе такие контекстно-зависимые системы также можно будет использовать для оповещения врачей о возможных предстоящих осложнениях.

Скоро выложу проду 🚀
03/21/2025, 14:55
t.me/kartinka_so_smyslom/75
03/19/2025, 19:04
t.me/kartinka_so_smyslom/73
🔥 У меня начался курс по деплою Deep Learning сервисов

Сегодня была вводная лекция со знакомством и введением в структуру курса.

Будут рассказывать
🔸Как настроить репозиторий для разработки (линтеры, CI/CD, Makefile),
🔸Версионировать данные (clearml-data, DVC)
🔸Экспортировать модели
🔸Писать сервисы для инференса этих самых моделей

У меня есть цель прокачаться в версионировании данных, так как особо не углублялся в эту тему, а также в инференсе (будут рассказывать на примере Nvidia Triton)

🚀 Буду писать сюда полезные инсайты.
03/19/2025, 19:04
t.me/kartinka_so_smyslom/74
Почему нужно менять компании для айтишника? 🚜

❗️Это довольно часто вызывает споры в соц. сетях, так как частая смена компаний негативно сказывается на резюме, но засидевшись в одной, будешь слишком оторван от текущей ситуации на рынке.

При чём нет единого мнения сколько "нормально" оставаться на одном месте. Кто-то пишет год, кто-то вообще говорит, что меньше 3-ёх лет это ред флаг 🚩.
©️Моё мнение, что рост навыков обязателен на начальном этапе, и что если через год нет хотя бы горизонтального роста, то следует подумать над уходом.
©️Мне, например, повезло в Марсе, что была возможность горизонтально расти и поработать в разных доменах, так я получил навыки в классической bigdata со Spark, а также с компьютерным зрением, что мне зашло гораздо больше и решил, что хочу развиваться в нём.
©️Однако это обычно не приходит сверху, так как руководителям невыгодно перемещать тебя в другой домен, где у тебя нет навыков, поэтому нужно самому инициировать этот процесс и обсуждать на 1-to-1 встречах с руководителем процесс перехода. Позже отдельно сделаю пост про индивидуальные планы развития. 🔥

Несколько пунктов почему мне кажется следует менять компании:

🔸Основная причина - рост заработной платы 💸.
©️Это запросто в начале карьеры даёт x2-x3 денежного буста, которого никаким образом не достичь внутри одной компании, так как скорее всего там есть привязка к максимальному порогу повышения.
©️Про "бигтехи рф" слышал из разных источников потолок повышения зп на 30% в год.

🔸Улучшение компетенций - в другой компании скорее всего будет отличаться стек технологий, процессы разработки, архитектуры приложений. С переходом в новую компанию, я сильно забустил скилл и кругозор в технологиях.

🔸Изучение новых процессов - тут скорее пункт про культуру работы и разработки. На разных примерах можно прочувствовать, что больше нравится.
©️В карьерном плане я думаю это играет большую роль, особенно подходя к руководящим позициям. Так можно будет лучше оценить какие процессы следует внедрять, будучи тимлидом или engineering manager.

🔸Новая сфера бизнеса - особенно важно для ML и Дата спецов, так как данные сильно завязаны на бизнес домен и задачи которые решаешь. Например, занимаясь прогнозированием продаж в офлайн ритейле, не так просто перейти в оптимизацию поискового движка. Может не лучший пример, но надеюсь идея понятна.
©️Прежде всего это критично для дата и продакт аналитиков, где есть привязка к продукту, так как им нужно погружаться в метрики, особенности данных. Сам прочувствовал это когда работал дата аналитиком, что не зная особенности витрин данных и как с ними работать, получались неправильные выводы.
©️Мне лично больше нравится быть ML инженером с акцентом на ml и продакшен+инференс, так как это даёт больше свобод при выборе компаний (меньше привязки к домену). В этом плане завидую обычным разрабам, где без разницы для кого писать фронт или бэк (если не так - change my mind в комментах)
03/19/2025, 10:39
t.me/kartinka_so_smyslom/72
🌐 Технологии искусственного интеллекта развиваются так быстро, что законодатели многих стран не успевают загнать их в рамки регулирования. Автор канала ИИ & Право с интересом следит за этой гонкой и фиксирует ее результаты.

✏️ Там вы найдете:

✔️новые законы, проекты и обсуждения регулирования ИИ в разных странах;
✔️правовую аналитику и исследования в области новых технологий;
✔️ кейсы и казусы, поднимающие этические вопросы ИИ;
✔️полезные материалы для специалистов в сфере управления ИИ и многое другое.

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

➡️Подписывайтесь на ИИ & Право и будьте в курсе последних мировых новостей, связанных с искусственным интеллектом, законодательством и этикой.

#взаимнаяреклама
03/18/2025, 16:38
t.me/kartinka_so_smyslom/71
03/18/2025, 13:43
t.me/kartinka_so_smyslom/68
Какую платформу для разметки данных выбрать? 🥱

❗️Пост будет именно о изображениях и видео. Текстовые и аудио данные не будем брать во внимание.

Есть разные виды платформ: open-source, которую вы можете задеплоить к себе в инфраструктуру и on-premise, где вы платите за доступ к облачной платформе.

Расскажу о некоторых популярных в 2025 году платформах:

1️⃣CVAT - удобный open-source инструмент, который можно развернуть у себя в инфре. Очень приятный веб интерфейс разметки, без надобности установки локально.
©️Из минусов - требовательный к ресурсам (поднимается 15 docker контейнеров...), и тяжёл в настройке. Сам пользовался - рекомендую как дешёвое решение.

2️⃣ LabelImg - не понравилось что это десктопное приложение, а следовательно тяжело масштабируемое. Поддерживает только разметку bounding boxes, что сильно ограничивает набор задач разметки.

3️⃣Supervisely - пока мой фаворит среди платформ разметки (если закрыть глаза на цену...). Это веб платформа для разметки, которая поддерживает множество форматов и задач через внутреннюю систему приложений (можно даже свои делать, но нужна Enterprise лицензия).
©️Сами сейчас используем её как основной инструмент разметки данных.
©️Есть удобные интеграции с AI инструментами авторазметки
©️Есть SDK для Python и HTTP api. Можно размечать как видео, так и картинки или 3d сканы МРТ. Однако документация и SDK не всегда хороши.

4️⃣Label Studio - многофункциональная платформа разметки как для картинок, так и для аудио, текста и т.д. Интерфейс интуитивен и позволяет быстро приступить к работе.
©️Но для картинок, мне показалось, не очень приятно делать разметку, так как интерфейс не такой отзывчивый как в CVAT.

🔖 В общем, если работаете только с картинками и есть деньги, то Supervisely - топ. Если нет денег - то берите CVAT.
03/18/2025, 13:43
t.me/kartinka_so_smyslom/70
03/18/2025, 13:43
t.me/kartinka_so_smyslom/67
03/18/2025, 13:43
t.me/kartinka_so_smyslom/69
Всем привет!
Для тех, кто на моём канале первый раз, обновил шапку - добавил туда навигацию с интересными постами 💃

А также мы преодолели рубеж в 50 человек! 👏😘
Буду стараться и дальше для вас)

upd: просчитался, но где...
03/17/2025, 20:05
t.me/kartinka_so_smyslom/66
Технические тонкости линтеров 👆
Продолжение поста

Линтеры интегрируются в CI/CD‑процессы (Continuous Integration, Continuous Delivery — непрерывная интеграция и доставка) и выполняются в pipeline (поток автоматической интеграции и доставки).
©️То есть при пуше вашего кода в git репозиторий шаг за шагом стартуют разные типы проверок: собирается образ, запускаются линтеры, далее идут автоматические тесты и деплой приложения в целевую среду доставки.

⭐️Однако до этого можно настроить пре-коммит, который не позволит закоммитить код до прохождения проверок.
©️Настраивается это в .pre-commit-config.yaml. Вы указываете список линтеров и форматеров, которые будут проверять ваш код. Затем с помощью плагина pre-commit устанавливаете их для коммитов или запускаете вручную. Подробнее почитать можно тут.

Must-have линтеры и форматтеры:
1️⃣flake8 - предупреждает о сложных строках, плохих названиях переменных, комплексных модулях и т.д.

2️⃣mypy - линтер для соблюдения написания аннотации типов переменных, не оптимально написанных конструкций кода

3️⃣isort - для сортировки импорта в алфавитном порядке и автоматически разделена на разделы и по типу

4️⃣black - самый популярный форматер кода. Приводит код к одному стилю отступов, переходов на новую строку и т.д.

5️⃣nbstripout - убирает output в ячейках Jupyter ноутбука. Особенно полезно при выведения графиков и картинок, так как иначе в git diff будет очень много грязи из-за векторной графики.

❗️Даже ChatGPT пишет код не проходящий линтеры и плохо его редачит при просьбе соблюдать лучшие практики, pep8 и т.д.
©️На самом деле это боль. Например, когда просишь отрефакторить несколько функций, он может выдавать код, который создаёт больше предупреждений, чем было до этого.
©️Легче загуглить номер ошибки и почитать её документацию с примерами исправления, что, кстати, очень полезно для развития скилов.

⭐️Это реально заставляет думать о качестве кода и использовать паттерны проектирования (чтобы упростить структуру)

Полезные статьи по теме:
1. Молниеносный инкрементальный линтинг Python-кода
2. Python Дайджест: как актуализировать всю кодовую базу с помощью pre-commit
03/16/2025, 13:06
t.me/kartinka_so_smyslom/65
Как понять что вы пишете говнокод? 😳

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

Допустим мы поняли что пишем говнокод, а как это исправить?

©️Круто если у вас в команде грамотно построены процессы разработки и есть код ревью, на котором нам напишут фидбек и расскажут как сделать лучше более опытные коллеги.
©️А что если нет?
©️Представим неправильно поставленный процесс где research data команды пишут продовый код и особо никто не занимался промышленной разработкой. Или, например, над вами только non-tech менеджеры. Такое слышал бывает в компаниях, где IT и ML не основное направление бизнеса.

⭐️Я рекомендую использовать линтеры и форматеры. Это must-have для первых шагов улучшения читаемости вашего творчества.
©️Для тех кто не знает, это анализаторы кода на соблюдение определённых правил. И да, для обычных разрабов это не новость, но для ml'щиков думаю очень полезно, так как средний ml'щик работает в Jupyter ноутбуке📄

🔖Линтеры помогут начать думать о своём коде более глобально. Будут заставлять упрощать функции и классы для более низкого порога входа в понимание смысла увиденного сторонним человеком или вами после отпуска/перерыва.

🔖А форматеры будут сами форматировать ваш код: отступы, порядок импортов и т.д. Чтобы код был оформлен в одинаковом стиле.

Технические моменты будут завтра в следующем посте.
Stay tuned🔥
03/15/2025, 23:31
t.me/kartinka_so_smyslom/64
Пробираясь между протестующими, проехали сегодня 25км 🤨

Давно хотел купить велосипед исследовать город (ещё в Буэнос-Айресе) и тренироваться, а в Сербии решился.
❗️Так что всем кто думает о покупке, рекомендую не медлить и купить!

©️Вот уже месяц стабильно по 3-4 раза в неделю выезжаем покататься. Для тех кто на меня подписан из Сербии сделаю подборку маршрутов как-нибудь🎉

🌟Спорт мне очень помогает не сойти с ума со всеми этими переездами, стрессом, работой и т.д. И пока что велосипед - один из лучших и дешёвых.

©️Ещё обычно хожу раз в неделю на тренировку по большому теннису, и оттуда тоже будут фотки как технику улучшу 😁

🔥Теннис тоже прекрасен - это была любовь с первого взгляда, но он очень дорогой и сложный.
©️За пол года интенсивных индивидуальных тренировок я едва поставил основной удар (forehand)

P.S. сегодня самый крупный протест против власти в Сербии 💪
03/15/2025, 16:53
t.me/kartinka_so_smyslom/63
03/15/2025, 16:53
t.me/kartinka_so_smyslom/62
03/13/2025, 09:13
t.me/kartinka_so_smyslom/60
Интересные тренды и новинки в компьютерном зрении. Итоги 2024 🔥

1️⃣Первый интересный тренд это "аугментации с помощью генерации картинок". Я рад, что современные генеративные нейросетки позволяют создавать не только brainrot тиктоки, но и данные для обучения других моделей такого качества, что даже улучшает их.
©️Вот есть медицинская статья с экспериментами, где улучшило качество на out-of-distribution примерах (см. картинку 1, эти изображения сгенерированы).
©️При чём есть такая аугментация как CutMix (см. картинку 2, вырезание части одной картинки и накладывание её на другую с изменением метки классификации пропорционально доли замещения) и она доказано хорошо работает, а генеративные сети - это по сути продолжение этой аугментации.

2️⃣Автоматическая разметка картинок с помощью "фундаментальных моделей" (то есть большие модели, которые подразумеваются, что понимают устройство мира, так как обучаются на огромных датасетах).
©️Например можно взять вышедшую Segment Anything 2 и по промпту трекать объекты на видео и ускорять разметку (при этом промптом может быть bounding box от предобученной модели детекции на малом количестве вручную размеченных данных). У них ещё можно потыкать в демку SAM2.
©️Это довольно удобно, особенно если несложный домен данных. Но я грущу... Такую штуку в медицине трудно применить, так как домен сложный, цена ошибки высока, а тем более нет доверия к такому датасету при получении одобрения на внедрение софта в продакшен.

3️⃣Должен упомянуть остальные тренды:
©️Модели становятся лучше и дешевле (как в обучении, так и в инференсе), что имхо довольно закономерно и похоже на развитие электроники в целом
©️Open-source модели неплохо конкурируют с проприетарными и это очень радует
©️В 2024 году добрались до генерации видео-клипов, та же SORA 🗯 хайпанула сильно, но качество хромает для динамичных видео. Хорошо пока получается анимировать картинки.

Как-то так. Выписал интересные мне темы, вот можно глянуть фулл.
03/13/2025, 09:13
t.me/kartinka_so_smyslom/61
Подборка научпопа по нейросетям для начинающих 🧠

1️⃣ Что такое нейронная сеть? - расскажут самые основы нейросетей на примере предсказывания числа на картинке рукописных чисел

2️⃣Градиентный спуск, как обучаются нейросети - функции потерь (loss functions), как работает градиентный спуск для оптимизации этой функции потерь, и что это вообще такое

3️⃣Краткое объяснение больших языковых моделей - объяснение на пальцах как работают и обучаются Large Language Models (LLM) такие как ChatGPT 🗯

4️⃣LLM и GPT - как работают большие языковые модели? - похожее на предыдущее видео, но с бОльшим кол-вом математики и подробностей

⭐️Вообще на этом канале много видео, где сложные темы объясняются простым языком.

🔖Если у вас есть на примете интересные видео или статьи, можете покидать в комментарии!
03/10/2025, 10:41
t.me/kartinka_so_smyslom/59
Получил фидбек, что тема про инференс не очень понятна, давайте разберём ч.2

И тут как бы да, в базовом варианте можно использовать тот же фреймворк, что и в обучении, но вам же не нужен больше код обучения...
А что если вы хотите модель запустить не из питона? А что если хочется вообще запустить на микрокомпьютере и нужна супер оптимизация?

Тут нам и поможет экспорт модели в стандартизированный формат, например ONNX (Open Neural Network Exchange), так как он довольно универсальный, и в дальнейшем из него можно проводить конвертации в другие форматы.
Изначально ONNX задумывался как открытый формат представления нейросети, который свяжет представление моделей в разных фреймворках.

А для запуска таких конвертированных моделей можно использовать уже специальные инференс фреймворки:

©️onnxruntime - фреймворк от разработчиков onnx. Поддерживает большинство типов ускорителей и применений. Хороший бейзлайн для инференса на CPU и уж точно один из самых универсальных

©️TensorRT - Оптимизирован для использования с GPU Nvidia. На текущий момент работает быстрее всего с этими GPU

©️OpenVino - аналогичный фреймворк, только от Intel для их CPU, соответственно и работает на них лучше остальных.

Вот собственно и всё 🗣
03/08/2025, 21:38
t.me/kartinka_so_smyslom/58
03/08/2025, 21:37
t.me/kartinka_so_smyslom/56
Получил фидбек, что тема про инференс не очень понятна, давайте разберём ч.1

Модели обучаются с помощью Python фреймворков (больших библиотек). Внутри них уже написана куча кода за вас, а вы в основном используете верхнеуровневые функции.
Есть 2 самых популярных - Pytorch🔥 и TensorFlow🇹🇫 Они во многом похожи, и зная один, нетрудно пересесть на другой (сам я пользуюсь первым и где работал использовался он)

Используя фреймворк обучения вы:
©️Описываете архитектуру модели
(см. картинку 1, если сложно и вам не актуально - пропустите)

©️Пишете пайплайны загрузки данных

©️Определяете функцию потерь

©️Пишете тренировочные циклы
(см. картинку 2, обучающие данные циклично прогоняются через модель, которая изменяет свои параметры, чтобы лучше предсказывать ответы на этих обучающих данных)

На тему обучения моделей у меня был пост (см. вторую половину). Также скоро сделаю подборку наглядных видео как работают современные нейросети 🤔

⭐️На этом обучение кончилось и начинается стадия инференса, то есть когда веса модели зафиксированы и мы используем её для предсказания чего-либо.
03/08/2025, 21:37
t.me/kartinka_so_smyslom/57
03/07/2025, 20:43
t.me/kartinka_so_smyslom/53
Как оптимизировать выкатку моделей? 🏃‍♂️

1️⃣Для написания пайплайнов обучения лучше использовать IDE, а Jupyter ноутбуки лучше оставить только для визуального исследования данных.

©️Плюс, с IDE гораздо удобнее использовать линтеры и Git.

©️Когда я сам начал так делать, моя продуктивность сильно возросла, так как иногда ноутбук превращался в жуткую помойку

2️⃣Подключите либы для виртуальных окружений и контроля зависимостей в проекте.

©️Мне лично раньше для обучения нравилась conda (с conda env export), так как там легко создать окружение с любой версией Python

©️Но сейчас стал пользоваться pyenv для нужной версии + можно поставить pipenv или poetry для автоматического контроля вместо pip freeze.

©️Плюс эти двое ещё позволяют для продовых проектов устанавливать отдельные пакеты для dev окружения.

3️⃣Не используйте Pytorch для прода, у этого куча минусов:

©️Тяжёлые зависимости в docker контейнере

©️Неоптимальное вычисление построчно кода

©️Потенциально вредоносный код в весах модели

Если есть какие-то мысли на эту тему, можем обсудить в комментах 📌
03/07/2025, 20:43
t.me/kartinka_so_smyslom/55
03/07/2025, 20:43
t.me/kartinka_so_smyslom/50
03/07/2025, 20:43
t.me/kartinka_so_smyslom/54
03/07/2025, 20:43
t.me/kartinka_so_smyslom/52
03/07/2025, 20:43
t.me/kartinka_so_smyslom/51
03/07/2025, 16:01
t.me/kartinka_so_smyslom/47
03/07/2025, 16:01
t.me/kartinka_so_smyslom/48
Что рассказывали на лекции тезисно:

➡️Растут требования к DS'ам - нужно теперь уметь делать больше при тех же грейдах (за те же или меньшие деньги хе-хе)

➡️Произошло насыщение рынка - кандидатов стало много, а вакансий +- также как и было.

➡️К тому же в целом появилось больше стандартизаций и процесс создания моделей стал больше похож на обычную разработку ПО.

⭐️Следовательно нужно научиться быть end to end ml специалистом, который сможет и с данными поработать, и модель обучить, и в прод если что катнуть (ну или хотя бы подготовить модель к проду)

🚀 Чуть позже выложу техническую составляющую лекции
03/07/2025, 16:01
t.me/kartinka_so_smyslom/49
Search results are limited to 100 messages.
Some features are available to premium users only.
You need to buy subscription to use them.
Filter
Message type
Similar message chronology:
Newest first
Similar messages not found
Messages
Find similar avatars
Channels 0
High
Title
Subscribers
No results match your search criteria