AI Tools8분 분량

GPU 노트북을 멈췄다가 같은 실험을 이어갈 수 있을까?

Google의 자체 호스팅형 GKE Workspaces는 영구 저장 파일, 재개 가능한 가속기 세션, 브라우저 IDE를 묶습니다. 계층마다 비용이 다릅니다.

K
Ken Jo

저녁 6시입니다. 노트북에 모델을 올려 드디어 살펴볼 만한 결과가 나왔습니다. 세션을 닫으면 내일 환경을 다시 만들고 모델을 다시 올리는 데 시간을 쓸 수 있습니다. 계속 켜 두면 귀한 가속기가 밤새 놀 수 있습니다.

Google은 11월 4일 GKE Workspaces를 발표했습니다. 오픈소스 개발 환경은 팀의 Google Kubernetes Engine 클러스터에서 실행되며, 브라우저 대시보드에서 지정한 리소스로 JupyterLab이나 VS Code를 열 수 있습니다. 프로젝트는 Kubeflow Workspaces를 기반으로 하며 지원되는 세션을 일시 중지하고 재개하는 방법을 문서로 제공합니다. 팀이 정할 일은 내일 어떤 상태가 필요하며 그 상태를 남기려면 무엇이 계속 할당되어 있어야 하는지입니다.

GKE Workspaces 예제에서 GPU가 연결된 JupyterLab 작업 공간을 일시 중지하는 모습

GKE Workspaces 재개 가능 노트북 시연에서 잘라낸 장면, Apache 2.0. 이미지 출처 · 라이선스.

노트북 파일과 실행 중인 세션이 보존하는 것은 다르다

GPU 노트북 일시 중지. 실행 중인 노트북, 상태 저장, 파드 해제, GPU에서 재개

GPU 노트북 일시 중지. Telli.sh 자체 제작.

노트북을 저장하면 작성한 셀과 저장된 출력이 남습니다. 디스크에 데이터세트와 체크포인트를 두면 새 프로세스에서 사용할 수 있습니다. 두 방식 모두 실행 중인 세션의 상태를 전부 자동으로 저장하지는 않습니다. 실험에는 이미 초기화된 변수와 가속기에 올린 모델, 다시 만들려면 시간이 걸리는 중간 상태가 있을 수 있습니다.

Google은 지원되는 실행 중 작업 공간 상태를 GKE Pod Snapshots로 보존하면서 컴퓨팅 리소스를 해제하는 방식을 설명합니다. 작업 공간 파일은 영구 스토리지에 남습니다. 재개하려면 호환되는 리소스와 스냅샷을 사용할 수 있어야 합니다. 그래서 일시 중지는 저장한 파일을 여는 것보다 실험을 이어가는 것에 가깝지만, 기반 환경에 따른 제약이 있습니다.

계층예시계획할 때 물어볼 점
영구 저장 파일노트북, 캐시된 가중치, 결과, 의존성새로 시작해도 파일이 남는가?
애플리케이션 체크포인트학습 체크포인트 또는 저장된 실행 상태이전 프로세스 없이도 작업을 재개할 수 있는가?
작업 공간 스냅샷실행 중인 프로세스 또는 지원되는 가속기 상태이 하드웨어와 환경에서 복원되는가?
클러스터 용량노드, 가속기 할당량 또는 예약컴퓨팅 리소스가 실제로 풀리고 나중에 다시 잡히는가?

재현성과 편의성은 작업의 서로 다른 부분을 개선합니다. 곧 세션을 이어가려는 사람에게 스냅샷이 편리합니다. 재현할 수 있는 노트북과 애플리케이션 체크포인트가 있으면 다른 사람이 작업을 다시 실행하거나 다른 환경으로 옮기기 쉽습니다. 중요한 실험이라면 둘 다 남기세요.

연구팀은 회의 사이에 GPU 세션을 멈추면서도 코드를 커밋하고 모델 산출물을 오래 보존되는 위치에 저장할 수 있습니다. 나중에 스냅샷 복원에 실패해도 대안이 분명합니다. 마찬가지로 오래 도는 학습 작업은 작업을 시작한 작업 공간이 일시 중지를 지원하더라도 정해진 간격에 체크포인트를 저장할 수 있습니다.

