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

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

Автор: @toshiknoscript
Download Telegram
MusicGen

Не особо слежу за развитием AI в области генерации музыки, но тут мне попался под руки релиз от одной экстремистской организации 🙃.

Подход позволяет создавать стерео-музыку из текста 😮. Условно задаешь ей такое:
A grand orchestral arrangement with thunderous percussion, epic brass fanfares, and soaring strings, creating a cinematic atmosphere fit for a heroic battle.

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

На секундочку замечу, что это все же стерео 🔼. Еще года 3 назад я с коллегами обсуждал, что вот бы сетки научились делать качественное музло в моно канале, а тут такое!🤨 Понятно, что это не Моцарт, но все же.

А еще на вход можно подавать аудиозапись, и тогда сетка извлечет стиль исполнения из неё и использует эту информацию для генерации аудиотрека 🤪. Я воспользовался этой возможностью, и попробовал для промпта выше сгенерировать что-то на мотивчик интерстеллара (вот такой пример брал). Получилось неплохо (слушать тут) 🤨!

Также попробовал еще другой запрос для интерстеллара:
a rap bit with piano, violin, heavy drums, slight kick and aery pads, 96 bpm, perfect for a commercial
Ну и этот вариант мне понравился еще больше (слушать здесь) 💃!

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

Под капотом лежит трансформер 🤓, который работает с текстовыми и аудио токенами. Разбор статьи делать не хочется, поэтому если интересно, можешь прочитать здесь ☺️.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1
Методичка: Поиск Работы в ML/DS

@boris_again Написал классный гайд по поиску работы 😮. Я бы не сказал, что это только для ML/DS. Скорее в целом, для технических специалистов 🔼. Дальше по тексту из поста:

Все кратко и по делу. Чтения минут на 30. Внутри рассматриваю поиск работы с самых азов и до деталей с примерами из жизни.

https://btseytlin.github.io/intro.html

В общем, однозначный лайк!☺️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43
Счастливое преображение в мемах от DALL·E 3

Попросил DALL·E 3 сгенерировать мем о том, как тяжело обучать нейронные сети в лабе компьютерного зрения 🙃. Получилась картинка слева (не спрашивайте, зачем).

А потом корректирую запрос и пишу, а давай какое-нибудь более реалистичное окружение, типа офиса Google или Apple. И вот результат на правой картинке 🤔.

Вопрос: почему они стали счастливыми? 😐 И почему в халатах? 👨‍⚕️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣4
Про ту самую новость из OpenAI

Отец знакомого работает в OpenAI. Сегодня срочно вызвали на совещание. Вернулся поздно и ничего не объяснил. Сказал лишь собирать вещи и бежать в магазин за продуктами на две недели. Сейчас качаем веса всех моделей, что есть в интернете. Не знаю, что происходит, но мне кажется началось...
😁333
Распознавание жестов

Однажды у моей в команды была замечательная задача — нужно было сделать распознавание жестов 😃. Требования были простые: RPi 4B, CPU only инференс, максимальная задержка на кадр — около 30 мс, сами снимики были чб. На тот момент самым популярным готовым решением был mediapipe — просто берешь распознавание скелета руки, накидываешь сверху постпроцессинг ключевых точек, простой классификатор — и решение готово. Ну или почти готово...👨‍🦳

Пайплайн детектирования ключевых точек ладони в фреймворке устроен следующим образом:
1. Сначала отрабатывает детектор ладони (который не совсем тривиальный);
2. Затем происходит поиск ключевых точек на кропнутом изображении ладони.

Обычно ладонь имела ориентацию вверх, т.е. ладонь как-то поворачивали. Для этого использовали ключевые точки, которые находились вместе с детектором второй головой 😵‍💫. Поэтому обучение такого детектора — не совсем классическая задача детекции.

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

Проблема вторая: код исполнялся примерно за 70-100мс на запрос. Это было очень много 🤨. Ну как бейзлайн решили использовать post-training квантезацию. Сначала были проблемы с качеством, но путем подборки хорошего калибровочного датасета всё решилось. Но вот со скоростью стали проблемки. 100мс+ на запрос, что больше даже без квантезации. Как так 🤔?

