엔지니어링
Aug 4, 2021
엔지니어링
Backend.AI와 Pure Storage로 AI를 쉽고 간편하게 활용하기

이펑 지앙
Software & solutions engineer(PureStorage)
Aug 4, 2021
엔지니어링
Backend.AI와 Pure Storage로 AI를 쉽고 간편하게 활용하기

이펑 지앙
Software & solutions engineer(PureStorage)
About Pure Storage
PureStorage는 전 세계 기업들에게 AI와 머신러닝을 위한 올플래시(Flash) 스토리지 솔루션을 제공하는 글로벌 스토리지 기업입니다. Lablup은 Pure Storage의 Technology Alliance Partner(TAP)로서, Backend.AI에 Pure Storage FlashBlade 전용 스토리지 플러그인을 제공해 AI 개발자와 데이터 사이언티스트가 최적의 환경에서 AI 개발에 집중할 수 있도록 지원하고 있습니다.
Pure Storage의 데이터 사이언스 총괄 수석 솔루션 아키텍트(Principal Solutions Architect)인 Yifeng Jiang 씨는 빅데이터와 머신러닝 분야에서 다년간의 경험을 쌓은 전문가로, AI 인프라 내에서 GPU 서버와 스토리지를 최적으로 운영하는 방법을 주제로 한 아래 글을 작성했습니다.
클릭 몇 번으로 AI 인프라의 GPU와 데이터 관리 문제를 해결하기
회사에서 여러분과 동료 데이터 사이언티스트들을 위해 강력한 GPU 서버를 몇 대 마련했다고 가정해봅시다. 이제는 더 이상 노트북 앞에서 훈련이 끝나길 기다리지 않아도 되니 기대가 큽니다. 당장이라도 GPU를 사용하고 싶지만, 현실은 그렇게 간단하지 않을 수 있습니다. 사용에 앞서 IT 팀이 다음과 같은 질문을 던질지도 모릅니다.
얼마나 많은 CPU와 GPU 자원이 필요한가요?
작업은 언제 시작해서 언제쯤 끝날까요?
공유 스토리지가 필요하다면, 어느 정도 용량이 필요한가요?
데이터셋은 얼마나 크며, 어떻게 업로드할 계획인가요?
이런 질문은 팀에서 누군가가 GPU를 사용할 때마다 반복될 수 있습니다. 사실 AI를 누구나 쉽게 접근할 수 있도록 만드는 일은 결코 간단하지 않습니다. AI는 단순히 머신러닝 모델을 위한 Python 코드를 작성하는 것을 넘어, 방대한 기술과 복잡한 인프라를 포함하는 영역입니다. Google의 이 논문에 따르면 실제 머신러닝 시스템에서 핵심 모델 코드는 전체 시스템의 극히 일부에 불과합니다. 나머지는 이를 둘러싼 다양한 인프라가 차지합니다.
지금은 모델 코드, 즉 이 작은 '검은 상자'에 집중해 봅시다. GPU나 TPU를 사용해 모델을 훈련한다는 점에서 AI 개발은 일반적인 소프트웨어 개발과 매우 다릅니다. GPU는 비싸고, 드라이버와 라이브러리 설치도 만만치 않습니다. 팀 내에서 GPU를 어떻게 효율적으로 공유하고 스케줄링할 수 있을까요?
실제로 어떤 팀들은 서드파티 툴이나 자체 제작한 스크립트, 심지어는 스프레드시트를 이용해 리소스를 관리하기도 합니다. 물론 이런 방식은 “스마트”하다고 보긴 어렵습니다.
최근 Lablup Inc. 팀과 이야기를 나누면서 AI가 가진 과제와 기회, 그리고 기술에 대해 논의할 기회가 있었습니다. 그들이 보여준 Backend.AI는 오픈소스 기반의 AI/ML 컴퓨팅 리소스 오케스트레이터로, AI 접근성을 크게 높이려는 시도입니다. 이 시스템이 너무 인상적이어서, 그 내용을 여러분께도 소개하고자 합니다.
AI를 누구나 쉽게 접근할 수 있도록
많은 기업이 데이터 사이언티스트를 채용하면서 GPU가 탑재된 노트북을 제공해 AI 프로젝트를 시작합니다. 하지만 프로젝트가 커지면 더 많은 GPU 자원이 필요해지고, 결국 데이터센터나 클라우드로 눈을 돌리게 됩니다. 여기서부터 인프라 관련 문제가 시작됩니다.
모든 기업이 GPU 리소스를 잘 관리할 수 있는 것은 아닙니다. Backend.AI는 GPU를 비롯한 컴퓨팅 자원을 팀 내에서 쉽게 접근하고 공유할 수 있도록 해, 복잡한 리소스 관리 없이도 데이터 사이언티스트가 본연의 업무에 집중할 수 있도록 도와줍니다. 여러 서버에 흩어진 GPU 리소스를 하나의 풀로 묶어 필요한 만큼 할당해주는 구조입니다.
저는 Jupyter를 자주 사용하는데, Backend.AI에서는 클릭 한 번으로 JupyterLab 인스턴스를 시작할 수 있어 매우 편리합니다.
또한 웹 기반 터미널(CLI)을 사용할 수 있어 세션에 대한 제어와 유연성도 확보할 수 있습니다.
세션은 팀원과 격리되어 있어 리소스 충돌 없이 안전하게 작업할 수 있으며, 훈련이 끝난 후 세션을 종료하면 GPU 리소스가 다시 풀에 반환됩니다.
어떻게 작동하나요?
Backend.AI는 전형적인 클라이언트-서버 구조로 구성되어 있습니다. 클라이언트는 SDK나 툴을 통해 요청을 전달하고, 서버에서는 이를 처리합니다. 특히 저는 Visual Studio Code 통합 기능을 선호하는데, 코딩과 문서 작성을 한 곳에서 할 수 있어 편리합니다.
Kubernetes 없이도 클러스터 접근이 가능
고밀도 노드에서 GPU 활용 극대화를 위한 컨테이너 격리 기술
AI/HPC 워크로드에 최적화된 리소스 할당 및 성능
기존 CUDA 프로그램 수정 없이도 GPU 분할 사용 가능
NAS와의 네이티브 통합으로 데이터 I/O 성능 향상
필요 시 Kubernetes 클러스터도 백엔드로 연동 가능
스토리지 통합
빠르고 안정적인 데이터 흐름 AI 시스템은 결국 데이터와 모델입니다. Backend.AI는 다양한 NAS 시스템과의 통합을 지원하며, 세션 간 데이터를 유지하기 위한 가상 폴더(vfolder)를 제공합니다. 이 중 Pure Storage FlashBlade NFS는 Backend.AI에 최적화된 NAS로 추천됩니다.
Rapidfile Toolkit은 Backend.AI와 FlashBlade를 함께 사용하는 고객들에게 특히 인기가 많습니다.
요약
AI는 큰 기대를 받고 있지만, 실제 도입에는 인프라 구축이라는 큰 장벽이 존재합니다. 특히 GPU와 데이터의 효율적인 관리 및 공유는 많은 조직이 처음 부딪히는 문제입니다.
Lablup의 Backend.AI는 GPU를 서비스처럼 쉽게 사용할 수 있게 해주고, Pure Storage FlashBlade는 빠르고 간편하게 데이터를 공급합니다. 이 두 기술은 AI 인프라의 진입 장벽을 낮추고, 더 많은 사람들이 AI를 활용할 수 있는 길을 열어줍니다.