멈춘 작업 공간에도 비용은 남는다

실제 청구 비용 추적. GPU 노드 사용 시간, 스냅샷 저장, 복원 시간, 총비용 비교

실제 청구 비용 추적. Telli.sh 자체 제작.

직접적인 경제적 이점은 아무도 작업하지 않을 때 컴퓨팅 리소스를 쓰지 않는 것입니다. 실제 청구서는 세션이 멈춘 뒤 클러스터가 무엇을 하는지에 달려 있습니다. 다른 파드가 사용해서 노드가 계속 돌아갈 수 있습니다. 예약에도 비용이나 약정이 남을 수 있습니다. 영구 디스크와 저장된 스냅샷도 시스템에 남습니다.

가상의 예를 들어보죠. 연구자가 다른 용도로 쓰지 않는 가속기를 퇴근 뒤 12시간 계속 할당해 둔다면, 일시 중지를 통해 플랫폼이 그 가속기 시간 12시간을 돌려받을 수 있습니다. 리소스를 활용할 기회가 생기는 것입니다. 재무상 결과는 노드와 가속기의 프로비저닝 및 과금 방식에 달려 있습니다. 다른 작업 때문에 노드를 켜 둬야 한다면 당장 청구액을 낮추기보다 스케줄링에 도움이 될 수 있습니다.

공정하게 비교하려면 시간도 봐야 합니다. 스냅샷을 저장하려면 리소스가 들고, 큰 상태를 복원하는 데 시간이 걸리며, 원하는 가속기를 즉시 확보하지 못할 수 있습니다. 사용량이 많은 클러스터라면 이미 일정 용량의 사용을 약정했더라도 다른 사람에게 장치를 돌려줄 수 있는지가 중요합니다.

실제 작업이 끝난 시각과 작업 공간이 멈춘 시각, 노드를 사용할 수 있게 된 시각을 기록하세요. 이어서 재개한 사용자가 다음 셀을 실행할 수 있는 시점을 재세요. 이런 시점을 보면 플랫폼 팀은 일시 중지 정책이 다음 근무일 아침을 대기로 채우지 않으면서 의미 있는 용량을 돌려주는지 판단할 수 있습니다.

작업 공간의 운영 조건은 플랫폼 팀이 정한다

셀프서비스가 바꾸는 것은 누가 버튼을 누르느냐입니다. 사용자가 실행할 이미지와 요청할 가속기, 클러스터의 할당량 및 격리 방식은 여전히 관리자가 정합니다. GKE Workspaces 저장소는 프로젝트가 Apache 2.0 코드이며 Google 공식 지원 제품이 아니라고 밝힙니다. 팀 도입을 검토할 때 설치와 운영은 엔지니어링 책임에 포함하세요.

ML 엔지니어에게는 익숙한 IDE와 충분한 메모리, 실험 데이터 접근이 필요할 수 있습니다. 플랫폼 담당자는 기본 ID, 스토리지 권한, 워크로드를 종료하는 법, 업데이트를 받을 이미지도 생각합니다. 작업 공간 유형별로 절충점을 드러내면 두 요구를 함께 충족할 수 있습니다. 작은 CPU 노트북과 GPU 실험 세션은 서로 다른 기본값으로 시작해도 됩니다.

발표에는 가속기 선택과 로컬 도구 또는 에이전트 연결도 나옵니다. 서로 바꿔 쓸 수 있다고 생각하기 전에 클러스터와 사용 사례에 맞는 설정 지침을 보세요. 하드웨어에 종속된 복원, 클러스터 간 접근, 로컬 개발 연결에는 각각의 전제 조건이 있습니다. 팀원이 작업 공간을 살펴보고 어느 클러스터에서 실행하는지 확인할 수 있는 단순한 사례부터 시작하세요.

