Дратути Антон – Telegram
Дратути Антон
4.11K subscribers
171 photos
30 videos
215 links
Мемы и личные размышления про управление, код, ml и здравый смысл.

Сейчас руковожу командой OCR in VLM в Яндексе.

Автор: @toshiknoscript
Download Telegram
😁12💅2👍1
Трекер экспериментов

Мой путь в трекинге экспериментов начинался с того, что я смотрел на логи в терминальчике и строил кривые у себя в голове 👨‍⚕️. Потом пришла мысль, что можно использовать matplotlib, а еще позже — tensorboard 🔼.

Через какое-то время хотелось сравнивать не просто эксперименты между друг другом, а пачки экспериментов. И так, чтобы это было удобно шарить между друг другом. Так я познакомился с MLFlow 🔥. А позже, уже подавшись на искушения красивого UI и неплохого такого API, стал использовать wandb 🤨. Последний, кстати, не просто красивый, а чертовски красивый и много чего из коробки может.

Сейчас я думаю, каким искушениям податься еще? Может быть вы знаете какие-нибудь еще прикольные и интересные трекеры экспериментов? А зачем вообще вы их используете? Набросайте в комментарии 😫
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8👀3👌2
О, типичный код в какой-нибудь матлибе 👨‍🦳
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔3🤯2
Мем смешной, ситуация страшная 👨‍🦳
Please open Telegram to view this post
VIEW IN TELEGRAM
😁32
Чек-листы как способ облегчить жизнь

На прошлом месте работы у меня возникла задача, с которой так или иначе сталкивается каждый, кто по несколько раз говорит/делает одно и то же 👨‍🦳. В частности, впервые я начал об этом задумываться, когда проверял очередной PR и писал одни и те же комментарии по стилю кода, по оформлению доков, тестов, и в целом по читаемости истории изменений 👨‍⚕️.

И это стало реально проблемой, когда ко мне стали приходить другие члены команды и жаловаться на примерно такое же. "Да сколько можно" — пробухтел я про себя и пошел узнавать, чего можно сделать лучше. Именно в тот момент мне попалось видео (которое я сейчас не могу найти), где докладчик рассказывал про использование чек-листов 🤨. Мол, если нужно сделать какое-то многошаговое общепринятное действие (а PR — это именно такое), то стоит сесть с командой и прописать его.

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

И вот мне стало интересно, а какие у вас в командах есть "best practices"😐? Какие проблемы они решают у вас? Очень было бы классно почитать про ваш опыт!😫
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳13👍5
Магия ссылок

Однажды когда я еще учился в школе, мне приспичило скачать видео с youtube 💃. Тогда я пошел к своему Гуру айтишного мира — учителю информатики и спросил, а как это делать. Именно тогда я узнал, что если зайти на страницу ролика, а потом в адрессной строке приписать ss к youtube (т.е. ssyoutube), то тебя перекинет на сайт, где это можно будет сделать 🚶‍♂️. После этого, конечно, мой мир перестал быть прежним.

