Немножко о себе
Привет! Меня зовут Антон! В этом блоге я пишу про свои похождения в мире IT, делюсь рассуждениями по различным топикам из интересующих меня областей. Вот часть из них:
👨💻 С++, Python
🤓 Deep Learning в целом, CV в частности
🔼 Оптимизация вычислений, ускорение чего бы то не было
💃 Управление командами
😐 Эффективность, тайм-менеджмент и прочая эзотерика.
Сейчас я работаю Senior MLE в Яндексе. Занимаюсь развитием технологий распознавания текста на изображениях (OCR). Обычно я представляюсь как "разноработчик"🙃 , потому что занимаюсь далеко не только ML, но и всякими интересными штуками в продакшене. Я большой фанат разработки, дико обожаю когда решение ускоряется в десятки и сотни раз, а также всегда топлю за лаконичные решения. Моя страсть — это мемы, а также холивары про то, как делать что-то лучше в IT 😂 .
Привет! Меня зовут Антон! В этом блоге я пишу про свои похождения в мире IT, делюсь рассуждениями по различным топикам из интересующих меня областей. Вот часть из них:
Сейчас я работаю Senior MLE в Яндексе. Занимаюсь развитием технологий распознавания текста на изображениях (OCR). Обычно я представляюсь как "разноработчик"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤6🏆4
Forwarded from Сиолошная
В марте 2023го в MIT Economics появилась статья про улучшение производительности труда у людей, использующих ChatGPT, тогда же я написал краткий обзор (читать тут).
Вчера же вышла статья в соавторстве исследователей из Harvard University (Business School) и MIT в партнерстве с представителем "большой тройки" консалтинга: Boston Consulting Group (BCG). Исследование примечательно по четырём причинам:
1) Брались реальные задачи, которые решаются консультантами на работе (про это ниже);
2) Привлекалось 7% консультантов BCG, а это более 750 человек — то есть исследование достаточно массовое со стат. значимыми результатами;
3) Использовалась GPT-4 (правда версии весны 23го года, тогда проводились эксперименты), а не ChatGPT. Да, прям вот та, что у вас в браузере доступна, без специальных дообучений;
4) Оценка результатов проводилась вручную с перекрытием 2 (через усреднение), хоть и были попытки использовать LLM как оценщик.
Для самых нетерпеливых напишу сразу результаты:
— Для каждой из 18 задач консультанты, использующие ИИ, были значительно более продуктивными (в среднем они выполняли на 12,2% больше задач и выполняли задачи на 25,1% быстрее) и давали значительно более качественные результаты — более чем на 40% более высокое качество по сравнению с контрольной группой, участники которой решали задачи без GPT-4.
— Как и в исследовании MIT, оказалось, что люди со значением базового навыка ниже среднего (среди группы в 700+ консультантов; оценивалось предварительно отдельным тестом) улучшили эффективность на 43%, а у тех, кто выше среднего, - на 17%.
Далее хочу процитировать пост одного из со-авторов, который участвовал в исследовании.
— Даже лучшие консультанты все равно получили прирост в эффективности работы. Глядя на эти результаты, я думаю, что недостаточно людей задумываются о том, что для человечества означает технология, которая поднимает всех работников на высшие уровни производительности;
— Когда ИИ очень хорош, у людей нет причин усердно работать и обращать внимание на детали. Они позволили ИИ "взять верх" вместо того, чтобы использовать его как инструмент. Другой автор назвал это «засыпанием за рулем», и это может навредить развитию навыков и производительности (почему так написано - см. в следующем посте);
— GPT-4 уже является мощным фактором, виляющим на то, как мы работаем. И это не разрекламированная новая технология, которая изменит мир через пять лет или которая требует больших инвестиций и ресурсов огромных компаний – она уже здесь, вот прямо СЕЙЧАС;
— Наши результаты показывают, что хотя люди, использовавшие ИИ, в рамках поставленных задач производят более высоко оцененные идеи, вариативность этих идей заметно снижается по сравнению с теми, кто не использует ИИ [моё примечание: тут неочевидно, насколько это плохо - по-хорошему, и 2 идей "на миллион" хватит, зачем мне 10 копеечных?];
Вчера же вышла статья в соавторстве исследователей из Harvard University (Business School) и MIT в партнерстве с представителем "большой тройки" консалтинга: Boston Consulting Group (BCG). Исследование примечательно по четырём причинам:
1) Брались реальные задачи, которые решаются консультантами на работе (про это ниже);
2) Привлекалось 7% консультантов BCG, а это более 750 человек — то есть исследование достаточно массовое со стат. значимыми результатами;
3) Использовалась GPT-4 (правда версии весны 23го года, тогда проводились эксперименты), а не ChatGPT. Да, прям вот та, что у вас в браузере доступна, без специальных дообучений;
4) Оценка результатов проводилась вручную с перекрытием 2 (через усреднение), хоть и были попытки использовать LLM как оценщик.
Для самых нетерпеливых напишу сразу результаты:
— Для каждой из 18 задач консультанты, использующие ИИ, были значительно более продуктивными (в среднем они выполняли на 12,2% больше задач и выполняли задачи на 25,1% быстрее) и давали значительно более качественные результаты — более чем на 40% более высокое качество по сравнению с контрольной группой, участники которой решали задачи без GPT-4.
— Как и в исследовании MIT, оказалось, что люди со значением базового навыка ниже среднего (среди группы в 700+ консультантов; оценивалось предварительно отдельным тестом) улучшили эффективность на 43%, а у тех, кто выше среднего, - на 17%.
Далее хочу процитировать пост одного из со-авторов, который участвовал в исследовании.
— Даже лучшие консультанты все равно получили прирост в эффективности работы. Глядя на эти результаты, я думаю, что недостаточно людей задумываются о том, что для человечества означает технология, которая поднимает всех работников на высшие уровни производительности;
— Когда ИИ очень хорош, у людей нет причин усердно работать и обращать внимание на детали. Они позволили ИИ "взять верх" вместо того, чтобы использовать его как инструмент. Другой автор назвал это «засыпанием за рулем», и это может навредить развитию навыков и производительности (почему так написано - см. в следующем посте);
— GPT-4 уже является мощным фактором, виляющим на то, как мы работаем. И это не разрекламированная новая технология, которая изменит мир через пять лет или которая требует больших инвестиций и ресурсов огромных компаний – она уже здесь, вот прямо СЕЙЧАС;
— Наши результаты показывают, что хотя люди, использовавшие ИИ, в рамках поставленных задач производят более высоко оцененные идеи, вариативность этих идей заметно снижается по сравнению с теми, кто не использует ИИ [моё примечание: тут неочевидно, насколько это плохо - по-хорошему, и 2 идей "на миллион" хватит, зачем мне 10 копеечных?];
🤔2
Органичный рост в командах разработки 🔼
Наткнулся на статью, в которой инженер из одной мета-компании рассказывает, как три инженера развивали в самом начале сервис фоточек и рилсов. Вот ссылочка на чтиво. Принципы, которые они заложили на первый год работы действительно классные и вызывают уважение лично у меня🙃 .
Но вот что самое интересное — это 3 инженера😮 . 3 инженера делали сервис, который в пике на тот момент достиг 14 млн пользователей. Часто ли ты такое встречаешь? Я нет.
Проблема разработки, которую я часто вижу в различных компаниях, которой грешат даже очень популярные люди в индустрии: заливаются все проблемы людьми, невероятно быстро выращивают отделы😔 . И все это в надежде выпускать фичи в кратном объеме, чинить баги и пр. Но такой неорганичный рост превращается в разные проблемы, которые не решают поставленные задачи:
1. Думали, что 50 людей == 50 фичей, а получили 10😐 . Потому что чем больше людей, тем больше согласований на разных уровнях, и это затягивается. А также возникает очередь из ожидающих разработчиков, потому что из деятельность просто заблокирована;
2. В условиях быстрого роста очень сложно привить культуру компании, а у каждого свои цели, амбиции и желания, которые влияют на принимаемые решения🤔 .
И самое интересное, когда я общаюсь с людьми, которые делают одно и то же, почему-то команды с органичным ростом выпускают фичи быстрее, а решения получаются качественнее. Может быть мне так не повезло, но моя практика такая🤔 . Но как по мне, в команде всегда нужно поддерживать рабочий дух, чтобы люди между собой постоянно обменивались опытом и знаниями, чтобы они просто даже знали друг друга. В быстрым ростом очень сложно хорошо познакомиться с людьми, на мой вкус, от того может страдать коммуникация, принимаемые решения, и как следствие поставляемый продукт.😔
А что думаете вы об этом всём🤔 ?
Наткнулся на статью, в которой инженер из одной мета-компании рассказывает, как три инженера развивали в самом начале сервис фоточек и рилсов. Вот ссылочка на чтиво. Принципы, которые они заложили на первый год работы действительно классные и вызывают уважение лично у меня
Но вот что самое интересное — это 3 инженера
Проблема разработки, которую я часто вижу в различных компаниях, которой грешат даже очень популярные люди в индустрии: заливаются все проблемы людьми, невероятно быстро выращивают отделы
1. Думали, что 50 людей == 50 фичей, а получили 10
2. В условиях быстрого роста очень сложно привить культуру компании, а у каждого свои цели, амбиции и желания, которые влияют на принимаемые решения
И самое интересное, когда я общаюсь с людьми, которые делают одно и то же, почему-то команды с органичным ростом выпускают фичи быстрее, а решения получаются качественнее. Может быть мне так не повезло, но моя практика такая
А что думаете вы об этом всём
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🐳2🤔1
Помоги компилятору стать лучше
Я на днях послушал интересный доклад про то, как можно использовать иногда атрибуты для улучшения скорости работы кода. Ссылочка на доклад.😅
Иногда я поражаюсь, как люди находят такие вещи, а потом как они их запомнают и используют. Пока я не научился строить свою базу знаний, поэтому если у кого-то есть интересные предложения по тому, как можно её организовать — пишите в комментариях🤔 .
Перессказывать доклад не буду, но мне очень понравились рассуждения спикера в конце😊 :
— Не нужно оптимизировать там, где это не нужно. Оптимизируй действительно важные и горячие места, в этом тебе может помочь разные инструменты для анализа перфоманса;
— Иногда компилятор может "сказать" тебе, почему он принял то или иное решение, и если у тебя достаточно скилов понять его, ты можешь ответить ему в виде инструкций, часть из которых описаны в докладе, и помочь сделать итоговый бинарь лучше🔼 .
И как же я с ним согласен. Я сам пишу код на🙃 .
Что самое жестокое, что иногда в практике на вопрос "зачем так сделал?" получаю ответ "ну вроде же прикольно получилось"😑 . Вот вообще не прикольно, нет.
Я на днях послушал интересный доклад про то, как можно использовать иногда атрибуты для улучшения скорости работы кода. Ссылочка на доклад.
Иногда я поражаюсь, как люди находят такие вещи, а потом как они их запомнают и используют. Пока я не научился строить свою базу знаний, поэтому если у кого-то есть интересные предложения по тому, как можно её организовать — пишите в комментариях
Перессказывать доклад не буду, но мне очень понравились рассуждения спикера в конце
— Не нужно оптимизировать там, где это не нужно. Оптимизируй действительно важные и горячие места, в этом тебе может помочь разные инструменты для анализа перфоманса;
— Иногда компилятор может "сказать" тебе, почему он принял то или иное решение, и если у тебя достаточно скилов понять его, ты можешь ответить ему в виде инструкций, часть из которых описаны в докладе, и помочь сделать итоговый бинарь лучше
И как же я с ним согласен. Я сам пишу код на
C++ не так часто, а потому знаю меньше людей, которые пишут на C++ каждый день. Я очень часто забываю даже очень тривиальные концепции из языка. Но вот правило "не суй, если не знаешь зачем тебе" со мной навсегда. Прежде чем заиспользовать какие-то хитрые или около того конструкции, я всегда подробно изучаю насколько "ок" это сделать Что самое жестокое, что иногда в практике на вопрос "зачем так сделал?" получаю ответ "ну вроде же прикольно получилось"
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1😁1🤔1🐳1
Немного анонсов с работы ☺️
Сначала подумал, чтобы написать пост про каждое из событий отдельно, но потом решил, что в этом нет особого смысла, лучше позже расскажу про интересности с🙃 . Так что не судите строго.
Я решил поучаствовать в рабочей группе трека ML в рамках Yandex Cup. Вместе с большой командой готовим для вас соревнование. Приходи участвовать, будет весело (иногда сложно и больно👨🦳 ). Призы в целом тоже кайфовые. Ну и мне тоже будет приятно!
Я в СПб ищу себе стажера, с которым будем решать нескучные задачи OCR, в первую очередь связанные оптимизациями нейронных сетей (как по объему, так и по скорости исполнения)🔼 . Если тебе уже знакомы слова Python, C++, Pytorch, Tensorflow, Git и на практике успел пошаманить с нейронками — приходи, пообщаемся!
Ну а если ты уже имеешь рабочий опыт в CV или NLP, можешь рассказать моей бабушке, что такое трансформеры😃 и любишь решать нестандартные и очень хардкорные задачи, приходи пообщаться по поводу позиции в штат!
И если тебе не сложно, поделись с другом, мало ли он что-то захочет из этого списка😁 !
Сначала подумал, чтобы написать пост про каждое из событий отдельно, но потом решил, что в этом нет особого смысла, лучше позже расскажу про интересности с
constexpr. В целом, это лично моя инициатива, потому что я всегда горю тем, что делаю, и очень заинтересован в развитии сервисов, команд и компаний Я решил поучаствовать в рабочей группе трека ML в рамках Yandex Cup. Вместе с большой командой готовим для вас соревнование. Приходи участвовать, будет весело (иногда сложно и больно
Я в СПб ищу себе стажера, с которым будем решать нескучные задачи OCR, в первую очередь связанные оптимизациями нейронных сетей (как по объему, так и по скорости исполнения)
Ну а если ты уже имеешь рабочий опыт в CV или NLP, можешь рассказать моей бабушке, что такое трансформеры
И если тебе не сложно, поделись с другом, мало ли он что-то захочет из этого списка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6🐳4🤔2
constexpr родимый
Чтобы ты понимал, почему👨🦳 . Про него все знают, его все уважают, но мало кто использует. Почему? Не знаю. А он есть. С C++11 🙃 .
Недавно читал статью про то, как влияет
— Сравнивает одну и ту же функцию без и с ключевым словом
— Делает сначала тесты с одной единицей трансляции, а потом с несколькими; причем на нескольких два вида сборки: сборка сразу всех файлов в один бинарник и сначала сборка файлов по библиотекам, а потом линковка вместе.
Результаты чарующие😧 : практически нигде нет профита между функциями без 😳
Выглядит интригующе и я захотел проверить... И не смог. Потому что автор не приложил исходников, а по его описанию я не смог повторить тесты. У меня не было никаких различий🤔 . И этому есть одна лишь причина:
Чтобы функция в хедере была аналогичной, я вместо🥲 . И как автору в сборке с "профитом" удалось сделать это самое улучшение — я не понял. Если кто знает, помогите 🥺 !
Но всё же одна плюшка (кроме основной — возможное вычисление в compile-time) мне понравилась: можно зафорсировать вычисления констант, а это позволяет избегать штуки, по типу деления на 0☺️ .
Чтобы ты понимал, почему
C++ — это сложно, просто вспомни про ключевое слово constexpr Недавно читал статью про то, как влияет
constexpr на размер бинаря. Автор проводит несколько тестов где: — Сравнивает одну и ту же функцию без и с ключевым словом
constexpr;— Делает сначала тесты с одной единицей трансляции, а потом с несколькими; причем на нескольких два вида сборки: сборка сразу всех файлов в один бинарник и сначала сборка файлов по библиотекам, а потом линковка вместе.
Результаты чарующие
constexpr и с ним, кроме одного случая — где сборка сначала происходит в библиотеки, а потом происходит линковка. Там профит почти на 30%...Выглядит интригующе и я захотел проверить... И не смог. Потому что автор не приложил исходников, а по его описанию я не смог повторить тесты. У меня не было никаких различий
constexpr functions and constexpr constructors are implicitly inline.Чтобы функция в хедере была аналогичной, я вместо
constexpr писал inline. Но как ты можешь увидеть из сноски выше — в плане разрешения имен это одно и то же (напомню, что inline это ключевое слово, которое позволяет сделать исключение из ODR и сделать одно определение на все единицы трансляции). Потому заявленное свойство constexpr — это свойство inline Но всё же одна плюшка (кроме основной — возможное вычисление в compile-time) мне понравилась: можно зафорсировать вычисления констант, а это позволяет избегать штуки, по типу деления на 0
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1🤔1
Смешное про С++
В рамках подготовки к семинарам по😊 :
— мои личные заметки;
— лекции лектора, чтобы понимать, о чем говорить на семинаре;
— различные ролики на youtube от известных спецов.
И вот я досматриваю очередной ролик, смотрю в комментарии, а там просто очень классная переделка всем известной песенки😂 :
Про попугая здесь отсылка к известному скетчу, упоминаемому в рамках лекции в разговоре про провисшие ссылки (возвращаем или/и используем ссылку на уничтоженный объект)🤓 .
В рамках подготовки к семинарам по
C++ для студентов ШАД я в обязательном порядке повторяю материалы из большого количества источников — мои личные заметки;
— лекции лектора, чтобы понимать, о чем говорить на семинаре;
— различные ролики на youtube от известных спецов.
И вот я досматриваю очередной ролик, смотрю в комментарии, а там просто очень классная переделка всем известной песенки
Аа, в C++ указатели на память вот такой ширины,
Аа, в C++ шаблоны классов вот такой вышины,
Аа, прострелянные ноги,
Аа, нам с UB не по дороге,
Аа, и no more попугай,
Аа, и expired попугай.Про попугая здесь отсылка к известному скетчу, упоминаемому в рамках лекции в разговоре про провисшие ссылки (возвращаем или/и используем ссылку на уничтоженный объект)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10🐳4😁1🤔1
Про цели, время, работу, славу
В октябре выдалось много работы🙃 . Собеседования ребят на проект в ШАДе, семинары в ШАДе, личный менторинг, завершение старых и старт новых проектов на работе. Кажется, немного, но хватает, чтобы иногда не спать сутки.
Я слышал недавно фразу: "если вы целыми днями работаете, то у вас нет времени менять этот мир." Звучит с одной стороны разумно, а с другой стороны — удел ли каждого менять мир? Явлется ли это моей целью? Или твоей? Решать каждому. Но звучит очень громко — поменять мир🤔 .
Что нужно сделать, чтобы изменить мир? Возможно, придумать новую технологию, идею, изобретение — кажется, зачастую, это воля случайности в процессе упорного труда🤪 .
🔼 Например, Рентген открыл одноименное излучение, просто случайно заметив. Но мало ли он проводил в лаборатории времени?
🔼 Ну или более хайповая нынче тема с LLM (aka ChatGPT), где ребята из OpenAI решили попробовать, а что если обучить модель с большим количеством параметров на большом количестве данных. В итоге нашли удивительные свойства этого семейства моделей.
Мои наблюдения последних лет показывают следующее: вне зависимости от целей (есть они или нет), ты можешь делать невероятные вещи, но зачастую цена этому большой труд. А слава, успех — это воля случайности среди часов, проведенных за своим делом. Вопрос только каким делом ты занимешься🤔 .
Ставить как цель получить какую-то славу или успех лучше не стоит. Это очень абстрактно. Ставить цель ради цели также бесполезно, вы будете думать больше о ней, чем о реальных делах😔 . Отвяжитесь от себя, если не можете поставить цель — это нормально. Мне кажется в этом мире, дико перегруженном методиками продуктивности, стоит просто не забывать кайфовать от работы, себя и жизни ☺️ .
А если вы любите своё дело, всё придет — и слава, и мир поменяете🔼 . Ну а если нет, то возможно оно вам и не нужно было 😐 ? Как минимум у вас уже есть своё любимое дело ☺️ .
В октябре выдалось много работы
Я слышал недавно фразу: "если вы целыми днями работаете, то у вас нет времени менять этот мир." Звучит с одной стороны разумно, а с другой стороны — удел ли каждого менять мир? Явлется ли это моей целью? Или твоей? Решать каждому. Но звучит очень громко — поменять мир
Что нужно сделать, чтобы изменить мир? Возможно, придумать новую технологию, идею, изобретение — кажется, зачастую, это воля случайности в процессе упорного труда
Мои наблюдения последних лет показывают следующее: вне зависимости от целей (есть они или нет), ты можешь делать невероятные вещи, но зачастую цена этому большой труд. А слава, успех — это воля случайности среди часов, проведенных за своим делом. Вопрос только каким делом ты занимешься
Ставить как цель получить какую-то славу или успех лучше не стоит. Это очень абстрактно. Ставить цель ради цели также бесполезно, вы будете думать больше о ней, чем о реальных делах
А если вы любите своё дело, всё придет — и слава, и мир поменяете
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍6🥰2🤝2🤗1
Проект с нуля
На днях с коллегой общался на тему: как стартовать проект с нуля🤔 . Мне был интересен сам фреймворк принятия решений на основе накопленного опыта. Здесь опишу кратко свои мысли после всей нашей беседы.
Во-первых, проекты бывают разные по масшатбу😐 . Проектом может быть какая-то фича внутри существующего продукта, может быть ваше личное приложение, а может быть вообще новый продукт, который потенциально может заработать много денег.
Во-вторых, твоя позиция в проекте может быть разная👨💻 . В каком-то случае, ты сам себе программист, дизайнер и проджект, а в каком-то ты стараешься сделать так, чтобы верстка на фронте не поехала. Разница лишь в том, как много контекста нужно держать для решения задач. 🤪
В-третьих, проект может создаваться в разных местах: на коленке, пока варишь пельмеши🔼 , или в крупном корпорате с тоннами согласований.
Я уверен, что можно писать бесконечно этот список, но я был удивлен, что в целом принимать решения во всем этом многообразии можно примерно одинаково🙃 :
1. Ты понимаешь что нужно делать, чтобы запустить проект прямо сейчас?🤔
2. Если да💃 , то поздравляю, ставь таски, часть делегируй, часть делай.
3. Если нет🤔 , обратись к одному из своих инструментов декомпозиции задач и по каждая задача становится мини проектом. Вернись в п.1 и повтори алгоритм.
Ну и всё. Для меня всегда казалось, что в таком плане чего-то не хватает. Но после общения с несколькими более опытными (по моему мнению) товарищами я понял, что он вполне годный🔼 . Его можно усложнить, конечно, но оно тебе надо?
А пока ничего сложного! Хотя... "инструменты декомпозиции задач" странный термин🤓 . Но в какой-то мере он может определять ваш опыт. Потому что важно не только про них знать, но и уметь их использовать.
Про эти инструменты я, пожалуй, напишу уже в одном из следующих постов!😁
На днях с коллегой общался на тему: как стартовать проект с нуля
Во-первых, проекты бывают разные по масшатбу
Во-вторых, твоя позиция в проекте может быть разная
В-третьих, проект может создаваться в разных местах: на коленке, пока варишь пельмеши
Я уверен, что можно писать бесконечно этот список, но я был удивлен, что в целом принимать решения во всем этом многообразии можно примерно одинаково
1. Ты понимаешь что нужно делать, чтобы запустить проект прямо сейчас?
2. Если да
3. Если нет
Ну и всё. Для меня всегда казалось, что в таком плане чего-то не хватает. Но после общения с несколькими более опытными (по моему мнению) товарищами я понял, что он вполне годный
А пока ничего сложного! Хотя... "инструменты декомпозиции задач" странный термин
Про эти инструменты я, пожалуй, напишу уже в одном из следующих постов!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🐳3🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Runway. Motion Brush in Gen-2
Офигеть😮 . Просто не надо слов. Смотрите демку. Если будет так (это видосик из анонса) — это будет невероятная фантастика.
Ребята обещают запилить кисточку в своем редакторе, которая приводит в движение выделенную область на картинке. Да🙃 , это делали и до этого, но если в таком качестве — то вроде никто.
Да, я понимаю, что артифакты есть и они будут. Но если у вас динамичный продакшн и вам нужно на секунду показать какую-то динамику — то это просто шикарнейший инструмент🔼 .
Офигеть
Ребята обещают запилить кисточку в своем редакторе, которая приводит в движение выделенную область на картинке. Да
Да, я понимаю, что артифакты есть и они будут. Но если у вас динамичный продакшн и вам нужно на секунду показать какую-то динамику — то это просто шикарнейший инструмент
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🐳2❤1
Хотел сгенерировать мем про Vtables в
С++ с помощью DALL·E 3. В целом, если не обращать внимание на слова, то получилось жизненно.😁6❤1
MusicGen
Не особо слежу за развитием AI в области генерации музыки, но тут мне попался под руки релиз от одной экстремистской организации🙃 .
Подход позволяет создавать стерео-музыку из текста😮 . Условно задаешь ей такое:
А сетка тебе выдает примерно такое. На самом деле очень впечатляет. Если бы мне такой саундтрек подложили в какой-нибудь видос или игру, я бы даже и не заметил подвоха🤔 .
На секундочку замечу, что это все же стерео🔼 . Еще года 3 назад я с коллегами обсуждал, что вот бы сетки научились делать качественное музло в моно канале, а тут такое!🤨 Понятно, что это не Моцарт, но все же.
А еще на вход можно подавать аудиозапись, и тогда сетка извлечет стиль исполнения из неё и использует эту информацию для генерации аудиотрека🤪 . Я воспользовался этой возможностью, и попробовал для промпта выше сгенерировать что-то на мотивчик интерстеллара (вот такой пример брал). Получилось неплохо (слушать тут) 🤨 !
Также попробовал еще другой запрос для интерстеллара:
💃 !
Из ограничений: демка генерирует только 15 секунд, но если хочешь больше, то нужно уже хостить самому или попробовать запустить в коллабе. Также она не работает с вокалом🤔 , работает далеко не с первой попытки 🤔 .
Под капотом лежит трансформер🤓 , который работает с текстовыми и аудио токенами. Разбор статьи делать не хочется, поэтому если интересно, можешь прочитать здесь ☺️ .
Не особо слежу за развитием AI в области генерации музыки, но тут мне попался под руки релиз от одной экстремистской организации
Подход позволяет создавать стерео-музыку из текста
A grand orchestral arrangement with thunderous percussion, epic brass fanfares, and soaring strings, creating a cinematic atmosphere fit for a heroic battle.А сетка тебе выдает примерно такое. На самом деле очень впечатляет. Если бы мне такой саундтрек подложили в какой-нибудь видос или игру, я бы даже и не заметил подвоха
На секундочку замечу, что это все же стерео
А еще на вход можно подавать аудиозапись, и тогда сетка извлечет стиль исполнения из неё и использует эту информацию для генерации аудиотрека
Также попробовал еще другой запрос для интерстеллара:
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. Скорее в целом, для технических специалистов 🔼 . Дальше по тексту из поста:
В общем, однозначный лайк!☺️
@boris_again Написал классный гайд по поиску работы
Все кратко и по делу. Чтения минут на 30. Внутри рассматриваю поиск работы с самых азов и до деталей с примерами из жизни.
https://btseytlin.github.io/intro.html
В общем, однозначный лайк!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3
Счастливое преображение в мемах от DALL·E 3
Попросил DALL·E 3 сгенерировать мем о том, как тяжело обучать нейронные сети в лабе компьютерного зрения🙃 . Получилась картинка слева (не спрашивайте, зачем).
А потом корректирую запрос и пишу, а давай какое-нибудь более реалистичное окружение, типа офиса Google или Apple. И вот результат на правой картинке🤔 .
Вопрос: почему они стали счастливыми?😐 И почему в халатах? 👨⚕️
Попросил 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. Сегодня срочно вызвали на совещание. Вернулся поздно и ничего не объяснил. Сказал лишь собирать вещи и бежать в магазин за продуктами на две недели. Сейчас качаем веса всех моделей, что есть в интернете. Не знаю, что происходит, но мне кажется началось...
Отец знакомого работает в OpenAI. Сегодня срочно вызвали на совещание. Вернулся поздно и ничего не объяснил. Сказал лишь собирать вещи и бежать в магазин за продуктами на две недели. Сейчас качаем веса всех моделей, что есть в интернете. Не знаю, что происходит, но мне кажется началось...
😁33❤3
Распознавание жестов
Однажды у моей в команды была замечательная задача — нужно было сделать распознавание жестов😃 . Требования были простые: RPi 4B, CPU only инференс, максимальная задержка на кадр — около 30 мс, сами снимики были чб. На тот момент самым популярным готовым решением был 👨🦳
Пайплайн детектирования ключевых точек ладони в фреймворке устроен следующим образом:
1. Сначала отрабатывает детектор ладони (который не совсем тривиальный);
2. Затем происходит поиск ключевых точек на кропнутом изображении ладони.
Обычно ладонь имела ориентацию вверх, т.е. ладонь как-то поворачивали. Для этого использовали ключевые точки, которые находились вместе с детектором второй головой😵💫 . Поэтому обучение такого детектора — не совсем классическая задача детекции.
Проблема первая заключалась в том, что этот самый детектор не хотел работать на чб картинках. Вот вообще. Пришлось реально реверсинженирить модельку и пайплайн обучения для того, чтобы заставить это дело работать как нужно🥲 . Как результат мы получили новую модельку, по качеству не хуже оригинальной на наших датасетах.
Проблема вторая: код исполнялся примерно за 70-100мс на запрос. Это было очень много🤨 . Ну как бейзлайн решили использовать post-training квантезацию. Сначала были проблемы с качеством, но путем подборки хорошего калибровочного датасета всё решилось. Но вот со скоростью стали проблемки. 100мс+ на запрос, что больше даже без квантезации. Как так 🤔 ?
А все просто. Где-то внутри кишочков XNNPACK после долгого лютого дебага обнаружился баг, который некорректно обрабатывал свертки. История в👨🦳 . Мы попробовали и о чудо: каждый запрос до 30мс, а я замечу что тут была еще наша классификационная голова 😅 .
Это вот я вам рассказываю так легко сейчас, а тогда было сложно. Ни нормальной документации, ни порядочных примеров. Но мы справились. В целом, задача вышла достаточно инженерной, в тот момент я прям кайфанул от результатов. Сейчас наверное тоже бы☺️ .
Я еще хотел рассказать про сам🙃
Однажды у моей в команды была замечательная задача — нужно было сделать распознавание жестов
mediapipe — просто берешь распознавание скелета руки, накидываешь сверху постпроцессинг ключевых точек, простой классификатор — и решение готово. Ну или почти готово...Пайплайн детектирования ключевых точек ладони в фреймворке устроен следующим образом:
1. Сначала отрабатывает детектор ладони (который не совсем тривиальный);
2. Затем происходит поиск ключевых точек на кропнутом изображении ладони.
Обычно ладонь имела ориентацию вверх, т.е. ладонь как-то поворачивали. Для этого использовали ключевые точки, которые находились вместе с детектором второй головой
Проблема первая заключалась в том, что этот самый детектор не хотел работать на чб картинках. Вот вообще. Пришлось реально реверсинженирить модельку и пайплайн обучения для того, чтобы заставить это дело работать как нужно
Проблема вторая: код исполнялся примерно за 70-100мс на запрос. Это было очень много
А все просто. Где-то внутри кишочков XNNPACK после долгого лютого дебага обнаружился баг, который некорректно обрабатывал свертки. История в
github показала, что на тот момент ребята из команды этого фреймворка только её решили и еще даже не положили в релиз Это вот я вам рассказываю так легко сейчас, а тогда было сложно. Ни нормальной документации, ни порядочных примеров. Но мы справились. В целом, задача вышла достаточно инженерной, в тот момент я прям кайфанул от результатов. Сейчас наверное тоже бы
Я еще хотел рассказать про сам
mediapipe и как он хорош, но пост уже и так большой. Как нибудь в следующий раз.Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍3🔥2🐳1
Delivering Safe C++
Недавно вышел ролик от CppCon, где Страуструп пытается рассказать про обеспечение Safety в С++.
Вот некоторые заметки, которые я вынес🙃 :
* Security — это не безопасность языка, не безопасность памяти, это не про safety. Security — это свойство системы, которая включает в себя железо, помещение, людей, ПО и т.д.
* Идеальной безопасности добиться сложно — как минимум нам нужно взаимодействовать с ОС, а там половина написана на Си, и проверять в нашем приложении функциональность ядра мы не собираемся, а потому мы верим, что там всё должно быть хорошо;
* Люди часто не хотят использовать безопасные высокоуровневые абстракции под предлогом, что это уменьшает производительность, но при этом не делают никаких бенчмарков;
* Советы по безопасности:
* Инициализируйте переменные;
* Используйте более высокоуровневые абстракции для диапазонов:
* Проверка на
* Используйте умные указатели для избежания утечек памяти, желательно как можно более дешевые, т.е.
* Страуструп считает, что большинство сторонников писать на других языках думают, что альтернатива безопаснее, но в основном это с точки зрения управления памятью.
Ну и естественно это была подводка к предложению о создании "Profiles" — некоторой сущности, которая будет предоставлять разного рода гарантии. По сути показан некоторый концепт, но как это реализовать — не ясно😐 .
Еще нескольких фан фактов😂 :
* Бьярне просто как будто рассказал лекцию студентам;
* Спикер очень тактично избегал назвать язык, где подобные концепты уже зашиты — Rust;
* Скорее всего доклад навеян новостью о том, что АНБ США рекомендовало не использовать C++ для разработки;
* Концепцию RAII Бьярне придумал практически с самого начала C++, но в виде какой-то теоремы формулировка пришла почти через 10 лет;
* Еще в 80-х года Страуструп обсуждал идею
В целом, от доклада сложилось ощущение, что когда Страуструп обсуждал идею доклада, то диалог там был примерно как в этом видео. И это очень грустно, конечно🥹 . При всем уважении к создателю, 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;В целом, от доклада сложилось ощущение, что когда Страуструп обсуждал идею доклада, то диалог там был примерно как в этом видео. И это очень грустно, конечно
Please open Telegram to view this post
VIEW IN TELEGRAM