MLC LLM이란 무엇인가
MLC LLM은 휴대폰부터 브라우저, 데스크톱 GPU에 이르기까지 다양한 대상 플랫폼에 맞춰 대형 언어 모델을 최적화된 네이티브 런타임으로 컴파일하는 무료 오픈소스 엔진이다. 스스로를 "ML 컴파일을 갖춘 범용 LLM 배포 엔진"이라고 설명한다.
이 프로젝트는 github.com/mlc-ai/mlc-llm에서 Apache 2.0 라이선스로 호스팅되며 약 23,000개의 GitHub 스타를 넘어섰다. CMU Catalyst, UW SAMPL, SJTU, OctoML, MLC 커뮤니티의 구성원들이 시작했다 — 단일 기업이 아닌 그룹에 의한 것이다. CMU 교수이자 Apache TVM·XGBoost·MXNet의 개발자인 티안치 첸이 주요 기여자 중 한 명이다.
- 각 플랫폼에서 동일한 범용 코드를 해석하는 대신, 대상에 특화된 최적화 런타임으로 모델을 컴파일
- Apache TVM 및 관련 컴파일러 연구(TensorIR, MetaSchedule)를 기반으로 대상별 자동 최적화 구현
- 하나의 툴체인에서 iOS/iPadOS, Android, 웹 브라우저, 데스크톱/서버 플랫폼 지원
- 브라우저 내 완전한 클라이언트 측 추론에 특화된 활발한 자매 프로젝트 WebLLM 보유
여기서 "ML 컴파일"이 실제로 의미하는 것은 무엇인가
ML 컴파일은 새로운 기기에 모델을 배포하는 것을 전통적인 컴파일러가 새로운 CPU 아키텍처에 코드를 배포하는 것과 같은 방식으로 다룬다 — 단일 모델 설명으로부터 최적화된, 대상에 특화된 코드를 자동으로 생성한다. 이것이 MLC LLM이 이토록 다양한 하드웨어를 아우를 수 있게 하는 핵심 발상이다.
- Apache TVM은 MLC LLM이 구축되는 컴파일러 인프라를 제공하며, 모델 연산 그래프를 대상별로 최적화된 저수준 코드로 변환한다
- TensorIR은 대상별 최적화 이전에 텐서 연산을 기술하는 데 사용되는 중간 표현이다
- MetaSchedule은 사람이 각각을 수동으로 작성하고 조정하는 대신, 대상별 고성능 커널 구현을 자동으로 탐색한다
- 결과적으로 거의 동일한 소스로부터, CUDA를 통해 NVIDIA GPU에서, Vulkan이나 ROCm을 통해 AMD GPU에서, Metal을 통해 Apple GPU에서, WebGPU를 통해 브라우저에서 실행되도록 컴파일할 수 있는 단일 모델이 만들어진다
MLC LLM을 설치하고 배포하는 방법
MLC LLM은 데스크톱/서버 용도로 Python 패키지로 설치되며, iOS와 Android용 사전 빌드된 앱을 제공한다. WebLLM은 브라우저 배포를 위한 JavaScript 패키지로 제공된다. 올바른 경로는 대상 플랫폼에 따라 다르다.
- 1데스크톱/서버 용도: CUDA, Vulkan, Metal, ROCm 설정을 다루는 공식 설치 가이드에 따라 MLC LLM Python 패키지를 설치한다.
- 2지원되는 모델을 선택하고 MLC LLM의 변환·컴파일 도구로 대상 기기에 맞게 컴파일하거나, MLC 커뮤니티의 이미 컴파일된 모델을 사용한다.
- 3모바일용: MLC LLM은 컴파일된 모델과 런타임을 함께 묶은 iOS·Android 예제 앱 프로젝트를 제공한다.
- 4서버 없는 브라우저 배포용: WebLLM을 JavaScript/TypeScript 패키지로 직접 사용한다. WebGPU를 통해 완전히 클라이언트 측에서 실행된다.
- 5대상 기기나 브라우저에서 컴파일된 런타임을 실행하고 테스트하여 예상 백엔드(CUDA, Vulkan, Metal, ROCm, WebGPU)에서 가속이 활성화되어 있는지 확인한다.
플랫폼마다 모델을 다시 컴파일해야 하는가?
일반적으로 그렇다. MLC LLM의 컴파일 단계는 특정 대상(특정 GPU 백엔드, 모바일 OS, 브라우저)에 맞춰 최적화된 런타임을 생성하므로, 새 플랫폼에 배포하려면 보통 해당 대상에 맞춰 컴파일해야 한다.
MLC LLM은 GPU 없이 실행될 수 있는가?
컴파일된 런타임은 주로 GPU 가속 경로(CUDA, Vulkan, Metal, ROCm, WebGPU, 모바일 OpenCL)를 중심으로 구축되어 있으며, llama.cpp 같은 엔진과 달리 CPU 중심 배포는 이 프로젝트의 주된 초점이 아니다.
MLC LLM은 어떤 플랫폼과 GPU 백엔드를 지원하는가
MLC LLM의 대표적 특징은 일반적인 데스크톱 GPU뿐 아니라 모바일 운영체제와 웹 브라우저까지 아우르는 플랫폼 지원의 폭이다. 이 조합을 하나의 툴체인에서 지원하는 로컬 추론 엔진은 거의 없다.
- iOS/iPadOS — Apple A 시리즈 GPU에서의 Metal 가속
- Android — Adreno 및 Mali GPU에서의 OpenCL 가속
- 웹 브라우저 — 자매 프로젝트 WebLLM을 통한 WebGPU 및 WASM, 서버 불필요
- 데스크톱/서버(Linux, macOS, Windows) — CUDA(NVIDIA), Vulkan(AMD/NVIDIA/Intel), Metal(Apple), ROCm(AMD)
MLC LLM은 누구에게 적합한가
배포 대상이 데스크톱 GPU 외에 모바일 기기나 웹 브라우저를 포함한다면 MLC LLM을 사용하라. 대상이 단일 플랫폼 유형뿐이라면 더 좁은 범위의 엔진을 사용하라.
🧭 MLC LLM이 적합한 경우
- 하나의 툴체인에서 동일한 모델을 iOS, Android, 데스크톱에 배포해야 하는 개발자
- WebLLM을 통해 서버 측 추론 비용 없이 완전히 클라이언트 측에서 동작해야 하는 브라우저 기반 AI 기능을 구축하는 팀
- 단일 컴파일 파이프라인에서 흔치 않은 GPU 백엔드 조합(예: 혼합된 NVIDIA/AMD/Intel 환경에서의 Vulkan)을 대상으로 하는 사람
- 플러그 앤 플레이 바이너리보다 컴파일러 기반 워크플로(모델 변환 및 컴파일)에 익숙한 연구자와 엔지니어
❌ MLC LLM이 적합하지 않은 경우
- 가능한 가장 단순한 단일 플랫폼 로컬 구성을 원하는 사람 — 대상이 데스크톱 한 대뿐이라면 Ollama나 llama.cpp를 직접 사용하는 편이 더 단순함
- NVIDIA GPU에서 특히 최대 프로덕션 텍스트 서빙 처리량이 필요한 팀 — TensorRT-LLM이나 vLLM이 이를 위해 더 특화되어 있음
- 모델 컴파일 단계를 완전히 피하고 싶은 사람 — MLC LLM의 워크플로는 인터프리터 방식 엔진과 달리 대상별 컴파일을 전제로 함
- llama.cpp만큼 성숙한 커뮤니티 지원 채널이 필요한 사람 — MLC LLM 커뮤니티는 활발하지만 규모는 더 작음
🏆 사용 사례별 최선의 선택
- 휴대폰, 브라우저, 데스크톱 GPU에 모델 하나를 배포하는 데 가장 적합: MLC LLM
- 서버 없이 브라우저에서 완전히 클라이언트 측 추론을 하는 데 가장 적합: WebLLM
- 가장 단순한 단일 데스크톱 로컬 구성에 가장 적합: Ollama
- NVIDIA 특화 최대 프로덕션 처리량에 가장 적합: TensorRT-LLM
- 수작업(비컴파일) 엔진으로 가장 폭넓은 하드웨어 지원을 원할 때 가장 적합: llama.cpp 직접 사용
MLC LLM은 llama.cpp 및 다른 엔진과 어떻게 비교되는가
MLC LLM과 가장 가까운 비교 대상은 폭넓은 하드웨어 지원을 지향하는 다른 엔진들이지만, 이 그룹 중 컴파일러 기반 접근 방식과 브라우저 내 배포를 결합한 것은 MLC LLM뿐이다.
도구 | 라이선스 | 최적 용도 |
|---|---|---|
| MLC LLM | Apache 2.0 | 하나의 파이프라인으로 폰·브라우저·데스크톱 지원 |
| WebLLM | Apache 2.0 | 완전히 클라이언트 측인 브라우저 내 추론 |
| llama.cpp | MIT | 가장 폭넓은 하드웨어 지원, 직접 제어 |
| TensorRT-LLM | Apache 2.0 | 최대 처리량, NVIDIA GPU 전용 |
| Ollama | MIT | 가장 단순한 단일 데스크톱 구성 |
MLC LLM을 평가할 때 흔한 오해
대부분의 혼란은 플러그 앤 플레이 바이너리 경험을 기대하거나, WebLLM이 별도의 자매 프로젝트라는 점을 인지하지 못하는 데서 비롯된다.
오해 1: 컴파일 단계를 건너뛸 수 있다고 기대
MLC LLM의 핵심 설계는 대상 플랫폼별로 모델을 컴파일하는 것이다. 빌드/컴파일 단계를 완전히 피하고 싶다면 llama.cpp나 Ollama처럼 미리 컴파일된 바이너리를 제공하는 엔진이 더 적합할 수 있다.
오해 2: MLC LLM과 WebLLM을 같은 프로젝트로 혼동
WebLLM은 동일한 mlc-ai 조직 내 별도의 자매 프로젝트로, 서버 없이 WebGPU를 통한 브라우저 내 추론에 특화되어 있다. MLC LLM은 모바일과 데스크톱 대상까지 아우르는 더 넓은 범위의 엔진이다.
오해 3: MLC LLM이 단일 기업의 지원을 받는다고 가정
MLC LLM은 단일 기업 후원이 아니라 여러 기관(CMU Catalyst, UW SAMPL, SJTU, OctoML)과 더 넓은 MLC 커뮤니티의 협업에서 탄생했다 — 커뮤니티 지원에 대한 기대치도 이에 맞춰 조정해야 한다.
자주 묻는 질문
MLC LLM이란 무엇인가?
MLC LLM은 머신러닝 컴파일을 사용해 대형 언어 모델을 하나의 툴체인에서 휴대폰, 웹 브라우저, 데스크톱 GPU에 배포하는 무료 Apache 2.0 라이선스 엔진이다.
MLC LLM은 누가 만들었는가?
MLC LLM은 CMU Catalyst, UW SAMPL, SJTU, OctoML, MLC 커뮤니티의 구성원들이 시작했다. CMU 교수이자 Apache TVM·XGBoost·MXNet의 개발자인 티안치 첸이 주요 기여자 중 한 명이다.
MLC LLM은 상업적 이용이 무료인가?
그렇다. MLC LLM은 Apache 2.0 라이선스로, 개인 및 상업적 사용 모두 무료다.
MLC LLM은 웹 브라우저에서 실행될 수 있는가?
그렇다. 자매 프로젝트 WebLLM을 통해 서버 측 추론 없이 WebGPU로 완전히 클라이언트 측에서 모델을 실행할 수 있다.
MLC LLM에서 "ML 컴파일"이란 무엇을 의미하는가?
각 플랫폼마다 수동으로 조정된 단일 엔진에 의존하는 대신, 컴파일 기술(Apache TVM 기반, TensorIR 및 MetaSchedule 사용)을 이용해 특정 대상 기기에 맞춰 최적화된 런타임을 자동으로 생성하는 것을 뜻한다.
MLC LLM은 iOS와 Android를 지원하는가?
그렇다. iOS/iPadOS는 Apple A 시리즈 GPU의 Metal을 통해, Android는 Adreno 및 Mali GPU의 OpenCL을 통해 지원된다.
MLC LLM이 데스크톱에서 지원하는 GPU 백엔드는?
CUDA(NVIDIA), Vulkan(AMD, NVIDIA, Intel), Metal(Apple), ROCm(AMD)이다.
플랫폼마다 모델을 따로 컴파일해야 하는가?
일반적으로 그렇다. MLC LLM은 특정 대상에 맞춰 최적화된 런타임으로 모델을 컴파일하므로, 새 플랫폼(다른 GPU 백엔드, 모바일 OS, 브라우저)에 배포하려면 보통 해당 대상에 맞춰 컴파일해야 한다.
MLC LLM은 llama.cpp와 어떻게 다른가?
llama.cpp는 하드웨어 제조사별로 수동 조정된 백엔드를 가진 수작업 C/C++ 엔진이다. MLC LLM은 대신 컴파일러(Apache TVM)를 사용해 대상별로 최적화된 코드를 자동 생성하며, 이를 통해 모바일 기기와 WebGPU를 통한 웹 브라우저까지 도달할 수 있다.
MLC LLM은 대규모 NVIDIA 특화 프로덕션 서빙에 적합한가?
주된 초점은 아니다. NVIDIA 특화 최대 프로덕션 처리량을 원한다면 TensorRT-LLM이나 vLLM이 더 특화된 도구다. MLC LLM의 강점은 단일 플랫폼에서의 최대 처리량이 아니라 매우 다른 플랫폼 간의 폭넓음에 있다.
