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

Про рекламу

Всем привет!

Говорят полезно задавать себе вопрос: "зачем ты это делаешь?".
Такой же вопрос я иногда задаю, когда пишу что-то в канал. Ответ для меня на этот вопрос - хочется помочь коллегам по цеху советом, как делать работу более эффективно и менее стрессово. Возможно, услышав крутую идею, кто-то захочет внедрить это в своей ежедневной работе.

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

Надеюсь каждый отнесется к этому с пониманием, ведь рекламный пост добавляет +10 к скорости генерации моего контента.
👨‍💻 Data Scientist — один из немногих каналов по Data Science и машинному обучению в телеграм. Ребята публикуют полезные материалы для тех, кто хочет стартануть в DS и ML.

Вот несколько фактов про DS:
◾️DataScientist — самая сексуальная профессия XXI века (согласно Harvard Business Review)
◾️В мире не хватает около 300 тысяч (!!!) спецов по DataScience
◾️В течение последних нескольких лет Data Scientist возглавляет рейтинг самых оплачиваемых работ

Хотите знать про DataScience еще больше? Или хотите стать спецом по DS? Подписывайтесь!
Команда Sber AI, которые, как ясно из названия, активно занимаются машинным обучением в Сбере, чуть больше недели назад опубликовали модель Kandinsky 2.1.
Признаться, я не следил за развитием этой истории в сбере, но эту модель хочется обсудить.

Кому интересно, приглашаю читать ⬇️
Наверно почти у каждого есть опыт работы с такими нейронками. Kandinsky 2.1, говорят, аналог midjourney, с хорошим понимание русского языка.

Интересен процесс тренировки такого типа моделей - им нужно скормить очень много данных и в результате получить много миллиардов параметров.

Пишут, что для версии 2.1 взяли веса версии 2.0 (училась на 1 млрд пар текст-картинка) и дообучили сначала на 170 млн пар с высоким разрешением картинки, потом еще на 2 млн пар с высококачественными изображениями (что это значит не уточняется). Отдельно отмечают, что добавляли в выборку лица людей и картинки текстов.

Страшно подумать, сколько ресурса требуется для сбора и хранения этих данных.

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

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

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

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

Вокруг я только и вижу коленочные решения, которые сложно поддерживать и невозможно обновить. Сам такие решения последние 2 года делать отказываюсь, но танцы с заказчиком вокруг его желания все еще продолжаются и, думаю, никогда не закончатся.

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

Это извечный компромисс скорость/качество. И если с продажей «скорости» проблем не возникает, то с продажей «качества» часто приходиться повозиться.

Интересно еще и то, что почти все собеседования нацелены проверить качество, и редко - скорость. А в работе в итоге спрашивают скорость 🧐

А на чьей стороне ты в этом противостоянии?
Процесс перфоманс ревью у меня вызывает противоречивые чувства.

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

Матрица компетенции в этом процессе незаменима. Хочется иметь список скилов, которым нужно соответствовать на той или иной должности. Ренат в своем канале недавно опубликовал хорошую заметку на тему "Как стать Machine Learning Engineer", она в основном про хард-скилы.
Если для начальных уровней понятно, как сформировать требования по скилам, то для позиции уровня стафф инженера и выше все сложно, потому что ожидается, что технологии ты уже освоил и теперь основной вес приходится на коммуникации.

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

Если среди нас есть мастера коммуникации, буду рад услышать ваше мнение про то, как давать полезную обратную связь.
#карьера

Про дисциплину и преодоление в работе/учебе


Вчера закрыл дедлайн по учебе. Уложиться было не смертельно, можно было профакапить, но мне самому хотелось двинуться дальше.
На этом фоне возникло несколько мыслей с философским уклоном.

Любая жесткая дисциплина требует расхода собранности, усилий над собой и много терпения. Все эти ресурсы не бесконечны. По моему убеждению, результативность достигается благодаря постоянству, а не усилию над собой.
Я как-то привык двигаться благодаря радости и удовольствию от процесса, стараюсь в любом процессе найти этот драйв (не всегда удается). Но эта привычка прямо противоречит жесткой дисциплине, потому что для меня в дисциплине есть сила воли и нет радости. На сколько каждого из нас хватит: на 1-2-3 месяца? А потом начнется регрессия к среднему и следующие месяцы мы будем пропускать дедлайны.

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

Делать что-то с мыслью, что это твой собственный выбор, твое решение и твое желание - вот, как мне кажется, рецепт долговременного роста.

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

Ну а я, радостный от закрытия дедлайна, могу провести выходной за чашкой чая с другом ☕️

Хороших выходных!
#MLOps

На той неделе наступил срок сдачи ТЗ проекта по курсу MLOps2.0, где я участвую в роли ментора.

Авторы курса сделали шаблон ТЗ, который, по задумке, нужно было переделать под свой проект. Всего было сдано больше 300 работ, я отсмотрел около 60-70 и могу сказать, что большая часть работ выглядит хорошо.