일시 중지와 복구를 한 번 시험한다

  1. 프로젝트 배포 가이드와 현재 GKE 환경의 스냅샷 및 가속기 요구사항을 읽으세요. 제안한 작업에 맞는 권한과 리소스 제한으로 시험용 작업 공간을 설정하세요.
  2. 재현 가능한 노트북을 여세요. 입력과 중간 애플리케이션 체크포인트, 작은 결과 파일을 저장하세요. 일시 중지 전에 시각과 리소스 할당을 기록하세요.
  3. 작업 공간을 멈추고 클러스터의 리소스 상태를 살펴보세요. 파드가 중지됐는지, 가속기를 다른 작업에 배정할 수 있는지, 어떤 스토리지가 남았는지 확인하세요.
  4. 작업 공간을 재개하세요. 예상한 파일과 실행 상태를 확인하고 로드한 모델을 사용하는 셀 하나를 실행하세요. 재개 요청부터 노트북을 쓸 수 있을 때까지 시간을 재세요.
  5. 저장한 파일과 애플리케이션 체크포인트에서 같은 복구를 시도하세요. 스냅샷 복원이 느리거나 불가능할 때 쓸 대안이자 비교 자료입니다.
  6. 팀과 유휴 설정을 검토하세요. 무엇을 비활성으로 볼지, 오래 도는 작업에는 별도 작업 공간 유형이나 명시적인 처리가 필요한지 정하세요.

할당량이 제한되거나 클러스터가 바쁠 때도 복원을 시험하세요. 텅 빈 클러스터에서 깔끔히 된 시연은 여러 사용자가 동시에 돌아왔을 때 용량을 구하기 어려운 문제를 가릴 수 있습니다. 리소스가 부족할 때 시스템이 어떻게 작동하는지 배우는 것이 시험의 목적입니다.

GPU 시간이 어디에 쓰이는지 계산한다

한 개발 워크스테이션을 주당 40시간 쓴다고 생각해 보죠. 일주일 내내 할당한 기계의 총 시간은 168시간입니다. 플랫폼이 작업이 멈출 때마다 GPU 노드를 해제하고 그 40시간에만 다시 할당할 수 있다면, 스냅샷 및 복원 부담을 세기 전에 노드를 할당해 두지 않아도 되는 시간이 128시간입니다. 클라우드 가격이나 사용 패턴을 가정하지 않은 예입니다. 공유 노드가 같은 시간대에 다른 유용한 일을 할 수 있으므로 이 할당 패턴에서 가능한 상한으로 봐야 합니다.

팀의 GPU 풀에서 기준 데이터를 가져오면 비교를 현실에 가깝게 만들 수 있습니다. 시험 구간마다 노드 시간과 다른 작업의 노드 점유 여부, 보관된 작업 공간 데이터 양을 기록하세요. 재개 요청부터 다음 셀을 실행하기까지 걸린 시간도 남기세요. 두 번째 워크로드가 실행 중이라 노드가 남는다면, 멈춘 노트북이 그 작업에 용량을 내주면서도 청구 비용은 낮추지 못할 수 있습니다. 그래도 쓸모 있는 별개의 결과입니다.

스냅샷 시간도 계산에 넣으세요. 기존 파드가 할당된 상태에서 일시 중지에 시간이 오래 걸리면, 짧은 유휴 임계값으로 자주 끊기기만 하고 컴퓨팅 비용은 별로 줄지 않을 수 있습니다. 오토스케일러가 호환 GPU를 확보하는 동안 재개에 수분이 걸리면 짧게 쉬었다 온 개발자의 대기 시간이 절약분을 넘어설 수 있습니다. 모든 중지가 이득이라고 가정하지 말고 여러 유휴 시간대를 측정하세요.

중지 기능을 켜기 전에 무엇을 보존할지 고른다

GKE Workspaces 저장소는 상태를 저장하지 않는 VS Code 흐름과 상태를 저장하는 별도의 JupyterLab 예제를 설명합니다. 후자는 GPU가 연결된 노트북을 복원하는 모습을 보여주며, T4 한 장에 3B Qwen2.5 모델을 올리는 예도 포함합니다. Kubernetes 파드 스냅샷과 해당 예제에는 구체적인 호환 조건이 있습니다. Google GKE 문서는 GKE Sandbox와 호환 노드 및 이미지 설정의 역할을 설명합니다. GPU 예제를 사용한다면 복원에 의존하기 전에 새 노드에 같은 지원 GPU 모델과 호환 환경이 있는지 확인하세요.

