Apple 온디바이스 3B 모델 LoRA 학습: Colab T4 및 Mac 환경 가이드
요약
본 글은 Apple의 온디바이스(on-device) 3B 모델에 LoRA 어댑터를 학습시키는 과정을 공유합니다. 원래는 정확도 개선과 접근성 확인이 목적이었으며, 메모리 제약 극복을 위해 커스텀 QLoRA 파이프라인을 구축했습니다. 이 방법은 memory-mapped loading과 4-bit 양자화(quantization)를 결합하여 요구 사양을 약 6GB RAM/5GB GPU로 낮췄습니다. 학습 결과, 어댑터는 기본 모델의 성능을 40%에서 75% 이상으로 향상시켰으며, 검색 증강 생성(Retrieval)과 결합 시에는 최대 8
핵심 포인트
- 커스텀 QLoRA 파이프라인을 통해 Apple 온디바이스 3B 모델 학습 요구 사양을 24GB Mac에서 6GB RAM/5GB GPU로 낮추는 방법을 제시했습니다.
- Mac 환경에서는 bitsandbytes가 네이티브 Metal 커널을 통합하여 로컬 학습 속도를 CPU 대비 약 2배 향상시켰습니다.
- LoRA 어댑터 학습은 기본 모델의 성능을 최소 40%에서 최대 75%까지 개선하며, 검색 증강 생성(Retrieval)과 결합 시에는 86%에 도달했습니다.
- 주의할 점으로, CLI 도구 사용 시 어댑터 프레임워크가 SIP 보호 캐시에 약 160MB의 복사본을 저장하는 버그가 발견되었으며, 이는 디스크 공간 누적 문제를 일으킵니다.
최근 Apple 온디바이스(on-device) 3B 모델을 활용한 쉘 어시스턴트 구축 및 정확도 벤치마킹 결과를 공유한 후속 단계로, 본 글은 해당 모델에 LoRA (Low-Rank Adaptation) 어댑터를 학습시키는 방법을 다룹니다. 주된 목적은 단순히 정확도를 개선하는 것을 넘어, Apple의 트레이닝 툴킷 구조를 이해하고 접근 가능한 하드웨어에서 구동 가능성을 검증하는 데 있었습니다.
1. 메모리 제약 극복을 위한 QLoRA 파이프라인 구축
Apple은 12GB 체크포인트를 제공하는 Python 트레이닝 툴킷을 배포하고 있습니다. 표준 LoRA 학습에는 모델 로딩에만 약 24GB, GPU 학습 공간으로 약 15GB가 필요하여 일반적인 24GB Mac 환경에서는 메모리 초과(Out Of Memory, OOM) 문제가 발생합니다.
이를 해결하기 위해 커스텀 QLoRA (Quantized LoRA) 파이프라인을 구축했습니다. 이 방법은 memory-mapped loading 기법과 **4-bit 양자화(quantization)**를 결합하여 요구 사양을 획기적으로 낮췄습니다. 그 결과, 학습 환경을 약 6GB RAM 및 5GB GPU로 줄여, 무료 Colab T4나 로컬 24GB Mac에서도 구동할 수 있게 되었습니다.
2. 플랫폼별 최적화 및 성능 향상
- Mac 전용 학습 환경: bitsandbytes 라이브러리가 네이티브 Metal 커널을 통합하면서 현지(local) 학습 속도가 CPU 폴백 대비 약 2배 빨라졌습니다. 비록 T4 대비는 여전히 느리지만, 데이터를 외부로 업로드할 필요 없이 완전히 로컬에서 작업 가능하다는 큰 장점이 있습니다.
- 학습 결과의 동등성: A100 LoRA, T4 QLoRA, Mac QLoRA 등 세 가지 경로 모두 동일한 성능의 어댑터를 생성하며, 노이즈 범위 내에서는 정확도가 일치함을 확인했습니다.
3. 학습 효과 및 잠재력
최소한의 트레이닝 데이터셋만 사용했음에도 불구하고, LoRA 어댑터는 기본 모델의 성능을 약 40%에서 75% 수준으로 끌어올렸습니다. 여기에 검색 증강 생성(Retrieval) 기법과 결합하면 최대 86%까지 성능이 향상되었습니다. 이는 아직 트레이닝 데이터를 최적화하지 않은 상태이므로, 더 높은 잠재력을 가질 것으로 예상됩니다.
4. 중요 버그 보고 (Bug Report)
사용자들이 반드시 인지해야 할 중요한 버그가 있습니다. 어댑터 프레임워크는 CLI 도구에서 호출될 때마다 약 160MB 크기의 어댑터 복사본을 SIP(System Integrity Protection) 보호 캐시에 조용히 기록합니다. 이 과정에 대한 정리 작업이 없어, 약 300회의 벤치마크 실행만으로도 눈에 보이지 않는 디스크 사용량이 269GB까지 누적되는 문제가 발생했습니다. Apple 측에서도 해당 버그를 공식적으로 확인했습니다.
관심 있는 사용자들을 위해 학습 노트북, QLoRA 스크립트 및 MPS 설정 지침은 GitHub 저장소(https://github.com/es617/hunch/tree/main/training)에 모두 공개되어 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기