Data Science and Data Proicessing

확실한 데이터 과학자 환경 설정

Two Data Scientists at work
직장에서 두 명의 데이터 과학자

소개 및 동기

In this post I would like to describe in detail our setup and development environment (hardware & software) and how to get it, step by step.

  • 대부분의 라이브러리는 추가 구성없이 바로 작동합니다.
  • 스몰 데이터에서 빅 데이터까지, 그리고 표준 머신 러닝 모델에서 딥 러닝 프로토 타이핑에 이르기까지 데이터 관련 작업의 전체 스펙트럼을 다룰 수 있습니다.
  • 값 비싼 하드웨어와 소프트웨어를 구입하기 위해 은행 계좌를 깰 필요가 없습니다.

하드웨어

노트북에는 다음이 있어야합니다.

  • 강력한 프로세서. 코어가 4 개인 Intel i5 또는 i7 이상. 명백한 이유로 데이터를 처리하는 동안 많은 시간을 절약 할 수 있습니다.
  • 최소 4GB RAM의 NVIDIA GPU. 간단한 딥 러닝 모델을 프로토 타입하거나 미세 조정해야하는 경우에만 가능합니다. 해당 작업에 대해 거의 모든 CPU보다 훨씬 빠릅니다.랩톱에서 처음부터 심각한 딥 러닝 모델을 훈련 할 수는 없습니다..
  • 좋은 냉각 시스템. 최소한 몇 시간 동안 워크로드를 실행합니다. 노트북이 녹지 않고 처리 할 수 ​​있는지 확인하십시오.
  • 256GB 이상의 SSD이면 충분합니다.
  • 더 큰 SSD, 더 많은 RAM을 추가하거나 배터리를 쉽게 교체하는 등의 기능을 업그레이드 할 수 있습니다.
david-laptop specs
david-laptop 사양
Lenovo Thinkpad P52
Lenovo Thinkpad P52
  • 끔찍한 공급 업체 종속으로 인해 다른 대안으로 변경하는 데 막대한 비용이 듭니다.
  • NVIDIA GPU를 사용할 수 없으므로 랩톱에서 딥 러닝 프로토 타이핑은 잊어 버리십시오.
  • 마더 보드에 납땜되어 있으므로 하드웨어를 업그레이드 할 수 없습니다. 더 많은 RAM이 필요한 경우 새 노트북을 구입해야합니다.

운영 체제

데이터 과학 용으로 사용되는 운영 체제는 Ubuntu의 최신 LTS (장기 지원)입니다. 이 글을 쓰는 시점에서Ubuntu 20.04 LTS최신입니다.

Ubuntu 20.04 LTS
Ubuntu 20.04 LTS
  • 데이터 작업을 할 때 보안은 설정의 핵심이되어야합니다. Linux는 기본적으로 Windows 또는 OS X보다 더 안전하며 소수의 사람들이 사용하기 때문에 대부분의 악성 소프트웨어는 Linux에서 실행되도록 설계되지 않았습니다.
  • 데스크탑과 서버 모두에서 가장 많이 사용되는 Linux 배포판이며 훌륭하고 지원적인 커뮤니티입니다. 제대로 작동하지 않는 문제를 발견하면 도움을 받거나 문제 해결 방법에 대한 정보를 찾는 것이 더 쉽습니다.
  • 대부분의 서버는 Linux 기반입니다., 해당 서버에 코드를 배포하고 싶을 것입니다. 프로덕션에 배포 할 환경에 가까울수록 좋습니다. 이것이 Linux를 플랫폼으로 사용하는 주된 이유 중 하나입니다.
  • 그것은 위대한패키지 관리자거의 모든 것을 설치하는 데 사용할 수 있습니다.
Uncheck third-party software while installation
설치하는 동안 타사 소프트웨어 선택 취소

NVIDIA 드라이버

NVIDIA Linux 지원은 수년 동안 커뮤니티의 불만 중 하나였습니다. 유명한 것을 기억하십시오.

Linus Torvalds가 NVIDIA에 대해 이야기
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt install nvidia-driver-440
NVIDIA X Server Settings
NVIDIA X 서버 설정
nvidia-smi
nvidia-smi

단말기

기본 그놈 터미널은 괜찮지 만터미네이터, 터미널 창을 수직으로 분할 할 수있는 강력한 터미널 에뮬레이터CTR+시프트+이자형수평으로CTR+시프트+영형, 동시에 여러 터미널에 명령을 브로드 캐스트합니다. 다양한 서버 또는 클러스터를 설정하는 데 유용합니다.

Terminator
터미네이터
sudo apt install terminator

VirtualBox

