Заметки дата-сатаниста
272 subscribers
43 photos
1 video
31 links
Про повседневность ML инженера, мотивацию, вызовы, работу с данными и истории из жизни.
Download Telegram
Киберпанк близко?

Интересное исследование провели в MIT. В статье рассматривается влияние таких GAN-ов как ChatGPT или DALL-E на производительность человека, по сути АБ-тест на скорость выполнения задач. В эксперименте приняли участие 444 человека с высшим образованием. Перед людьми стояли задачи от бухгалтерской рутины до написания кода и его отладки.
Выводы авторов заставляют понервничать - неравенство между работниками уменьшается, так как ChatGPT сжимает распределение производительности за счет большей выгоды для работников с низкими способностями. Инструмент в основном заменяет усилия работников, а не дополняет их навыки, и реструктурирует задачи в сторону генерации идей и редактирования, а не черновой работы.

Опасность для сотрудника, как мне кажется, в том, что "творческая часть" в работе занимает не основную часть времени, а значит основной объем работы многих профессий, в том числе и моей, уже может быть автоматизирован.
Список вопросов для выявления потребности и ожидания бизнес-заказчика от ML проекта:
1. Какого результата хотите достичь с помощью машинного обучения? Как будет выглядеть бизнес после внедрения ML?
2. Какие проблемы существуют в компании/проекте, которые хотите решить с помощью ML?
3. Какие данные собираете и храните в настоящее время? В каком формате они представлены? Как часто и качественно собираются данные?
4, Какой объем данных есть? На какую глубину истории доступны данные?

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

Может я забыл что-то спросить?
Буду рад дополнительным вопросам, которыми нужно дополнить список. Получим максимальную прозрачность от бизнес-заказчика!
#тру_стори

Как я nginx побеждал

Потребовалось как-то настроить конфиги для nginx так, чтобы отдавать статик-файлы в обход сервиса. Раньше таким не занимался и в целом ML-инженеру такая задача попадается редко, скорее это типичная задача бекенд-разраба. Сначала все шло не по плану, но через пару часов поиска решение было найдено, задача вроде как сделана, но осталось чувство "а деньги?" 🤷‍♂️

Спортивный интерес привел меня куда?
Правильно - в ChatGPT опять этот ваш ChatGPT из каждого утюга. Закинул туда конфиг, указал на ошибку и попросил исправить. В этот момент я понял, как мог сэкономить пару часов.
Дополняю список вопросов для выявления потребности и ожиданий бизнес-заказчика от ML-проекта:

5. Какие метрики и показатели важны для измерения профита от внедрения машинного обучения?
6. Какие бизнес-процессы наиболее подходящий для автоматизации с помощью ML?
7. Какова ваша ресурсная оценка для этого проекта по времени?
8. Какие человеческие ресурсы вы готовы выделить для реализации проекта?

Теперь вопросы охватывают больше важных мест, но одного списка вопросов явно недостаточно для полноценного планинга.
This media is not supported in your browser
VIEW IN TELEGRAM
Что такое RL?

RL-алгоритмы (Reinforcement Learning или обучение с подкреплением), в отличие от прогнозных моделей, взаимодействуют с внешним миром и получают от него фидбек. Цель RL-алгоритма заключается в получении максимальной выгоды от принятого решения. Например собаки, которых обучают новым трюкам, получают лакомство в случае правильного выполнения команды. Собака пытается довести до максимума количество получаемых угощений и пытается изучить дополнительные навыки для увеличения вознаграждения.

Еще один из примеров применения RL — поиск выхода из лабиринта. Изначально, ничего не известно о лабиринте. Исследуя разные варианты, алгоритм учится находить кратчайший путь к выходу.
Сегодня даже в новостях написали про выход GPT-4, сама преза была еще вчера. Вот статья, где OpenAI рассказывают про особенности этой модели.

Из интересного можно выделить, что разные профессиональные тесты на юриста или медика модель стала проходить сильно лучше GPT-3.5 и иногда лучше, чем 90% всех сдающих. Еще появилась возможность передать в инпут картинки и учесть их в контексте. Например можно передать верстку сайта в виде картинки и попросить закодить фронт по этой верстке. На этом моменте фронтендеры напряглись 🖥

Самое интересное, на мой взгляд, находится на 12 странице в блоке "Model-Assisted Safety Pipeline".
Авторы пишут, что при получении небезопасных входных данных модель может генерировать нежелательный контент, например давать советы о совершении преступлений. Чтобы эту ситуацию поправить используют специальные обучающие подсказки и модели вознаграждения, основанные на правилах. По сути именно в этом месте используется reinforcement learning with human feedback (RLHF). Неужели OpenAI собрали датасет с рекомендациями по безопасности обработки запросов?
Похоже RL с его универсальностью обратной связи будет и дальше жить в связке с языковыми моделями.
Этот ваш ChatGPT из каждого утюга слышно

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

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

С точки зрения удовлетворения этих истинных потребностей появление ChatGPT и подобных инструментов - хорошее явление. Ведь это просто более эффективный инструмент моей работы. Как появление компьютера в эпоху печатных машинок. Осталось только научиться пользоваться компьютером. История показывает, что процесс этот будет болезненным.
Где применяется RL?

