머신러닝 연구를 위한 GPU 600장의 클러스터 운영

— KAIST 김재철 AI 대학원이 VESSL을 이용해 대규모 GPU 클러스터를 운용하는 방법

Doeun
베슬에이아이 <VESSL AI>
6 min readJul 23, 2022

--

KAIST 김재철 AI 대학원

2019년 가을 설립된 KAIST 김재철 AI 대학원(이하 KAIST AI)은 세계 최고 수준의 인공지능 연구환경을 조성하기 위해 설립 초기부터 대규모 GPU 클러스터 구축에 적극적으로 투자해왔습니다.

VESSL AI와 함께하게 된 2021년에는 이미 600여 장이 넘는 GPU를 운용하였는데 이는 단과대학 기준 국내 최대 규모일 뿐만 아니라 스탠퍼드 대학교, 케임브리지 대학교 등의 고성능컴퓨팅(HPC, High Performance Computing) 시스템과 비교해도 상당한 수준이며 VESSL AI를 이용 중인 대기업 고객사와 어깨를 나란히 하는 규모입니다.

현재 VESSL AI는 20여 개의 연구실을 대상으로 해당 GPU 자원할당과 스케줄링을 제공하고 있습니다. 300여 명의 KAIST AI 대학원 학생들이 매일 VESSL을 통해 클러스터를 사용하고 있으며, GPU를 이용해 주피터 노트북에서 기준모델(baseline model)을 개발하거나, 배치 잡을 실행해 모델을 학습하고 있습니다. 클러스터를 관리하는 대학원 내부 IT팀에게 VESSL은 클러스터 노드 사용 및 상태에 대한 실시간 모니터링 및 관제 솔루션 역할을 하고 있습니다.

The Problem

최근 주목받는 “머신러닝 인프라”에 있어 하드웨어 환경 설정은 일부에 불과합니다. 수백 명의 사용자에게 여러 GPU를 할당하기 위해서는 더욱 효율적인 클러스터 관리 및 작업 스케줄링 시스템이 필요합니다. 엔지니어링 역량이 충분한 조직의 경우 슬럼 워크로드 매니저(Slum Workload Manager)쿠버네티스 스케줄러(Kubernetes Scheduler)를 이용해 이와 같은 시스템을 구현하고 있습니다. 대표적으로 Stanford Research Computing Center의 경우 슬럼을 이용해 스탠퍼드 대학교의 XStream Cluster를 운용하고 있습니다.

하지만 두 시스템 모두 높은 학습장벽으로 인해 설정하는 데에만 수개월이 걸리며 전담 시스템 엔지니어링 팀을 필요로 하게 됩니다. 특히 몇 주 만에 HPC를 구축과 운영을 해야 하는 소규모 IT 팀의 경우 데이터셋 볼륨 마운트, 체크포인트 저장, 기가바이트 단위의 feature 캐싱과 같은 머신 러닝 고유의 영역을 고려할 경우에 문제는 더욱 커집니다.

VESSL 도입 이전에, KAIST AI 대학원도 역시 FIFO 스케줄러를 구축하기 위해 Kubernetes 사용하여 직접 클러스터를 구축하기도 했습니다. 하지만, 위에 언급된 문제들을 겪으며, 관리팀과 학생들 모두 직관적으로 사용할 수 있는 더 똑똑하고 효율적인 클러스터 관리 솔루션의 필요성을 깊이 느끼게 되었습니다.

특히 기존의 스케줄러의 경우 많은 학생이 쿠버네티스의 복잡성으로 인해 클러스터를 원활히 접근하는 데 많은 어려움을 겪었습니다. 나아가, 적절한 리소스 정책이 없는 채로 운영된 탓에 극히 일부의 학생만 클러스터에 접근하여 수일 동안 여러 GPU를 반납하지 않고 지속해서 사용하는 사례들이 번번했지만 클러스터 전반의 모니터링이 어려워 이러한 안티 패턴(anti-pattern)이 발견되지 않은 채 장기간 방치되었습니다.

The Solution

VESSL Clusters

저희 팀은 VESSL을 통해 IT 팀에 관리자 권한을 제공하는 것으로 시작으로, IT 팀에게 관리자 권한을 제공해 VESSL Cluster를 통해 각 클러스터의 GPU 사용량을 실시간으로 파악하고, 월간 GPU 사용 시간과 동시 작업 수 제한을 설정할 수 있도록 지원했습니다. 리소스 프로비저닝 외에도 KAIST AI 대학원은 저희 VESSL Cluster 도입을 통해 데이터셋 마운트부터 분산 학습에 이르기까지 ML 인프라를 전체적으로 관리할 수 있는 유연성을 확보했습니다.

나아가 대학원 학생들은 VESSL을 사용함으로써자원 자원관리와 개발환경 구성보다는 실제 연구에 집중할 수 있도록 직관적인 웹 인터페이스와 CLI를 통해 HPC에 더욱 쉽게 접근할 수 있도록 도와주었습니다. 학생들이 요청한 GPU는 순번 또는 우선순위에 따라 자동으로 예약되고, 유휴 자원이 있으면 요청한 컨테이너에 추가 할당되어 학생들이 언제든지 연구에 필요한 충분한 양의 GPU를 할당 받을 수 있도록 지원하고 있습니다.

VESSL Experiment

학생들이 주피터 노트북으로 기준모델(baseline model)을 개발한 후에는 이를 잡 형태로 패키지하여 학습을 병렬적으로 실행할 수 있도록 VESSL Experiment로 안내하여 더욱 자원 효율적으로 작업할 수 있는 환경을 구축했습니다. 또한, VESSL Dataset을 통해 연구실 스토리지를 클러스터에 NFS mount 할 수 있도록 설정하여 새로운 워크로드를 실행할 때마다 대용량 데이터셋을 매번 다운로드할 필요가 없게 하였습니다.

What’s Next

KAIST AI 대학원은 계속해서 HPC 성능을 증가시키며, 저희 팀과 ML Infrastructure를 위해 긴밀히 협력하고 있습니다. KAIST 연구팀은 머신러닝 실험과 인프라에 관한 정보들을 저희 VESSL을 통해 기록하고 GitHub 및 클라우드 스토리지를 통합함으로써 머신러닝 워크플로우에 VESSL을 더욱 적극적으로 적용하고 있습니다. VESSL Cluster는 장기적인 GPU 예산 수립과 HPC 확장 계획에 매우 중요한 역할을 하고있습니다.

저희는 KAIST AI와의 긴밀한 ML 인프라 구축 성공 스토리로 MIT와 서울대학교와 같은 선도적인 기관의 더 많은 연구팀과 협업할 수 있게 되었습니다.

VESSL AI는 KAIST AI 대학원을 시작으로 서울대학교, 연세대학교, 고려대학교 등 국내 대학뿐만 아니라 MIT와 같은 해외 유수 대학과 연구팀에 다양한 형태로 서비스를 제공하고 있습니다. 머신러닝 연구환경을 더 효율적으로 개선하는 데 관심 있으시다면 VESSL AI가 대학 연구실을 대상으로 무료로 제공하는 “VESSL for Academics”를 확인해보시고 문의 사항이 있으시면 언제든지 growth@vessl.ai로 연락주시기를 바랍니다.

Doeun, Growth at VESSL AI

--

--