Daniel Science
134 subscribers
26 photos
1 video
31 links
ML Lead
рассказываю человеческим языком о карьере в Machine Learning, развитии и жизненном пути.
Download Telegram
MLflow на домашнем сервере

Недавно один начинающий разработчик спросил меня как поднять MLflow локально без регистрации и смс, потому что он, цитата, «запарился искать простой и понятный туториал»

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

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

Поэтому выложил на GitHub рабочий из коробки код. Пользуйтесь.
🔥3👍2
Как давать фидбек так, чтобы тебя не послали на … курс по коммуникации

В одном из постов я говорил, что сейчас у нас в компании проходит годовое performance review. Так вот, внутри любого процесса взаимодействия, в том числе и рабочего, бывает сложно дать кому-то обратную связь, чтобы указать на зоны роста и при этом не испортить отношения. Умение общаться и давать обратную связь - очень важный soft skill, который поможет не испортить отношения с близкими, продвинуться выше по карьерной лестнице и обрести друзей на этом пути.
Повторил сам и советую вам.

Принципы обратной связи:

1. Не критикуем

Наша задача указать на положительные моменты и зоны роста. Критика в формате «твой код не очень» не подходит

2. Факты
Обратная связь всегда основана на фактах. Фраза «ты всегда говнокодишь» звучит абстрактно, а вот с «твой последний MR не прошел код-ревью» сложно спорить.

3. Не оцениваем собеседника
Одна из наших задач - сделать так, чтобы собеседник изменил какие-то моменты в своем поведении или работе. Поэтому, важно говорить не о личности собеседника, а о его поступках. Почувствуйте разницу: «ты слишком болтлив» и «на встрече ты говорил большую часть времени».

4. Своевременность
Вовремя дать обратную связь — это лучшее, что можно сделать с обратной связью. Если ситуация произошла месяц назад, а вы обсуждаете ее только сейчас — обсуждение теряет ценность.

Техники:

1. BOFF (Behaviour, Outcome, Feelings, Future):

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

2. Классический «гамбургер»:
отметить хорошее → указать на зоны роста → снова похвалить

2.1. Усовершенствованный «гамбургер»:
отметить хорошее → указать на зоны роста → вместе обсудить, как прокачать зоны роста, и снова похвалить

P.S.
Обратная связь имеет эффект только в ситуации, когда собеседник готов к обсуждению. Поэтому, начать лучше с вопроса: «Удобно ли сейчас обсудить…?».

#обратная_связь #корпоративная_культура #карьера
⚡4👍2🔥2
Задача с собеседования:

Есть 20 баночек с таблетками. В 19 баночках лежат таблетки весом 1г., а в одной - весом 1,1г. Даны весы, показывающие точный вес. Как за одно взвешивание найти банку с тяжелыми таблетками?

Удалось решить за 2 мин - ставь 👍🏻
👍6
XGO 2, первая в мире роботизированная собака Raspberry Pi с рукой!

Интеллектуальный, гибкий и с открытым исходным кодом.

Команда уже собрала 156,368$ на реализацию проекта.

Стоимость питомца стартует с 449$

Подробнее тут
🔥3
🧠 Экзистенциальная проблема

Сунь-цзы, Айрис Мёрдок и Аристотель предлагают подвезти вас на машине домой. Но двое из них хотят вас убить, а один – нет. Вам придётся выбрать одного из философов – того, кто не хочет вас убивать.

Точно известно, что, по меньшей мере, один из философов всегда врёт (причём убийца — не обязательно лжец). Они сделали следующие заявления:

Сунь-цзы: Мёрдок и Аристотель говорят правду.
Мёрдок: Чтобы выжить, выбирайте Сунь-цзы или Аристотеля.
Аристотель: Если хотите жить, не выбирайте Мёрдок.

Решение:

Выбирайте Мёрдока.

