Как стать автором
Обновить
24
0
Михаил Сарафанов @Dreamlone

Data scientist

Отправить сообщение

Прощай, Data Science

Время на прочтение9 мин
Количество просмотров45K

Это по большей мере личный пост, а не какое-то глубокое исследование. Если вам нужны какие-то выводы, то здесь вы их не найдёте. Откровенно говоря, я даже не знаю, кто его целевая аудитория (возможно «дата-саентисты, которые себя ненавидят»?).

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

Я по-прежнему работаю вместе с «дата-саентистами» и немного продолжаю заниматься этой сферой, но вся моя работа по «data science» заключается в руководстве и консультировании по чужой работе. Я в большей степени занимаюсь реализацией data science (MLOps) и дата-инжинирингом.

Основная причина разочарования в data science заключалась в том, что работа казалась несущественной, во многих смыслах этого слова «неважной»:

  • Работа — это непрекращающийся поток разработки, продукта и офисной политики, поэтому часто так бывает, что работа хороша настолько, насколько хорошо самое слабое звено в цепи.
  • Никто не знал, в чём заключается разница между плохой и хорошей работой в data science, да никого это и не волновало. Это значит, что вы можете быть абсолютным неудачником или гением в ней, но в любом случае получите примерно одинаковое признание.
  • Работа часто приносила очень малую пользу бизнесу (часто компенсируя некомпетентность выше по цепочке управления).
  • Когда польза от работы превышала затраты на оплату труда, часто это не давало внутренней отдачи (например, настройка параметра, чтобы бизнес зарабатывал больше денег).
Читать дальше →
Всего голосов 47: ↑45 и ↓2+60
Комментарии45

Доступный AutoML: как оптимизировать работу с ML-моделями с помощью VK Cloud и FEDOT

Время на прочтение9 мин
Количество просмотров2.8K


В машинном обучении (Machine Learning, ML), чтобы обеспечить требуемые показатели метрик качества ML-моделей зачастую надо строить многокомпонентные пайплайны и комбинировать десятки алгоритмов моделирования. Нередко это сложно и долго. В таких ситуациях на помощь приходит AutoML — автоматическое машинное обучение.

Я Александр Волынский, технический менеджер продукта, отвечаю за развитие Cloud ML Platform в VK Cloud. Статья подготовлена на основе совместного вебинара с Николаем Никитиным, руководителем направления AutoML, NSS Lab, ИТМО. Мы говорили про назначение AutoML-инструментов, их разновидности, фреймворк FEDOT и возможности Cloud ML Platform для работы с AutoML-решениями. 
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии0

33 питона: зоопарк позиций, которые требуют знания python

Время на прочтение7 мин
Количество просмотров13K

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

Прошло почти два года со старта проекта, и я готов подвести некоторые итоги и поделиться опытом.

Начну с темы найма. Найма питонистов всех мастей. 

Завораживающее предисловие, не правда ли?

Читать далее про разных питонистов
Всего голосов 10: ↑9 и ↓1+9
Комментарии11

Учимся создавать пакеты Python

Время на прочтение8 мин
Количество просмотров45K
imageПочему важно уметь создавать пакеты Python?
• Пакеты легко устанавливаются (pip install demo).
• Пакеты упрощают разработку (Команда pip install -e устанавливает ваш пакет и следит за тем, чтобы он сам обновлялся в ходе всего процесса разработки).
• Пакеты легко запускать и тестировать (from demo.main import say_hello, а затем тестируем функцию).
• Пакеты легко версионировать, при этом вы не рискуете нарушить работу кода, зависящего от этого пакета (pip install demo==1.0.3).
Читать дальше →
Всего голосов 20: ↑18 и ↓2+24
Комментарии14

Уличная грязь и симуляция движения пешеходов

Время на прочтение7 мин
Количество просмотров61K
С приходом весны и дождей на улице в глаза все чаще бросается одна проблема. Вот эта:



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

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

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

Под катом — описание алгоритма и пара примеров его работы для реальных питерских дворов.
Читать дальше →
Всего голосов 113: ↑113 и ↓0+113
Комментарии144

Восстановление (импутация) данных с помощью Python

Время на прочтение8 мин
Количество просмотров15K

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

В науке о данных разведочный анализ данных (exploratory data analysis, EDA) является самым важным этапом в проекте и занимает около 70-80% времени всего проекта. Такой анализ позволяет изучить какие-то свойства данных, найти в них закономерности, аномалии, очистить их, подготовить и построить начальные модели для дальнейшей работы. На этом этапе можно определить вид распределения, оценить основные его параметры, обнаружить выбросы, построить матрицу корреляции признаков и т.д.

Читать далее
Всего голосов 7: ↑5 и ↓2+4
Комментарии0