Опишу тут основные проблемы, которые встречал:
- есть крутая идея, но нет ответа на вопрос «зачем это бизнесу». Видел работу с идеей сделать рекомендашку полезных действий для улучшения экологии: что именно тебе нужно сделать, чтобы экология стала лучше. Обществу может и будет полезно, но мы же не в мире розовых пони;
- многие забывают про формализацию метрик, по которым оценивать модели и бизнес-эффект от них. Вопрос про то, по какой метрике в итоге будете выбирать модель, вообще ставит в тупик. Если у тебя 2-3-5 ML-метрик, то как сравнивать модели? Эти вопросы оказались сложными для участников;
- часто нет понимания, как и откуда будут приходить данные. Почти все участники хотят начать проекты сразу с EDA, хотя начинать стоит с того, где и как взять данные;
- нет представления об интеграциях и внедрении проекта. Тут все банально, вопрос про внедрение сервиса в инфру заказчика почти всегда остаётся без ответа.

Понятно, что все получили зачет с напутствиями и рекомендациями.

Интересно то, что почти никто не использовал шаблон от Head of DS в Ленте, хотя штука годная и достаточно фундаментальная.
Две недели назад вышло обновление pandas до версии 2.0.0.
По канонам версионирования, изменение мажорной версии часто приводит к несовместимости кода, который писали на более ранних версиях.

Что поменяли?
В качестве бекенда теперь можно использовать pyarrow - полезная либа для работы с большими данными. Pandas, судя по всему, стараются быть в тренде. Теперь можно пробовать pandas вместо dask, но это не точно.
Еще изменили много моментов для работы с календарной датой. Помню, как страдал из-за особенностей работы pandas с форматированием дат и перестановкой день-месяц в разных форматах.

Есть блок про пометки "deprecations" и большой список разных удаленных фичей, которые теперь никому не нужны.

Следующее обновление версии 2.0.1 планируется уже в мае, так что может в нем исправят вновь созданные баги и даже обещают пофиксить обратную совместимость с особо ценными функциями прошлых версий.
Все мы когда-то сталкивались с задачей прогнозирования оттока юзеров. Это, в каком-то смысле, игровая задача. У меня уже несколько раз был случай, когда мы запускали в работу такую модель, а что с ней делать дальше никто не знал. Хотя эта ситуация может случиться со многими ML-проектами, чаще всего я видел ее именно в задаче оттока.

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

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

Ходят слухи, что Сбер обучал свою нейросеть на суперкомпьютере Christofari Neo. В структуру GigaChat входят модели ruGPT-3.5 с 13 млрд параметров, Kandinsky 2.1, ruCLIP и FRED-T5 — лучшая языковая модель по работе с русским языком по мнению авторов GigaChat.

Пока открытого доступа к сервису нет, но можно вступить в закрытый (фактически открытый) телеграм-канал и начинать отсчитывать часы до появления доступа. Я уже прибежал туда и жду вместе со 100к+ другими энтузиастами.

Интересно было бы почитать про обучение этих моделей на русском корпусе, как обстоят дела с устранение токсичности ответов модели, как проводили RLFH. Ждем статью от авторов.

Безусловно радует, что теперь можно не беспокоиться о блокировке ChatGPT и держать перманентно открытыми ни одну, а целых две вкладки с полезными чатами.
Теперь каждый хочет выпустить свой ChatGPT, а значит анонсов про такие сервисы будет всплывать все больше.

Я добавил третью вкладку, которая ведет на чат от HuggingFace. Сейчас он работает на LLaMa 30B модели, которая по субъективным ощущениям слабее, чем вариант от OpenAI.
Использую как альтернативу с доступом без VPN и всяких ограничений.

Еще ходят слухи, что скоро на HuggingFace выйдет модель, обученная на написание кода сильно лучше, чем GPT-3.5. Но возможно это просто слухи и их распространяют нехорошие люди, которым доверять не стоит.
Всем привет!

Недавно опубликовали опенсорсную модель StarCode, которая использует 8к токенов для контекста, что в 2 раза больше, чем у ChatGPT.

Как можно понять из названия, модель заточена на написание кода. Авторы говорят, такая длина контекста позволяет использовать модель как виртуального помощника и передавать туда большие куски кода. Мое использование ChatGPT в основном ограничивается написанием или дебагом кода. Появление StarCode радует, не дает переживать по поводу возможных банов на сторонних сервисах от OpenAI.

Для этой модели уже есть и расширение в VSCode, которое можно использовать как альтернативу Copilot.

А вот статья на целых 50+ страниц для ценителей подробностей.

Внутри модели 15 млрд. параметров и тренировали ее на 512 x Tesla A100 в течение 24 суток. В статье отдельно приведен блок про выбросы СО2 из-за обучения этой модели - суммарно почти 17 тонн эмиссии углеродного газа.

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

Судя по бенчмаркам, эта модель в два раза качественнее той, которая сейчас крутится на HuggingChat. Сравнение делали для кода на python, здесь можно найти предвзятость.

Пару дней буду пользоваться, если понравится, оставлю в редакторе.
Как перестать быть ленивым?

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

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

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

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

Но рассуждать - не мешки ворочать, поэтому пойду немного расслаблюсь 🙈