А все просто. Где-то внутри кишочков XNNPACK после долгого лютого дебага обнаружился баг, который некорректно обрабатывал свертки. История в github показала, что на тот момент ребята из команды этого фреймворка только её решили и еще даже не положили в релиз 👨‍🦳. Мы попробовали и о чудо: каждый запрос до 30мс, а я замечу что тут была еще наша классификационная голова 😅.

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

Я еще хотел рассказать про сам mediapipe и как он хорош, но пост уже и так большой. Как нибудь в следующий раз.🙃
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍3🔥2🐳1
Delivering Safe C++

Недавно вышел ролик от CppCon, где Страуструп пытается рассказать про обеспечение Safety в С++.

Вот некоторые заметки, которые я вынес 🙃:

* Security — это не безопасность языка, не безопасность памяти, это не про safety. Security — это свойство системы, которая включает в себя железо, помещение, людей, ПО и т.д.
* Идеальной безопасности добиться сложно — как минимум нам нужно взаимодействовать с ОС, а там половина написана на Си, и проверять в нашем приложении функциональность ядра мы не собираемся, а потому мы верим, что там всё должно быть хорошо;
* Люди часто не хотят использовать безопасные высокоуровневые абстракции под предлогом, что это уменьшает производительность, но при этом не делают никаких бенчмарков;
* Советы по безопасности:
* Инициализируйте переменные;
* Используйте более высокоуровневые абстракции для диапазонов: std::vector, std::span, range-for, range algorithms и т.д.
* Проверка на null-pointer всегда, когда с ними связываетесь;
* Используйте умные указатели для избежания утечек памяти, желательно как можно более дешевые, т.е. std::unique_ptr;
* Страуструп считает, что большинство сторонников писать на других языках думают, что альтернатива безопаснее, но в основном это с точки зрения управления памятью.

Ну и естественно это была подводка к предложению о создании "Profiles" — некоторой сущности, которая будет предоставлять разного рода гарантии. По сути показан некоторый концепт, но как это реализовать — не ясно 😐.

Еще нескольких фан фактов 😂:
* Бьярне просто как будто рассказал лекцию студентам;
* Спикер очень тактично избегал назвать язык, где подобные концепты уже зашиты — Rust;
* Скорее всего доклад навеян новостью о том, что АНБ США рекомендовало не использовать C++ для разработки;
* Концепцию RAII Бьярне придумал практически с самого начала C++, но в виде какой-то теоремы формулировка пришла почти через 10 лет;
* Еще в 80-х года Страуструп обсуждал идею std::span, когда решали проблему передачи указателя и количество элементов, лежащих в памяти по указателю (aka int max(const int[], size_t)), но реализация в итоге появилась в C++20;

В целом, от доклада сложилось ощущение, что когда Страуструп обсуждал идею доклада, то диалог там был примерно как в этом видео. И это очень грустно, конечно 🥹. При всем уважении к создателю, C++ и правда невообразимо сложный язык. Концепты Бьярне может быть и правильная идея, но очередной костыль, который сложно даже переварить, и какая-то очередная попытка догнать современные тренды.
Please open Telegram to view this post
VIEW IN TELEGRAM
Опачки. Инфа здесь.
😁19🥰2🤡2🤔1👀1
This media is not supported in your browser
VIEW IN TELEGRAM
Клепаю мемы в перерывах между постами
😁13😢3😭3👍2🤝1
Кирилл

У меня долгое время не получалось систематизировать статьи и как-то отслеживать прогресс по их прочтению👨‍🦳. А потому я часто забивал на статьи и в основном подчерпывал информацию из телеграм каналов. Но однажды всё поменялось.

Мой коллега по отделу в Яндексе — Кирилл (@kkhrylchenko) рассказал на одном из внутренних докладов о том, как можно грамотно организовывать процесс чтение статей через Zotero. Когда он показывал свою коллекцию прочитанных статей, я сразу подумал: "Хочу также!"🙃

