Изучение различных платформ для обработки данных и IDE и того, когда их изучать

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

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

Python как язык программирования был изобретен в конце 80-х, стал общедоступным в начале 90-х и начал использоваться разработчиками серверных данных с выпуском Python 2.0 в 2000 году. Так было до 2009 года, с появлением Anaconda и ориентированной на науку о данных интегрированной среды разработки (IDE) Spyder, Python действительно начал становиться самым языком науки о данных.

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

Это платформа или просто IDE?

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

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

Но Spyder и другие IDE не являются платформами. Это графические пользовательские интерфейсы (GUI), которые помогают программистам и специалистам по данным разрабатывать решения, решающие проблемы с кодом Python.

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

В науке о данных самыми популярными IDE являются Jupyter Notebooks, Spyder, PyCharm и Sublime Text (но подробнее см. здесь). Платформы работают над интеграцией с этими IDE для поддержки дополнительных потребностей науки о данных, таких как управление зависимостями пакетов, вычислительные ресурсы, безопасность и развертывание моделей. Например, Anaconda можно считать платформой для обработки данных, поскольку она помогает управлять зависимостями пакетов, предоставляет несколько IDE для использования в разработке и включает доступ к собственному репозиторию пакетов.

Некоторые из крупнейших и наиболее популярных бизнес-платформ для обработки данных включают DataBricks, Amazon Sagemaker, Dataiku и IBM CloudPak для данных.

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

Критический период 1. Изучение основ науки о данных (Python, обработка данных и обучение моделированию)

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

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

Почему Anaconda, а не просто базовая реализация Python?

Когда я впервые начал изучать науку о данных, Anaconda была совершенно новой, и мало что было известно о ее полных возможностях. Таким образом, я застрял, следуя руководствам и предложениям, которые требовали загрузки интерпретатора Python, который также поставлялся с собственной IDE под названием IDLE. Работа между IDLE и интерпретатором Python из командной строки была громоздкой, часто приводила к конфликтам зависимостей пакетов и мало что давала для визуального наблюдения за тем, как мой код влияет на данные, которые я пытался обработать.

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

Кроме того, Anaconda поставляется с IDE Spyder и Jupyter. Spyder был мне более знаком по выходу из академии, где я использовал SPSS и SAS EG. Jupyter предлагает более богатый визуальный опыт, поскольку он основан на браузере и может использовать интерактивные возможности интернет-браузеров.

Более того, Jupyter также является одной из самых популярных IDE, которая интегрирована с платформами обработки данных корпоративного масштаба, такими как Sagemaker и DataBricks.

Вывод: Anaconda — лучшая среда для начала изучения науки о данных. Я настоятельно рекомендую изучить преимущества как Jupyter, так и IDE, такой как Spyder, поскольку каждая из них предоставляет немного разные преимущества, и, как я уже упоминал, Jupyter является основной IDE для основных корпоративных платформ обработки данных.

Наконец, Anaconda поставляется с несколькими очень полезными и часто используемыми библиотеками для обработки данных, такими как Pandas, Scikit-Learn, NLTK и Numpy. Таким образом, в качестве обучающей платформы Anaconda представляет собой одно из лучших мест для начала изучения основ науки о данных прямо с вашего ноутбука.

Критический период № 2: масштабирование вычислительных ресурсов для обучения «больших» моделей

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

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

Существует несколько решений, которые позволяют специалистам по обработке и анализу данных получать доступ к средам с большей вычислительной мощностью, чем обычно можно найти на большинстве персональных ноутбуков. Например, Google CoLab предоставляет бесплатный доступ к облачной среде на базе Jupyter Notebook. Бесплатный уровень является мощным, предлагая пользователям доступ к 12 ГБ ОЗУ и графическому процессору. Вы можете увеличить вычислительную мощность с помощью подписки CoLab Pro или Pro+ за 9,99 и 49,99 долларов США на момент публикации этой публикации соответственно.

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

К другим платформам для масштабирования вычислительных ресурсов относятся AWS Sagemaker, Microsoft Azure DataBricks или IBM Watson Studio. Но обратите внимание, что каждый из них будет связан с некоторыми затратами, будь то стоимость аренды виртуальных машин, стоимость использования платформы обработки данных, стоимость хранения данных в доступном для нее месте или все вышеперечисленное. Например, AWS Sagemaker не взимает плату за платформу Sagemaker, но вам придется заплатить, если вы запустите этот сервис на виртуальной машине, которая имеет больше вычислительных ресурсов, чем уровень бесплатного пользования. Вы также понесете расходы на хранение данных в зависимости от размера диска, выделенного для виртуальной машины. Кроме того, DataBricks взимает плату за использование платформы плюс стоимость Azure для аренды виртуальных машин, на которых работают используемые вами компьютеры DataBricks. Таким образом, управление фактическими затратами для вас может быть сложной задачей.

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

Но платформы не должны быть вашим единственным выбором на данном этапе.

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

После настройки я могу снова использовать Anaconda для большинства своих потребностей в разработке и контролировать размер сервера, а также расходы, которые я плачу за его поддержание. Например, на GCP я могу арендовать виртуальную машину с 2 виртуальными процессорами и 8 ГБ ОЗУ всего за 0,067006 долларов США в час. Если я решу использовать спотовую виртуальную машину, стоимость составит 1/3 цены. Пока я не забываю выключать виртуальную машину, когда она не используется, я могу контролировать расходы, максимально увеличивая доступ к мощным вычислительным ресурсам. Единственное, что мне остается платить, — это любые расходы на Google Cloud Storage для моих данных. Обратите внимание, что облачные платформы также взимают плату за передачу данных, и каждый облачный провайдер имеет разные правила в отношении того, за что взимается плата, поэтому обязательно следите за своими потребностями в передаче данных.

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

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

Важнейший момент 3. Получение работы по науке о данных и осознание необходимости развертывания моделей

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

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

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

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

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

Выводы

В заключение, есть несколько различных платформ для обработки данных и IDE, доступных для молодого обучающегося специалиста по данным, и знание того, на чем сосредоточить свое внимание, может быть серьезной проблемой, поскольку многие платформы даже предлагают «бесплатные» пробные версии для начала работы. Будьте осторожны, так как даже если платформа может быть бесплатной, виртуальные машины и хранилище, используемое платформой, скорее всего, не бесплатны. Таким образом, я настоятельно рекомендую сосредоточиться на построении ваших основ с помощью платформы Anaconda, экспериментируя как с ноутбуками, так и с IDE. Это подготовит вас к работе с платформами, с которыми вы можете столкнуться, поскольку ваше хобби по науке о данных превращается в профессию по науке о данных.

Хотите узнать о науке о данных, карьерном росте или неправильных бизнес-решениях? "Присоединяйся ко мне".