Data Science: лучшие учебные курсы и программы сертификации

Время на прочтение7 мин
Количество просмотров24K
Можно получить два-три десятка Data Science-сертификатов, но по-настоящему стоящих программ сертификации из сферы науки о данных, по моему мнению, не так уж и много. Я хочу рассказать о нескольких таких программах, поддерживаемых авторитетными организациями. Эти программы я оцениваю по разным признакам. В частности — по объёму рассматриваемых в их рамках тем, по их «весу» в глазах потенциального работодателя, по репутации организации, реализующей программу. В последние несколько лет я являюсь и специалистом по анализу данных, и дата-сайентистом. Всё это время у меня формировалось понимание того, что сильнее всего влияет на успех человека в сфере Data Science (DS).



Здесь я рассмотрю ведущие программы Data Science-сертификации, входящие в список, собранный ресурсом Indeed. Из этого списка я выбрал четыре, которые кажутся мне наиболее достойными. Им и посвящён этот материал.
Читать дальше →
Всего голосов 23: ↑20 и ↓3+30
Комментарии2

Как упаковывать и дистрибутировать модели машинного обучения с помощью MLFlow

Время на прочтение11 мин
Количество просмотров10K

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

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

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

Читать далее
Всего голосов 9: ↑8 и ↓1+9
Комментарии2

BERT, ELMO и Ко в картинках (как в NLP пришло трансферное обучение)

Время на прочтение11 мин
Количество просмотров49K

2018 год стал переломной точкой для развития моделей машинного обучения, направленных на решение задач обработки текста (или, что более корректно, обработки естественного языка (Natural Language Processing, NLP)). Быстро растет концептуальное понимание того, как представлять слова и предложения для наиболее точного извлечения их смысловых значений и отношений между ними. Более того, NLP-сообщество продвигает невероятно мощные инструменты, которые можно бесплатно скачать и использовать в своих моделях и пайплайнах. Эту переломную точку также называют NLP’s ImageNet moment, ссылаясь на тот момент несколько лет назад, когда схожие разработки значительно ускорили развитие машинного обучения в области задач компьютерного зрения.


transformer-ber-ulmfit-elmo


(ULM-FiT не имеет ничего общего с Коржиком, но что-то лучше не пришло в голову)

Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии2

Transformer в картинках

Время на прочтение14 мин
Количество просмотров125K

В прошлой статье мы рассматривали механизм внимания (attention) – чрезвычайно распространенный метод в современных моделях глубокого обучения, позволяющий улучшить показатели эффективности приложений нейронного машинного перевода. В данной статье мы рассмотрим Трансформер (Transformer) – модель, которая использует механизм внимания для повышения скорости обучения. Более того, для ряда задач Трансформеры превосходят модель нейронного машинного перевода от Google. Однако самое большое преимущество Трансформеров заключается в их высокой эффективности в условиях параллелизации (parallelization). Даже Google Cloud рекомендует использовать Трансформер в качестве модели при работе на Cloud TPU. Попробуем разобраться, из чего состоит модель и какие функции выполняет.


Впервые модель Трансформера была предложена в статье Attention is All You Need. Реализация на TensorFlow доступна как часть пакета Tensor2Tensor, кроме того, группа NLP-исследователей из Гарварда создали гид-аннотацию статьи с реализацией на PyTorch. В данном же руководстве мы попробуем максимально просто и последовательно изложить основные идеи и понятия, что, надеемся, поможет людям, не обладающим глубоким знанием предметной области, понять данную модель.

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии5

Мелкая питонячая радость #1: loguru

Время на прочтение2 мин
Количество просмотров38K

Сегодня мы обсудим, зачем кому-то понадобилось писать замену стандартному питонячему логеру logging и как этой штукой пользоваться.


Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии9

Что делать, если твой временной ряд растёт вширь

Время на прочтение10 мин
Количество просмотров7.3K

Привет, Хабр! Есть мнение, что прогнозирование временных рядов - сложная задача. Но не будем расстраиваться, ведь есть и плюсы - существует ещё большое количество задач, когда рядов сразу несколько, и такие задачи ещё сложнее! Когда начинаем сравнивать, понимаем, что прогнозировать одномерные временные ряды не так уж и сложно. А вот что делать с ситуацией, когда временной ряд обрастает параллельно идущими с ним последовательностями других параметров (многомерный ряд), какие методы и алгоритмы использовать, и что делать, если задача прогнозировать такие ряды есть, а опыта не очень много (спойлер - используйте AutoML, а пока он работает восполните пробел прочитав пару статей по теме), разбираем под катом.

Что такое временной ряд 

