4011
Мемы и личные размышления про управление, код, ml и здравый смысл. Сейчас руковожу командой OCR in VLM в Яндексе. Автор: @toshiksvg
Профилируем память
В одном из прошлых постов писал, что в питончике можно профилировать память через memray. Действительно, хорошая тулза, умеет разбивать приложеньку на потоки, следить за форками, и даже работать с аллокациями на уровне С/С++. С последним не так классно справляется, сложно отследить аллокации глубоко в библиотеках.
Это является проблемой, если у вас течёт крыша 🏥 память не в куче, а какая-нибудь резидентная. Т.е. вы профилируете питонячие стек и кучу, а у вас всё там хорошо, при этом почему-то от вашего приложения всё поступают просьбы в ОС, что нужно больше памяти. Одна из причин — это то, что ваш питонячий код может использовать пакет, который является биндингом для плюсовой либы. И тут проблемки, потому что эта либа уже не живёт в модели памяти Python 🤓.
Что делать? Существуют множество техник. Одна из них — использовать jemalloc и подставить его через LD_PRELOAD.
И тут нужно знать две важные штуки о том, как запускаются приложения:
— На самом старте оно подгружает различные системные и собственные библиотеки;
— В вашем приложении сотни функций. Определение (читайте код) этих функций берётся по первому найденному символу (названию) среди подгружаемых библиотек;
Так вот, LD_PRELOAD — это способ загрузить кастомные либы до стандартных 🌿. Благодаря этому можно подменять любые функции, например, выделение и освобождение памяти.
Почему именно jemalloc? Потому что он имеет встроенные инструменты профилировки. Т.е. вам нужно запустить вашу приложеньку, просто переопределив переменную окружения (при условии, что у вас установлен jemalloc). Потом можно построить различные визуализации и техрепорты с теми статистиками, которые вам нужны. Можно регулировать частоту семплинга и всё такое. Вот тут можно почитать подробнее.
А мораль? Её нет. Профилировать резидентную память — это искать иголку в стоге сена: реально, но очень сложно.
А как бы вы профилировали? Поставьте 🤯, если было полезно!
Запись с ML Party в СПб
Я совсем пропустил, что, оказывается, моё выступление с ML Party, которое прошло 18 марта в Питере — уже опубликовали! Рассказал про то, как мы учим VLM, какие данные мы используем и с какими трудностями сталкиваемся! Мне кажется, получилось живо и здорово!
В кулуарных беседах обсуждали примерно следующее:
— Для чего вообще делать VLM и как бизнесу показать, что это нужная история?
— Очень много кто сейчас завозит VLM к себе: в основном слышу про документные срезы, когда нужно вытащить какую-то инфу из доков в удобном для обработки виде;
— Услышал про то, что есть ребята на рынке, кто занимается маленькими мультимодальными моделями — это было прям неожиданно;
— Немного обсуждали про то, как строить процессы в R&D командах.
Следующее выступление даже не знаю когда. Наверное, через полгодика-год можно будет снова что-то рассказать интересное. А пока максимум придти и поболтать на подкастах.
Запись доклада:
Youtube: https://www.youtube.com/watch?v=QpF8qlmCyEA
VK: https://vkvideo.ru/video-17796776_456241574
Про сатанизм с планированием встреч
Когда-то в аду сидели черти и раздумывали, что же такого мерзотного можно сделать, чтобы людям, работающим в корпорациях было еще тяжелее. И в какой-то момент, какой-то особо креативный чертенок решил предложить список правил, благодаря которым весь этот план реализуется.
Достоверно не известно, но кажется выглядел он примерно так:
1. Назначайте встречи всегда впритык. Самое кайфовое это прислать приглашение за 15 минут до встречи со словами СРОЧНО и ВАЖНО в заголовке.
2. Адженда для лохов. У нас тут кретивный мир в котором все бущующе и непредсказуемо. Не пишем никакой повестки никогда, зачем себя ограничивать
3. Если встреча запланирована на полчаса, то обязательно опоздайте на 15 минут. Вообще начинать вовремя это занудство, пусть вас ждут и видят какой вы важный пингвин, тем ценее будут оставшиеся 15 минут
4. Зовите на встречи вообще всех, кто был замечен рядом с темой встречи. Не важно будут ли они участвовать в принятии решения или нет - важно создать движуху и организовать массовку. Кто-то из них что-то дельное предложит
5. Если на встрече гибрид (часть в офисе и часть онлайн) - не давайте неудачникам из онлайна говорить, че это они в офис не приехали. Ссылайтесь на неработающую связь, перебивайте и вообще бесите их побольше, так и в офис ездить начнут
6. Регулярно отменяйте встречу за 5 минут до встречи. Во первых ну а чо бы и нет, а во вторых вы же человек уважаемый, у вас что-то более приоритетное может случится. И пусть весь мир подождет
Как бы жутко это не было, но заветы креативного чертенка залетели максимально широко, возможно ему за это даже премию каку-то выписали. Ну а если серьезно, то берегите друг друга, ведь неадекватная организация встреч убивает здравый смысл и не оставляет за собой ровным счетом ничего хорошего.
#сережинымысли
Каждый день улучшайся на 1% — будешь молодцом
На днях увидел видосик, где якобы с помощью математики объясняют как жить жизнь лучше. 🔼
Допустим у вас есть какой-то навык. И чтобы вы его поддерживать делаете усилие X — будем его для приближения считать равным величине навыка. Собсна если X уменьшается, то ваш навык ухудшается, если наоборот — увеличивается.
Мысль первая
Если будешь каждый день прикладывать на 1% усилий меньше, то через год у вас будет 0.02X — и это грустно. Тут я с математикой согласно, очень просто начать делать что-то на 1% хуже.
Мысль вторая
Если будешь каждый день прикладывать чуть-чуть больше усилий, порядка 0.01%, то через год будет около 1.0037X от навыка. И как будто бы это очень мало, легче было полежать на диване 🙂 (нет).
Мысль третья
Если будешь каждый день прикладывать усилий порядка 1%, то через год будет около 37.8X от навыка. Ничоси как много, а звучит-то как — всего на 1% лучше каждый день!
Последняя мысль как по мне — ну полный булшит 😊. Невозможно прогрессировать каждый день на 1% (только если начинать с очень низкого старта).
Допустим, тот же жим лёжа. Во-первых, не получится каждый день (ну это ладно). Но даже если каждый день. Если начнёте с базы 1 кг — то в целом да, через год жать 37-38 кг вполне реально (в реальности будет куда больше, с этой базы прогрессировать будете быстрее). Увеличим базу в 10 раз — в конце года должны по математике жать 370-380кг. Смогёте? Не думаю. Но если сможете, больше никому битки не должны будете.
Проблема в том, что чем ближе мы к абсолюту, тем дороже и сложнее нам даётся пресловутый 1%. Это и в наших с вами задачах по машинному обучению, и в жизни, и в спорте. Когда я ходил в зал тягать тяжести, тренер мне рассказывал, что на больших весах (ну типа 150-200кг+ прогресс в 1кг за полгода-год — это крупное достижение для многих).
Но как мотивашка, вероятно, мысль весьма верная. Но среди всех этих дней должна быть не только работа над навыком и бездумное улучшение на 1%: а отдых, познание мира, время для себя, родственников, друзей, семьи, т.е. тот самый налог на жизнь, без которого она — уже не такая уж и жизнь 😍.
Опа, легендарная реакция вернулась, спасибо за бусты! 😂
Кинуть буст можно сюда: /channel/blog_toxa?boost
Футбольчик
Я тут на днях решил начать ходить на футбол 🌿. В детстве я практически всегда зависал на поле, а как переехал в Питер — в зале был 2-3 раза за все 9 лет. В третий раз я чуть не умер на тренеровке, было очень тяжко сердечку.
Сегодня был четвёртый. Я пошёл сегодня на треню. До этого регулярно на дорожке ходил (не бегал) в высоком темпе, думал всё будет норм. Но нифига!!! Просто во время игры команды через минуту две уже становилось так себе, так что до конца матча я как будто бы реально выживал. Вы, кстати, можете на скрине из приложения понять, когда я играл на поле, когда я стоял на воротах 😀.
Я сидел, отходил. Рядом сидел человечек, который старше меня лет на 10-15, говорит: "Братишка, ты чего? Ну ты даёшь, молодой же!" 😊
Тут я подумал, что надо выносливость как-то возвращать. Итак, подписчики, какие есть варианты?
Ну и 🔥 за футбольчик 😍
Сегодня пытался кидать юморески в рабочие чатики. Закидали клоунами...
Я решил поворчать, закидали ещё раз клоунами...
Фазовый переход в деда, кажется, начался...
По традиции давайте накидаем 🐳
А для ценителей кидайте анекдоты в комменты (а, ой...)
Про командировку
Нынче прошла ещё одна командировка в Москву. Работы было много, а потому писать было некогда 😍.
Наверное, это была самая продуктивная командировка за всю мою историю работы в компании и вот почему:
— Уделил время больше чем обычно всем тем, кто работает в Москве;
— Увиделся со всеми руководителями и менеджерами, с кем планировал встречи;
— Классно потусили московским составом после работы;
— Порешал какое-то невероятное число вопросов, которые по разному стечению обстоятельств не удавалось решить на удалёнке!
Я всё ещё сторонник живых встреч, считаю, что они существенно продуктивнее zoom-встреч. Поэтому в этот раз подход был именно встретиться со всеми, раз есть такая возможность. Правда, накопился некоторый беклог задач, который надо разгрести, но оно того стоило.
А как вы проводите свои командировки 😍?
Вторая трёхдневка в Стратоплане
Прошёл почти месяц с моего предыдущего поста про обучение, а потому пришло время поучиться! Для тех кто пропустил — я учусь быть руководителем лучше на классном курсе. На этих выходных была новая порция крутейшего контента. 🔼
На самом деле между трёхдневками раз в неделю у нас были созвоны с командой, которую организовали на курсе, где мы разбирали различные учебные кейсы. Местами было легко, а где-то нужно было прям почесать репу 🤨. Но обилие практики позволяет закреплять материал лучше!
Что было в эти три дня?
В этот раз мы разбирали то, каким образом стоит тимлиду строить коммуникацию со своим руководителем и со своей командой. Практиковались конструктивной конфронтации, когда действительно необходимо понять человека, выяснить его мотивы того или иного поведения.
Разбирали лестницу принятия решений 🤓. Немножко поговорили про то, какими понятиями оперируют ребята на C-level и в топ-менеджменте, что происходит в мидл-менеждменте, а чем должны оперировать руководители команд.
Инсайт про лестницу: становится понятным, что любой руководитель в большинстве случаев — это не "какой-то негодяй, который приходит лишь бы результаты получить" 😀, а у каждого есть свои мотивы и степень погружения, и полезно бы про это знать. Кому-то майбах хочется купить, а кто-то за отдел радеет — и то, и другое имеет право на существование — мы все люди. Кто-то разбирается вплоть до каждой строчки кода в делах команды, а кто-то планирует бюджет и на строчки кода уже контекста не хватает.
Также разговаривали про то, что такое "защищать" команду, как формировать её имидж. Тут много чего я уже делаю, но пару пунктиков забрал на обдумывание 🤔.
Если как-то прописывать итог: было очень много полезных вещей. Каждый день уходил как минимум на час подумать о том, что мы сегодня прошли, очень много чего щёлкало в голове "агаа, так вот как можно это всё делать" 😍!
Если вам нравится читать про моё обучение — поставьте 🔥, чтобы я понимал! Сталкивались ли вы с топиками из поста?
5 подписчиков получат по 20$ 🤯
В честь своего дня рождения я решил разыграть небольшую сумму. Изначально идея была просто 5 подписок ChatGPT Plus, но потом я подумал, что у всех разные запросы, а потому просто денюжка будет полезна 🤩.
Правила очень просты:
1. Быть подписаным на канал;
2. Жмякнуть кнопку — участвовать.
Через неделю подведём итоги и выберем 5 победителей. А дальше там уже порешаем, чо куда можно перевести 😎.
Участников: 4787
Призовых мест: 5
Дата розыгрыша: 23:59, 24.03.2025 MSK (завершён)
Победители розыгрыша:
1. ^__^ ;D :3 - 2p14l7
2. 8 (888) 888-88-88 - 2ous5g
3. ʕ•́ᴥ•̀ʔ mysoul - 2op7ko
4. 𝒩𝑒𝓶𝑜 - 2op7a5
5. Gigabrain - 2op839
Cursor
Пока ходил на дорожке, посмотрел ролик про использование Cursor 😍. Его мне скинули в комментах к одному из постов — спасибо за полезный контент! Вот ссылка: https://youtu.be/2PjmPU07KNs.
В ролике автор делает приложение для парсинга Reddit. В практическом смысле это решение вряд ли нужно, но как обучающий пример — самое оно. Я проникся этим инструментом, особенно возможность редактировать отдельные куски кода и интерактивно обновлять дизайн-доку. Надеюсь, в скором времени доберусь его попробовать 😊.
В течение всего ролика меня не покидала мысль: "Как же полезно писать дизайн-доки", потому что построение приложения строится именно на нём. Чем точнее будут описаны все твои требования, тем лучше получится приложенька.
Думаю, если у вас грамотная архитектура, а ещё вы придерживаетесь модульности на проекте, то Cursor может помочь с улучшением отдельных модулей (при условии, что есть хорошая дизайн-дока для этого модуля). Но пока не встречал примеров его применения в крупных проектах 😍.
Чтобы подобные инструменты действительно работали в сложных задачах, они должны имитировать поведение реальных разработчиков. Представим, что где-то возник баг, и его надо отладить (допустим, приложение можно запустить в дебаг режиме):
1. Запускаем GDB и снимаем корку 🏥 (если нужно);
2. Находим место бага 🤨;
3. Начинаем исходя из входных данных по стектрейсу двигаться выше и выше, пытаясь обнаружить, где что-то пошло не так (и не тупо, а проходимся по доп зависимостям, которые через AST какой-нибудь в IDE подгружаются) 🔼;
4. Попутно ставим принты или брейкпоинты, если нужно 🤓;
5. Если нужно, запускаем всякие тулзы, типа профилировщиков ❓.
И это уже всё напоминает какую-то экспертную систему, к которой мы обязательно придём. Думаю, как я уже писал в одном из прошлых постов (/channel/blog_toxa/352), в этом году умных агентов станет куда больше 🔼.
Если мы говорим про людей, то те, кто уже сейчас экспериментируют с инструментами вроде Cursor, могут в будущем стать в разы производительнее. Пока что они просто нарабатывают опыт и интуицию в работе с такими системами. И когда придёт очередное решение, которое уже будет работать "огого!", ребятки уже будут в курсе, как это использовать, а не пытаться вкатываться 🤔.
Интересное нас будущее ждёт!
Решил потрогать лес на этих выходных!
А что делаете вы?
Попросил ChatGPT проанализировать мой TG-канал. Итак, вывод
Читать полностью…
YandexVLM в Алисе 🔼
Сегодня достаточно крупный релиз для всего Яндекса, для нашей команды в частности, ведь теперь Алиса умеет "видеть". Я очень сильно горжусь всей командой 😍!
Сам ходил и тестировал, приносил фидбеки. Бегал по офису, по Питеру, по дому — лишь бы понять, чо как там Алиса умеет видеть. И знаете — это круть 😍!
Дальше предстоит огромный путь по улучшениям, новым фичам. Но первый шаг в большой мир — уже сделан!
Приходите тестировать, приносите свой фидбек! Надеюсь, вам понравится!
Читайте про все новые фичи здесь: https://alice.yandex.ru/pro_new
Что-то недавнее мне напоминает 😀 (слишком олдовый мем, но да ладно, посчитаем сколько нас здесь любит классику)
Читать полностью…
Заметки менеджера из Anthropic
Бен Кун раньше был CTO в финтех-компании Wave (около 8 лет). Сейчас в Anthropic — руководит исследовательскими командами, в том числе в области RL. Так что его подходы к управлению проектами как будто бы не с потолка.
Недавно прочитал его статью о том, как он ведёт большие проекты. Сделал себе короткие заметки (многое из статьи уже делаю, мне бы её пару-тройку лет назад).
Фокус
Чтобы делать проекты действительно быстро (особенно если он находится на критическом пути) у тебя должен быть фокус на него и в нём 😍. Любое действие, которое ты делаешь, должно исходить из мысли: “это точно сейчас про этот проект”?
Из личной практики: ты в целом должен всегда кратко и ёмко сформировать картинку, что вы делаете и почему именно это.
Четкий план действий для достижения цели
Хороший детальный план позволяет тебе в каждый момент времени понимать: а всё ли хорошо с проектом😍? Если что-то застопорилось — самое время включиться и помочь решить проблему. Конечно, идеального плана не будет — всё равно и сроки могут поехать, и какие-нибудь упячки по пути обнаружатся — тем не менее наличие его делает работу более прогнозируемой, что ощутимо важно в быстроразвивающихся проектах.
Частый цикл обновления информации и планов
Нужно стремиться оптимизировать (с точки зрения скорости) цикл обновления всей информации. Это может быть и в рамках проекта в целом, как и по каким-то конкретным вопросам. Нужно постоянно заниматься оценкой главных приоритетов — действительно ли они еще главные🤓?
Это накладывает на менеджера достаточно большое количество коммуникации, но ради ускорения стоит инвестировать личное время 🥺.
Чрезмерная коммуникация и как следствие самостоятельность команды, локальное принятие решений
На самом деле, хочется, чтобы люди в команде тоже быстрее справлялись с обновлением информации (нужно ли делать то или другое) и могли самостоятельно решать локальные вопросы без менеджера. Для этого нужно, чтобы все имели картину приоритетов, все понимали кто чем занимается. Это часто требует больше встреч внутри команды, но это окупается 🤨!
Делегирование (не только задач, но и менеджмент проектов)
Когда вас в команде становится достаточно много, невозможно следить за всем происходящим. В этом плане нужно учиться делегировать не только задачи, но и сам менеджмент проектов, т.е. чтобы кто-то из команды мог подсвечивать проблемы на проекте, готовить какой-то статус, устранять проблемы и т.д.
Мы часто в компании это назваем ownership 🤓. Ну как такое делать менеджеру — это уже мастерство делегирования!
Что думаете про эти советы?
В настройках chatgpt написал, что люблю шутки. Итак 😀
Читать полностью…
VLM и OCR в Нейроэксперте
Наверное, уже из кучи каналов, как минимум компании, донеслось про то, что мы выпустили Нейроэксперта — некий сервис, который позволит вам сделать RAG над вашими документами. Под капотом куча технологий и человекочасов, чтобы это выпустилось сегодня, в том числе близкие и мне: VLM, OCR.
Для нашей VLM команды это важный, значимый шаг. На секундочку, это один из немногих сервисов для !!!пользователей!!!, в которых участвует VLM. Я очень рад тому, что это случилось и сложилось. Лично сидел и тестировал некоторые сценарии промежуточных стадий, иногда был в недоумении, а всё чаще в шоке, что и так можем 😍!
Я не буду приводить каких-то примеров, цифр и прочих штук, которые вы можете прочитать и в других источниках 🤓.
С этим поводом в этом посте я бы хотел сказать спасибо своей команде, всем тем, кто работает вообще над VLM в компании, всем, кто развивает и улучшает нашу классную технологию OCR. Я знаю, что часть из вас читает этот канал, а кому-то возможно его друг/подруга перешлёт. Знайте — вы невероятно классная команда и вы делаете космические штуки 🤯 каждый день! То, что произошло сегодня — это всё мы 🔼!
Обнял-приподнял ☺️!
P.S. Зачем в канал? Да просто захотелось, порыв души.
P.P.S. Накидайте ❤🔥 или 🔥, отнесу команде!
Про сотни встреч руководителя
На канале Quant Valerian вышел познавательный пост в виде двух сообщений про то, как можно делать работу руководителя без сотен встреч на дню. Я не буду пытаться его перессказать, лучше пройдите прочитайте сами:
/channel/quant_valerian/679
/channel/quant_valerian/680
Среди всего контента больше всего мне откликнулось следующее:
В хорошо отлаженной системе основная задача руководителя — не мешать людям работать. Но есть один нюанс: сотрудникам может мешать что-то, кроме руководителя! И вот именно эти вещи и должны привлекать внимание начальства. То есть вам, как управленцу, нужно устранять препятствия на пути к цели и не создавать новых.Читать полностью…
Мдаааа, кто-то накрутил ботов в розыгрыше... И чо теперь делать?
Вычищать еще из подписок, жесть... Если кто знает, как это сделать автоматом — дайте знать
Будущий IT-hub в центре Петербурга специально для C++ разработчиков! (шутка)
P.S. Кто не понял.
Итак, ML Party уже меньше, чем через час!
Таймлайн:
19:10 — Константин Кузнецов расскажет, как из простого TTS сделать настоящие аудиокниги;
19:45 — Евгений Паринов покажет, что такое поисковый аукцион Яндекс Маркета и как он работает;
20:20 — Антон Клочков (это я) продолжу серию рассказов про развитие картиночной мультимодальности в Яндексе!
Те, кто в офлайне — увидимся!
Те, кто в онлайне, ловите ссылочки:
🔼 YouTube: https://youtube.com/live/fx3o5Jr9quY?feature=share
🔼 VK: https://vkvideo.ru/video-17796776_456241501
Приходите слушать все доклады!
27
Ого, как быстро летит время! Ещё вчера я соревновался с пацанами во дворе, кто палку круче найдёт и кто выше на дерево заберётся, а сегодня уже мне 27, вроде даже работаю и что-то получается 😍.
За последний год, наверное произошло супер многое, но если касается личного, то:
— Я стал тимлидом крутой команды, которую собрал с нуля (ребята, спасибо что вы со мной 😍);
— Я женился на самой прекрасной девушке 🌿;
— Я с женой посетили Францию, отведали круассанов (они и правда топ), посетили несколько городов ☺️;
— Ребят, кто меня читает — стало куда больше 🔼!
Я боюсь представить, что мне ожидать от грядущего года. Ощущаю всё больше осознанности в жизни, как будто бы какая-то мудрость начинает появляться 🏥.
BTW, раз у меня днюха, то буду просить подарков у подписчиков!
— Побустите меня, пожалуйста, а то кастомных реакций охота!
— Приходите завтра (18 марта) оффлайн/онлайн послушать меня на ML Party (ссылочку попытаюсь раздобыть)!
Ссылочка на буст: /channel/blog_toxa?boost
Личный опыт инженеров Яндекса — Антон Клочков
Продолжаем рассказывать об ML`щиках в Яндексе, их успехах и трендах, на которые они делают ставку. Сегодня наш герой — руководитель подгруппы распознавания текста в VLM Антон Клочков.
Больше карточек — по хештэгу #YaMLpeople.
CV Time