VS Code Google Colab setting

VS Code에서 Google Colab 연결하기

공식 Colab Extension으로 VS Code에서 GPU 런타임 사용하는 방법

머신러닝이나 딥러닝 코드를 작성할 때 조금 애매한 상황이 생긴다. 평소 개발은 VS Code에서 하는데, GPU가 필요한 순간에는 Google Colab을 열어야 한다. 코드는 VS Code 프로젝트에 있고 Git도 여기서 관리하는데, 학습할 때만 브라우저의 Colab으로 코드를 옮기다 보면 개발 환경이 둘로 나뉜다. 예전에는 VS Code에서 Colab Runtime을 사용하려고 SSH나 터널링 같은 우회 방법을 찾기도 했다. 하지만 지금은 Google이 공식 Colab VS Code Extension을 제공한다.
덕분에 VS Code에서 .ipynb 파일을 작성하면서 실제 코드는 Google Colab의 서버에서 실행하는 환경을 간단하게 구성할 수 있다.

1. VS Code에서 Colab을 사용하는 구조

먼저 구조를 간단하게 이해하면 다음과 같다.

VS Code
  │ .ipynb 작성
  ▼
Google Colab Extension
  │ 원격 연결
  ▼
Google Colab Runtime
  ├── CPU
  ├── GPU
  └── TPU

즉, 코드는 VS Code에서 작성하지만 실행 환경은 Google Colab 서버가 된다.
특히 로컬 PC에 GPU가 없는 경우에도 Colab에서 제공하는 GPU를 이용할 수 있다는 장점이 있다.

2. Google Colab Extension 설치

먼저 VS Code에 Extensions 메뉴를 연다. Extensions 검색창에서 Google Colab 을 검색한다.
여기서 Google에서 제공하는 공식 Colab Extension을 설치한다. Colab Extension은 VS Code의 Jupyter Extension을 기반으로 동작하기 때문에 필요한 경우 Jupyter Extension도 함께 설치된다.

alt text

3. Jupyter Notebook 생성

설치가 끝났다면 VS Code에서 .ipynb 파일을 하나 만든다. 예를 들어 test.ipynb 파일을 생성한다. 기존에 사용하던 Jupyter Notebook 파일이 있다면 새로 만들 필요 없이 해당 .ipynb 파일을 열어도 된다.
alt text

4. Colab Runtime 연결

Notebook을 열면 오른쪽 위에 Select Kernel 버튼이 있다.

alt text
이후 다음 순서로 선택한다. Select KernelColabAuto Connect 는 기본 Colab 서버에 자동으로 연결하는 가장 간단한 방법이다. 특정 머신 타입을 직접 선택하고 싶다면 New Colab Server 를 선택할 수도 있다.
alt text

5. Google 계정 로그인

처음 연결하면 Google 계정 로그인이 진행된다.
VS Code에서 Google 로그인을 허용하면 브라우저가 열리고 사용할 Google 계정을 선택할 수 있다.
권한을 승인하면 다시 VS Code로 돌아오면서 Colab 서버와 연결된다.
이제 VS Code에서 실행한 Notebook Cell이 내 컴퓨터의 Python이 아니라 Colab 서버의 Python Kernel에서 실행된다. 간단하게 확인해보자.

import platform
print(platform.platform())

Colab Runtime에 정상적으로 연결되어 있다면 로컬 PC와 다른 Linux 환경이 표시된다. alt text

6. GPU Runtime 사용하기

Colab을 사용하는 가장 큰 이유 중 하나는 역시 GPU이다. GPU가 필요한 경우 Colab 서버 생성 과정에서 GPU 머신을 선택하면 된다. Colab Kernel에 연결한 뒤 다음 코드를 실행해보자.

!nvidia-smi

GPU Runtime에 정상적으로 연결되어 있다면 NVIDIA GPU 정보가 출력된다.

NVIDIA-SMI
Driver Version
CUDA Version
GPU Name
GPU Memory

PyTorch를 사용하는 경우에는 다음 코드로 확인할 수도 있다.

import torch

print("CUDA available:", torch.cuda.is_available())

if torch.cuda.is_available():
    print("GPU:", torch.cuda.get_device_name(0))

정상적으로 GPU가 잡혔다면 아래와 같이 출력된다.

alt text alt text

7. 주의할 점 — VS Code 로컬 파일과 Colab 파일은 다르다

