컴파운드 LLM 시스템 셀프 호스팅 실전 가이드
SF #TechWeek 기간에 개최된 Zilliz의 월간 “Unstructured Data Meetup”에는 AI 생태계의 최신 발전을 논의하기 위해 800명이 넘는 빌더, 창업자, VC가 모였습니다. 두 번째 발표는 BentoML의 창업자/CEO인 Chaoyu Yang이 진행했으며, 관리형 API를 호출하는 것과 같은 성능을 달성하면서도 자체 호스팅 대규모 언어 모델(LLMs)의 제어와 사용자 정의를 선호하는 이들에게 실행 가능한 조언을 제공했습니다. BentoML은 AI 오케스트레이션에 대한 연구 인사이트를 공유하며, 모델을 자체 호스팅할 때 흔히 발생하는 성능 문제를 최적화하기 위해 개발한 솔루션을 시연했습니다.
이 글에서는 Chaoyu의 발표 핵심 내용을 요약하고, LLM을 자체 호스팅할 때의 주요 과제, 고려 사항, 실천 방안을 논의합니다. 또한 BentoML과 Milvus를 통합해 더 강력한 GenAI 애플리케이션을 구축하는 방법도 살펴보겠습니다.
LLM Doom Stack
AI를 비교적 새롭게 접한 사람으로서, 저는 현대 LLM 스택의 맥락에서 BentoML과 Milvus를 이해하는 것이 가장 쉬웠습니다. 특별한 순서는 없지만—그냥 멋지게 들리니까—제가 'LLM DOOM Stack'이라고 부르는 것을 살펴보겠습니다.
Data: 고품질 학습과 추론을 위해 대규모 데이터 세트를 준비, 저장, 처리합니다. 이러한 기술에는 데이터 파이프라인, 임베딩 모델, 벡터 데이터베이스 (Zilliz/Milvus 같은 것들, 우후!)가 포함됩니다.
Operations: 배포된 모델의 상태와 성능을 모니터링, 확장, 유지 관리합니다. 신뢰성을 유지하기 위한 능동적 디버깅용 실시간 관측 가능성입니다.
Orchestration: 인프라 전반에 모델을 배포하고 확장하며, LLM, 외부 시스템, 사용자 간의 흐름을 관리합니다. (여기서 BentoML이 핵심적인 역할을 합니다.)
AI Models: LLM 앱의 핵심—API, 오픈소스 또는 사전 학습된 모델을 사용하든, 특정 작업을 위해 모델을 학습, 미세 조정, 최적화합니다.
Figure- The LLM Doom Stack.png
그림: LLM Doom Stack (이 이미지를 바탕으로 각색.)
모든 AI 인프라 스타트업은 이 DOOM 프레임워크 안에 들어맞습니다. Milvus와 그 관리형 클라우드 서비스인 Zilliz Cloud는 벡터 데이터베이스로, 비정형 데이터를 고차원 공간의 벡터 임베딩이라는 수치 표현으로 저장, 인덱싱, 검색하도록 구축되었습니다. 이들은 다양한 LLM 기반 시스템, 특히 검색 증강 생성(RAG)의 핵심 구성 요소입니다. BentoML은 현재 LLM 워크플로를 위한 운영 최적화를 제공합니다. 운영 체제에서 효과가 입증된 개념을 차용하고 데이터 기반 연구와 결합함으로써, BentoML은 LLM을 구축하고 배포하는 데 뛰어난 성능을 제공한다는 것을 입증했으며—그 창업자인 Chaoyu가 이번 발표에서 그 비결을 공유했습니다.
LLM 딜레마: 자체 호스팅할 것인가, 아니면 그냥 API를 호출할 것인가?
LLM을 배포할 때 가장 중요한 결정 중 하나는 자체 호스팅을 할지, 아니면 관리형 API에 의존할지입니다. 두 옵션 모두 고유한 트레이드오프가 있으므로, 편의성과 제어권을 신중히 비교하는 것이 중요합니다. 관리형 API는 사용 용이성, 낮은 유지 관리 부담, 빠른 확장 능력 때문에 매력적이며, 반면 자체 호스팅은 완전한 제어와 유연성을 제공해 더 깊은 사용자 정의가 가능합니다. 궁극적으로 대부분의 팀에게 이 결정은 단기적인 배포 속도와 장기적인 확장성 및 성능 목표 사이의 균형을 맞추는 문제로 귀결됩니다.
Figure- Benefits and Challenges of Self-Hosting LLMs.png
그림: LLM 자체 호스팅의 이점과 과제
누가 LLM을 자체 호스팅해야 할까요?
Chaoyu는 관리형 LLM과 자체 호스팅 LLM에 대한 간단한 설문으로 발표를 시작했습니다. 대부분의 참석자들은 관리형 API에 손을 들었고, 그럴 만도 합니다—애플리케이션을 개발하는 동시에 인프라를 구축, 확장, 유지 관리하는 것은 결코 쉬운 일이 아니기 때문입니다.
Chaoyu는 관리형 서비스가 편리하기는 하지만, 특정 사용 사례에 대한 최적화보다 처리량을 우선시하는 경우가 많다고 강조했습니다. 반면 자체 호스팅은 모델의 맞춤형 미세 조정, 고급 추론 전략, 예측 가능한 품질과 지연 시간을 가능하게 합니다.
하지만 자체 호스팅이 모든 사람에게 적합한 선택은 아닙니다. 그렇다면 정확히 누가 LLM 자체 호스팅을 고려해야 할까요? 이 접근 방식을 탐색해야 하는 주요 이유는 다음과 같습니다:
Figure- Who Should Self-Host LLMs? .png
그림: 누가 LLM을 자체 호스팅해야 할까요?
제어: 자체 호스팅을 사용하면 데이터 보안, 개인정보 보호 규정, 특정 조직 요구 사항을 준수하면서 원하는 방식으로 LLM을 실행할 수 있습니다. 이는 민감한 데이터가 인프라를 벗어날 수 없는, 엄격한 데이터 보호 요구 사항이 있는 산업에서 특히 그렇습니다.
맞춤화: 자체 호스팅을 통해 특정 사용 사례에 맞게 모델을 미세 조정하고 추론 전략을 최적화하여, 관리형 API가 제공할 수 있는 것보다 더 나은 성능, 속도, 정확도를 달성할 수 있습니다. 또한 추론 계층을 완전히 제어할 때만 가능한 Chain of Thought (CoT) 디코딩이나 Equilibrium Search와 같은 고급 추론 기법을 실험할 수 있는 유연성도 얻을 수 있습니다.
장기적 비용 이점: 자체 호스팅은 인프라와 유지 관리 측면에서 초기 비용이 더 높을 수 있지만, 장기적인 비용 절감을 제공할 수 있습니다. 공급업체 가격 모델에 종속되지 않고 BentoML 및 OpenLLM과 같은 오픈 소스 플랫폼을 활용하여 시간이 지남에 따라 비용을 최적화하고 확장할 수 있습니다.
LLM 자체 호스팅을 위한 주요 과제와 최적화
LLM 자체 호스팅은 더 큰 제어권을 제공하지만, 특히 확장, 추론 최적화, 콜드 스타트 문제와 관련된 일련의 기술적 과제를 수반합니다. BentoML은 이러한 문제를 해결하기 위한 일련의 솔루션을 제공하여 팀이 배포를 효율적으로 최적화할 수 있도록 합니다. Chaoyu는 이러한 과제를 해결하기 위해 사용한 주요 접근 방식을 공유했습니다.
추론 최적화
LLM을 자체 호스팅할 때 성능을 개선하고 비용을 줄이기 위해 추론 최적화가 중요합니다. Chaoyu는 몇 가지 핵심 기법을 강조했습니다:
Figure- LLM Inference Optimization- The Table Stacks.png
그림: LLM 추론 최적화: 테이블 스택
요청 배치 처리
가장 영향력 있는 전략 중 하나로, 요청 배치 처리는 처리량을 최대 23배까지 증가시킬 수 있습니다. 여러 요청을 순차적으로 처리하는 대신 병렬로 처리함으로써 GPU 리소스 활용도를 극대화하고, 유휴 시간을 줄이며, 특히 트래픽이 많은 애플리케이션에서 효율성을 향상시킬 수 있습니다.
토큰 스트리밍
또 다른 필수 최적화는 토큰 스트리밍으로, 토큰이 생성되는 즉시 점진적으로 반환합니다. 이 접근 방식은 특히 챗봇과 같은 실시간 애플리케이션에서 체감 지연 시간을 크게 개선하며, 더 빠른 응답 시간은 사용자 경험을 향상시킵니다.
양자화
또한 양자화는 모델 정밀도를 낮춤으로써(예: 32비트에서 8비트로) 메모리 사용량과 추론 지연 시간을 줄입니다. 이 접근 방식은 특정 작업에서 출력 품질을 약간 저하시킬 수 있지만, 성능 향상을 위한 절충으로는 충분히 가치가 있습니다.
커널 최적화
커널 수준에서 최적화하면 LLM 워크로드에 맞춘 저수준 GPU 최적화가 가능해져, 계산 작업이 최대한 효율적으로 처리되도록 보장할 수 있습니다. 그러나 이러한 최적화는 서로 다른 하드웨어 플랫폼 간의 이식성을 낮출 수 있습니다.
모델 병렬화
매우 큰 모델(700억+ 파라미터)의 경우, 워크로드를 여러 GPU에 분산하면 더 효율적인 추론이 가능합니다. 이는 처리량을 향상시키지만, GPU 간에 일부 통신 오버헤드를 발생시킵니다.
LLM 추론 확장: 동시성 기반 오토스케일링
셀프 호스팅 환경에서 흔한 과제는 확장 관리입니다. CPU/GPU 사용률이나 초당 쿼리 수(QPS) 같은 전통적인 확장 지표는 입력 복잡도에 따라 리소스 요구량이 달라지는 LLM에는 충분하지 않습니다.
Chaoyu는 동시성 기반 스케일링이 더 효과적인 접근 방식이라고 설명했습니다. 이 방법은 동시 요청 수를 모니터링하여 시스템 부하를 판단하고 배치 크기에 따라 리소스를 동적으로 조정합니다. 이 방법은 시스템이 필요한 시점에 정확히 확장되도록 보장하여, 트래픽 급증 시에도 높은 성능을 유지하면서 과도한 프로비저닝을 방지하고 비용을 절감합니다.
비용 절감을 위한 Prefix Caching
셀프 호스팅 환경에서 비용을 줄이고 성능을 개선하는 가장 효과적인 방법 중 하나는 prefix caching이며, 이를 통해 90%+ 비용 절감을 달성할 수 있습니다. 이 전략은 시스템 지침이나 정적 콘텐츠처럼 프롬프트의 공통 부분을 캐싱하여 중복 계산을 피하는 방식으로 작동합니다.
정적 정보를 요청의 앞부분에 배치하면 캐시 히트 가능성이 높아져, 유사한 구조를 가진 후속 요청의 계산 부하가 줄어듭니다. 이는 프롬프트의 대부분이 동일하게 유지되는 빈번하고 반복적인 쿼리를 처리하는 애플리케이션에 특히 유용합니다. Prefix caching은 지연 시간을 낮추고 리소스 사용량을 줄여, LLM 추론의 성능과 비용을 크게 최적화합니다.
콜드 스타트 문제
셀프 호스팅의 또 다른 주요 과제는 콜드 스타트 문제—새 인스턴스가 트래픽을 처리할 준비가 되는 데 시간이 걸릴 때 발생하는 지연—입니다. Chaoyu는 이 문제를 극복하기 위한 두 가지 핵심 전략을 논의했습니다.
한 가지 해결책은 예열된 모델을 대기 상태로 두는 것입니다. 이를 통해 트래픽 급증이 발생했을 때 모델이 즉시 요청을 처리할 준비가 되어, 시작 지연을 최소화할 수 있습니다.
또 다른 중요한 최적화는 컨테이너 이미지 슬림화입니다. 불필요한 의존성을 줄이면 서비스를 동적으로 확장할 때 이미지를 가져오는 데 필요한 시간을 크게 줄일 수 있습니다. 예를 들어, 154MB 이미지는 부피가 큰 6.7GB 이미지보다 훨씬 빠르게 로드되어 시작 시간을 크게 단축합니다.
또한 모델 가중치 스트리밍을 순차적으로 로드하는 대신 GPU 메모리로 점진적으로 수행하면 초기화 시간이 더욱 줄어듭니다. 이를 통해 시스템은 긴 시작 지연 없이 갑작스러운 트래픽 급증을 처리할 수 있어, 셀프 호스팅 모델의 전반적인 응답성이 향상됩니다.
더 강력한 LLM 애플리케이션을 위한 BentoML과 Milvus 통합
BentoML은 AI 애플리케이션과 모델 추론을 위한 온라인 서빙 시스템을 최적화합니다. 관리형 서비스인 BentoCloud는 Llama 3, Stable Diffusion, CLIP, Sentence Transformers를 포함한 다양한 최첨단 오픈 소스 AI 모델을 제공합니다. 이러한 사전 구축된 모델은 플랫폼에서 클릭 한 번으로 배포할 수 있습니다.
Milvus는 고차원 벡터 임베딩을 사용하여 수십억 규모의 비정형 데이터를 저장, 인덱싱, 검색하기 위해 구축된 오픈 소스 벡터 데이터베이스입니다. RAG, 시맨틱 검색, 멀티모달 검색, 추천 시스템과 같은 최신 AI 애플리케이션에 이상적입니다.
BentoCloud는 Milvus 및 그 관리형 서비스인 Zilliz Cloud와 원활하게 통합되어, 특히 Retrieval Augmented Generation(RAG)과 같은 강력한 LLM 기반 애플리케이션을 쉽게 개발할 수 있게 해줍니다. RAG는 모델이 접근할 수 없었던 외부 지식을 제공하여 LLM 출력을 향상시키는 기술입니다.
BentoCloud를 사용하여 임베딩 모델을 제공하고 비정형 데이터를 벡터 임베딩으로 변환할 수 있으며, 이렇게 생성된 임베딩은 Milvus(또는 Zilliz Cloud)에 저장하고 검색할 수 있습니다. 그런 다음 Milus는 가장 관련성 높은 결과를 검색하고 이를 LLM에 컨텍스트로 제공하여 더 정확한 결과를 생성합니다.
Figure- RAG workflow.png
RAG 또는 다른 유형의 GenAI APPs를 구축하는 방법에 대한 자세한 내용은 아래 튜토리얼과 블로그를 확인하세요.
튜토리얼: Retrieval-Augmented Generation (RAG) with Milvus and BentoML | Milvus Documentation
블로그 | Infrastructure Challenges in Scaling RAG with Custom AI Models
요약
LLM 배포에는 셀프 호스팅과 관리형 API 중 선택하는 것부터 성능 최적화와 확장에 이르기까지 중요한 결정과 과제가 따릅니다. 관리형 API는 편의성과 단순성을 제공하지만, 셀프 호스팅은 맞춤형 솔루션이 필요한 팀에 더 큰 제어력, 유연성, 장기적인 비용 효율성을 제공합니다. BentoML의 플랫폼은 셀프 호스팅의 많은 복잡성을 해결하며, 추론 최적화, 효율적인 확장, 콜드 스타트 문제와 같은 기술적 장애물 극복을 위한 강력한 도구를 제공합니다.
BentoML, Milvus 또는 이들의 관리형 서비스를 활용하면 팀은 LLM 애플리케이션의 Data 및 Operations 계층을 원활하게 통합하여, 특정 요구 사항을 충족하는 고성능 시스템을 구축할 수 있습니다.
셀프 호스팅 LLM을 본격적으로 시작하고 LLM 애플리케이션을 구축할 준비가 되었다면, BentoML, OpenLLM, Milvus와 같은 도구를 통해 더 쉽게 시작하고 고유한 사용 사례에 맞게 최적화할 수 있습니다.
DOOM 스택의 각자 맡은 계층을 최적화하는 데 전념하는 사람들과 함께하세요. 거인의 어깨 위에 서고, 아르키메데스처럼 세상을 지렛대로 활용하며, 추진력을 계속 이어가세요.
계속 읽기

Why Teams Are Migrating from Weaviate to Zilliz Cloud — and How to Do It Seamlessly
Explore how Milvus scales for large datasets and complex queries with advanced features, and discover how to migrate from Weaviate to Zilliz Cloud.

The Great AI Agent Protocol Race: Function Calling vs. MCP vs. A2A
Compare Function Calling, MCP, and A2A protocols for AI agents. Learn which standard best fits your development needs and future-proof your applications.

Proactive Monitoring for Vector Database: Zilliz Cloud Integrates with Datadog
we're excited to announce Zilliz Cloud's integration with Datadog, enabling comprehensive monitoring and observability for your vectorDB deployments.



