Explore machine learning on Apple platforms세션을 정리한 글입니다.
공간 컴퓨팅을 위한 제스처 인식, 이미지 캡처 시 인물 사진 모드 지원, 건강을 위한 심전도 및 심박수 모니터링,등 수많은 혁신적인 기능의 근간에는 첨단 머신 러닝과 AI 모델이 있습니다
머신 러닝과 AI 덕분에 이 모든 기능을 구현할 수 있으며, 이러한 기능을 구동하는 모델은 온전히 기기에서만 실행됩니다
따라서 사용자 데이터를 기기에 보관하여 개인정보 보호를 강화하는 동시에 빠르고 효율적으로 상호 작용하는 경험을 제공할 수 있습니다
온디바이스 머신 러닝은 Apple Silicon의 강력한 성능 덕분에 가능합니다
Apple Inteligence
Apple Intelligence를 통해 흥미로운 발전이 이루어졌습니다
Writing Tool
글쓰기 도구와 같이 이러한 기능 중 상당수는 앱 내에서 사용할 수 있습니다
글쓰기 도구는 어조와 명확성을 위해 텍스트를 다시 작성하고 실수를 교정하고, 핵심 사항을 요약하여 사용자가 더욱 효과적으로 커뮤니케이션할 수 있도록 도와줍니다
텍스트는 Apple Intelligence의 새로운 언어 기능을 사용하여 처리되며 앱에서 이미 사용 중인 시스템 텍스트 및 웹뷰와 원활하게 통합됩니다
Image Playground
Image Playground를 사용하면 이미지 제작 기능을 앱에 손쉽게 통합할 수 있습니다
모델을 훈련시키거나 안전 방침을 설계할 필요가 없습니다
코드 몇 줄 만으로 사용자가 이미지를 생성하고 내장할 수 있게 해주는 사전 제작된 UI를 이용할 수 있습니다
또한 모델이 기기에서 로컬로 실행되므로 사용자는 비용 걱정 없이 다양한 이미지를 원하는 만큼 만들 수 있습니다
Siri
올해 Siri에 적용된 획기적인 개선 사항 덕분에 Siri와 한층 자연스럽게 대화할 수 있고 Siri가 맥락상 관련성 높은 정보를 제공하며 더 친밀해졌습니다
App Intent 프레임워크를 사용하여 이러한 새로운 Siri 기능으로 앱을 향상시킬 수 있습니다.
또한 Apple 플랫폼의 주요 앱에 대한 Siri 환경을 개선하여 앱들이 더욱 강력하고 유연하며 스마트해졌습니다
ML-powered APIs
자체 스마트 기능을 제공하려는 경우 모델을 정적으로 처리할 필요 없이 이를 지원하는 다양한 API와 프레임워크를 사용할 수 있습니다
Vision 프레임워크는 텍스트 추출, 얼굴 인식 신체 자세 인식 등 시각적 인텔리전스를 위한 다양한 기능을 제공합니다
통합을 간소화하기 위해 올해 Vision을 위한 Swift 6과 호환되는 새로운 Swift API를 출시
또한 Vision에는 신체 자세 요청과 미적 점수 요청에 손 포즈 감지 기능도 도입
Vision 외에도 자연어를 세분화하여 이해하고 음성을 텍스트로 변환하고 소리를 분석 및 식별할 수 있는 추가 프레임워크가 있습니다
올해에는 앱에 직접 통합할 수 있는 새로운 언어 번역 프레임워크도 도입됩니다
이제 앱에서 프로그래밍 방식으로 실행할 수 있는 간단한 번역 프레젠테이션 UI를 통해 언어 간 직접 번역을 수행할 수 있습니다
Apple의 ML 기반 API는 앱에서 쉽게 활용할 수 있는 수많은 기능을 제공합니다
모델을 맞춤화해야 하는 경우 Create ML은 아주 유용한 도구입니다
Create ML 앱을 사용하면 자체 데이터로 프레임워크를 지원하는 모델을 맞춤화할 수 있음
먼저 맞춤화하려는 작업에 맞는 템플릿을 선택한 다음 클릭만 몇 번 더 하면 데이터로 모델을 훈련 및 평가하고 이를 반복 실행할 수 있습니다
Create ML 앱 외에도 기본 Create ML 및 Create ML component 프레임워크는 모든 플랫폼상의 응용 프로그램 내에서 모델을 훈련할 수 있는 기능을 제공합니다
새로 추가된 기능으로 Create ML 앱에는 객체 추적 템플릿이 포함되어 있어 visionOS에서 공간 경험을 앵커링할 참조 객체를 훈련시킬 수 있습니다
이제 훈련 전에 데이터 주석을 탐색하고 검토하는 것이 훨씬 쉬워졌습니다
새로운 시계열 분류 및 예측 구성 요소를 프레임워크에서 사용할 수 있어 앱 내에서 통합할 수 있습니다
Running models on device
기기에서 모델을 실행하는 방법에 대해 알아보겠습니다
예를들어 약간 더 고차원적인 사용 사례에 관한 것으로 앱에서 미세 조정 및 최적화한 확산 모델을 사용하거나 Hugging Face와 같은 오픈 소스 커뮤니티에서 다운로드한 대규모 언어 모델을 실행하려는 경우입니다.
개발자 작업 흐름
Apple 기기에 모델을 배포하려면 세 가지 단계를 거쳐야 합니다
첫 번째 단계에서는 모델 아키텍처를 정의하고 올바른 학습 데이터를 제공하여 모델 학습시키기에 집중합니다
다음으로 배포를 위해 모델을 Core ML 형식으로 변환합니다
이 단계에서는 모델 표현과 매개변수를 최적화하여 정확도를 유지하면서 뛰어난 성능을 달성합니다
마지막으로, 준비된 모델을 로드하고 실행하기 위해 Apple 프레임워크와 통합하는 코드를 작성합니다
[Train 학습단계]
Apple Silicon 기반 Mac의 통합 메모리 아키텍처를 최대한 활용하여 PyTorch TensorFlow, JAX 및 MLX와 같은 학습 라이브러리를 사용하여 고성능 모델을 설계하고 학습시킬 수 있습니다
이들 모두는 Apple GPU에서 효율적인 학습을 위해 Metal을 사용합니다
Metal에서 스케일 내적 어텐션(scaled dot product attention)에 대한 향상된 훈련 효율성
PyTorch에서 사용자 정의 Metal 연산을 통합하는 방법
JAX에 새로 추가된 혼합 정밀도 지원에 대해 설명합니다
[Prepare 준비단계]
Core ML 도구를 사용하여 몇 단계만 수행하면 학습된 모델을 Core ML 형식으로 변환할 수 있습니다
어떤 PyTorch 모델에서든 시작할 수 있습니다
그런 다음 Core ML 도구를 사용하여 Core ML 형식으로 변환할 수 있습니다
이 시점에서 Core ML 도구 모델 최적화 툴킷의 다양한 압축 기법을 사용하여 Apple 하드웨어에 맞게 모델을 최적화할 수도 있습니다
Core ML 도구의 최신 개선 사항으로
새로운 모델 압축 기술
모델에서 상태를 표현하는 기능 트랜스포머 관련 작업
하나의 모델에 여러 기능을 포함할 수 있는 방법이 도입됨
[Integrate - 모델통합단계]
Core ML은 Apple 기기에 모델을 배포하기 위한 게이트웨이이며 수천 개의 앱에서 사용자에게 놀라운 경험을 제공하기 위해 사용되고 있습니다
뛰어난 사용자 경험을 위한 필수적인 성능을 제공하면서도 Xcode 통합을 통해 개발 작업 흐름을 간소화합니다
Core ML은 하드웨어 활용도를 극대화하기 위해 CPU, GPU Neural Engine에서 모델을 자동으로 분할합니다
모델을 서로 연결하는 연산 Glue Code를 간소화하도록 설계된 새로운 MLTensor 유형에 대해 소개합니다
상태 정보가 있는 대규모 언어 모델을 효율적으로 디코딩하기 위해 키-값 캐시를 관리하는 방법을 알아보고,
런타임 시 이미지 생성 모델에서 특정 스타일 어댑터를 선택하기 위한 함수 사용법을 살펴봅니다
마지막으로, 성능 보고서가 업데이트되어 모델의 각 작업에 드는 비용에 대한 더 많은 인사이트를 제공합니다
자세한 설명은 `Deploy machine learning and AI models on-device with Core ML` 세션을 참고하라고 하네요
Core ML은 모델을 온디바이스로 배포하는 데 가장 많이 사용되는 프레임워크이지만 머신 러닝 작업 실행에 있어 보다 세밀하게 제어해야 하는 경우가 있을 수 있습니다
예를 들어, 방대한 그래픽 처리가 필요한 앱의 경우 Metal의 MPS 그래프를 사용하면 다른 워크로드와 함께 ML 작업의 시퀀스를 설정하여 GPU 활용을 최적화할 수 있습니다
또는 CPU에서 실시간 신호 처리를 실행하는 경우 Accelerate의 BNNS Graph API는 ML 작업에 대한 엄격한 지연 시간 및 메모리 관리 제어 기능을 제공합니다
이러한 프레임워크는 Core ML의 기초를 구성하며 사용자가 직접 액세스할 수도 있습니다
MPS Graph는 Metal Performance Shaders를 기반으로 구축되었으며 Metal을 사용하여 Core ML 모델을 로드하거나 프로그래밍 방식으로 계산 그래프를 빌드, 컴파일 및 실행할 수 있습니다
컴퓨팅 및 메모리 대역폭을 개선하기 위한 MPS Graph의 새로운 기능을 포함해 GPU에서 트랜스포머를 효율적으로 실행하는 방법은
`Accelerate machine learning with metal` 을 참고하라고하네요
BNNS Graph는 CPU에서 머신 러닝 모델을 최적으로 실행하기 위한 Accelerate 프레임워크의 새로운 API입니다
BNNS Graph는 기존 BNNS 커널 기반 API보다 성능이 크게 향상되었습니다
Core ML 모델과 함께 작동하며, 메모리 할당을 엄격하게 제어하면서 CPU에서 지연 시간이 극히 짧은 실시간 추론을 가능하게 합니다
이는 오디오 처리 및 유사한 사용 사례에 적합합니다
Apple 프레임워크와 API는 로컬에서 머신 러닝 및 AI 모델에 대한 추론을 실행하는 데 필요한 모든 것을 제공하여 Apple Silicon의 하드웨어 가속으로 얻는 이점을 최대한 활용합니다
도메인 API와 함께 앱에서 Apple 플랫폼의 다양한 최첨단 머신 러닝 도구 및 API에 액세스할 수 있습니다
필요 및 사용자 경험에 따라 Apple 모델이 제공하는 간단한 기본 API로 시작하거나, 나아가 Apple 프레임워크를 사용하여 머신 러닝 및 AI 모델을 직접 배포할 수 있습니다
Research
MLX는 Apple 머신 러닝 연구진이 다른 연구진들을 위해 설계했습니다
연구진이 Apple Silicon에서 새로운 아이디어를 탐색할 수 있도록 친숙하고 확장 가능한 API를 제공합니다
CPU와 GPU에서 효율적인 작업이 가능하게 하는 통합 메모리 모델을 기반으로 구축되어 있으며 MLX의 탐색은 Python, C++ 또는 Swift로 수행할 수 있습니다
CoreNet은 연구진과 엔지니어를 위해 설계된 강력한 신경망 툴킷입니다
표준 아키텍처부터 새로운 아키텍처까지 광범위한 모델을 훈련하고 다양한 작업을 처리할 수 있도록 확장 또는 축소할 수 있습니다
CoreNet의 일부로 OpenELM이 출시되었습니다 OpenELM은 개방형 학습 및 추론 프레임워크를 갖춘 효율적인 언어 모델 제품군입니다.
이 모델은 이미 오픈 소스 커뮤니티에서 MLX 및 CoreML 형식으로 변환되어 Apple 기기에서 실행되고 있습니다
'iyOmSd > Title: Swift' 카테고리의 다른 글
[Swift] WWDC24 Demystify explicitly built modules (0) | 2024.11.26 |
---|---|
[Swift] WWDC24 Bring expression to your app with Genmoji (0) | 2024.11.24 |
[Swift] WWDC23 Debug with structured logging (2) | 2024.11.20 |
[Swift] WWDC24 Bring your app to Siri (1) | 2024.11.18 |
[Swift] WWDC24 Meet Swift Testing (1) | 2024.11.14 |