Возможна ли реализация DataScience проекта от и до под Windows?

 Публичный пост

Всем привет!
Расшифрую вопрос темы, т.к. не смог сооборазить как его задать кратко и передать суть.
А суть вот в чем: я сейчас учусь на специализации DataScience и на модуле про продакшн постоянно говорят "ребята, ставьте линукс". Резоны понятны. Но.

У меня помимо этого есть и оновные (надеюсь, пока) рабочие задачи , не связанные с DataScience. По ним и софт исключительно виндовый, и окружение исключительно виндовое, и плотное использование всяких тимсов/линков, и использование ресурсов в "чужих" корпоротивных сетях. А я не настолько хорошо знаю линукс, чтобы взять вот сходу все настроить и жить под линуксом.

И, при всем при этом, начал на работе потихоньку двигать проект по предиктивной аналитике ремонтов и использованием ML. Я им занимаюсь один и все задачи, в т.ч. и подготовкой к проду (я надеюсь, до этого все-таки дойдет :) , тоже буду делать я же. И вот как быть?

В принципе, пока хорошо выручает WSL2. Для учебных задачек/тестов вполне себе работает. Но достаточно ли его уже для "взрослых" вещей? Или есть какие-то известные подводные камни, из-за которых все-таки линукс маст хэв?

30 комментариев 👇

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

  Развернуть 1 комментарий

@zlYpNm9np93KgtL8, так был бы сервер еще :) Пока все будет крутиться у меня на локальной машине. И про линукс разговор на учебе вплотную завели именно в модуле по подготовке модели к продуктиву. До этого все прекрасно работало и под виндой

  Развернуть 1 комментарий

@AntonGolovanov, ну я у себя на ноуте гоняю дуалбут linux/windows. Когда кодю под .NET или пишу музыку, то включаю винду. Когда начал учебу, перешел почти полностью на linux.

  Развернуть 1 комментарий

Непонятно, что вы подразумеваете под "проектом по предиктивной аналитике". Нейроночки? GPU нужен? Anaconda под win не варинат? Но да, Pytorch какой-нибудь медленне в несколько раз под win. А что мешает настроить дуал бут?

Вобще UNIX-like и Linux это default choise в разработке, datascience, на серверах etc...

  Развернуть 1 комментарий

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

Про дуалбут. Люто его ненавижу :( Хрен с ним, путь ВМ с линуксом, пусть WSL, но не дуалбут. Я даже готов под ту же ВМ оперативку удвоить на ноуте, но дуалбут не хочу.

  Развернуть 1 комментарий

Microsoft обещает добавить DirectX для линукса и как следствие возможность работать с GPU из WSL, но это неизвестно когда произойдет. Если работа с GPU не критична, а дело только в софте, то может WSL самого по себе и хватит.

  Развернуть 1 комментарий

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

P.S. все пишут про анаконду под винду, но частенько она не помогает и собирать надо ручками. Это не сложно, но занимает время. Только на анаконду я бы не рассчитывала.

  Развернуть 1 комментарий

@tamamolis, спасибо! Анаконду тоже с определенного времени разлюбил. Предпочитаю ставить "чистый" питон и добавлять нужные пакеты.
В принципе, можно вообще на основе WSL всю среду разработки сделать. Я даже ради интереса повозился пару дней и нашел более-менее нормально работающий вариант запуска GUI в WSL. Поэтому и не горю особым желанием пока переезжать на линукс :)

  Развернуть 1 комментарий

Тогда вам точно можно не заморачиваться, раз вы шарите. Я тоже не большой фанат конды, потому что каждый раз, когда она действительно была бы нужна, она не работает :D а матплотлиб и так поставить можно. Единственное, что у неё очень удобно — это виртуальные окружения делать, но они и с pip-ом нормально настраиваются.

  Развернуть 1 комментарий
metya Applied Deep Learning Researcher 1 декабря 2020

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

Если на курсах хочется прямо тру Linux экспириенса - то просто все делай из под WSL

В общем легко могу помочь правильно настроить окружение и все что нужно. Понятно, что уже может не релевантно, но энивей)

  Развернуть 1 комментарий

@metya, спасибо большое! Мне тоже кажется какими-то "натянутыми" настоятельные советы по переходу на линукс от преподавателя курса. Пока WSL вполне себе разобрался. Единственный затык был с uWSGI, ни в какую не хотел устанавливаться на WSL2 - Ubuntu 20.04 с Питоном 3. Несколько дней на него убил. Потом поставил Debian c Питоном 2.8 - заработало.

  Развернуть 1 комментарий

Даже почитал комменты.
Понятно что многое зависит от задачи, но в целом пока задача может решаться на локальном компе (не важно Windows или Linux) операционная система этого "локального компа" не важна вообще.
Все возможные пакеты сейчас есть и на то и на то, причем даже без WLS.
Когда для задачи потребуется что-то большее чем локальный комп (DataStage, Netezza, HDFS быстрый и кластер GPU) Windows как клиент этого тоже прекрасно справится, так как львиная доля софта подобного имеет или веб-морду или клиента под Win. И, кстати, часто клиента под Linux просто нет.

  Развернуть 1 комментарий