여기서 처음 사용할 때 가장 헷갈릴 수 있는 부분이 있다. 예를 들어 내 VS Code 프로젝트가 다음과 같다고 하자.

my-project/
├── train.ipynb
├── model.py
└── data/
    └── train.csv

Notebook을 VS Code에서 열었기 때문에 얼핏 보면

import model

이나

import pandas as pd

df = pd.read_csv("./data/train.csv")

가 바로 될 것 같지만 그렇지 않을 수 있다. 현재 Python 코드가 실행되는 곳은 내 PC 가 아니라 Google Colab 서버 이기 때문이다. 따라서 Colab 서버에서 필요한 파일은 별도로 업로드해야 한다.


8. VS Code 로컬 파일을 Colab으로 업로드

현재 공식 Colab VS Code Extension에서는 VS Code Explorer에서 파일이나 폴더를 바로 Colab 서버로 업로드할 수 있다.
예를 들어 data/train.csv 파일을 Colab에서 사용하고 싶다면 VS Code Explorer에서 해당 파일을 우클릭한다.
그리고 Upload to Colab 을 선택한다. 업로드가 완료됐는지는 Notebook에서 다음 명령으로 확인할 수 있다.

!ls /content

폴더까지 확인하려면

!find /content -maxdepth 2 -type f

처럼 확인할 수도 있다. 즉, 로컬 프로젝트Upload to ColabColab /content 구조라고 생각하면 된다.

9. Google Drive 연결

Dataset이나 모델 파일처럼 용량이 크거나 계속 사용할 파일이라면 매번 업로드하는 것보다 Google Drive를 연결하는 게 편하다.
VS Code에서 Command Palette를 연다. 그리고 다음 명령을 검색한다.

Colab: Mount Google Drive to Server...

또는 Notebook 상단의 Colab 메뉴에서

Mount Google Drive to Server

를 선택할 수도 있다. 그러면 Notebook에 Google Drive Mount를 위한 코드 셀이 추가된다. 연결 후에는 보통 다음과 같은 경로를 이용해 Drive 파일에 접근하게 된다.
예를 들어

import pandas as pd

df = pd.read_csv("/content/drive/MyDrive/dataset/train.csv")
df.head()

처럼 사용할 수 있다.

10. 현재 Colab 리소스 확인

Colab Extension을 설치하면 VS Code 왼쪽 Activity Bar에서 Colab 관련 메뉴도 사용할 수 있다.
여기에서는 현재 Colab 서버의 RAM, Disk, GPU 등 리소스 상태를 확인할 수 있다. VS Code 하단 Status Bar에서도 현재 Colab 연결 및 사용 상태를 확인할 수 있다. 딥러닝 학습 중 GPU Memory 상태를 자세히 확인하고 싶다면 여전히

!nvidia-smi

명령도 유용하다.

11. Colab 서버 종료하기

작업이 끝났다면 사용 중인 서버를 정리할 수 있다. Command Palette에서 Colab: Remove Server 를 실행하거나 Notebook 위쪽의 Colab 메뉴에서 Remove Server 를 선택한다. 특히 GPU를 사용하지 않는데 계속 GPU Runtime을 유지할 필요는 없다. Colab의 GPU, TPU 등의 컴퓨팅 리소스는 항상 동일하게 보장되는 것이 아니며 사용 가능한 GPU 종류와 사용량 제한도 상황에 따라 달라질 수 있다.

마무리

예전에는 VS Code와 Google Colab을 연결하려면 SSH나 별도의 터널링 설정 등 번거로운 과정이 필요했다.
하지만 현재는 Google에서 공식 VS Code Extension을 제공하기 때문에

Extension 설치
→ Notebook 열기
→ Select Kernel
→ Colab
→ Google 로그인

정도만으로 간단하게 연결할 수 있다.
VS Code의 편리한 개발 환경은 그대로 사용하면서, 연산은 Colab의 GPU에서 처리할 수 있기 때문에 딥러닝 실습이나 GPU가 필요한 Notebook 작업에서 꽤 유용한 조합이다. 다만 한 가지는 기억해야 한다.

VS Code에서 보고 있는 로컬 파일과 Colab Runtime의 파일 시스템은 서로 다른 환경이다.

따라서 프로젝트의 Python 파일이나 Dataset이 필요하다면 Upload to Colab 기능을 사용하거나 Google Drive를 연결해서 관리하면 된다.