Если Сунь-цзы говорит правду, тогда Мёрдок и Аристотель тоже говорят правду. Мы знаем, что один из них лжёт, поэтому Сунь-цзы определённо должен лгать. Тогда у нас есть три варианта. Либо Мёрдок и Аристотель оба врут (тогда нужно выбирать Мёрдок), либо Мёрдок врёт, а Аристотель говорит правду (тогда появляется противоречие), либо Мёрдок говорит правду, а Аристотель лжёт (опять у нас противоречие).

Единственным вариантом будет выбрать Мёрдок.
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
В буре новостей про нейронки от Microsoft и Google совсем незаметной осталась новость про не менее революционную Notion AI.

Некоторе из того, что она умеет:
– Автоматически писать заметки
– Резюмировать длинные статьи
– Анализировать настроение текста
– Переводить текст на разные языки
– Предлагать продолжение текста

Пока возможность открыта для 1 млн пользователей. При этом Notion AI работает на Desktop и в Web, но для доступа нужно немного повисеть в списке ожиданий.
👍4
Написал статью на Хабр

Решил рассказать о работе ML команды в горизонтальной структуре и особенностях такого подхода. Читать тут

TL;DR

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

2. Распределение задач происходит с учетом ценности для бизнеса и вектора развития разработчика. 

3. Для формирования позиции команды по проекту проводится глубокая проработка вопроса с учетом мнения каждого разработчика.

4. Горизонтальная структура позволяет разработчикам развивать навыки самомотивации, самоорганизации и приоритизации задач.

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

6. Возможен быстрый рост компетенций за счет эффективного обмена опытом и знаниями.

7. Команда сплачивается вокруг совместных решений.
🔥3❤1👍1
Чек-лист готовности идеи ML проекта.

1. Определение задачи: как машинное обучение может улучшить бизнес-процессы или определенные операции.

2. Оценка ценности: определение потенциальных экономических преимуществ, которые может принести внедрение проекта.

3. Доступность данных: оценка доступности и качества данных, необходимых для обучения моделей.

4. Культура компании: насколько компания готова к изменениям и внедрению новых технологий.

5. Планирование: разработка роадмапа внедрения проекта с определением ролей и зон ответственности.

6. Наличие ресурсов и компетенций: есть ли у вас необходимые ресурсы, вычислительные мощности, данные и квалифицированные специалисты, чтобы выполнить проект.

7. Оценка рисков: возможные риски, связанные с внедрением проекта, и меры по их минимизации.

8. Поддержка и улучшение качества: создать план поддержки и повышения качества, чтобы обеспечить успешное внедрение и дальнейшее развитие проекта.

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

Источник: канал моего брата. Да, он тоже ML 🤷‍♂️
👍5
Схема MLOps пайплайна

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

Если процессы в компании зрелые и культура позволяет стремиться к лучшему, то большинство из этапов обязательны вне зависимости от размеров команды и сложности продукта. Конечно, при построении подобной инфраструктуры стоит учитывать, что интеграция многих некоторых этапов является не самой простой задачей, а переход команды на новые инструменты имеет адаптационный период. Но тут важно понять, на какие риски вы соглашаетесь. Если коротко, то что чем меньше этапов в вашем пайплайне, тем выше риск невозможности поддержки проекта в будущем и мониторинга его состояния в настоящем.
🔥5
Это уже MVP или все еще прототип?

Существует два похожих понятия — прототип и MVP. Иногда их путают, так что давайте разбираться.

⚙️Прототип
Это сильно упрощенная версия будущего сервиса. Он позволяет проверить одну конкретную идею/гипотезу. Обычно прототипы используют, когда задача звучит так:
«Хотим быстро проверить гипотезу/технологию А».

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

Свойства прототипа:
✅ простой
✅ быстро реализуемый
✅ сразу можно проверить работоспособность идеи
✅ легко переделать
❌ не получится использовать на проде
❌ работает только на заданном наборе данных, при любом отклонении сразу падает в ошибку

🤖MVP
MVP — это аббревиатура от английского Minimum Viable Product или «минимально жизнеспособный продукт». Это почти полноценный продукт, но с ограничениями.
Цель MVP — проверить идею не с точки зрения технологии, а на реальных пользователях. Это значит, что мы уже сделали прототип, убедились, что всё работает, и решили выпустить первую версию, в которой будет только самое необходимое для пользователей. А всё, без чего при запуске можно обойтись, в MVP не включаем ради экономии времени и денег.

