O seu período de teste terminou!
Para acesso total à funcionalidade, pague uma subscrição premium
KA
картинка со смыслом
https://t.me/kartinka_so_smyslom
Idade do canal
Criado
Linguagem
Russo
-
ER (semana)
-
ERRAR (semana)

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

Mensagens Estatísticas
Repostagens e citações
Redes de publicação
Satélites
Contatos
História
Principais categorias
As principais categorias de mensagens aparecerão aqui.
Principais menções
Não foram detectadas menções significativas.
Encontrado 64 resultados
19.04.2025, 10:52
t.me/kartinka_so_smyslom/110
19.04.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⃣ По наблюдениям самый нужный и прибыльный продукт который сейчас успешно делают — это приложения для мерчандайзинга.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

P.S. Если живёте в Сербии, приходите нетворкать
17.04.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
17.04.2025, 10:37
t.me/kartinka_so_smyslom/107
Астрологи объявили неделю дедлайнов - количество постов снижено 😓

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

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

Видос передаёт мои страдания, когда столкнулся с реальностью в которой надо что-то делать, а не просто покупать курсы 😣
12.04.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).
©️Хочу понять стоит ли того виза таланта, чтобы следующие несколько лет собирать на неё кейс.
7.04.2025, 10:45
t.me/kartinka_so_smyslom/104
☺️ Нас уже 111 человек!

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

P.S. на картинке моя любимая франшиза с имхо лучшей частью в лице New Vegas, которую прошёл 2.5 раза.
6.04.2025, 22:13
t.me/kartinka_so_smyslom/103
6.04.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 в разные платформы.

В общем пробуйте и делитесь своими техниками❗️
6.04.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 лицензиями для маленьких команд такой возможности нет.

📌В общем функционала много, но он сыроват.
4.04.2025, 19:15
t.me/kartinka_so_smyslom/100
4.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, то знаки поворота будут неправильно распознаны.

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

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

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

Они даже не парятся, чтобы убрать "email template" из сообщения мне, о каком фроде вообще идёт речь😑
2.04.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 и т.д.). Так мы получаем прозрачность и воспроизводимость обучения моделей, и сможем легче сравнивать изменения.

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

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

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

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

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

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

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

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

Потом я нашёл компанию, где сейчас работаю, но это уже совсем другая история... 👴
30.03.2025, 19:34
t.me/kartinka_so_smyslom/93
30.03.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 и дизайн поиска - если нет ещё прямой разметки пар "запрос (поисковый) - ответ (список товаров)". А я только поверхностно знал и про модель, и про поиск, без глубоких деталей.
30.03.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, будем вместе погружаться.
28.03.2025, 00:17
t.me/kartinka_so_smyslom/84
⚡️Сегодня забрал в посольстве долгожданную шенген визу

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

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

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

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

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

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

P.S. Знаю, на меня подписаны те, кто проживает в Сербии - вот основной тг чат про получение виз.
25.03.2025, 13:38
t.me/kartinka_so_smyslom/83
25.03.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 повышения в предыдущей компании: со стажёра в штатного джуна и далее до мидла. Также сейчас внедряем похожую практику в текущей компании.
24.03.2025, 22:29
t.me/kartinka_so_smyslom/81
Давайте поговорим об Индивидуальных Планах Развития (ИПР)

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

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

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

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

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

Однако надо не забывать согласовывать план с руководителем!
🔸Во-первых, чтобы тебе подтвердили его, что он реалистичный и мэтчится с целями команды/компании.
🔸Во-вторых, чтобы давали возможность работать над проектами и развивать компетенции, которые хочется.
24.03.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 за основу. Мб из-за того, что медицина слишком консервативна?😐
22.03.2025, 17:06
t.me/kartinka_so_smyslom/79
22.03.2025, 17:06
t.me/kartinka_so_smyslom/78
Стартовал 2 поток курса «Деплой DL-сервисов» 🚀

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

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

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

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

После переезда в Белград мне начали нравиться красные ковры. Вот ещё в ленте попадался ролик и запомнился один оттуда. И у ребят с квартирника классно вписывался в интерьер (хоть и не красный 🙂)
22.03.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 (извлечение желчного пузыря) - контейнер с желчным пузырём извлекается из брюшной полости через один из разрезов.

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

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

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

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

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

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

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

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

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

🚀 Буду писать сюда полезные инсайты.
19.03.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 в комментах)
19.03.2025, 10:39
t.me/kartinka_so_smyslom/72
🌐 Технологии искусственного интеллекта развиваются так быстро, что законодатели многих стран не успевают загнать их в рамки регулирования. Автор канала ИИ & Право с интересом следит за этой гонкой и фиксирует ее результаты.

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

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

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

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

#взаимнаяреклама
18.03.2025, 16:38
t.me/kartinka_so_smyslom/71
18.03.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.
18.03.2025, 13:43
t.me/kartinka_so_smyslom/70
18.03.2025, 13:43
t.me/kartinka_so_smyslom/67
18.03.2025, 13:43
t.me/kartinka_so_smyslom/69
Всем привет!
Для тех, кто на моём канале первый раз, обновил шапку - добавил туда навигацию с интересными постами 💃

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

upd: просчитался, но где...
17.03.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
16.03.2025, 13:06
t.me/kartinka_so_smyslom/65
Как понять что вы пишете говнокод? 😳

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

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

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

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

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

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

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

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

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

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

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

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

P.S. сегодня самый крупный протест против власти в Сербии 💪
15.03.2025, 16:53
t.me/kartinka_so_smyslom/63
15.03.2025, 16:53
t.me/kartinka_so_smyslom/62
13.03.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 🗯 хайпанула сильно, но качество хромает для динамичных видео. Хорошо пока получается анимировать картинки.

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

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

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

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

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

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

🔖Если у вас есть на примете интересные видео или статьи, можете покидать в комментарии!
10.03.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, соответственно и работает на них лучше остальных.

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

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

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

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

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

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

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

⭐️На этом обучение кончилось и начинается стадия инференса, то есть когда веса модели зафиксированы и мы используем её для предсказания чего-либо.
8.03.2025, 21:37
t.me/kartinka_so_smyslom/57
7.03.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 контейнере

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

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

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

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

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

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

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

🚀 Чуть позже выложу техническую составляющую лекции
7.03.2025, 16:01
t.me/kartinka_so_smyslom/49
Os resultados da pesquisa são limitados a 100 mensagens.
Esses recursos estão disponíveis apenas para usuários premium.
Você precisa recarregar o saldo da sua conta para usá-los.
Filtro
Tipo de mensagem
Cronologia de mensagens semelhante:
Data, mais novo primeiro
Mensagens semelhantes não encontradas
Mensagens
Encontre avatares semelhantes
Canais 0
Alta
Título
Assinantes
Nenhum resultado corresponde aos seus critérios de pesquisa