VirtualBox는 다음을 실행할 수있는 소프트웨어입니다.사실상현재 운영 체제 세션 내의 다른 컴퓨터. 다른 운영 체제를 실행할 수도 있습니다 (Linux 내부의 Windows 또는 그 반대).

sudo apt install virtualbox

Python, R 등 (Miniconda 포함)

Python은 이미 Ubuntu에 포함되어 있습니다. 하지만 너시스템 Python을 사용하거나 시스템 전체에 분석 라이브러리를 설치해서는 안됩니다.. 그렇게하면 시스템 파이썬이 깨질 수 있으며, 고치는 것은 어렵습니다.

  • Miniconda : conda 패키지 관리자 만 포함합니다. conda 또는 pip를 통해 모든 기존 라이브러리에 계속 액세스 할 수 있지만 해당 라이브러리는 필요할 때 다운로드 및 설치됩니다. 이 옵션을 사용하면 시간과 메모리를 절약 할 수 있습니다.
bash Miniconda3-latest-Linux-x86_64.sh
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/david/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/david/miniconda3/etc/profile.d/conda.sh" ]; then
. "/home/david/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/home/david/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
콘다 도움말
conda install -c conda-forge conda-pack

Jupyter

Jupyter는 대화 형 프로그래밍 환경이 필요한 개발을 위해 데이터 과학자에게 필수입니다.

conda create -n jupyter_env
conda activate jupyter_env
conda install python=3.7
conda install -c conda-forge jupyterhub jupyterlab nodejs nb_conda_kernels
[Unit]
Description=JupyterHub
After=network.target
[Service]
User=root
Environment="PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/home/<your_user>/miniconda3/envs/jupyter_env/bin:/home/<your_user>/miniconda3/bin"
ExecStart=/home/<your_user>/miniconda3/envs/jupyter_env/bin/jupyterhub
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start jupyterhub
sudo systemctl enable jupyterhub
JupyterHub login page
JupyterHub 로그인 페이지
Jupyter (Classic)
Jupyter (클래식)
Image for post
Jupyter (실험실)
JupyterHub control panel
JupyterHub 제어판

십오 일

파이썬

파이썬은 우리의 기본 언어입니다.WhiteBox.

  • 네이티브 conda 지원을 포함한 Python 환경.
  • 디버거.
  • Docker 통합.
  • Git 통합.
  • 과학 모드 (pandas DataFrame 및 NumPy 배열 검사).
PyCharm Professional
PyCharm Professional
  • Jupyter: if you have doubts about when you should be using Jupyter or PyCharm and call yourself a Data <whatever>, please attend 부트 캠프 중 하나우리는 최대한 빨리 가르칩니다.
sudo snap install pycharm-community --classic

스칼라

Scala는 기본 Spark로 빅 데이터 프로젝트에 사용하는 언어이지만 PySpark로 전환하고 있습니다.

sudo snap install intellij-idea-community --classic

빅 데이터

좋아, 당신은 당신의 노트북에서 실제로 빅 데이터를 수행하지 않을 것입니다. 빅 데이터 프로젝트에 참여하는 경우 회사 또는 고객이 적절한 Hadoop 클러스터를 제공 할 것입니다.

conda install pyspark openjdk
from pyspark.sql import SparkSession

spark = SparkSession.builder. \
appName('your_app_name'). \
config('spark.sql.session.timeZone', 'UTC'). \
config('spark.driver.memory', '16G'). \
config('spark.driver.maxResultSize', '2G'). \
getOrCreate()
  • 모딘: 멀티 코어 및 아웃 오브 코어 계산을 지원하는 Pandas API를 복제합니다. 많은 코어 (32, 64)가있는 강력한 분석 서버에서 작업하고 pandas를 사용하려는 경우 특히 유용합니다. 일반적으로 코어 당 성능이 좋지 않기 때문에 Modin을 사용하면 계산 속도를 높일 수 있습니다.

데이터베이스 도구

때로는 다양한 DB 기술과 연결하고 쿼리를 만들고 데이터를 탐색 할 수있는 도구가 필요합니다. 우리의 선택은DBeaver:

DBeaver Community
DBeaver 커뮤니티
  • 연결을위한 고급 네트워킹 요구 사항 (예 : SSH 터널 등)
sudo snap install dbeaver-ce

기타

우리에게 중요한 기타 특정 도구 및 앱은 다음과 같습니다.

  • 느슨하게:sudo 스냅 설치 슬랙-클래식.
  • 전보 데스크탑 :sudo snap install telegram-desktop.
  • Nextcloud :sudo apt install nextcloud-desktop nautilus-nextcloud.
  • Thunderbird Mail : 기본적으로 설치됩니다.
  • Zoom : 다음에서 수동으로 다운로드여기.
  • Google 크롬 : 다음에서 수동으로 다운로드여기.

+ Recent posts