И вот недавно Кирилл завел классный канал по рекомендательным системам — @inforetriever. Я, честно говоря, не слежу за трендами в этой области, но теперь благодаря Кириллу поглядываю за интересными движениями 🔼. И честно говоря, мне нравится как в канале описывается краткое summary большого количества статей, сразу понятно, что можно отложить себе, а что не совсем интересно 🤔.

А еще Кирилл переодически выступает на конференциях, есть много записей в youtube. Например, относительно недавно на датафесте был рассказ про персональное ранжирование трансформерами.😊
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥83👍1🐳1
Yatool 😧

Совсем неожиданно узнал, что ребята из соседнего отдела Яндекса зарелизили инструмент для (цитата):
cross-platform distribution, building, testing, and debugging focused on monorepositories

Ну или кратко говоря, это билд система 👨‍🦳. В Яндексе она используется уже достаточно давно и успешно справляется с гигантской монорепой.

Пробуйте, приходите к ребятам в issue. Поздравляю их с релизом в open-source 🥰!

Ссылочка: https://github.com/yandex/yatool
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13
Лекция в ИТМО 🤓

Давненько я не появлялся в стенах родного Университета. Пора это исправлять!🙃

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

Если кто-то из моих подписчиков учится в ИТМО — приходите! Постараюсь поменьше душнить и побольше рассказать о заявленном топике! 😃

https://news.1rj.ru/str/digitalgenerationITMO/91
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
Ловим баги в реальном времени

В общем-то попалось мне на глаза великолепное чтиво 🥹:
https://xuanwo.io/2023/04-rust-std-fs-slower-than-python/

Тут человек пытается разбраться почему один тип чтения работает быстрее, нежели чем другой. Внезапно, посреди статьи оказывается, что чтение файла на Си оказывается медленнее, чем в Python 😫. Ну и потом, путем нехитрых манипуляций автор приходит к выводу, что баг в микрокоде процессора от AMD (ничего удивительного, как всегда в подобного рода статьях 😂).

Одна из деталей мне доставило особое удовольствие: использование strace. Я не читал историю сего инструмента, но кажется его придумали боги, иначе я никак по-другому не могу написать. С помощью этого я такие баги откапывал в продакшн решениях прям на продовых тачках, что мне и снится не могли 👍.

Но не багами едины. С помощью этого инструмента можно отслеживать интересующие вас системные вызовы, следить за бинарями в релизной сборке и собирать важную статистическую инфу, чтобы понять, как обстоят дела с памятью, с выделением потоков, с обращением к сети и многое другое 🔼.

Так однажды у меня бинари отрабатывали отлично локально, а потом в тестинге всё сваливалось😔. Я долго не мог понять почему, пока не залез посмотреть с помощью strace, что там по системным вызовам. Оказалось, все зависало на этапе обращения к сети, потому что OS не могла понять, как достучаться до домена, на которые делаются запросы. Как оказалось, не подтягивались необходимые DNS конфиги 🤔.

В общем, изучайте и пользуйтесь! Но с умом. ☺️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥7🤔1🥱1
ШАД

Вчера состоялось официальное открытие пространства ШАД в СПб🔼. Кто регулярно читает мой канал, знает, что я веду практики по C++ в Питерском филиале ШАДа еще с сентября, а потому меня тоже пригласили на открытие🙃.

На мероприятии было очень много знакомых мне людей 😁: кто-то читал мне курсы в универе, кого-то я смотрел на степике, а кто-то просто известный человек в узких кругах. И правда, я бы мог перечислить некоторых из них, но кажется тогда оскорблением не упомянуть их всех, потому что лично для меня большинство из этих людей реально делают образование в РФ ☺️.

Вместе с открытием также обсуждалась история про AI в образовании: заменят ли сетки преподавателей или переживать не стоит. Коллеги (не побоюсь этого слова, ведь недавно еще они меня учили 😂) в первую очередь сфокусировались на том, что образование — это не просто передача знаний, а еще и про развитие мышления, передачу опыта, поддержку мотивации и прочие навыки. И я сейчас соглашусь с тем, что в среднем, LLM сейчас это про обмен информации и не больше 😃.

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

