Talaria: Apple의 Apple Intelligence를 위한 모델 성능 모니터링 및 최적화 도구
PyTorchKR

이번 WWDC24에서 공개한 AI(Apple Intelligence: Apple의 On-Device 및 Private Cloud에서의 Foundation Model 소개)의 핵심 도구 중 하나로 제시한 Talaria에 대해 별도의 소개 글 및 논문이 있어 간략히 정리해보았습니다. 어차피 사용하지 못할 것 같은 Talaria 자체의 기능 및 사용자 조사에 대한 내용보다는 어떠한 접근들을 하였고, 기술들을 검토 및 적용하였는지를 위주로 살펴보겠습니다.
이 글에서는 앞 부분의 기존 연구들에 대한 소개 및 각 연구들에 대해 인용된 논문들 위주로 살펴보았고, Talaria에 대한 소개는 논문의 그림 소개 및 목차 정도를 소개하는 정도에 그쳤습니다. Talaria 자체에 대해 관심이 있으신 분들께서는 글 가장 아래쪽의 원문 글 및 논문을 참고해주시기를 부탁드립니다.
최적화 도구의 필요성 및 Talaria 소개
사용자 단말 상에서의 머신러닝(On-Device ML)은 서버 및 클라욷가 아닌 개인 단말에서의 모델 추론을 수행하므로써 사용자에게 AI의 경험을 제공하면서도 개인정보를 보호할 수 있는 장점이 있습니다. 하지만, 이러한 개인 단말에는 자원제약이 있어 대규모 모델을 있는 그대로 실행하기는 어려우며, 모델의 크기(Model Size) 및 지연시간(Latency), 전력 소모(Power) 등의 최적화 및 (Trade-offs를 통한) 균형이 필요합니다.
Talaria는 Apple이 모델 최적화를 위해 개발한 최적화 도구로, 모델을 하드웨어에 컴파일 하고, 모델 통계를 인터랙티브하게 시각화하며, 최적화의 영향을 실시간으로 시뮬레이션 할 수 있습니다. 논문에서는 3가지 방법론으로 Talaria를 평가 및 소개하고 있습니다:
- 지난 2년간 800명 이상의 개발자들이 3,600개 이상의 모델을 제출(submit)했던 로그 분석
- Talaria의 20여가지 기능에 대해 26명의 사용자가 유용성을 평가한 사용성 설문(usability survey)
- 가장 활발히 사용한 7명의 사용자를 대상으로 한 Talaria 사용 경험에 대한 정성적 인터뷰(qualitative interview)
Talaria의 필요성: 기존 기법들에 대한 소개
모델 압축 기법들: Model Compression Techniques
양자화(Quantization): 양자화는 모델의 입력, 출력, 가중치 등을 고정밀도 형식(예: fp32)에서 저정밀도 형식(예: fp16, int8, int2 등)으로 변환하는 기법입니다. 이를 통해 모델 크기와 연산량을 줄일 수 있는 장점이 있으며, Talaria에서는 양자화를 주요 압축 기법 중 하나로 사용하고 있습니다. (+ PyTorchKR: 다음은 Talaria 논문에 인용된 양자화[[27]: [2103.13630] A Survey of Quantization Methods for Efficient Neural Network Inference, [40]: [2102.00554] Sparsity in Deep Learning: Pruning and growth for efficient inference and training in neural networks] 기법 관련 논문들입니다. )
가지치기(Pruning) 또는 희소화(Sparsification): 가지치기는 모델에서 중요도가 낮은 파라미터(예: 가중치, 편향)를 제거하여 모델 크기를 줄이는 기법입니다. 현대 신경망은 과도한 매개변수화(overparameterized)가 되어 있어, 일부 파라미터를 제거해도 최종 예측에 미치는 영향이 작다는 것이 이 기법의 동기입니다. Talaria에서는 이 가지치기 기법 또한 지원하고 있습니다. (+ PyTorchKR: 다음은 Talaria 논문에 인용된 희소화[[27]: [2103.13630] A Survey of Quantization Methods for Efficient Neural Network Inference, [40]: [2102.00554] Sparsity in Deep Learning: Pruning and growth for efficient inference and training in neural networks] 기법 관련 논문들입니다.)
팔레타이징(Palettization): 팔레타이징은 모델의 가중치를 미리 계산되거나 학습된 이산 값 집합에 매핑하는 기법입니다. 미술에 사용하는 "팔레트"에서 영감을 얻은 기법으로, 유사한 값들을 하나의 평균이나 근사값으로 매핑한 다음 이를 추론 연산에 사용하는 아이디어입니다. Talaria에서는 앞의 2가지 기법들(양자화, 가지치기)과 함께 팔레타이징도 지원하고 있습니다. (+ PyTorchKR: 다음은 Talaria 논문에 인용된 팔레타이징[[18]: [2108.12659] DKM: Differentiable K-Means Clustering Layer for Neural Network Compression, [93]: [1806.09228] Deep $k$-Means: Re-Training and Parameter Sharing with Harder Cluster Assignments for Compressing Deep Convolutions] 기법 관련 논문들입니다.)
그 외 모델 압축 기법들: (+ PyTorchKR: 다음은 Talaria 논문에 인용된 모델 압축기법에 대한 참고 논문들입니다)
- 지식 증류(KD, Knowledge Distillation): [27]: [2103.13630] A Survey of Quantization Methods for Efficient Neural Network Inference, [33]: [2006.05525] Knowledge Distillation: A Survey, [65]: [1802.05668] Model compression via distillation and quantization
- 효율적 신경망 아키텍처(Efficient Neural Architecture): [[20]: A comprehensive survey on model compression and acceleration | Artificial Intelligence Review , [45]: [1704.04861] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications, [73]: [1801.04381] MobileNetV2: Inverted Residuals and Linear Bottlenecks, [81]: EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks , [87]: [2303.14189] FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization , [98]: [1707.01083] ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices]
- 동적 아키텍처(Dynamic Architectures): [[102]: [2106.02898] Dynamic Resolution Network]
- 위 기법들을 서로 결합한 형태(Combined Together): [[37]: [1510.00149] Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding ]
- 그 외 압축 기법에 대한 서베이 논문들: [[17]: Model Compression and Acceleration for Deep Neural Networks: The Principles, Progress, and Challenges | IEEE Journals & Magazine | IEEE Xplore, [20]: A comprehensive survey on model compression and acceleration | Artificial Intelligence Review, [23]: Model Compression and Hardware Acceleration for Neural Networks: A Comprehensive Survey | IEEE Journals & Magazine | IEEE Xplore, [57]: https://dl.acm.org/doi/abs/10.1145/3578938.
지금까지 일반적으로 AI / ML은 서버 환경에서 실행이 되었기 때문에, 상대적으로 On-Device에서의 모델 실행에 대한 연구 및 모범 사례(Best Practice)는 제한적인 것이 현실입니다. 압축 기법들에 대한 연구는 다소 이뤄지고 있지만, 실제 동작은 PyTorch나 Tensorflow 등과 같은 주요 프레임워크들에서 제공하는 기능들을 활용하는 선에서 이뤄지고 있습니다. On-Device ML을 위한 TinyML 커뮤니티도 형성되어 있지만, 전반적으로 볼 때 실무자들이 압축 기법을 실제 적용하는 데 도움이 되는 일반화된 도구는 부족한 상황입니다.
On-Device 추론 vs. 학습: On-Device Inference vs. On-Device Training
On-Device 학습은 주로 사용자의 데이터를 활용한 개인화 모델 제작 시에 사용하지만, 자주 발생하지는 않습니다. 이에 반해 On-Device 추론은 이미 학습된 모델을 사용자 장치에서 실행하여 사용자의 개인 정보를 보호할 수 있으며, On-Device 학습 대비 훨씬 더 자주 발생합니다. 따라서 이 Talaria는 On-Device 추론에 초점을 맞추고 있습니다.
(+ PyTorchKR: 다음은 Talaria 논문에 인용된 On-Deivce 관련 참고 논문들[[42]:[2310.04621] Model Compression in Practice: Lessons Learned from Practitioners Creating On-device Machine Learning Experiences, [101]: [1905.10083] Edge Intelligence: Paving the Last Mile of Artificial Intelligence with Edge Computing] 및 On-Device Training 관련 서베이 논문들 [[24]:[1911.00623] On-Device Machine Learning: An Algorithms and Learning Theory Perspective, [55]: [1909.11875] Federated Learning in Mobile Edge Networks: A Comprehensive Survey, [60]: [1908.00080] Machine Learning at the Network Edge: A Survey, [101]: Edge Intelligence: Paving the Last Mile of Artificial Intelligence With Edge Computing | IEEE Journals & Magazine | IEEE Xplore] 입니다.)
모델 평가 및 최적화를 위한 시각화: Visualization for Model Evaluation / Optimization
모델 평가에 대한 시각화 도구: 평가를 위한 시각화 도구들은 최적화를 위한 시각화 도구보다는 많이 연구 및 개발되어 왔습니다. 데이터 분류 및 객체 탐지, 전이학습, 자연어 처리 등의 다양한 분야에서 시각화 도구들이 개발되어 왔습니다. 하지만, 이러한 도구들은 주로 데이터셋을 변경하며 정확도(accuracy)나 정밀도(precision), 재현율(recall) 등과 같은 수치를 통해 학습시 보지 못한 데이터에 대해 얼마나 잘 일반화하였는지를 비교/평가하는 것이 주요 목적입니다.
이에 비해 지연시간(latency)이나 전력 소모량(power)과 같은 모델의 효율성에 대해 평가하는 시각화 도구는 그 수가 훨씬 적습니다. 일부 도구들에서는 위의 지표들을 사용하긴 하지만, 최신 모델 최적화 및 압축 기법 들로부터 얻을 수 있는 효율성을 비교하여 알려주지는 않습니다.
모델 최적화를 위한 시각화 도구: 최적화를 위한 시각화 도구는 거의 없다시피합니다. 대부분의 연구는 가지치기(Pruning) 등과 같은 알고리즘 수준의 기법들을 다루고 있으며, 실제 업무에 적용될만한 도구를 찾아보기는 어렵습니다.
Dotter and Ward[25]가 CNN 모델의 분류 작업을 위해 데이터 클러스터를 시각화하는 것과 함께 추론 시간 및 모델 크기와 같은 모델 메트릭을 분석한 연구나, CNNPruner[53]와 같은 도구들이 유사한 시도들입니다. 하지만 이러한 시각화 도구들은 실제 ML 개발자들의 업무 흐름과 요구사항들이 잘 반영되지 않았습니다.
Talaria는 위에서 살펴본 이러한 문제점들을 해결하기 위해 하드웨어와 소프트웨어를 아우르는 효율적인 ML 작업에 대한 총체적인 시각화를 제공하여, 실무자들의 업무에 직접 도움이 되고 있습니다.
Talaria 시스템 개요
Talaria는 하드웨어 제약이 있는 디바이스에서 효율적인 추론을 위해 모델을 최적화하는 데 도움을 주기 위해 설계되었습니다. 사용자들이 모델을 하드웨어에 컴파일하고, 모델 운영을 시각화하며, 다양한 최적화를 적용하여 실시간으로 그 영향을 평가할 수 있는 인터랙티브 시각화 및 최적화 환경을 제공합니다.
주요 기능
-
인터랙티브 테이블 뷰: 저수준 하드웨어 통계를 표시하여 사용자가 계산 비용에 따라 작업을 정렬, 필터링, 검색할 수 있도록 합니다.
-
그래프 뷰: 모델의 계산 그래프를 시각적으로 제공하여 병목 현상을 강조하고 모델 성능에 대한 기하학적 이해를 촉진합니다.
-
모델 전체 및 타겟 최적화: 사용자들이 광범위하고 특정한 최적화를 모두 적용하여 모델 효율성에 대한 영향을 즉시 시각화할 수 있습니다.
-
소스 코드 추적: 하드웨어 작업을 모델의 소스 코드에 매핑하여 최적화를 정확하게 구현할 수 있도록 돕습니다.
-
협업 도구: 공유 및 협업 최적화를 가능하게 하여 팀이 모델 성능을 향상시키기 위해 함께 작업할 수 있게 합니다.
구현 및 아키텍처
Talaria의 프론트엔드는 Vue.js와 D3.js를 사용하여 풍부한 인터랙티브 경험을 제공합니다. 백엔드는 Flask로 개발되어 모델 컴파일 및 최적화 작업을 처리합니다. 시스템은 AWS에 호스팅되어 확장성과 신뢰성을 보장합니다.
Talaria의 장점
- 효율성: 최적화 프로세스를 간소화하여 효율적인 온디바이스 추론을 달성하는 데 필요한 시간과 노력을 줄입니다.
- 시각화: 모델 성능에 대한 명확한 통찰력을 제공하여 실무자들이 정보에 입각한 최적화 결정을 내릴 수 있도록 돕습니다.
- 인터랙티브: 다양한 최적화 전략을 실시간으로 실험할 수 있어 반복적인 개발 과정을 향상시킵니다.
- 협업: 여러 실무자들이 모델 최적화 작업에 기여할 수 있도록 팀워크를 지원합니다.
Talaria 소개 글
Talaria 소개 논문
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~