ai 공부를 핑계로 gpu를 구매하려고 했던 적이 있나요?
게이밍 노트북, 혹은 RTX 5070ti 이상의 고성능 gpu에 기웃거리고 있지는 않나요?
가슴에 손을 얹고 생각해보세요. 게임을 하려고 구매한 것은 아닐까요? 😀 (반박시 님 말이 다 맞음)
태스크에 따라 다르지만, 실제 연구를 진행해보면 80시리즈(5080급) 정도 따위로는 턱없이 부족한 gpu 자원에 좌절할 것입니다. 특히 LLM 모델을 학습하거나 하면 90시리즈도 부족할 것이거든요. 결국 집에 있는 gpu는 게임용으로 쓰게 됩니다.
회사든.. 연구실이든.. A100, 높게는 H200까지 빠방한 워크스테이션을 제공하지 않는다면, 높은 확률로 다양한 인스턴스 대여 서비스를 사용하게 됩니다. 예를 들어, AWS, Google Colab pro, Runpod, Vast.ai 등이 있겠죠?
그 중에서도 이번 포스팅에서는 그래도 꽤나 저렴하다고 알려진 vast.ai를 vscode의 ssh 서버로 연동해서 사용하는 방법을 알려드리겠습니다. 저도 코딩을 잘 못하는지라 인터넷 여러 글들 보면서 하기는 했는데 어렵더라고요. 그래서 초보자 분들도 쉽게 사용할 수 있게 최대한 자세히 글을 작성할 예정입니다.
1. 회원가입
https://cloud.vast.ai/ 에 접속해서 회원가입을 진행합니다. 이 링크로 들어오거나, vast.ai 홈페이지에서 오른쪽 위 Console을 누르면 동일한 페이지로 접속할 수 있습니다. 가입 완료 후 로그인 해 주세요.
2. Billing 정보 입력
그 상태에서 왼쪽 탭을 보면 "Billing" 이라는 탭이 있을 것입니다. 들어간 다음, "Add Card"를 눌러 해외 결제용 카드를 등록해 주세요. 정상적으로 등록을 완료하였다면, "Add Credit"을 눌러 충전하고 싶은 금액을 충전합니다(일반적으로 테스트를 위해 $5를 충전합니다). Credit이란, 미리 돈을 넣어 두는 티머니 같은 선불 카드의 개념이라고 보시면 됩니다. 앞으로 모든 결제는 Credit을 통해 진행될 것입니다.
3. vast.ai에 내 SSH key 등록
자 이제 vast.ai에 내 컴퓨터를 등록할 차례입니다. 당연히 서버 입장에서는 보안 상의 문제로, gpu를 빌려주기 위해서 이 인스턴스가 누구랑 연결되어 있는지를 확인할 절차가 필요하겠죠. 사용자의 컴퓨터에 있는 일종의 지문(SSH key)을 vast.ai 서버에 등록하는 과정이 필요합니다.
그 전에, 자신의 key를 먼저 알아야겠지요? cmd를 실행하고, 아래의 명령어를 입력합니다.
ssh-keygen -t rsa -b 4096 -C "본인 계정 이메일 입력"
(ex) ssh-keygen -t rsa -b 4096 -C gildonghong@snu.ac.kr
엔터를 눌러서 .ssh/id_rsa에 인증 키가 잘 저장되도록 합니다. 저장이 되었다면 C드라이브의 사용자/.ssh 폴더에 들어가 봅니다. id_rsa.pub 파일이 있을 겁니다. 메모장으로 열어줍니다.
ssh-rsa ~~~~어쩌구저쩌구~~~~== "본인 계정 이메일"
그럼 이런 식으로 인증 키가 보일 텐데요. Ctrl + A를 눌러 메모장 안의 내용 전체를 복사해줍니다. 이것이 vast.ai에 등록할 내 SSH key입니다. 다시 vast.ai로 돌아가서, 왼쪽 탭에서 Keys - SSH Keys로 들어가줍니다. 오른쪽 +New를 누르고 빈칸에 위에서 복사한 키 전체를 붙여넣기 해주면 끝입니다.
여기까지 했다면, 초기 설정은 다 끝난 것입니다. 이제 실제 사용할 때 gpu를 빌리는 법을 알아보겠습니다.
4. 템플릿 선택
gpu 서버를 빌리기 전에 템플릿을 선택해야 합니다. 여기서 템플릿이란 도커 이미지를 뜻하는데, gpu 사용을 위해 기본적인 세팅을 다 해둔 환경이라고 보시면 됩니다. 예를 들어, 자기 태스크에 맞는 torch 버전, CUDA 버전, cudnn 버전 등이 있을 텐데, 이걸 처음부터 다 깔긴 어렵고 오래걸리고 하니 미리 세팅이 된 템플릿을 쓰면 아주 편합니다. 왼쪽 탭에서 "Templates"를 클릭하고 원하는 템플릿을 검색해보세요.
저는 torch 2.2.0 이 깔려 있고 CUDA 12.1이 사용 가능한 "Pytorch 2.2.0 cuda12.1 devel" 템플릿을 사용해보겠습니다. 재생(▶) 버튼, 즉 select를 누르면 템플릿이 선택되고, 아래와 같이 대여 가능한 gpu들이 주루룩 뜹니다.
이중에 원하는 gpu를 고르고, "RENT" 버튼을 누르면 대여가 시작됩니다. 저는 테스트이므로 저렴한 RTX 3090을 빌려보겠습니다. 버튼을 누르고 나면 왼쪽 탭의 "Instance"에서 확인이 가능합니다.
처음에는 Status를 보면 not running으로 뜹니다. 시간이 좀 지나면 알아서 세팅이 되면서 아래와 같이 Connect 상태로 변하게 됩니다. 이때부터 본격적인 과금이 시작되므로 유의해주세요.
Connect 버튼이 열리면, 여기서 바로 쥬피터 노트북을 켜고 작업을 해도 되지만, 이 포스팅에서는 vscode 연동까지 수행할 것입니다. ">_" 모양의 버튼을 눌러 "Terminal Connection Options"를 켜줍니다. 이제 vscode에서 ssh로 서버를 연결할 겁니다.
창을 열면
Direct ssh connect: ssh -p [포트번호] root@[서버 IP] -L 8080:localhost:8080
이런 식으로 뜰텐데요, 위의 정보를 기억해줍니다. 이제 vscode를 켜줍니다.
위의 사진에서 왼쪽 아래 모서리에 보이는 >< 아이콘을 누르게 되면 원격 연결 창이 뜨게 됩니다. "호스트에 연결" - "SSH host 구성" - "Users\~\.ssh\config" 를 순서대로 클릭해주면, 아래와 같이 configuration file이 열립니다.
아까 기억했던 Direct ssh connect: ssh -p [포트번호] root@[서버 IP] -L 8080:localhost:8080 정보를 가지고 양식에 맞춰서 입력 후 저장해주면 됩니다. Host vast_ai는 제가 임의대로 정한 이름이니 편한 대로 정해서 쓰면 됩니다.
저장을 했다면, 다시 >< 아이콘을 눌러서 "호스트로 연결"을 클릭하면 방금 등록한 서버로 접속할 수 있습니다! 위에서 vast_ai로 등록했다면 vast_ai를 눌러서 연결해주세요.
그럼 끝!
'에러뿌수기' 카테고리의 다른 글
레노버 샤오신패드 프로 12.7 2세대 글로벌롬 fastboot 오류 해결 (0) | 2025.02.27 |
---|---|
[한글] PDF 변환 혹은 인쇄시 폰트 깨짐 현상 해결방법 (2) | 2024.12.18 |