Если начинать совсем издалека, то это последовательность значений, упорядоченная по времени. Во временных рядах есть закономерность: текущие значения ряда связаны с предыдущими. Если такого свойства у ряда нет, то поздравляем (или не поздравляем), вы имеете дело с процессом, который прогнозировать классическими (и не очень) моделями не выйдет, в таком случае стоит смотреть в сторону Марковских процессов.

Простенькая картинка ниже иллюстрирует описанное выше свойство, - этого бэкграунда для продолжения чтения поста достаточно (Рисунок 1).

Ну и что же делать
Всего голосов 5: ↑5 и ↓0+5
Комментарии7

4 главные ошибки на пути к эффективному обучению чему угодно

Время на прочтение5 мин
Количество просмотров31K

В знаменитом ролике об эффективном обучении профессор Марти Лодбелл рассказывает историю:

"У нас была первокурсница Джанет. За первый семестр её средний балл был D (три с минусом по нашей системе). Видя её результат, руководство университета сообщило о скором отчислении.

В связи с этим Джанет решила изменить свой подход — 6 часов занятий каждый день без остановки. Каждый вечер в 18:00 она садилась за письменный стол и работала до полуночи. Она зубрила лекции до скрипа в ушах, не отдыхая и занимаясь только учёбой. По её собственным словам, общий объем занятий вырос в 8 раз по сравнению с первым семестром.

Как вы думаете, какой средний бал она получила? Если вы считаете, что она играючи сдала все экзамены на отлично, то вы ошибаетесь. Ноль! Она провалила все экзамены без исключения."

Читать далее
Всего голосов 28: ↑20 и ↓8+17
Комментарии68

Отдай ребёнка дьяволу или купи мне пиво: вот, чем вы рискуете, когда используете свободное ПО

Время на прочтение5 мин
Количество просмотров46K

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

Читать далее
Всего голосов 108: ↑94 и ↓14+107
Комментарии123

Алгоритм ранжирования сегментов речной сети с использованием графов для геоинформационного анализа

Время на прочтение18 мин
Количество просмотров3K

Привет, Хабр.


В данной статье хотелось бы затронуть тему применения информационных технологий в Науках о Земле, а именно, в Гидрологии и Картографии. Под катом представлено описание алгоритма ранжирования водотоков и реализованного нами плагина для открытой геоинформационной системы QGIS.

Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии7

4 анти-паттерна pandas и способы борьбы с ними

Время на прочтение12 мин
Количество просмотров21K

Pandas — это мощная библиотека для анализа данных, API которой обладает широкими функциональными возможностями. Этот API позволяет решить любую задачу, связанную с обработкой данных, несколькими способами. Некоторые из подходов к решению задач лучше других. Часто бывает так, что пользователи pandas узнают о подходах, не отличающихся особой эффективностью, привыкают к ним и постоянно их применяют. Этот материал посвящён разбору четырёх анти-паттернов pandas и рассказу о приёмах работы, которые стоит использовать вместо них.

Автор черпал вдохновение из многих источников, ссылки на которые даны в статье. В частности — из замечательной книги Effective Pandas.

Читать далее
Всего голосов 20: ↑19 и ↓1+26
Комментарии15

Про настройку гиперпараметров ансамблей моделей машинного обучения

Время на прочтение13 мин
Количество просмотров5K

Привет Хабр!

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

А мемы про гиперпараметры?
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Переезд инженера в Германию: «Голубая карта», налоги, дети

Время на прочтение15 мин
Количество просмотров103K


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


Топ-5 стран по количеству переехавших российских инженеров в тысячах, Amazing Hiring, 2020
*около 30% инженеров не открывают своих данных для открытого поиска.


Стоит ли Германия релокейта, и что ждет тех, кто переезжает не один? В нашем сегодняшнем материале — плюсы и минусы переезда в страну пива и брецелей.
Читать дальше →
Всего голосов 44: ↑34 и ↓10+38
Комментарии229

Библиотеки для декодирования видео. Сравнение на Python и Rust

Время на прочтение12 мин
Количество просмотров20K

Многие задаются вопросом — насколько медленный Python в операциях декодирования? Правда ли, что компилируемые языки дают прирост скорости во всем, чего касаются? Что быстрее: OpenCV или ничего? Ответы на эти и другие бесполезные вопросы под катом вы прочитать не сможете. Там обычное скучное исследование производительности в конкретной задаче.
Все заинтересовавшиеся, добро пожаловать!

Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии10

Смена работы тимлидом: как готовиться, как онбордиться, и что дальше

Время на прочтение20 мин
Количество просмотров16K

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

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

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

Читать далее
Всего голосов 29: ↑28 и ↓1+29
Комментарии13

Информация

В рейтинге
Не участвует
Откуда
Helsinki, Southern Finland, Финляндия
Дата рождения
Зарегистрирован
Активность