온디바이스 ML을 구축하기 위한 워크 스테이션 인프라 구축하기

Ryan Kim
5 min readMay 6, 2024

--

밑바닥부터 시작하는 MLOps (1)

2024년은 올해가 시작하면서 여러 모로 내 능력의 한계(?)를 시험하는 환경이 많이 주어졌다.

업무적으로는 회사의 네트워크 망 분리 공사부터 시작해서 전사 인프라 관리, 그리고 개인적으로 진행하는 영어 스터디 1개, 개발 스터디 2개, 투자 스터디 1개까지 주말에도 잘 놀지 못하는 게 한인 것 같다.

(사실상 스터디하면서 놀고 있다고 보는 것이 맞지 않을까?)

개발과 관련해서 많이 배우고 즐겨서 좋지만, 난 여전히 MLOps에 목이 말랐다.

회사에 쿠버네티스도 배포되어 있고, GPU 서버도 잘 구비되어 있고, LLM을 위한 셋업도 모두 잘 되어 있지만 나는 특히, MLOps 개발 환경에 Rust를 기반으로 하는 서빙 환경과 On-Device ML, 즉 스마트폰이나 태블릿에 탑재되는 ML 에 대한 관심이 무척 많아졌다.

현재 세간의 관심은 전부 LLM, 거대 AI, 생성 AI에 포커싱이 맞춰져 있는데 작년부터 꾸준히 분산 컴퓨팅에 관한 스터디를 수행하면서 내 머릿속에는 한가지 큰 의문이 들었다.

‘컴퓨팅 환경이 Scale-Up을 하는 게 물리적으로 한계점이 명확했고, 비용 구조와 인프라 관리 관점에서 봤을 때 Scale-Out을 하는 방향으로 발전해왔는데 AI라고 발전 방향이 다를 수 있나?’

AI도 컴퓨터 발전 역사를 따라가지 않을까?

물론 내가 적극적으로 AI 논문을 연구하거나, 모델 개발을 하는 사람은 아니므로 발전 방향성에 대해 지레짐작하기는 어렵다.

다만, 알파고 출시 직후 AI의 발전 방향성은 줄곧 거대 모델이었고, 솔직히 AI 업계 동향을 지난 3년 동안 꾸준히 살펴 본 입장에서 자금 여력이 없는 스타트업과 같은 회사들에서 AI를 사용한 서비스 개발을 수행하기에는 비용이 너무 많이 소요된다.

때문에 최근 8년 동안 (알파고가 출시된 2016년 기준) AI 업계를 이끌어왔던 것은 소위 미국의 빅테크 기업이었고, 세계의 많은 기업들이 이 테크 기업들이 런칭한 오픈소스 모델을 파인 튜닝에서 자사 제품에 사용하곤했다.

그래서 AI 생태계에 관해 국내 AI 대학원을 진학한 박사 출신 동생들에게 물어보면 구글에서 출시한 Transformer 모델을 기반으로 비전, 오디오, NLP 등을 덕지 덕지 붙여서 모델이 비대해지는 경향이 강하다고 얘기했었는데 (보통 멀티 모달-multi-modal-이라고 부른다.) 잘은 모르지만 글로벌하게 AI 연구를 수행하는 업계 인력들도 Transformer 를 넘어서는 base model을 아직 만들지 못했거나 충분히 테스트 해보지 못했다는 생각이 들었다.

결과적으로 내 주변에서 있었던 이런 일련의 일들로 생각을 종합해보면

  1. AI는 반드시 지금보다 컴퓨팅 자원을 훨씬 덜 사용하면서 현재 이상의 성능을 요구하는 제품들이 출시될 것이다.
  2. 1번 요구사항을 충족하면서 비용 절감을 할 수 있는 방향은 컴퓨터 발전 방향과 맥락을 같이 하듯이 분산 컴퓨팅으로 갈 것이다.
  3. 2번 사항의 환경에서 잘 실행되는 Base Architecture로 모델이 만들어질 것이다.

라고 판단했다.

내 판단에 대한 근거를 찾고 싶어서, 한참 구글링하던 중 Sam Altman의 비슷한 맥락의 글을 찾게 되었다.

원문: https://venturebeat.com/ai/openai-chief-says-age-of-giant-ai-models-is-ending-a-gpu-crisis-could-be-one-reason-why/

글의 요지는 AI를 연구하기 위해 너무 많은 컴퓨팅 리소스가 필요하고, 다른 방법에 대한 AI 개발에 대해 언급한다 (다른 방법이 무엇인지는 구체적으로 이 글에는 언급되어 있지 않다)

판단은 곧 확신으로 바뀌었고, 어차피 회사에서 작은 규모의 ML을 개발하거나 연습해 볼 수는 없으므로 개인적인 설비 투자가 필요하여 과감하게 딥러닝 워크스테이션을 구매하게 되었다.

나의 첫 ML 프로덕트 개발을 위한 워크스테이션!

내부에 들어가는 부품들은 모두 중고로 구매해서 맞췄다.

(회사에서 정말 질리도록 워크스테이션 조립해봤다..ㅎㅎ)

워크스테이션 스펙은 아래와 같다.

CPU: intel i9–9940x (14코어, 28스레드)

RAM: G Skill DDR4–3200 32GB * 8 (총 256GB)

GPU: RTX 3060 * 2 (VRAM 총 24GB)

그 외 부팅용 SATA SSD 500GB 1개, NVME SSD 2TB, HDD 4TB, 1000W 파워 등을 넣었다.

애초에 메인보드가 워크스테이션용이라 추후에 최대 2개까지 gpu를 더 추가할 수 있어서 추후에 gpu는 부족하면 더 구매해서 장착하면 된다.

구체적으로 이 워크스테이션으로 접근하고 싶은 방향은 크게 이 3가지다.

  1. MLOps 인프라 구축 (Vagrant + Kubespray기반. 실험 환경은 kubeflow로 세팅하고 파이프라인은 airflow를 사용 예정이다.)
  2. 온디바이스 ML 개발 (아직 어떤 모델이나 제품을 만들 것인지 구체화하지는 못했지만 github 을 돌면서 탐색 중이다.)
  3. 디바이스 내 모델 탑재한 앱 배포 및 디바이스 내에서 자체 학습 프로세스 수행 (Federation Learning 에 대한 접근)

1번은 소프트웨어 엔지니어링 관점에서 접근이고 회사에서 밥먹고 맨날 했던 거라 크게 안어려울 것 같은데, 역시 2 & 3번이 워크스테이션을 구매한 목적이라 볼 수 있다.

결국 MLOps라는 포지션의 역할은 모델을 제품화하고 운영하는 것에 초점이 맞춰져 있다고 보는데, ML 쪽을 회사에서 제대로 못해 본 게 너무 아쉬움이 남는다.

프로젝트 해보면서 분명 지금 내가 생각하지 못했던 것들이 한 개씩 툭툭 튀어나올텐데, 이건 후속편들에서 하나씩 다뤄보겠다.

Ryan

--

--