В Tesla для планирования путей беспилотных автомобилей при самостоятельной парковке. Количество возможных путей с каждым движением растет экспоненциально. Это приводит к тому, что традиционные методы планирования пути слишко долго работают. На AI Day компания Tesla показала алгоритм, основанный на AlphaGo, направленный на решение этой проблемы с помощью RL. Но иногда случаются казусы как на картинке :)

Ещё одно полезное применение RL — охлаждение дата-центров в Google. Дата-центры потребляют огромное количество энергии, а компьютеры, которые в них содержатся, рассеивают эту энергию в виде тепла. Поддержание дата-центра в работоспособном состоянии требует применения серьёзных и дорогих систем охлаждения. Благодаря RL Google смогла развернуть системы охлаждения, которые включаются лишь по необходимости, что позволяет исключить работу "в холостую".
Недавно заходил в Decathlon за покупками спортивной снаряги. На кассе спросили телефон и почту, который называть я отказался. Выяснилось, что обязательным условием продажи является участие в их "программе лояльности". После такого заявления какая-либо лояльность у меня сразу пропадает.
В итоге свои данные оставила жена, которая не видит проблем с распространением таких данных. А я ушел с мыслью, что ценность данных не всем так очевидна.
На днях со знакомым обсуждали вопрос про переход его в другую компанию на руководящую позицию. Он поинтересовался, стоит ли ему переходить и какие могут быть плюсы/минусы. Рассуждение ушло в сторону определения карьерных целей и оптимизации метрики счастья. Я рассказал, как иногда бывает больно работать в компании с хаотичными процессами, размытой ответственностью и огромным легаси. Предложил ему, как будущему руководителю, оценивать возможность внедрения определенных изменений в компании, куда он собирался переходить.

И тут он меня спросил: "А откуда ты знаешь как надо делать и как делать не надо?".
Вопрос оказался не из простых и уходил в глубины моего менеджерского опыта, бизнеса и карьеры. Быстрого ответа я на этот вопрос не нашел и, наверно, все еще не могу четко на него ответить. Но почему-то у меня сложилось ощущение, что эта область знаний со мной настолько давно, что уже не вспомнить откуда она взялась.
Продолжу про карьеру в ML.
Главный вопрос - зачем мы работаем?

На скрине мои направления развития, а размышления об этом ниже 👇
Примерно каждые полгода я пытаюсь понять направление своей карьеры и думаю о том, как развиваться дальше. Сейчас как раз такой период "ревью". В прошлый период составил план-капкан, он же Personal Development Plan. К таким планам всегда относился скептически, но в них есть ценная идея - балансировка своих усилий между направлениями.

Я думал, что знаю свой план развития. Это ощущение обманчиво и относится к разряду тех, когда ты вроде бы знаешь, но это не точно. Чтобы все-таки зафиксировать этот план, решено было его записать.

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

Так и с личным развитием - балансируем усилия по сферам с учетом вероятности освоить тот самый курс "<название_крутого_курса>" и будущей доходности этих знаний.

Звучит конечно классно, но возникает две проблемы.
Во-первых, эта самая вероятность меняется во времени от множества личных обстоятельств и оценить эту вероятность на старте весьма непросто.
Во-вторых, спрогнозировать будущую доходность знаний тоже непросто.
Разговаривали с коллегой про А/В тесты с синтетическим контролем. Погрузился в статью "Using Synthetic Controls:
Feasibility, Data Requirements, and Methodological Aspects " , у нее 40+ страниц текста, так что на освоение стоит закладывать время. Если дойдут руки, попробую сделать реализацию в коде. Статья интересная и, на удивление, не самая сложная.
Некоторые идеи из нее ниже 👇
Синтетический контроль нужен, когда у нас нет возможности провести полноценный А/В тест из-за отсутствия контрольной группы. Можно сделать контрольную группу искусственно.

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

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

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

Начинаю серию постов о качественной разработке ML приложений.

MLOps о том, как писать код, чтобы было не стыдно показать его коллегам и не позориться на весь интернет 🌐

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

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

Честно признаюсь - несколько лет назад у меня был шанс построить идеальную команду, но в то время задача оказалась не по плечу. С тех пор набрался опыта и хочу им поделиться.

Первый пост на тему шаблонизации проекта будет на следующей неделе.

▶️ Для старта поделюсь ресурсом создания вашей MLOps архитектуры.
#тру_стори

Чудо-вакансия


Недавно в чате Питерского ОДС появилось сообщение с необычной вакансией. Ребята искали ML-инженера, который мог бы для них оценивать проекты с точки зрения их бизнес-потенциала и технической инновационности «на предмет халтура внутри или нет». Все, что в кавычках - дословно, цитат дальше будет много.

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

Из требований:
1. Быть сильным в рисерче, а именно смочь «прочитать и понять статью по ИИ».
2. Хотеть самому писать статьи или обзоры, что «подтвердить лекциями на ютубе и личным блогом».
3. Уметь понять, что продукт на основе API ChatGPT не прорывной, потому что «его любой кодер повторит».

Ребята «понимают, что требования сильные, но и задачи сложные».

Есть ощущение, что вакансию они закрывать будут долго.