Например, если мы делаем MVP того же сервиса обработки звука, то для начала там может быть только избавление от шумов, загрузка исходного и сохранение обработанного файла. При этом сервис может не иметь возможности дополнительных преобразований, обрезки, нарезки и других функций.
Смысл MVP в том, чтобы понять, взлетит ли бизнес-идея в принципе и нужно ли развивать программу дальше.

Свойства MVP:
✅
наличие интерфейса
✅ решает основную задачу пользователя
✅ не падает, если подать на вход что-то не то
❌ разработка дольше и дороже, чем в случае прототипа
❌ не имеет дополнительного функционала, кроме выполнения основной задачи
👍3🔥1
На наших глазах меняются поисковые системы.

Microsoft расширила количество запросов в режиме чата Bing до шести сообщений в одной сессии и 60 в течение дня.

Кроме этого, разработчики анонсировали три новых режима: точный, креативный и сбалансированный.

В будущем компания планирует увеличить дневной лимит до 100 сообщений, а также перестанет засчитывать запросы регулярного поиска в режиме «Чат».
🔥2⚡1
Well done
⚡1
🤖 Китайские военные исследователи провели сражение один на один между управляемым ИИ и человеком беспилотниками в реальных условиях.
Эксперимент пришлось завершить спустя 90 секунд из-за «абсолютного превосходства» алгоритма.

В воздушном бою участвовали два небольших БПЛА. Один контролировался искусственным интеллектом на базе Nvidia Jetson TX2.
Вторым дроном дистанционно управлял опытный пилот.

✈️ По данным исследования, автономный БПЛА быстро увернулся от управляемого дрона и сел противнику «на хвост».
Все попытки человека избавиться от преследования оказались безуспешным

Источник
🤔2
Дистилляция нейронных сетей

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

Примером может служить сеть VGG16, которая содержит более 138 миллионов параметров. После дистилляции ее размер можно уменьшить до 5 миллионов параметров без значительной потери точности.

Другой пример - дистилляция BERT, используемой для обработки естественного языка. Оригинальная модель содержит более 340 миллионов параметров, но после дистилляции ее размер можно уменьшить до 27 миллионов параметров, что позволяет эффективно использовать ее на мобильных устройствах.

Про процесс:
Суть в том, чтобы использовать не только истинные метки, но и выходы большой сети (teacher) для обучения меньшей сети (student), минимизируя разницу между их выходами.
🔥5❤1
🤣5⚡1
Про токсичность и влияние на команду

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

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

Как найти?
Н
еобходимо обращать внимание на следующие признаки:

1. Критика других участников проекта без конструктивных предложений.
2. Негативное отношение к мнению других.
3. Создание конфликтов и напряженной атмосферы в команде.
4. Неприятное поведение и неуважительное отношение к коллегам.
5. Недостаток эмпатии и понимания чувств других участников проекта.
6. Регулярное смещение сроков задач или прямой отказ от выполнения задач, которые ранее были назначены.
7. Попытки снять с себя ответственность за задачи и общий результат.

Как быть?
Можно применить следующие способы для управления ситуацией:

1. Открыто обсудить проблему с токсичным человеком и попытаться найти конструктивное решение.
2. Попросить помощи у руководства или HR-специалистов для решения проблемы.
3. Разделить задачи таким образом, чтобы минимизировать взаимодействие с токсичным человеком.
4. В крайнем случае, перевести его на индивидуальный проект (читай исключить токсичного человека из команды).

Важно помнить, что работа с токсичным человеком может быть сложной и требует терпения и профессионализма. Однако, если не принимать меры, то это может привести к серьезным последствиям для всей команды и проекта в целом.
❤2💯2
Долгожданный релиз PyCaret 3.0. Что нового?

Многие этого ждали и это случилось. Ребята повысили производительность, исправили баги и много чего еще. Подробнее тут.

