🔥알림🔥
① 테디노트 유튜브 -
구경하러 가기!
② LangChain 한국어 튜토리얼
바로가기 👀
③ 랭체인 노트 무료 전자책(wikidocs)
바로가기 🙌
④ RAG 비법노트 LangChain 강의오픈
바로가기 🙌
⑤ 서울대 PyTorch 딥러닝 강의
바로가기 🙌
[2023년 UPDATE] 머신러닝/딥러닝(PyTorch, TensorFlow) 최신 도커(docker) 업데이트 안내
2023년 01월 15일 새해를 맞아 데이터 분석 / 머신러닝 / 딥러닝 주요 파이썬 패키지를 의존성 충돌 없이 설치, 그리고 한글 폰트, 형태소 분석기 등 한글 전처리 관련 도구가 사전에 설치된 도커(Docker) 이미지를 리뉴얼 하여 배포 하였습니다.
기존의 캐글(kaggle)에서 배포하는 도커 이미지를 기반으로 확장하여 작업하였으나, 2022년 부터는 tensorflow
에서 유지보수하고 있는 tensorflow/tensorflow:2.11.0-gpu-jupyter
를 확장하여 작업하였습니다. tensorflow
, pytorch
의 최신 라이브러리가 설치되어 있고, 뿐만 아니라 LightGBM
, XGBoost
에 대한 GPU 지원도 적용하였습니다.
도커 허브(Docker Hub)에 이미지를 업로드 해 놓았습니다. 이미지를 Pull 하면 스트레스 없이 GPU가 지원되는 딥러닝 서버를 구축할 수 있습니다. 아직 CPU 버전의 이미지는 만들지 않고 있으나, 추후 요청이 있다면 만들어 볼 계획도 가지고 있습니다.
앞으로 분기에 한 번씩은 최신 라이브러리로 업데이트 작업을 진행할 예정입니다.
자세한 사용법은 아래를 참고해 주시기 바랍니다 😁
- GPU 버전 도커 Hub 주소: teddylee777/deepko
- GitHub 주소: github.com/teddylee777/deepko
deepko
deepko (DEEP learning docker for KOrean) 는 파이썬(Python) 기반의 데이터 분석 / 머신러닝 / 딥러닝 도커(docker) 입니다.
-
파이썬 기반의 데이터 분석, 머신러닝, 딥러닝 프레임워크의 상호 의존성 충돌을 해결 후 배포합니다.
-
한글 폰트, 한글 자연어 처리(형태소 분석기) 를 위한 라이브러리가 사전에 설치되어 있습니다.
-
GPU 를 지원합니다 (
LightGBM
,XGBoost
,PyTorch
,TensorFlow
). -
도커를 통한 빠른 설치와 실행이 가능합니다.
개요
TensorFlow 2.11.0 의 tensorflow/tensorflow:2.11.0-gpu-jupyter의 도커를 베이스로 확장하여 GPU 전용 Docker파일(gpu.Dockerfile
)을 구성하였습니다.
TensorFlow에서 유지보수하고 있는 2.11.0-gpu-jupyter
도커의 경우 한글 형태소 분석기나 한글폰트, 그 밖에 PyTorch를 비롯한 여러 머신러닝/딥러닝 라이브러리가 제외되어 있기 때문에 필요한 라이브러리를 추가 설치하고 의존성에 문제가 없는지 확인한 후 배포하는 작업을 진행하고 있습니다.
본 Repository를 만들게 된 계기는 안정적으로 업데이트 되고 있는 tensorflow/tensorflow-gpu-jupyter
에 기반하여 한글 폰트, 한글 자연어처리 패키지(konlpy), 형태소 분석기(mecab), Timezone 등의 설정을 추가하여 별도의 한글 관련 패키지와 설정을 해줘야 하는 번거로움을 줄이기 위함입니다.
- GPU 버전 도커 Hub 주소: teddylee777/deepko
- GitHub 주소: github.com/teddylee777/deepko
테스트된 도커 환경
- OS: Ubuntu 18.04
- GPU: RTX3090 x 2 way
- CUDA: 11.2~11.4
- Python (anaconda): 3.8
한글 관련 추가 패키지
- apt 패키지 인스톨러 카카오 mirror 서버 추가
- Nanum(나눔) 폰트, D2Coding 폰트 설치
- matplotlib 에 나눔폰트, D2Coding 폰트 추가
- mecab 형태소 분석기 설치 및 파이썬 패키지 설치
- konlpy: 한국어 정보처리를 위한 파이썬 패키지
jupyter_notebook_config.py
: Jupyter Notebook 설정 파일 추가
설치된 주요 라이브러리
catboost 1.1.1
fastai 2.7.10
fasttext 0.9.2
folium 0.14.0
gensim 4.3.0
graphviz 0.20.1
huggingface-hub 0.11.1
hyperopt 0.2.7
jupyter 1.0.0
jupyterlab 3.5.2
kaggle 1.5.12
keras 2.11.0
konlpy 0.6.0
librosa 0.9.2
lightgbm 3.3.4
matplotlib 3.6.3
mecab-python 0.996-ko-0.9.2
mlxtend 0.21.0
nltk 3.8.1
numpy 1.23.5
opencv-python 4.7.0.68
optuna 3.0.5
pandas 1.5.2
Pillow 9.4.0
plotly 5.12.0
prophet 1.1.1
PyMySQL 1.0.2
scikit-image 0.19.3
scikit-learn 1.2.0
scipy 1.8.1
seaborn 0.12.2
sentencepiece 0.1.86
spacy 3.4.4
SQLAlchemy 1.4.46
tensorboard 2.11.0
tensorflow 2.11.0
tensorflow-datasets 4.8.1
tokenizers 0.13.2
torch 1.10.1+cu111
torchaudio 0.10.1+rocm4.1
torchsummary 1.5.1
torchtext 0.11.1
torchvision 0.11.2+cu111
tqdm 4.64.1
transformers 4.25.1
wandb 0.13.9
wordcloud 1.8.2.2
xgboost 2.0.0.dev0
GPU 지원 라이브러리
다음의 라이브러리에 대하여 GPU를 지원합니다.
LightGBM
(3.3.4)XGBoost
(2.0.0.dev0)PyTorch
(1.10.1) + CUDA 11.1TensorFlow
(2.11.0) + CUDA 11.2
실행 방법
STEP 1: Docker가 사전에 설치되어 있어야 합니다.
🌱 윈도우(Windows)
-
Docker Desktop for Windows 다운로드: Docker의 공식 웹사이트(https://www.docker.com/products/docker-desktop)에서 Docker Desktop for Windows를 다운로드합니다.
-
설치 프로세스 진행: 다운로드한 설치 파일을 실행하고 지시에 따라 설치를 완료합니다.
-
도커 시작: 설치가 완료되면 도커를 시작합니다. 작업 표시줄에서 도커 아이콘을 찾을 수 있습니다.
-
도커 버전 확인: 터미널에서
docker --version
명령을 사용하여 도커 버전을 확인할 수 있습니다.
🌱 맥(macOS)
-
Docker Desktop for Mac 다운로드: Docker의 공식 웹사이트(https://www.docker.com/products/docker-desktop)에서 Docker Desktop for Mac을 다운로드합니다.
-
설치 프로세스 진행: 다운로드한 .dmg 파일을 열고 Docker.app을 Applications 폴더로 드래그 앤 드롭합니다.
-
도커 시작: Applications 폴더에서 Docker.app을 실행합니다.
-
도커 버전 확인: 터미널에서
docker --version
명령을 사용하여 도커 버전을 확인할 수 있습니다.
🌱 리눅스(Ubuntu)
터미널에서 다음의 순서대로 명령어를 입력합니다.
# step 1: apt-get 업데이트
sudo apt-get update
# step 2: 이전 버젼 제거
sudo apt-get remove docker docker-engine docker.io
# step 3: 도커(Docker) 설치
sudo apt install docker.io
# step 4: 도커 서비스 시작
sudo systemctl start docker
sudo systemctl enable docker
# step 5: 잘 설치 되어있는지 버젼 체크
docker --version
STEP 2: 도커 이미지 pull 하여 서버 실행
상황에 따라 다음 4가지 중 하나의 명령어를 실행하여 도커를 실행합니다. 세부 옵션은 아래를 참고해 주세요.
-
--rm
: 도커가 종료될 때 컨테이너 삭제 -
-it
: 인터랙티브 TTY 모드 (디폴트로 설정) -
-d
: 도커를 백그라운드로 실행 -
-p
: 포트 설정. local 포트:도커 포트 -
-v
: local 볼륨 마운트. local 볼륨:도커 볼륨 -
--name
: 도커의 별칭(name) 설정
Jupyter Notebook
을 8888번 포트로 실행하려는 경우
docker run --runtime nvidia --rm -it -p 8888:8888 teddylee777/deepko:latest
jupyter notebook
서버 실행과 동시에 로컬 volume 마운트
docker run --runtime nvidia --rm -it -p 8888:8888 -v /data/jupyter_data:/home/jupyter teddylee777/deepko:latest
도커를 background에서 실행하는 경우 (터미널을 종료해도 서버 유지)
docker run --runtime nvidia --rm -itd -p 8888:8888 teddylee777/deepko:latest
도커를 실행 후 bash shell로 진입하려는 경우
docker run --runtime nvidia --rm -it -p 8888:8888 teddylee777/deepko:latest /bin/bash
[참고]
jupyter_notebook_config.py
을 기본 값으로 사용하셔도 좋지만, 보안을 위해서 비밀번호 설정은 해주시는 것이 좋습니다.
비밀번호 설정 방법, 방화벽 설정 방법은 Docker를 활용하여 딥러닝/머신러닝 환경 구성하기 글의 STEP 5, 7을 참고해 주세요.
[선택] .bashrc에 단축 커멘드 지정
~/.bashrc
의 파일에 아래 커멘드를 추가하여 단축키로 Docker 실행
kjupyter{
docker run --runtime nvidia --rm -itd -p 8888:8888 -v /data/jupyter_data:/home/jupyter --name dl-ko teddylee777/deepko
}
위와 같이 ~/.bashrc
파일을 수정 후 저장한 뒤 source ~/.bashrc
로 파일의 내요을 업데이트 합니다.
추후, 긴 줄의 명령어를 입력할 필요 없이 단순하게 아래의 명령어로 도커를 백그라운드에서 실행 할 수 있습니다.
kjupyter
댓글남기기