CoreML은 애플(Apple)이 개발한 머신러닝 프레임워크로, 개발자가 학습된 머신러닝 모델을 앱에 통합할 수 있도록 지원한다. 모든 모델에 대해 통합된 표현 방식을 제공하며, 사용자 데이터를 활용한 예측, 학습, 미세 조정(Fine-tuning) 작업을 모두 사용자의 기기 내에서 직접 수행하는 온디바이스(On-device) 방식을 취한다.

배너 광고

개요

CoreML은 머신러닝 알고리즘을 훈련 데이터 세트에 적용하여 얻은 결과물인 '모델'을 앱에서 활용할 수 있게 한다. 이를 통해 코드로 직접 작성하기 어렵거나 불가능한 복잡한 작업들을 수행할 수 있다. 대표적인 활용 사례로는 사진 분류, 사진 내 특정 객체 탐지 등이 있다.

주요 특징

CoreML의 핵심은 모든 머신러닝 작업을 사용자의 기기 내에서 처리한다는 점이다. 이는 개인정보 보호와 성능 측면에서 이점을 제공한다.

  • 통합된 표현: 다양한 머신러닝 모델을 위한 단일화된 인터페이스를 제공한다.
  • 온디바이스 처리: 외부 서버를 거치지 않고 기기 자체에서 예측 및 모델 학습을 수행한다.
  • 다양한 알고리즘 지원: 신경망(Neural Networks), 트리 앙상블(Tree Ensembles), 서포트 벡터 머신(SVM), 일반화 선형 모델 등을 지원한다.

모델 생성 및 변환

CoreML에서 사용하는 모델은 .mlmodel 확장자를 가진다. 모델을 확보하는 방법은 다음과 같다.

  1. Create ML 활용: Xcode에 포함된 Create ML 앱을 사용하여 사용자 데이터를 기반으로 직접 모델을 훈련시킨다. 여기서 생성된 모델은 즉시 CoreML에서 사용 가능하다.
  2. Core ML Tools 활용: TensorFlow, PyTorch 등 다른 라이브러리에서 학습된 모델을 CoreML 형식으로 변환할 수 있다.
  3. 공개 모델 사용: 애플이 제공하는 오픈 소스 모델이나 연구 기관에서 배포한 모델을 다운로드하여 사용할 수 있다.

앱 통합

학습된 모델을 Xcode 프로젝트에 추가하면, Xcode가 모델의 입력과 출력 정보를 바탕으로 사용자 정의 프로그래밍 인터페이스를 자동으로 생성한다. 개발자는 이 인터페이스를 통해 모델에 데이터를 전달하고 예측 결과를 받아 처리할 수 있다.

참고 자료

5

관련 문서