А какие задачи, модели, объемы данных у тебя?

Я не думаю, что ради стандартных питоньих ML пакетов прям обязательно нужно ставить линукс. Да и Tensorflow на GPU под виндой вполне нормально работает.

Если домашняя машина слабая, а модель ресурсоёмкая - никакой линукс не спасёт: тренировать в любом случае придётся в каком-нибудь облаке.

Если уж прямо не в моготу делать это всё на линуксе - есть куча образов для докера.

  Развернуть 1 комментарий

@hackman, чуть выше ответил уже и увидел ваш вопрос :) В среднем примерно по 850 тысяч записей за несколько лет только по одной установке. И хоть установоу 17 штук, но модель по каждой будет одна и та же. Что по самим моделям, то планирую сначала попробовать градиентный бустинг, а именно - яндексовский catboost. Уже сделал один учебный проектик на нем, понравилось.
Машина не особо слабая, но у и не среверный уровень конечно. Пока ноут i7-4710MQ/16/SSD/K1100M. И есть ноут с чуть более мощным процем и GPU Nvidia GTX960M. Пока это все, чем я располагаю.

  Развернуть 1 комментарий

@AntonGolovanov

А сколько фичей планируется в модели?

Вообще, по моему субъективному ощущению: вопрос, где делать несложную буст модель с небольшим объемом данных в винде или линуксе - выглядит как overthinking :) Имхо, если работаешь всегда в винде, то проще поставить анаконду, выполнить работу в виртуальном окружении, удалить анаконду.

  Развернуть 1 комментарий

@hackman, по финальному количеству фичей еще не знаю, т.к. данные получил на днях, еще разбираюсь с ними.
А про overthinking - ну да, похоже он и есть :)

  Развернуть 1 комментарий
Stepan Rakitin Senior Staff Software Engineer 21 октября 2020

Да. Просто ставишь Anaconda. https://www.anaconda.com/products/individual.

  Развернуть 1 комментарий

@stepan, а почему не питон+нужные пакеты?

  Развернуть 1 комментарий

@AntonGolovanov, анаконда это дистрибутив питона с нужными пакетами. Многие пакеты используют нативные библиотеки и конда тебе их сразу дает скомпилеными под твою платформу с учетом всех остальных зависимостей.

  Развернуть 1 комментарий

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

  Развернуть 1 комментарий

@AntonGolovanov, можно поставить miniconda, это дистрибутив без "всего остального" с возможностью установить все что нужно. https://docs.conda.io/en/latest/miniconda.html

  Развернуть 1 комментарий

@stepan, спасибо! Не знал о таком. Обязательно посмотрю.

  Развернуть 1 комментарий

@stepan, +500 евро, подойдите пожалуйста в бухгалтерию!

  Развернуть 1 комментарий
Anton Golovanov Специализируюсь на ARIS. В меру сил переучиваюсь на DS. автор 21 октября 2020

Вы правы, дуалбут самое напрашивающееся решение в этой ситуации. Но вот не люблю я его жгучей нелюбовью :(

  Развернуть 1 комментарий

на модуле про продакшн

Что входит в этот модуль: деплоймент, мониторинг, что-то еще?

Резоны понятны

Ни разу. Куча людей делает этот ваш датасаенс в энтерпрайзе с виндовых машин.

пока хорошо выручает WSL2

Он же офигенен!

для "взрослых" вещей

это очень зависит от того, что вы под "взрослой" понимаете. Размеры датасетов? Или просто что-то за что деньги платят?

  Развернуть 1 комментарий

@byshovets,

Что входит в этот модуль: деплоймент, мониторинг, что-то еще?

Пока рассказывают про деплоймент

Ни разу. Куча людей делает этот ваш датасаенс в энтерпрайзе с виндовых машин.

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

Он же офигенен!

Так и я об этом :)

это очень зависит от того, что вы под "взрослой" понимаете. Размеры датасетов? Или просто что-то за что деньги платят?

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

  Развернуть 1 комментарий

@AntonGolovanov, это называется "данных очень мало". :)

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

  Развернуть 1 комментарий

@dj_kill, на данный момент по одной установке собрал наконец-то полный датасет из имеющихся данных. Размер 3 308 172 строк на 18 признаков. Для меня, как новичка в DS - это достаточно много. B Может быть надо больше, но больше просто нет . Но даже при таком размере нехватка проца на обработке датасета уже ощутима очень. И SSD видимо надо побыстрее

  Развернуть 1 комментарий

@AntonGolovanov, ну вот переход на услоынй Linux тут ничего не даст.
Здесь даст переход на специальное железо, рассчитанное для этого.

  Развернуть 1 комментарий

@AntonGolovanov,

Пока рассказывают про деплоймент

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

знаю что есть датасеты и по сотней гигабайт

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

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб