MLC LLM은 대규모 언어 모델의 효율적인 배포에 초점을 맞춘 머신러닝 컴파일 프레임워크이다. 오픈소스 프로젝트로 개발되었으며, Apache TVM 컴파일러 스택을 활용하여 LLM 워크로드를 소비자용 GPU, 모바일 기기, 클라우드 서버를 포함한 다양한 하드웨어 백엔드에서 실행되는 최적화된 코드로 변환한다. 이 프로젝트는 AI 하드웨어의 파편화 문제를 해결하기 위해 LLM 추론을 위한 통합 컴파일 경로를 제공하여 벤더별 커널과 수동 최적화의 필요성을 줄이는 것을 목표로 한다.
이 프레임워크는 Apache TVM 커뮤니티와 관련된 연구자 및 엔지니어 팀에 의해 소개되었으며, 카네기멜론 대학교와 워싱턴 대학교와 같은 기관의 기여가 포함된다. 개발은 2020년대 초반에 엣지 기기부터 데이터 센터에 이르는 다양한 환경에서 머신러닝 모델을 더 이식 가능하고 확장 가능하게 만들기 위한 광범위한 노력의 일환으로 시작되었다. MLC LLM은 자동 최적화 원칙을 기반으로 하며, 연산자 융합, 메모리 계획, 양자화와 같은 기술을 사용하여 수동으로 튜닝된 구현과 비교할 만한 성능을 달성한다.
컴파일 워크플로우
MLC LLM의 핵심은 사전 훈련된 모델을 가져와 배포 가능한 산출물로 변환하는 컴파일 파이프라인에 있다. 이 과정은 PyTorch와 같은 프레임워크나 ONNX와 같은 표준 형식으로 지정된 모델로 시작하여, TVM의 중간 표현을 사용하여 최적화를 적용한다. 여기에는 NVIDIA GPU용 CUDA 커널, Apple 실리콘용 Metal 커널, 기타 가속기용 Vulkan 또는 OpenCL 커널의 자동 생성이 포함된다. 컴파일된 출력은 원래 훈련 스택 없이도 대상 기기에서 실행되는 런타임으로 패키징될 수 있다.
주요 기능 중 하나는 LLM 추론에서 가변 입력 길이로 인해 흔히 발생하는 동적 형태에 대한 지원이다. MLC LLM은 변화하는 텐서 차원에 적응할 수 있는 코드를 생성하여 이를 처리하며, 이는 전통적인 정적 컴파일에서 중요한 과제이다. 또한 이 프레임워크는 Hugging Face 생태계와 통합되어 사용자가 transformers 라이브러리에서 직접 모델을 가져올 수 있게 하여 실무자의 워크플로우를 단순화한다.
하드웨어 지원
MLC LLM은 LLM 배포를 더 접근 가능하게 만들기 위해 광범위한 하드웨어를 대상으로 한다. ROCm을 통한 AMD GPU, oneAPI를 통한 인텔 GPU, Metal을 사용하는 Apple 기기용 백엔드를 포함한다. 모바일 및 임베디드 시스템의 경우 ARM 기반 프로세서와 기타 저전력 가속기를 지원한다. 또한 이 프로젝트는 AWS Trainium 및 Groq 하드웨어와 같은 특수 훈련 및 추론 칩에 대한 실험적 지원을 제공하지만, 이들은 주류 백엔드만큼 성숙하지는 않다.
프레임워크의 유연성은 클라우드 환경으로 확장되며, NVIDIA T4 또는 A100 GPU가 장착된 AWS 인스턴스와 TVM 스택을 통한 Google Cloud의 TPU에서 실행될 수 있다. 이러한 폭넓은 지원은 생성형 AI 산업에서 흔한 문제인 각 플랫폼에 맞춰 배포 코드를 다시 작성해야 하는 벤더의 필요성을 없애는 것을 목표로 한다.
주요 기능 및 최적화
MLC LLM의 주목할 만한 기능 중에는 투기적 디코딩이 있는데, 이는 여러 토큰을 초안으로 작성하고 병렬로 검증하여 추론을 가속화하는 기술로, 자기회귀 모델의 처리량을 향상시킨다. 또한 4비트 및 8비트 정수 양자화와 같은 다양한 양자화 방식을 지원하여 메모리 사용량을 줄이고 리소스가 제한된 기기에서 속도를 높인다. 이러한 최적화는 대상 하드웨어의 기능에 따라 컴파일 중에 자동으로 적용된다.
이 프로젝트는 Rust와 C로 작성된 고성능 런타임을 포함하여 실행 중 낮은 오버헤드를 보장한다. 또한 Python용 API와 명령줄 인터페이스를 제공하여 연구자와 프로덕션 개발자 모두에게 적합하다. 2024년 기준으로 MLC LLM은 Llama 2 및 Mistral과 같은 모델을 노트북과 스마트폰에서 대화형 속도로 실행하는 데 사용되어 실용적 가치를 입증했다.
Apache TVM과의 관계
MLC LLM은 원래 워싱턴 대학교 연구자들이 개발한 오픈소스 딥러닝 컴파일러인 Apache TVM 프로젝트와 밀접하게 연결되어 있다. TVM은 그래프 수준 및 연산자 수준 최적화를 위한 기반 인프라를 제공하며, MLC LLM은 키-값 캐시 및 어텐션 메커니즘 처리와 같은 LLM 워크플로우에 특화된 고수준 추상화로 이를 확장한다. 이러한 관계 덕분에 MLC LLM은 TVM의 성숙한 컴파일 패스와 산업계 및 학계의 기여자를 포함한 활발한 커뮤니티를 물려받을 수 있다. 이 협력은 수동 커널 엔지니어링보다 컴파일러 기반 접근 방식으로 향하는 머신러닝의 광범위한 추세를 보여준다.
커뮤니티 및 채택
이 프로젝트는 Apache 2.0 라이선스 하에 GitHub에서 호스팅되어 전 세계 개발자 기반의 기여를 장려한다. 문서, 튜토리얼, 사전 컴파일된 모델이 제공되어 신규 사용자의 진입 장벽을 낮춘다. MLC LLM은 버클리 AI 연구소와 스탠포드 AI 연구소의 연구자들이 효율적인 추론 실험을 위해 채택했으며, 이종 하드웨어 플릿에 LLM을 배포하는 기업을 위한 실용적인 도구로도 사용된다. 개발은 인공지능 커뮤니티에서 자원이 풍부한 조직을 넘어 고급 모델에 대한 접근을 민주화하려는 지속적인 노력과 일치한다.
프레임워크는 계속 진화하며, 최신 모델 아키텍처와 하드웨어 지원을 추가하는 정기적인 업데이트가 이루어진다. 처음에는 추론에 초점을 맞추었지만, 이러한 기술은 훈련 워크로드로 확장될 수 있으며, 이는 여전히 활발한 연구 영역이다.
한계 및 향후 방향
장점에도 불구하고 MLC LLM은 컴파일러 엔지니어링의 복잡성으로 인해 기술에 덜 익숙한 사용자를 어렵게 할 수 있는 문제에 직면해 있다. 성능 향상은 하드웨어에 따라 달라지며 최적의 결과를 위해 컴파일 플래그 튜닝이 필요할 수 있다. 팀은 오래된 기기나 오픈 드라이버가 없는 독점 가속기와의 호환성 문제를 인정한다. 향후 작업은 성능 튜닝의 자동화 개선, 노키아 벨 연구소 관련 칩과 같은 신흥 하드웨어 지원 확장, 엣지 배포 프레임워크와의 통합을 목표로 한다. 프로젝트의 성공은 딥러닝 생태계 전반의 지속적인 협력과 컴파일러 연구에 대한 지속적인 투자에 달려 있다.