사용자가 일시 중지 버튼을 보고 무엇을 기대하는지 정하세요. 파일과 출력, 편집기 상태가 있으면 된다는 사람도 있습니다. 다음 Python 셀에서 RAM에 이미 있던 객체나 VRAM에 올라간 모델을 그대로 쓰고 싶은 사람도 있습니다. 공유 데이터세트는 외부 객체 스토리지에 있어 스냅샷에 포함되지 않을 수 있습니다. 선택한 작업 공간이 복원할 수 있는 상태와 일반 파일의 보존 위치, 복원 실패 시 대응을 기록하세요.

재개 전 실패 상황도 시험할 만합니다. 시험용 네임스페이스에서 호환 리소스를 잠시 확보할 수 없게 한 뒤, 중복 복원을 여러 개 띄우는 대신 작업 공간이 명확한 상태를 표시하는지 보세요. 메모리 속 프로세스를 재개하지 못하면 소유자가 파일이나 저장한 출력에서 복구할 수 있는지 확인하세요. 그런 다음 시험 스냅샷을 삭제해 해당 스토리지와 보존 규칙이 예상대로 작동하는지 점검하세요.

비용과 복구 결과를 팀과 공유한다

연구자는 자기 작업을 이어가고 싶어 합니다. 플랫폼 팀은 귀한 GPU 용량을 풀로 돌려주고 싶어 합니다. 비용 담당자는 실제 할당이 사라지는지 알고 싶어 합니다. 유휴 시간, 노드 배치, 스냅샷 크기, 재개 성공, 복구 시간을 따로 기록하면 한 표본으로 세 질문에 답할 수 있습니다. 실패 사례의 지원 안내를 더하고 사용자에게 작업 공간이 일시 중지됐는지, 용량을 기다리는지, 준비됐는지 알 방법을 주세요.

그 기준으로 워크로드 유형마다 유휴 정책을 정하세요. 모델을 불러오는 데 오래 걸리는 노트북 세션은 근무 교대 사이에 메모리를 보존하는 편이 나을 수 있습니다. 저장한 스크립트에서 시작하는 짧은 실험에는 영구 파일과 새 실행만 필요할 수 있습니다. 두 방식은 같은 리소스 풀을 쓰면서도 똑같은 복구 시간을 약속할 필요가 없습니다.

릴리스 점검표에 재개 시험을 넣는다

플랫폼을 업그레이드하면 작업 공간을 여는 이미지나 GPU를 제공하는 노드 풀이 바뀔 수 있습니다. 팀에 변경을 적용하기 전에 이전 설정에서 시험 노트북을 만들고 새 설정에서 어떻게 되는지 확인하세요. 시험에서는 같은 파일만 열어 둔 새 세션과 실제로 복원된 세션을 구분해야 합니다. 실행 중인 시험 프로세스에만 있는 값을 읽고 해당 프로세스가 쓰던 파일도 여전히 있는지 확인하세요.

업그레이드로 이전 스냅샷이 무효가 된다면 중요한 결과를 저장할 기회를 주고 대안을 설명하세요. 만료된 스냅샷의 정리는 별도로 점검하세요. 복원 시험은 특정 작업 공간을 되살릴 수 있는지 보여주고, 정리 시험은 사람들이 사용을 끝낸 뒤 오래된 상태가 얼마나 남는지 보여줍니다.

다시 만들기 어려운 작업을 보존한다

기계의 생명주기를 계속 의식하지 않아도 작업을 복구할 수 있을 때 작업 공간은 더 유용합니다. 파일과 체크포인트, 스냅샷, 용량을 서로 다른 문제로 다뤄야 가능한 일입니다. 무리 없이 재개하기 위해 필요한 최소한의 상태를 고르고 원래 세션 없이도 프로젝트를 재현할 수 있게 하세요.

디스크에 무엇이 남고 무엇을 복원해야 하며 컴퓨팅 리소스가 언제 반환되는지 설명할 수 있다면, 팀은 사람들이 실제로 따를 유휴 정책을 정할 수 있습니다.

출처


업무의 배경이 된 대화와 결정 사항을 검색 가능한 기록으로 남기려면 Telli.sh 계정을 만드세요.


← 블로그로 돌아가기