Launch HN: Cerebrium (YC W22) – ML/AI를 위한 서버리스 인프라스트럭처 플랫폼
요약
Cerebrium은 ML/AI 애플리케이션의 구축, 배포 및 확장을 지원하는 서버리스 인프라스트럭처 플랫폼입니다. 초기 추론(Inference) 중심에서 학습(Training) 및 데이터 처리로 기능을 확장하며, AI 개발 라이프사이클 전체를 아우르는 것을 목표로 합니다.
핵심 포인트
- GPU 비용 절감 및 콜드 스타트(Cold start) 최소화(2~4초)를 위한 최적화된 서버리스 환경 제공
- 로컬 개발 환경과 클라우드 배포 간의 간극을 줄여 빠른 반복 작업 지원
- 자체 컨테이너 런타임을 구축하여 네트워크 지연 시간을 50ms 미만으로 단축
- 추론, 학습, 데이터 처리를 포함한 통합 AI 개발 라이프사이클 지원
안녕하세요 HN 여러분,
저희는 Michael과 Jono이며, ML/AI 애플리케이션을 위한 서버리스 인프라스트럭처 (Serverless Infrastructure) 플랫폼인 Cerebrium(https://www.cerebrium.ai)을 구축하고 있습니다. 저희는 엔지니어들이 AI 애플리케이션을 쉽게 구축, 배포 및 확장할 수 있도록 돕습니다.
초기에는 애플리케이션의 추론 (Inference) 측면에 집중해 왔으나, 현재는 학습 (Training) 및 데이터 처리 (Data processing) 유스케이스를 지원할 수 있도록 기능을 확장하고 있으며, 궁극적으로는 전체 AI 개발 라이프사이클 (AI development lifecycle)을 아우르는 것을 목표로 하고 있습니다.
저희가 배포하는 과정을 담은 짧은 Loom 영상을 확인하실 수 있습니다: https://www.loom.com/share/06947794b3bf4bb1bb21c87066?...
저희가 여기까지 오게 된 과정:
Jono와 저는 이전 이커머스 스타트업에서 기술 팀을 이끌었으며, 그 회사는 몇 년 동안 빠르게 성장했습니다. 규모가 커짐에 따라, 저희는 비즈니스 효율성을 높이기 위한 ML 애플리케이션을 구축하는 과제를 맡게 되었습니다. 그것은 매우 힘들었습니다. 매일이 패배처럼 느껴졌습니다. 저희는 AWS Lambda, SageMaker, 그리고 Prefect 작업을 하나하나 이어 붙이고 있는 자신들을 발견했습니다 (이 스택만으로도 저는 포기하고 싶을 정도였습니다). 프로덕션 (Production) 단계에 도달했을 때, 비용은 유지하기가 너무 높았습니다. 이러한 애플리케이션을 라이브로 구현하려면 시간과 비용 측면에서 상당한 사전 투자가 필요했기에, 대부분의 스타트업과 스케일업 (Scale-ups) 기업들이 시도하기에는 접근성이 낮았습니다. 저희는 저희 자신(그리고 저희와 같은 다른 사람들)이 ML/AI 애플리케이션을 쉽고 비용 효율적으로 구현할 수 있도록 돕는 무언가를 만들고 싶었습니다.
문제점:
저희의 비전을 실현하기 위해 해결해야 할 수많은 과제가 있지만, 초기에는 몇 가지 핵심적인 문제에 집중했습니다:
-
GPU는 비쌉니다 – A100은 CPU보다 비용이 326배 높으며, 기업들은 LLM을 마치 단순한 API처럼 사용하고 있습니다. 서버리스 인스턴스 (Serverless instances)가 어느 정도 이 문제를 해결해주지만, 콜드 스타트 (Cold starts)를 최소화하는 것은 어렵습니다.
-
로컬 개발 (Local development) – 엔지니어들은 빠르게 반복 작업을 수행하기 위해 로컬 개발 환경이 필요하지만, 소비자용 하드웨어에서는 프로덕션급 GPU를 사용할 수 없습니다. 어떻게 하면 클라우드 배포를 로컬에서 파일을 저장하고 다시 시도하는 것만큼 빠르게 느껴지게 만들 수 있을까요?
-
실험 비용 - 실험을 수행하기 위해 우리는 매일 EC2 인스턴스를 생성하고, 환경을 재구축하며, 스크립트를 실행해야 했습니다. 상당한 인프라 투자 없이 로그와 인스턴스 사용 지표(metrics)를 모니터링하거나, 대규모 처리 작업(processing jobs)을 실행하고 엔드포인트(endpoints)를 확장하는 것은 어려웠습니다. 게다가 인스턴스 종료를 자주 잊어버려 비용이 발생하기도 했습니다!
우리의 접근 방식
우리는 모든 인프라 플랫폼에서 가장 중요하다고 믿는 세 가지 핵심 영역에 집중하고 있습니다:
- 성능 (Performance):
우리는 추가적인 네트워크 지연 시간(latency)을 50ms 미만으로, 평균 워크로드의 콜드 스타트(cold start)를 2~4초로 만들기 위해 열심히 노력했습니다. 콜드 스타트를 이토록 낮게 유지하기 위해 우리가 수행한 몇 가지 작업은 다음과 같습니다:
-
컨테이너 런타임 (Container Runtime): 우리는 컨테이너 이미지를 메타데이터(metadata)와 데이터 블롭(data blobs)의 두 부분으로 나누는 자체 컨테이너 런타임을 구축했습니다. 메타데이터는 파일 구조를 제공하며, 실제 데이터 블롭은 필요할 때(on-demand) 가져옵니다. 이를 통해 전체 이미지가 다운로드되기 전에 컨테이너를 시작할 수 있습니다. 백그라운드에서는 나머지 블롭을 미리 가져옵니다(prefetch).
-
캐싱 (Caching): 이미지가 머신에 한 번 올라가면, 향후 사용을 위해 캐싱됩니다. 이는 후속 컨테이너 시작 속도를 훨씬 빠르게 만듭니다. 또한 이미지가 이미 캐싱되어 있는 머신으로 요청을 지능적으로 라우팅합니다.
-
효율적인 추론 (Efficient Inference): 우리는 낮은 지연 시간과 높은 처리량(throughput) 성능을 우선시하여 최적의 머신으로 요청을 라우팅합니다. 즉시 사용 가능한 컨테이너가 없는 경우, 우리의 작업 스케줄링 시스템(task scheduling system)을 통해 요청을 효율적으로 큐(queue)에 대기시킵니다.
-
분산 스토리지 캐시 (Distributed Storage Cache): AI 워크로드에서 가장 리소스 집약적인 부분 중 하나는 모델을 VRAM에 로드하는 것입니다. 우리는 네트워크 볼륨보다 훨씬 빠른 NVME 드라이브를 머신에 최대한 가깝게 배치하며, 가능한 경우 필요한 모델 가중치(weights)가 이미 포함된 노드로 워크로드를 오케스트레이션(orchestrate)합니다.
- 개발자 경험 (Developer Experience)
우리는 전체 빌드 및 배포 프로세스를 간소화함으로써 개발자들이 가능한 한 빠르게 반복(iterate)할 수 있도록 돕기 위해 Cerebrium을 구축했습니다.
빌드 시간을 가능한 한 낮추기 위해, 저희는 고성능 머신(high-performance machines)과 가능한 경우 캐시 레이어(cache layers)를 사용합니다. 저희는 첫 빌드 시간을 평균 2분 24초로 단축했으며, 이후의 빌드는 단 19초 만에 완료됩니다.
또한 8가지 이상의 다양한 GPU 유형을 제공하므로, 설정 파일(configuration file)의 한 줄만 수정하여 성능과 비용 효율성을 쉽게 테스트할 수 있습니다.
마찰(friction)을 줄이기 위해 저희는 모든 것을 단순하게 유지했습니다. 커스텀 Python 데코레이터(decorators)도 없고, 배워야 할 Cerebrium 전용 문법(syntax)도 없습니다. 그저 .toml 파일을 추가하여 하드웨어 요구 사항과 환경 설정을 정의하기만 하면 됩니다. 덕분에 저희 플랫폼으로 이전하거나 플랫폼에서 벗어나는 것이 똑같이 쉽습니다. 저희는 여러분이 계속 머물고 싶을 만큼 깊은 인상을 남기는 것을 목표로 합니다.
- 안정성 (Stability)
이는 앞서 언급한 두 가지 영역보다 아마도 더 중요할 것입니다. 밤 11시나 토요일에 애플리케이션이 다운되었거나 성능이 저하되었다는 이메일을 받고 싶은 사람은 아무도 없기 때문입니다. 저희는 지난 4월부터 99.999%의 업타임(uptime)을 유지해 왔습니다. 저희는 중복성(redundancies), 모니터링, 알림 시스템을 갖추고 있으며, 모든 시간대를 커버하는 팀이 문제를 신속하게 해결합니다.
이것이 왜 어려운가요?
Cerebrium을 구축하는 것은 여러 상호 연결된 문제들을 해결해야 하기 때문에 도전적이었습니다. 이미지를 효율적으로 분할하는 것부터 지연 시간(latency)을 유발하지 않고 온디맨드(on-demand)로 데이터를 가져오는 것, 분산 캐싱(distributed caching) 처리, 네트워크 스택(network stack) 최적화, 그리고 중복성 확보에 이르기까지, 위에서 언급한 세 가지 영역을 충실히 지키면서 모든 단계에서 최적화가 필요합니다.
가격 책정 (Pricing):
저희는 귀하가 필요로 하는 리소스에 대해서만 정확히 비용을 청구하며, 코드가 실행될 때만 비용을 부과합니다. 즉, 사용량 기반(usage-based)입니다. 예를 들어, 2개의 CPU와 12GB의 RAM을 갖춘 1개의 A100 GPU가 필요하다고 지정하면, 저희는 전체 A100(12개의 CPU 및 148GB의 메모리)이 아닌 정확히 그 부분에 대해서만 비용을 청구합니다.
가격에 대한 자세한 내용은 여기에서 확인하실 수 있습니다: http://www.cerebrium.ai/pricing
다음 단계는 무엇인가요?
저희 또한 개발자(builders)이며, 새로운 것을 만들어갈 때 지원이 얼마나 중요한지 잘 알고 있습니다. 여러분과 같은 팀들을 지원하기 위해 다음과 같은 것들을 준비했습니다:
-
탐색을 시작할 수 있도록 $30의 무료 크레딧을 제공합니다. 흥미로운 프로젝트를 진행 중이지만 더 많은 운영 자금(runway)이 필요한 경우, 저희에게 알려주세요. 설득력 있는 사용 사례(use-cases)에 대해서는 크레딧을 연장해 드릴 용의가 있습니다.
-
온보딩(onboarding)을 쉽게 만들기 위해 문서(docs) 작업에 공을 들였으며, AI 음성 에이전트(AI voice agents), LLM 최적화(LLM optimizations) 등을 다루는 매우 상세한 GitHub 저장소(repo)도 마련했습니다.
문서: https://docs.cerebrium.ai/cerebrium/getting-started/introduc...
GitHub 예제: https://github.com/CerebriumAI/examples/tree/master
질문이 있거나 문제에 부딪힌다면, 플랫폼을 구축한 엔지니어들에게 직접 연락할 수 있습니다. 저희는 도움을 드리기 위해 여기 있습니다! 또한 다른 창작자들과 연결되어 경험을 공유하고, 조언을 구하거나, 멋진 것을 만드는 사람들과 단순히 대화를 나눌 수 있는 Slack 및 Discord 커뮤니티도 개설했습니다.
여러분이 무엇을 만들어낼지 기대하고 있으며, 저희가 개선하거나 추가하기를 원하는 사항에 대해 피드백을 부탁드립니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN GPU Inference의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기