MLC-LLM으로 iOS에서 로컬 LLM(Gemma 3) 실행하기
(blog.devstory.co.kr)Gemma 3 모델을 MLC-LLM을 통해 iOS 기기에서 로컬로 구동하는 방법과 실구동 성능 지표를 정리한 포스팅입니다.
요약
- MLC-LLM 활용: Metal API 가속을 통해 모바일 기기에서도 지연 시간(Latency)이 거의 없는 쾌적한 추론 환경 구축
- Gemma 3 1B 빌드 과정: Hugging Face 모델 다운로드부터 q4f16_1 양자화, 대화 템플릿(gemma3_instruction) 적용 및 Metal 커널 컴파일까지의 전체 워크플로우 가이드
-
성능 및 리소스 지표:
- Gemma 2 2B: 약 2.4GB VRAM 점유
- Gemma 3 1B: 약 1.14GB VRAM 점유
-
실행 팁:
mlc-package-config.json설정을 통해 커스텀 모델을 Xcode 프로젝트에 패키징하는 방법 포함
평가
- MLC-LLM을 활용하면 고성능 LLM을 iOS 기기에 직접 이식하여 개인 정보 보호와 오프라인 실행이라는 장점을 모두 챙길 수 있음
- JSON 포맷과 같이 구조화된 응답을 생성하는 것을 다소 어려워하는 모습을 보임
- 복잡한 시스템 프롬프트가 필요한 기능이나 데이터 추출 업무에 활용하기 위해서는 프롬프트 엔지니어링이나 추가적인 파인튜닝 등의 보완 작업이 필요해 보임
- 앞으로 모델 전용 파이프라인 연결과 프로젝트 최적화 작업이 병행된다면, 더욱 실용적인 On-Device AI 서비스를 구축할 수 있을 것으로 기대됨
어느 부분에서 아쉬운건지 궁금합니다.
모델이 너무 작아 llm 성능이 아쉬운 것인지, 아니면 로컬에서 실행시킬 때 실행퍼포먼스가 아쉬운 것인지 궁금합니다.
갤럭시 노트20에는 좀더 낮은 사양의 CPU에서 잘 동작하는(잘 최적화된) 모델이 나오기 전까지는 원활히 쓰기는 힘들지 않을까요?
위에서 나온 내용을 보면 Mac 전용 Metal 커널용으로 만들었다고 되어 있습니다.
MLX를 사용하면 일반 GGUF 보다 빠른 로딩과 실행이 가능한 것으로 알고 있습니다.