Core ML
다른 이름: CoreML, Apple Core ML
업데이트
정의
Core ML은 앱 안에서 머신 러닝 모델을 기기에서 실행하기 위한 Apple의 프레임워크입니다. CPU, GPU, Neural Engine을 사용하며, 예측을 하는 데 네트워크 연결이 필요하지 않습니다.
Core ML은 2017년 macOS 10.13과 iOS 11부터 Apple 시스템의 일부였습니다. 앱이 모델과 오디오, 이미지, 텍스트 같은 입력을 넘기면 Core ML이 모델의 답을 돌려줍니다. 연산을 어디에서 할지는 Core ML이 결정합니다.
Core ML은 설치하거나 여는 것이 아닙니다. macOS의 일부입니다. 이 이름은 앱 설명이나 모델 파일 이름에서, 또는 다운로드에 Core ML 가중치가 들어 있다고 할 때 보게 됩니다.
하는 일
Apple의 설명: Core ML은 모든 모델을 위한 통합된 표현을 제공하며, 앱은 이를 사용해 예측을 하고 모델을 훈련하거나 미세 조정합니다. 이 모든 것이 사용자의 기기에서 이루어집니다.
성능에 대해 Apple은 Core ML이 CPU, GPU, Neural Engine을 활용하여 기기 내 성능을 최적화하면서 메모리 사용량과 전력 소비를 최소화한다고 말합니다. Neural Engine은 이런 종류의 연산을 위해 만들어진 Apple 칩의 일부이며, 앱이 Neural Engine을 사용하는 일반적인 방법이 Core ML입니다.
기기 내 실행이 중요한 이유
Apple이 직접 그 이유를 밝힙니다. 모델을 사용자의 기기에서만 실행하면 네트워크 연결이 전혀 필요 없으므로, 사용자의 데이터를 비공개로 유지하고 앱의 반응성을 유지하는 데 도움이 됩니다.
음성의 경우, 오디오가 텍스트가 되기 위해 Mac을 떠날 필요가 없다는 뜻입니다. 특정 앱이 실제로 오디오를 Mac에 두는지는 앱에 달려 있지만, 프레임워크가 이를 가능하게 합니다.
파일 유형
Core ML 모델에는 세 가지 형태가 있으며, 확장자를 보면 어떤 형태인지 알 수 있습니다.
- `.mlmodel`: 원래의 모델 정의 파일입니다.
- `.mlpackage`: 가중치를 프로그램과 분리해 보관하는 새로운 패키지 형식입니다. Xcode 13부터 지원됩니다.
- `.mlmodelc`: 컴파일된 모델로, 앱이 불러오는 형태입니다. 앱이나 앱의 다운로드 안에 이 확장자로 끝나는 폴더가 있다면 바로 실행할 수 있는 Core ML 모델입니다.
모델의 출처
대부분의 모델은 다른 도구로 훈련한 뒤 변환합니다. Apple은 이를 위해 Core ML Tools를 공개하고 있으며, 이 도구로 PyTorch나 TensorFlow 같은 훈련 라이브러리의 모델을 Core ML 형식으로 변환합니다.
같은 도구로 변환 과정에서 양자화나 팔레트화로 모델을 압축할 수 있으며, 그러면 모델이 작아지고 Neural Engine에서 더 빨라지는 경우가 많습니다.
Core ML과 MLX
Apple은 두 프레임워크를 다르게 설명합니다. Core ML은 모델을 앱에 통합하기 위한 것입니다. MLX는 Apple 실리콘에서 생성형 모델을 실험하고, 훈련하고, 미세 조정하기 위한 오픈 소스 배열 프레임워크입니다. Apple의 문서에 따르면 MLX는 CPU와 GPU에서 실행되고, Core ML은 Neural Engine도 사용할 수 있습니다.
Apple의 페이지는 이제 최신 모델 아키텍처로 작업하는 개발자에게 별도의 프레임워크인 Core AI도 안내합니다. Core ML은 여전히 앱에서 모델을 실행하는 오래된 방법입니다.
자주 묻는 질문.
Core ML은 어디에 사용하나요?
Apple 기기의 앱 안에서 머신 러닝 모델을 실행하는 데 씁니다. 데이터를 서버로 보내지 않고 음성 인식, 이미지 분류, 텍스트 읽기 같은 작업을 합니다.
Core ML에는 인터넷이 필요한가요?
아니요. Apple에 따르면 모델을 기기에서만 실행하면 네트워크 연결이 전혀 필요 없습니다.
Core ML은 Neural Engine을 사용하나요?
예. Apple에 따르면 Core ML은 CPU, GPU, Neural Engine을 활용합니다.
.mlmodelc 파일이란 무엇인가요?
컴파일된 Core ML 모델로, 앱이 불러와 실행하는 형태입니다.
Core ML과 MLX의 차이는 무엇인가요?
Apple은 Core ML을 모델을 앱에 통합하는 방법으로, MLX를 Apple 실리콘에서 생성형 모델을 실험하고 미세 조정하기 위한 배열 프레임워크로 설명합니다. Core ML은 Neural Engine을 사용할 수 있고, MLX는 CPU와 GPU에서 실행됩니다.
Intel 기반 Mac에도 Core ML이 있나요?
예. Core ML은 버전 10.13부터 macOS의 일부입니다. Neural Engine은 Apple 실리콘에만 있으므로, Intel 기반 Mac에서는 CPU와 GPU를 사용합니다.