Также некоторое время было посвящено тому, что кажется, что образование сейчас — это механизм отбора, а не повышения образованности 😔. Условно, попасть в какой-либо универ — это задача, с которой справляются не все, хотя изначально образование — это про улучшение образованности людей. И выше, когда я говорил про людей, пришедших на встречу, я подчеркнул, что они реально делают именно образование 😊.

Очень классно, что мне удалось попасть на такое мероприятие, я даже вдохновился от профессионалов! Надеюсь, что ШАД в СПб будет растить классных специалистов и давать им шикарный и уникальный контент 🥹.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🤝2👎1🐳1
Singleton is all you need (no)

Решил попробовать себя в лонгридах с подробными выкладками кода 🥹. Пишите в комментариях, как вам такой формат. Ну и набрасывайте, если чего не так!

https://teletype.in/@toshiknoscript/g2IANTMvRDv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🐳3🥰2🗿1
This media is not supported in your browser
VIEW IN TELEGRAM
Иногда просто хочется поделиться мемчиком, так что держите 👨‍🦳
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣32👎1😁1👌1
Синтетическая биология 😫

Иногда интересно почитать чо происходит где-то в параллельной от IT вселенной 👍. И тут мне заслали статейку про синтетическую биологию: https://habr.com/ru/companies/gazprombank/articles/782528/

Что-ж, судить по одому посту сложно, но чорт, это выглядит весьма интересно🤔. Очень нравится, как индустрия движется в сторону упрощения проведения экспериментов. Удивило то, как есть площадки для проведения экспериментов. Я думал, у каждой лабы по заводу, а оно вон как уже работает. Интересно, делают ли там какой-то ML🤔? Какие-нибудь градиентные бустинги, позволяющие по свойствам оценивать характеристики возможно получаемых образцов.

И я как-то не задумывался, что Impossible Foods — это как раз ребята из синтетической инженерии, а не генной. Хотелось бы попробовать бургер из их мяса, но в СПб пока не встречал 🙃.

P.S. Синтетическое пиво — звучит интересно. Я как человек не пьющий, хотел бы попробовать безалкогольный вариант. Ну и посмотреть на лица товарищей, знающих толк в пивасике, которые бы попробовали сей напиток на вкус😂.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🐳3
Персональный компуктер

Я тут чего-то задумался прикупить себе ПК 👨‍🦳. Для игруль (может наконец-то поиграю), МЛя, и мб монтажа (но это можно и на ноуте). Мне вот кажется, что мои примеры — это просто шутка какая-то, а на деле будет пылиться🙆.

Расскажите, есть ли у вас сейчас ПК? Какая комплектация? Для каких задач используете? 🤔

На всякий случай еще раз уточню: речь не про ноутбук, а про ПК в его привычном понимании.
Please open Telegram to view this post
VIEW IN TELEGRAM
4 миллиарда операторов if 🙆

Господи, наконец-то хабр порадовал. Ну и пусть это перевод статьи, но как это захватывающе 👍. Человек запилил проверку 32-битного числа на четность через if операторы 👨‍🦳.

И в статье прекрасно всё: и проблемы с большими бинарями, и производительность этого решения. Жалко только, что особо бенчмарков нет. Но самое главное, что всё в итоге вышло и оно работает😐.

Обожаю такую дичь, если у вас есть еще — скидывайте 👍.

Ссылка на статью: https://habr.com/ru/articles/783714/
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣7👍1😁1🐳1
Всех с новым 2024 годом!

Интересный факт про этот год: если сложить все цифры этого года, то получится 2 в 3 степени, что как бы является одним байтом 🤓. А с одним байтом уже можно и горы свернуть, и сделать много прикольных штук! 👍

Желаю и вам сделать в этом году много невероятных вещей ☺️!
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳26🔥7😁1👌1🎅1
Киты

Я видимо стал слишком стар. А что означают реакции 🐳?
🐳71🌭3🤷‍♂1