Machine learning on Apple platforms (feat. WWDC 2024)
안녕하세요. 그린입니다 🍏
이번 포스팅에서는 애플 플랫폼상의 머신 러닝 프레임워크에 대한 소개를 WWDC 2024 영상을 통해 같이 이해해보겠습니다 🙋🏻
Explore machine learning on Apple platforms
Apple OS와 앱이 제공하는 다양한 혁신적인 기능 근간엔 머신 러닝과 AI 모델이 있습니다.
공간 컴퓨팅을 위한 제스쳐 인식, 인물 사진 모드 지원, 심전도 및 심박수 모니터링이 그 예시죠.
이 모든건 머신 러닝과 AI 모델에 의해 구현할 수 있고 이런 기능을 구동하는 모델은 오로지 디바이스에서만 가능합니다.
그래서 애플은 사용자 데이터를 기기에 보관하기 때문에 개인정보 보호를 강화하고 더 빠르게 상호 작용할 수 있게 만들어 냈습니다 😃
온디바이스 머신 러닝은 애플 실리콘의 강력한 성능 때문에 버벅이지 않고 가능하다고 해요.
통합 메모리가 CPU, GPU, Neural Engine의 ML 액셀러레이터와 결합해 지연 시간이 짧고 효율적인 추론을 가능하게 합니다.
Apple Intelligence
OS에 이미 내장된 애플 인텔리전스를 알아보죠.
다들 알겠지만, 이번 iOS 18부터는 애플 인텔리전스를 통해 많은 발전을 이뤘습니다.
이런 글쓰기에서도 어조와 명확성을 위해 텍스트를 다듬어주고 요약해주는 등 사용자가 더 편리하고 원하는걸 취해줄 수 있도록 커뮤니케이션을 AI가 도와줍니다.
더 자세히 알아보려면 WWDC 2024의 Get started with Writing Tools 세션을 참고하세요ㅎㅎ
또한 Image Playground도 AI를 사용할 수 있어요.
이미지 제작 기능을 앱에 쉽게 통합할 수 있죠.
모델을 훈련시키거나 설계할 필요가 없어요.
코드 몇줄로 사용자가 이미지를 생성하고 내장할 수 있게 해주는 이미 제작된 UI를 이용할 수 있죠.
또한 모델이 기기에서 로컬로 실행되기에 클라우드 비용 같은것을 걱정할 필요 없이 다양한 이미지를 만들 수 있어요.
또한 이번에 시리에도 적용되어 더 자연스럽게 대화하고 맥락상 관련성 높은 정보를 제공해줍니다!
이건 이전 포스팅에서 다뤄봤기에 더 자세히는 아래 포스팅을 보면 됩니다 😃
ML-powered APIs
사용자는 이제 앱에서 최소한의 변경만으로 더 많은 기능을 제공해줄 수 있어요.
모델을 정적으로 처리할 필요 없이 이를 지원하는 다양한 API와 프레임워크를 사용할 수 있죠.
Vision 프레임워크는 텍스트 추출, 얼굴 인식, 자세 인식 등 시각적 인텔리전스를 위한 다양한 기능을 제공해줍니다.
통합의 간소화를 위해 Swift 6와 호환되는 새로운 Swift API가 출시되었어요.
Vision에서 더 자세히 알아보려면 WWDC 2024의 Discover Swift enhanced in the Vision framework 세션을 참고하세요!
Vision 외에도 자연어를 처리하고 음성을 텍스트로 변환하고 소리를 분석 및 식별할 수 있는 추가 프레임워크들이 존재합니다.
WWDC 2021부터 줄곧 소개되고 있으니 찾아보셔도 좋을것 같아요ㅎㅎ
여기다 이번 WWDC 2024에선 새로운 언어 번역 프레임워크가 도입되었습니다.
이제 앱에서 프로그래밍 방식으로 실행할 수 있는 간단한 번역 UI를 통해 언어 간 직역이 가능합니다.
텍스트 번역 뿐 아니라 번역된걸 바로 UI에 보여줄 수 있는 API도 제공됩니다.
관련해서 WWDC 2024의 Meet the Translation API를 참고해보면 번역 관련된것에 도움을 더 받을 수 있어요.
애플의 ML 기반 API는 앱에서 쉽게 활용할 수 있는 정말 많은 기능을 제공합니다.
혹시 특정 상황에 맞게 모델을 맞춤화하려면 CreateML이 정말 훌륭한 도구입니다.
Create ML을 사용하면 자체 데이터로 프레임워크를 지원하는 모델을 커스텀할 수 있어요.
템플릿을 선택하고 몇 번의 클릭으로 데이터로 모델을 훈련 및 평가를 반복 실행할 수 있습니다.
해당 관련 프레임워크는 모든 플랫폼상의 응용 프로그램 내에서 모델을 훈련할 수 있는 기능을 제공해줍니다 😃
원래부터 CreateML은 있어왔지만, 올해에는 새롭게 추가된 기능이 있어요.
객체 추적 템플릿이 포함되어 visionOS에서 공간 경험을 앵커링할 참조 객체를 훈련시킬 수 있습니다.
또한 이제 데이터 주석을 탐색하고 검토하는것이 쉬워졌어요.
createML과 올해 추가된 것들에 대해 더 자세히 알고 싶다면 WWDC 2024의 What's new in Create ML 세션이 도움될거에요.
Running models on device
이제 기기에서 모델을 실행하는 방법을 살펴볼께요.
위와 같이 다양한 모델을 여러 기기에서 실행할 수 있습니다.
해당 흐름이 모델을 기기에서 실행하기 위한 작업도라고 보시면 됩니다 🙋🏻
애플 기기에 모델을 배포하려면, 첫번째로 모델 아키텍처를 정의하고 학습 데이터를 제공해 모델을 학습시켜야하죠.
애플 실리콘 기반 Mac의 통합 메모리 아키텍쳐를 최대한 활용해 위와 같은 학습 라이브러리를 통해 학습시킬 수 있어요.
모두 Apple GPU에서 효율적 학습을 위해 Metal을 사용합니다.
macOS에서 모델을 훈련시키는 방법을 더 자세히 보고 싶다면 WWDC 2024의 Train your machine learing and AI models on Apple GPUs를 참고하세요.
두번째로, 배포를 위해 모델을 core ML 형식으로 변환해야 합니다.
해당 단계에선 모델 표현과 매개변수를 최적화해 정확도 유지하면서 뛰어난 성능을 달성합니다.
어떤 PyTorch 모델에서든 시작할 수 있어요.
그런 다음 Core ML을 사용해 Core ML 모델로 변환이 필요하죠.
이 시점에서 Core ML 도구 모델 최적화 툴킷의 다양한 압축 기법을 사용해 애플 하드웨어에 맞게 모델 최적화가 가능합니다.
올해에 Core ML 툴은 새로운 모델 압축 기술, 모델에서 상태를 표현하는 기능, 트랜스포머 관련 작업, 하나의 모델에 여러 기능을 포함할 수 있는 방법들이 새로 도입되었습니다.
더 자세히 알아보려면 WWDC 2024의 Bring your machine learing and AI models to Apple silicon 세션을 참고하세요.
마지막으로, 준비된 모델을 로드하고 실행하기 위해 애플 프레임워크와 통합하는 코드를 작성합니다.
이 단계에선 OS 프레임워크와 상호 작용하는 코드를 작성해야 합니다.
Core ML은 애플 기기에 모델을 배포하기 위한 게이트웨이이며 수천 개의 앱에서 사용자에게 극적인 경험들 제공하기 위해 사용되고 있어요.
여기서 Xcode 통합을 통해 개발 작업 흐름을 간소화 시킵니다.
Core ML은 하드웨어 활용을 극대화 하기 위해서 CPU, GPU, Neural Engine에서 모델을 자동으로 분할합니다.
Core ML을 이용해 머신 러닝 및 AI 모델을 온디바이스로 배포하는걸 더 자세히 알아보려면 아래 영상을 참고하세요!
여기선 모델을 서로 연결하는 연산 글루 코드를 간소화하도록 설계된 MLTensor 유형도 소개해줍니다.
Core ML은 모델을 온디바이스로 배포하는데 가장 많이 사용되는 프레임워크지만, 머신 러닝 작업 실행에 있어 보다 세밀하게 제어해야 하는 경우가 있을 수 있어요.
방대한 그래픽 처리가 필요한 앱일 경우 Metal의 MPS Graph를 사용하면 다른 워크로드와 함께 ML 작업의 시퀀스를 설정해 GPU 활용을 최적화 할 수 있습니다.
또는 CPU에서 실시간 신호 처리를 실행하는 경우 Accelerate의 BNNS Graph API는 ML 작업에 대한 엄격한 지연 시간 및 메모리 관리 기능을 제공해줍니다.
MPS Graph는 Metal performance Shaders 기반으로 구축되어 Metal을 사용해 Core ML 모델을 로드하거나 프로그래밍 방식으로 그래프를 빌드, 컴파일, 실행할 수 있어요.
컴퓨팅 및 메모리 대역폭을 개선하기 위한 MPS Graph의 새로운 기능을 포함해 GPU에서 트랜스포머를 효율적으로 실행하는 방법을 아래 영상을 통해 더 자세히 살펴볼 수 있습니다.
BNNS Grapsh는 CPU에서 머신 러닝 모델을 최적으로 실행하기 위한 Accelerate 프레임워크의 새로운 API에요.
기존 BNNS 커널 기반 API보다 성능이 더 향상되었고, Core ML 모델과 함께 작용해 CPU에서 지연 시간이 극히 짧은 실시간 추론이 가능해졌습니다.
오디오 처리 같은것에 아주 유용하죠.
더 관심이 있다면 아래 영상을 참고해보세요!
애플 프레임워크와 API는 로컬에서 머신 러닝 및 AI 모델에 대한 추론을 실행하는데 필요한 모든것을 제공해 애플 실리콘의 하드웨어 가속으로 얻는 이점을 아주 잘 활용합니다.
도메인 API와 함께 앱에서 애플 플랫폼의 다양한 ML 도구 및 API에 액세스 합니다.
필요 및 사용자 경험에 따라 애플 모델이 제공하는 간단한 기본 API로 시작하거나 애플 프레임워크를 사용해 머신 러닝 및 AI 모델을 직접 배포할 수 있습니다.
Research
애플은 계속 이 분야에서도 발전시켜나가고 있다고 합니다.
AI 모델과 온디바이스 최적화에 대한 여러 접근 방식을 담은 논문을 수백편 발표했어요.
또한 오픈 소스를 통해 제공해주고 있습니다.
MLX는 애플 머신 러닝 연구진이 다른 연구진들을 위해 설계했다고 합니다.
연구진들이 애플 실리콘에서 새로운 아이디어를 탐색할 수 있도록 친숙하고 확장 가능한 API를 제공합니다.
CPU와 GPU에서 효율적인 작업이 가능하게 하는 통합 메모리 모델을 기반으로 구축되어 있으며 MLX 탐색은 Python, C++, Swift로 수행할 수 있어요.
이 오픈 소스 커뮤니티는 아래 깃헙으로 같이 참여할 수 있습니다!
마무리
노벨 물리상, 화학상도 이제 AI 관련이 휩쓸정도로 더 이상 다른 분야의 얘기가 아니게 된것 같습니다 🥲
슬슬 chatGPT 사용으로 끝내는게 아니라 좀 공부를 해야할것 같아서 시작해봅니다ㅎㅎ