На днях я в одном из роликов увидел, что если к любому github репозиторию приписать в самое начало vscode.dev (например, https://vscode.dev/https://github.com/ggerganov/llama.cpp), то загрузится vscode прям в браузере😐. И хоть я наверное узнал об этом самый последний, но я снова как будто очутился в школе. Такая магия, такой искренний восторг👍.

В целом, концепция весьма здравая, но пока очень сырая. По крайней мере навигация по коду пока лучше работает на самом github🙆, нежели чем в vscode. Но в Python всё вполне неплохо. В C++ проектах показалось, что вообще не работает...👨‍🦳

При этом поиск быстрый, так что если хочется использовать hot keys VSCode, то вполне неплохая альтернатива, чтобы не выгружать репозиторий себе на машинку.

Ну или можно еще открыть удаленный репозиторий 🤨. В общем всё есть в доке: https://code.visualstudio.com/docs/editor/vscode-web#_github-repos
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18🤝5
Тут ребята из Selectel подсказывают, что у нас есть возможность не замернуть следующей зимой! И такую возможность нам может подарить новенький процессор от Intel на 10-нм техпроцессе, потребляющий в пике жалких 409 Вт 👍

Рекомендуется устанавливать по одному в каждую комнату, чтобы распределение тепла было равномерным!

Подробнее: https://habr.com/ru/companies/selectel/articles/797573/
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3👌2🐳1
Тут у себя в системе задач обнаружил архивное издание — доклад про инструменты классного тимлида 👨‍🦳: https://www.youtube.com/watch?v=1dDBXTu1I7I
Подумал, а почему бы и не посмотреть — и посмотрел 😫.

Доклад хороший, но вполне абстрактный. Автор рассуждает на тему нескольких топиков, описывает зачем, как и что делать:
🔼 Договорись со своим руководителем;
🔼 Настрой свои основные инструменты;
🔼 Настрой коммуникации;
🔼 Заведи личные карточки;
🔼 Приведи в порядок 1:1;
🔼 Систематизируй свое развитие.

Ну и в целом звучит и правда, что делая все эти вещи — ожидает успешный успех 🤨. Одно лишь но — ты должен быть Дмитрием и проживать его жизнь, тогда оно работает. Поэтому смело дели все на 8 и учись думать, а подходит ли оно к тебе и твоей команде, или нет. И неважно, сказал ли тебе этот совет Валера Бабушкин (@cryptovalerii) за пару битков, или же непосредственный руководитель. Тебе потом за это отвечать.

Как же я наслышан историй о применении "тимлидских" инструментов (да и сам грешил 👨‍⚕️), что аж грустно за ребят под управлением таких лидов становится 👍.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔112🐳2
Media is too big
VIEW IN TELEGRAM
Ну и напоследочек, старое доброе
🤣8🤝3🐳2
IT Conf 3.0

Тут ИТМО почти через месяц (а точнее 13 апреля) проводит IT Conf 3.0., конференцию сообщества студентов и выпускников ИТМО, посвященной сфере IT. Тема предстоящей конференции «От трендов к результатам» посвящена технологическим трендам и их применению. Я помогаю ребятам в организации сего мероприятия 🔼.

Сама конференция будет проходить в очном формате, но придти послушать доклады может каждый желающий, кто пройдет регистрацию (по сути, нужно чтобы вас пустили на территорию университета) 🤨.

Также, если у вас есть желание, вы можете придти в качестве спикера со своим докладом. В этом году у нас следующие треки:
— Искусственный интеллект;
— Разработка;
— Технологические тренды;
— Карьера.

Давайте так, трек ИИ звучит очень громогласно 👨‍⚕️, но понятен широкой аудитории. Но если у вас есть чо прикольное рассказать про обучение моделей, оптимизацию инференса, прикольные решения задач в том или ином домене — приходите 👍!

Регистрация для спикеров открыта на сайте до 10 марта (вовремя я пишу, конечно 🙆). Если вы в другом городе — можно обсудить ваш приезд в Питер. С материалами прошлогодней конференции можно ознакомиться по ссылке.

По вопросам можно обращаться ко мне в личку.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥72👍1
Suno.ai 🤔

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

А я в своем стиле закину вам трек (feat. @ollmer):
https://app.suno.ai/song/a3106ba8-1cc8-45d2-8220-cfa9d0dcdfde
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81🔥1
Как я секции CUDA бинарников шатал

По рабочей необходимости мне нужно было сделать статическую линковку некоторых CUDA библиотек. До моих манипуляций (с динамической линковкой) всё работало отлично. Тут пришел я, чот поменял, и некоторые тесты начали падать 😂.

Чо я ток не пробовал: и проверял совместимость библиотек, и проверял что все версии совпадают, 10 раз уже прочитал документацию по сборке и ничего не работает 😊. И тут мне подсказал @itpgchannel, что дело может быть как раз в секции инициализации глобальных переменных и прочей подобной нечисти, инструкции для чего лежат в секциях .ctors либо .init_arrays (https://maskray.me/blog/2021-11-07-init-ctors-init-array). Про секции и в целом про ELF я писал когда-то здесь: https://news.1rj.ru/str/blog_toxa/16

Ну в общем, оказалось что и правда, что в некоторых бинарниках CUDA библиотек до сих пор присутствует секция .ctors, а в каких-то .init_array (которые как раз и отвечают за это). В современных сборках используется последняя секция, а потому при статической линковке секция .ctors просто игорилась. Как результат, глобальной инициализации объектов из либ не происходило и потому тесты валились 😭.

Чтобы пофиксить, нужно было просто заиспользовать трюк из статьи выше, а именно переименовать секции:

objcopy --rename-section .ctors=.init_array --rename-section .dtors=.fini_array $file

И всё заработало! Но тут нужно быть осторожным, различия в типе секций есть, но на самом деле, как мне кажется, они настолько минорные, что можно забить 😮‍💨. Как я понял, различия в порядке инициализации. Но серьезно, если кто-то затачивается на порядок инициализации — таких надо палками гнать.

Также подробнее, почему это не работало именно у меня на работе, можете прочитать в посте: https://news.1rj.ru/str/itpgchannel/1290

А NVIDIA, ну типичная контора, которая игнорит неуместные вопросы 👨‍⚕️: https://forums.developer.nvidia.com/t/ctors-sections-in-static-libraries/285542
Please open Telegram to view this post
VIEW IN TELEGRAM
😱6👍4🤔1
YaART 😍

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

Я думаю, что кто-нибудь сделает разбор статьи, а я просто поделюсь ссылками:
Страница проекта (кстати, выглядит очень стилёво);
Статья на arxiv;
Статья на Хабре.

Поздравляю ребят!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍21
Нейро 🔘🔘

Пока пишу только релизы Яндекса (потому что работы чот очень много), но я очень горд ребятами из нашей команды, которые сделали этот запуск. Теперь генеративные ответы есть и в поиске. 🤨

Можно искать как по текстовым запросам, так картинка+текст. Пользуйтесь и приходите с фидбеком!

Попробовать можно уже сейчас на главной Яндекса — нужно просто переключить тумблер!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍3
VLM

Наверное каждый слышал про то, что у Яндекса есть своя GPT-like модель — YandexGPT. Так вот мы хотим идти дальше — делать нашу технологию мультимодальной🤨. И коли уж я пишу этот пост, значит мы хотим развивать визуальную модальность🤔.

Направление на хайпе и почти все, кто занимается генеративками сейчас — стараются обучать свои модели также работать с картинками. Ну потому что большой пласт задач лежит в визуальной плоскости😂. При всём богатстве естественного языка, мы изредка пытаемся у LLMок спрашивать что-то, описывая каждую деталь. Более того, кажется часть задач вообще сложно описать, например пояснить за мемчик. Это весьма челенджевое направление, в котором есть много чего поделать. От копания данных, до внедрения в продакшн😍.

В общем, мы ищем ML-разработчиков (да-да, не одного) в нашу классную команду технологий компьютерного зрения, а именно в проект, связанный с VLM. Любой продукт Яндекса, который так или иначе, явно или не явно использует картинки😳 — пользуется технологиями, которые создаются и развиваются в нашей команде. Подробнее про вакансию, связанную с VLM, можете прочитать здесь: тык.

Приходите ко мне в личку, пообщаться за вакансию, за команду, про задачи или вообще область😇. Ну или просто за жизнь. Мне интересно познакомиться с вами даже если сейчас вы ничего не ищете!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥9
Люди выбирают не первых и лучших, а своих

Недавно читал книгу «Всё закончится, а ты нет» и встретил там фразу «Люди выбирают не первых и лучших, а своих».

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

В чем проблема?
У тимлидов много разных направлений: проекты, люди, техника. По каждому направлению всегда море задач. Всё успеть, да ещё и хорошо – просто нереально.
Начинаешь чем-то жертвовать: где-то задачу не сделал совсем, где-то что-то забыл, где-то уголок срезал, чтобы впихнуть невпихуемое, и уже чувствуешь, что по многим фронтам как будто бы плохо всё.

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

И вот получается, что общее настроение такое, что и там, и тут что-то постоянно недотягиваешь и вообще «кому я, нафиг, такой нужен?»

В чем суть ключевой фразы?
На мой взгляд, какими бы «недостаточно хорошими» мы себя ни ощущали, нас же кто-то выбирает. На работу взяли, фидбэк о работе дают не самый ужасный, с позором взашей не увольняют, а у кого-то есть партнер, который также совершил сознательный выбор.
Почему так?
А потому, что выбирают не самого идеального, а своего.

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

В романтических отношениях похожая история. Зачастую выбирают не самого богатого/высоко/красивого, а того, с кем будет персонально комфортно, уютно, безопасно.

Вспомните сами каких-нибудь мастеров/тренеров/репетитиров, чьими услугами вы пользуетесь регулярно. Там же не лучшие из лучших, только топовые небожители. Там те, кто делает «достаточно хорошо» и при этом вам персонально подходит. «Ваш» человек, одним словом.

Что это значит?
Это значит, что необязательно себя корить за неидеальность во всех аспектах жизни и работы. Если вы делаете «достаточно хорошо», то обязательно для вас найдется местечко, где вы будете «своим». И там вам будет хорошо.
А даже если и «недостаточно хорошо» делаете, то по-любому тоже что-то подвернется, только с более низким качеством, так сказать.

Итог
Хочется пожелать вам и себе перестать гнобить себя за малейшие неидеальности и посоветовать хорошо подумать, что/кого вы чувствуете «своим» и где бы вас так воспринимали. Порефлексировать и стремиться туда, где будет комфортно и не будет осуждения за малейшие огрехи.
21👍14🐳2🤝2
Разделяемая память

Между делом приношу вам чтиво про непростое, немного даже сложное 👨‍🦳 — разделяемую память между процессами в C++ и как в ней живётся STL. Если у вас многопроцессная среда (тот же браузер) и вам нужно каким-то образом передавать данные между процессами (вкладками) — как вариант использовать разделяемую память 🤔.

Но это уже не то же самое, что разделяемая память между потоками. Ведь в рамках одного процесса все лежит в одном виртуальном адресном пространстве. Тут всё сложнее, единого пространства нет 🥴. Потому нет примитивов синхронизации готовых, а они как бы нужны. Аллокаторы писать свои нужно, ну и прочие радости жизни.

Рекомендую в качестве общего развития, надеюсь на работе не понадобится: https://habr.com/ru/articles/515242/

Лично мне помогают такие статьи выходить за рамки своего ML пузыря, где 100500 тулов уже сделаны (хоть 90% очень плохо 😩), и хочется понимать, как оно устроено на самом деле. Ставьте огонечки 🔥, если вам нравится, когда я приношу чего-нибудь почитать.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27❤‍🔥2
Токены

Решил я немного развлечься значит и сделать маленький pet-проект: поисковичок по мемам 🤨. Пока только картинки, но думаю, что при должном усилии можно будет и видео мемасики прикрутить.

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

Недолго думая, пошел в ChatGPT, спросил чего и как, да и код дивный мне выдало сие чудо 😍. Кстати, рабочий —задачу свою выполняет. Есть одно НО: мне нужно сделать кредиты для своего телеграм-приложения и почему-то это оказалось сложной задачей. Как я не пытался заполнить форму, так я свои кредиты и не получил 👨‍🦳.

Подумал я что все, вот и пет-проекту конец, а кто писал его — тот молодец. Но не тут-то было. Зашел я на github, ввёл поисковый запрос и нашел буквально на первых страницах рабочие кредиты 🤯. И это дико, но круто (для меня)!

Я пока до сих пор не понимаю, почему люди оставляют рабочие кредиты в своих репозиториях. Ну это же жесть. И не то, чтобы это разовая какая-то история. Практически всегда, если речь идет о популярном сервисе, который выдаёт токены разработчикам, находятся те, которые запушат их в публичный доступ. Ну и получается если кому-то очень надо (а мне вот очень надо было), то обязательно их найдут и воспользуются 😂.

Надеюсь, когда-нибудь вендоры таких ресурсов, как github, сделают какую-нибудь защиту от такого рода ошибок.

Тем временем у меня к вам просьба: покидайте мне в комментарии ссылки на открытые каналы, в которых есть смешные мемасики. Очень надо 😍!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥111👍1😁1🤡1