🔥알림🔥
① 테디노트 유튜브 -
구경하러 가기!
② LangChain 한국어 튜토리얼
바로가기 👀
③ 랭체인 노트 무료 전자책(wikidocs)
바로가기 🙌
④ RAG 비법노트 LangChain 강의오픈
바로가기 🙌
⑤ 서울대 PyTorch 딥러닝 강의
바로가기 🙌
AWS에서 딥러닝 인스턴스 만들고 jupyter notebook 실행까지!
Deep learning 을 모델 학습을 위해서 high computing power가 필수 입니다. 아마존의 AWS를 통해 ‘Tesla K80’ GPU를사용하여 학습할 수 있는 인스턴스를 만들고 jupyter notebook 을 실행시켜 아마존 EC2 인스턴스에서 학습시키는 방법까지 포스팅 해보겠습니다.
Deep Learning AMI 인스턴스 생성
EC2 Dashboard를 클릭하여 들어가서
우측 계정에서 Region을 선택합니다. (인스턴스를 생성하고자하는 지역)
Region 선택이 완료 되었으면,
Create Instance - Launch Instance를 클릭합니다.
왼쪽 AWS Marketplace 클릭 후 검색어에 “Deep Learning AMI with Source Code”라고 입력하고 엔터
그러면, 4가지 type 의 인스턴스가 나옵니다. 이중 3번째인 Deep Learning AMI with Source Code (CUDA 8, ubuntu)를 선택하겠습니다.
이렇게 알림 화면이 나와주면 Continue해 주고요.
Filter by: 에서 “GPU compute” 클릭한 후 저는 p2.xlarge 인스턴스로 생성하겠습니다.
하단 - Review and Launch 클릭
Security Groups에 Rule이 비어 있는 것이 보이신데, 이 Rule은 port forwarding 의 개념이라고 보시면 됩니다.
우측 - Edit security groups 클릭
Jupyter notebook이 포트 8888번을 사용하기 때문에, aws에서 jupyter notebook 서버를 올리고 이를 외부에서 접속하기 위해서는 8888번 포트 개방을 해주어야 겠죠?
Create a new security group 클릭
Security group name 에는 ‘jupyter notebook’을 입력합니다.
Add Rule 클릭
Type에는 ‘Custom TCP’클릭, Port Range에는 jupyter notebook 포트인 ‘8888’ 을 입력합니다.
Source에는 ‘Anywhere’를 입력합니다.
하단에 Review and Launch 클릭
STEP: 7에서 Launch 클릭을 하면 아래와 같은 화면이 뜹니다.
이미 key pair가 있으신 분들은 existing key pair로 하셔도 좋습니다.
저는 Create a new key pair를 선택하고, Key pair name을 입력해 주겠습니다.
그리고 반드시 Download Key Pair를 하셔야 합니다.
이 Key Pair를 분실하시면 instance에 접속이 불가하며, instance를 삭제해야하는 불상사가 생길 수 있으니, 안전한 곳에 백업해 두시길 권장합니다!!!
Launch Instances를 클릭하시면, 몇 분동안의 Instance 생성 시간이 소요된 후 성공적으로 런칭 된 것을 보실 수 있습니다.
생성된 EC2 Instance에 로그인 하기
EC2 Dashboard에서 생성된 인스턴스의 IPv4 Public IP 를 확인하고 이를 기억해 둡니다. (하단에 정보에서 확인하실 수 있습니다.)
그리고 terminal을 여시고, 아마존 Key Pair를 저장해 두었던 directory로 이동합니다.
그런 다음 ssh 접속을 통해 AWS EC2 instance로 접속합니다.
X.X.X.X에는 IPv4 Public IP 가 들어갑니다.
ssh -i YOUR_AWS_KEY_PAIR.pem ubuntu@X.X.X.X
아래와 같은 에러로 로그인이 안된다면 chmod 설정을 변경해야 합니다.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: YOUR_AWS_KEY_PAIR.pem
Permission denied (publickey).
아래 커멘드를 통해 해결하실 수 있습니다.
chmod 400 YOUR_AWS_KEY_PAIR.pem
Jupyter notebook & miniconda 설치
jupyter notebook setting을 위해 아래 커멘드를 입력합니다.
jupyter notebook --generate-config
이젠 miniconda를 download & 설치해 보겠습니다.
terminal에서 아래 명령어를 순서대로 입력해 줍니다.
# miniconda download
wget https://repo.continuum.io/archive/Anaconda3-5.3.0-Linux-x86_64.sh -O ~/anaconda.sh
# install miniconda
bash ~/anaconda.sh -b -p $HOME/anaconda
# update miniconda path
echo -e '\nexport PATH=$HOME/anaconda/bin:$PATH' >> $HOME/.bashrc && source $HOME/.bashrc
혹시 conda를 입력하면 menu들이 나와야 하는데 정상적으로 $PATH등록이 안되었다면, PATH 를 export 해줍니다.
export PATH=~/anaconda3/bin:$PATH
conda가 설치가 완료되었으니,
가상 환경을 만들고 실행해 보겠습니다.
가상환경 생성
conda create -n deep-learning python=3.6
가상환경 실행
source activate deep-learning
필요한 패키지 인스톨
# pytorch
conda install -c pytorch pytorch
# torchvision
conda install -c pytorch torchvision
# torch gpu support
conda install pytorch torchvision cuda80 -c soumith
기타 추가로 필요한 패키지들을 인스톨하면 됩니다.
Local 에서 Jupyter notebook 접속
가상환경에 진입한 상태에서 하기 커멘드를 실행시켜 jupyter notebook server를 실행시켜 줍니다.
jupyter notebook --ip=0.0.0.0 --no-browser
그러면
X.X.X.X:8888/?token=...
이렇게 뜨게 되는데, X.X.X.X부분에 aws의 Public IPv4를 입력해줍니다.
그리고 이를 Local의 firefox나 chrome에 붙혀넣기 해주어 실행 시키면, aws 의 인스턴스에 접속한 jupyter notebook을 실행시킬 수 있습니다.
jupyter notebook 에서 확인하면 GPU instance가 정상 동작함을 확인할 수 있습니다.
댓글남기기