5 основных изменений:

1. Новый модуль прогнозирования временных рядов

2. Новый объектно-ориентированный API с поддержкой MLFLow, Weights & Biases, DagsHub и CometML

3. Полностью переработан препроцессинг

4. Добавлено предотвращение утечки таргета при использовании кросс-валидации.

5. Повышена производительность и добавлены распределенные параллельные вычисления с помощью Fugue
🔥3👍1
Сейчас очень многие говорят о том, что стоит запретить использование ChatGPT и ей подобных систем. Вся эта шумиха подогревается еще и тем, что некоторые авторитетные и влиятельные люди в медиа, такие как Yoshua Bengio, Elon Musk, Steve Wozniak и еще 5 тысяч значимых персон подписали открытое письмо. 
Хотят приостановить разработку подобных ИИ хотя бы на 6 месяцев, чтобы выработать протоколы и правила работы с такими системами. С одной стороны, порыв хороший, но как и всегда, любая сложная задача имеет простое, легкое для понимания неправильное решение.

Что тут интересного?

Из каждого утюга слышу, что GPT-4 умеет испытывать и понимать эмоции, что это большая проблема и тд. Но так ли это?
Смотрите, любая сетка, будь то Midjourney или ChatGPT - это большие трансформеры. Ни о каких эмоциях там речи не идет. Да, сети большие, очень большие. И поэтому они могут давать невиданные ранее результаты. Есть множество задач, где сетки лучше человека, но есть не менее большое множество задач, где сеткам до людей еще очень далеко. Надо понимать, что сети решают конкретные прикладные задачи и что сети семейства feed-forward, к которым относятся Midjourney и ChatGPT, имеют ограниченное количество этапов принятия решения и сигнал у них идет строго от входного к выходному слою. Они всегда сталкиваются с проблемой увеличения объема данных. Например, если им подавать каждый раз массив больше предыдущего для сортировки или большие арифметические выражения, то настанет момент, когда сеть не справится. Это говорит о том, что увеличение количества параметров в таких сетях позволяет ей лишь обрабатывать больше входных данных, находить чуть более сложные зависимости и чуть лучше подстраиваться под датасет. Ни о каких эмоциях речи не идет. Эти сети не умеют принимать решение о том, как долго им обдумывать свои решения. И это фундаментальное ограничение feed-forward моделей. 

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

Не стоит забывать про вопрос методики оценки модели и поиска критериев признания наличия интеллекта, о которых договоренностей пока нет. Есть большие датасеты вроде BIG-bench, на которых оценивают модели, но вот с признанием интеллекта есть интересный эффект - когда интеллектуальная задача решается компьютером, люди перестают её считать интеллектуальной. Еще Тьюринг занимался разработкой подобных методик оценки.

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

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

Что с этим делать?
Кажется, что вместо того, чтобы заниматься популизмом и кричать «запретить ChatGPT» или «у нее есть эмоции» стоит сконцентрироваться на задачах легитимизации и прозрачности работы подобных алгоритмов, на создании этически корректных датасетов и протоколов применения подобных систем.
Я понимаю, почему люди не из индустрии так восторженно смотрят на это и поэтому, как мне кажется, люди из индустрии должны доступно объяснять остальным, что происходит и как это работает.
Если вы думали, что ИИ уже наступил и Скайнет близко - выдохните и расслабитесь, этого не происходит … пока
🔥2🤔1😱1
Уже можно приветствовать WALLE?

Google обучила парк роботов сортировать мусор.

Исследователи тестировали технологию в течение двух лет. Они использовали RL на реальных данных в комбинации с тренировками в симуляциях.

Чуваки заставили 30 роботов искать по офису мусоросортировочные станции и распределять объекты между баками определенным образом, чтобы собрать датасет. Например, банки и бутылки требовалось отнести в контейнер для вторсырья, а бумажные стаканчики — к компосту.

Еще 20 роботов сортировали мусор в специально оборудованных «классах».

Всего провели около 572 500 тестов. Система научилась правильно сортировать 84% объектов.
🔥2