Ultralytics YOLO27:

Apple Core AI 통합#

Core AI 내보내기에는 Apple silicon 또는 x86_64 Linux에서 macOS 26 이상이 필요합니다.

coreai-core은 macosx_26_0_arm64 및 manylinux_2_34_x86_64 휠을 게시하므로, Apple silicon Mac과 glibc 2.34 이상을 사용하는 x86_64 Linux에서 내보내기를 실행할 수 있습니다. 내보낸 .aimodel은 iOS 27 및 macOS 27에서 실행됩니다. Ultralytics iOS SDK(8.9.15 이상)와 Flutter 플러그인(0.6.15 이상)은 iOS 27 기기에서 옵트인 방식으로 .aimodel 에셋을 로드하며, Core ML은 기본값으로 유지됩니다.

Core AI는 Apple silicon에서 신경망을 직접 실행하기 위한 Apple의 새로운 프레임워크입니다. .aimodel 모델 형식, 최신 Swift 추론 API, PyTorch 기반 변환 도구, 사전 컴파일, 모델 특수화, 전용 디버깅 및 프로파일링 도구를 제공합니다.

Apple은 Core AI를 온디바이스 AI 실행의 차세대 기술이자 온디바이스 Apple Intelligence를 구동하는 추론 프레임워크라고 설명합니다. 소형 비전 모델부터 대형 생성형 모델까지 최신 신경망 아키텍처를 지원하도록 설계되었으며, CPU, GPU, Apple 신경망 엔진(ANE) 전반에 걸쳐 작업을 예약할 수 있습니다.

Core AI는 Core ML의 새로운 이름이 아니라 새로운 배포 경로입니다. 두 프레임워크는 서로 다른 모델 형식, 변환 도구, 런타임 API, 애플리케이션 통합 패턴을 사용합니다.

Core AI와 Core ML 비교#

기능Core AICore ML
모델 아티팩트.aimodel.mlpackage 또는 .mlmodel
Ultralytics 내보내기format=coreai에서 사용 가능format=coreml에서 사용 가능
Apple 런타임 APIAIModel, InferenceFunction, NDArrayMLModel, 대개 VNCoreMLModel 및 VNCoreMLRequest를 통해 사용
변환 워크플로PyTorch torch.export에서 coreai-torch을 거치는 변환coremltools을 통한 TorchScript 변환
주요 초점최신 신경망 및 생성형 AI신경망 및 비신경망 모델을 포함하는 폭넓은 머신러닝 배포
이미지 통합애플리케이션에서 텐서를 준비하거나 Core AI 이미지 디스크립터와 버퍼를 사용합니다이미지 크기 조정, 방향 처리, 요청을 위한 Vision 프레임워크와의 직접 통합
하드웨어CPU, GPU, Apple 신경망 엔진CPU, GPU, Apple 신경망 엔진
모델 준비설치 시 또는 최초 사용 시 특수화하며, 필요에 따라 사전 컴파일을 수행합니다Xcode 또는 온디바이스 모델 컴파일
사용자 지정 연산사용자 지정 Core AI 로워링 및 Metal 커널Core ML 사용자 지정 레이어 및 지원되는 MIL 연산
배포 가능 여부새로운 Apple 운영 체제 세대에서 지원되며 현재 베타입니다기존 Apple 운영 체제 전반에서 폭넓게 지원됩니다
Ultralytics iOS 및 Flutter SDKiOS 27 이상 기기에서 선택적으로 사용완전히 지원되며 기본값입니다

애플리케이션에서 폭넓은 기기 지원, Vision 프레임워크 통합, 의사 결정 트리 및 표 형식 파이프라인과 같은 모델 유형이 필요한 경우 Core ML이 적합합니다. Apple은 Core ML을 계속 지원하며, 신경망이 아닌 모델 유형을 사용하는 개발자에게 Core ML을 권장합니다.

Core AI 형식의 작동 방식#

Core AI 작성 워크플로는 PyTorch 모델에서 시작합니다.

PyTorch model
    ↓ torch.export
ExportedProgram
    ↓ coreai-torch
Core AI program
    ↓ optimize and save
.aimodel
    ↓ specialize or compile ahead of time
Apple silicon executable

Apple의 coreai-torch 패키지는 PyTorch ATen 연산을 Core AI 연산으로 로워링하여 torch.export.ExportedProgram를 변환합니다. 지원되지 않는 연산은 사용자 지정 로워링 또는 사용자 지정 Metal 커널로 구현할 수 있습니다.

결과로 생성된 .aimodel은 특수화되지 않은 모델 에셋입니다. 애플리케이션이 모델을 준비하면 Core AI가 대상 기기에 맞게 모델을 특수화합니다. 애플리케이션은 최초 사용 시 특수화하도록 두거나, 미리 특수화를 요청하거나, 초기 로딩 시간을 줄이기 위해 사전 컴파일된 모델을 포함할 수 있습니다.

Swift에서 애플리케이션은 Core AI 프레임워크로 에셋을 로드하고, 추론 함수를 선택하고, 형식이 지정된 NDArray 입력을 제공한 다음, 이름이 지정된 출력을 받습니다. 이는 Core ML 모델을 Vision 요청으로 감싸는 방식과 다르므로, Core AI를 도입하려면 .aimodel 에셋용으로 설계된 애플리케이션 런타임이 필요합니다.

구현 세부 정보는 Apple의 AIModel, 모델 특수화 및 캐싱, 사전 컴파일 문서를 참조하세요.

YOLO26 모델을 Core AI로 내보내기#

예시
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="coreai")  # 'yolo26n.aimodel'을 생성합니다
model.export(format="coreai", quantize=16)  # FP16 asset

# 내보낸 모델 실행
coreai_model = YOLO("yolo26n.aimodel")
results = coreai_model("https://ultralytics.com/images/bus.jpg")

전체 인수 목록은 내보내기 모드를 참조하세요. 그래프는 정적이며, export에 지정된 imgsz 크기로 추적되므로 같은 크기로 예측해야 합니다. Ultralytics 메타데이터는 에셋 자체의 metadata.json 내부에 포함되므로 클래스 이름, stride, 태스크가 왕복 과정에서도 유지됩니다.

헤드 선택#

nms=False을 사용하면 YOLO26은 그래프 내에서 탐지를 선택하는 엔드투엔드 헤드를 내보냅니다. Core AI에는 top-k 기본 연산이 없으므로 이 선택 작업은 전체 정렬로 변환되며, Apple 신경망 엔진 파티션 경계에서 고정 비용이 발생합니다. max_det 값과 관계없이 약 1.7ms가 소요됩니다. nms=None로 내보내면 원시 (1, 84, 8400) 예측값이 출력되고 비최대 억제는 예측기에 맡겨집니다.

yolo export model=yolo26n.pt format=coreai nms=None quantize=16

iOS 27.0을 실행하는 iPhone 17 Pro에서 YOLO26n을 640 크기로 실행했을 때, 헤드가 그래프에 포함된 경우 3.01ms, 포함되지 않은 경우 1.28ms가 측정됩니다(FP16, 사전 컴파일, 50회 반복을 세 블록으로 교차 실행). 두 경우 모두 추론 시 YOLO(...)을 거쳐 왕복합니다. 그래프 호출 한 번으로 최종 탐지 결과를 반환해야 한다면 nms=False을 사용하고, 외부 NMS를 적용하려면 기본값인 nms=None를 유지하세요.

iOS 27 또는 macOS 27에서 애플리케이션은 Apple의 Core AI Swift API를 통해 내보낸 에셋을 로드하고 실행합니다. 내보낸 에셋은 진입점 main을 사용하고, [batch, 3, imgsz, imgsz] 형태의 단일 images 입력을 받아 output0을 반환합니다(인스턴스 분할 모델은 output1도 반환합니다).

import CoreAI

let modelURL = Bundle.main.url(forResource: "yolo26n", withExtension: "aimodel")!
let model = try await AIModel(contentsOf: modelURL)
guard let function = try model.loadFunction(named: "main") else {
    throw AppError.missingInferenceFunction
}

let outputs = try await function.run(inputs: ["images": imageTensor])

현재의 Core ML 및 Vision 워크플로와 달리, Ultralytics iOS SDK의 Core AI 경로는 자체적으로 레터박스 전처리 및 NDArray 구성을 수행하고, 에셋의 metadata.json에서 동일한 Ultralytics 메타데이터를 읽으며, Core ML 출력 디코더를 재사용합니다. 앱이 .aimodel 경로 또는 .aimodel.zip URL을 전달하면 로드됩니다. Apple은 Core AI 프레임워크 문서에서 최신 API 세부 정보를 제공하고, Core AI 모델 리포지토리에서 작동하는 모델 예제를 제공합니다.

측정 성능#

기본 raw 헤드(nms=None)를 사용하는 YOLO26n FP16(quantize=16) Core ML 및 Core AI 내보내기의 엔드 투 엔드 단일 이미지 추론 성능입니다. Apple M4(성능 코어 4개, 효율 코어 6개, 10코어 GPU, 16코어 Neural Engine), 메모리 16 GB, macOS 27.0이 탑재된 Mac mini에서 ultralytics 8.4.168, Core ML 추론용 coremltools 9.0, Python 3.13에서 Core AI 추론용 coreai-core 1.0.0b3과 함께 coreai-torch 0.4.3을 사용했습니다. 각 셀에는 총 시간(전처리 + 추론 + 후처리)이 표시되며, 아래에 단계별 시간이 나옵니다.

모델작업크기
(픽셀)
Core ML CPU
CPU_ONLY
(ms)
Core ML CPU + ANE 우선
CPU_AND_NE
(ms)
Core AI CPU
cpu_only()
(ms)
Core AI CPU + ANE 우선
neural_engine()
(ms)
YOLO26n탐지64014.4
0.6 / 13.4 / 0.4
7.6
0.6 / 6.7 / 0.4
16.8
0.6 / 15.9 / 0.3
2.8
0.6 / 2.0 / 0.2
YOLO26n-seg세그먼트64018.7
0.6 / 16.5 / 1.5
9.2
0.6 / 7.1 / 1.5
25.3
0.6 / 23.2 / 1.5
5.1
0.6 / 3.1 / 1.4
YOLO26n-sem의미론적64033.9
1.3 / 32.2 / 0.4
73.7
1.4 / 71.9 / 0.4
47.1
1.2 / 38.5 / 7.4
18.7
1.2 / 11.1 / 6.4
YOLO26n-depth깊이64036.8
0.8 / 35.5 / 0.5
12.1
0.9 / 10.7 / 0.5
40.2
0.8 / 39.0 / 0.5
7.5
0.7 / 6.3 / 0.5
YOLO26n-cls분류2243.8
1.9 / 1.8 / 0.0
3.3
1.9 / 1.4 / 0.0
3.0
1.9 / 1.0 / 0.0
2.4
1.9 / 0.6 / 0.0
YOLO26n-pose자세64015.5
0.6 / 14.6 / 0.3
7.0
0.6 / 6.2 / 0.3
17.8
0.5 / 17.0 / 0.3
2.7
0.5 / 2.0 / 0.2
YOLO26n-obbOBB64032.7
1.3 / 31.1 / 0.2
16.9
1.5 / 15.2 / 0.2
37.2
1.1 / 35.9 / 0.2
5.7
1.3 / 4.3 / 0.1
  • 속도 값은 단일 이미지 버스트 지연 시간입니다. Ultralytics Python API를 통해 bus.jpg에서 워밍업 호출 3회 후 predict 호출 15회의 평균을 측정했으며, 각 모델과 컴퓨팅 유닛은 새 프로세스에서 실행했습니다. 하나의 순차 실행에서 작업 간에 CPU/가속기 순서를 번갈아 적용했습니다. Core ML 행은 coremltools.ComputeUnit.CPU_ONLY 또는 CPU_AND_NE을 사용해 로드합니다. Core AI 행은 SpecializationOptions.cpu_only() 또는 SpecializationOptions.from_preferred_compute_unit_kind(ComputeUnitKind.neural_engine())를 사용해 특수화하며, 최종 연산 배치는 각 프레임워크에서 제어합니다.
  • 모든 컴퓨팅 유닛에서 detect, segment, classify, pose 및 OBB가 두 형식 모두 동일한 예측을 반환했습니다. 이 Mac에서는 Neural Engine을 우선할 때 Core ML FP16 시맨틱 모델이 CPU만 사용할 때보다 느리게 실행되며, Core AI 시맨틱 후처리에는 6.4~7.4 ms가 걸리는 반면 Core ML에는 0.4 ms가 걸립니다.
  • CoreML 통합에서 온디바이스 iPhone 17 Pro 결과를 비교해 보세요.

Core AI의 장점#

Core AI는 향후 Ultralytics 배포에 여러 가지 유망한 이점을 제공합니다.

  • 최신 PyTorch 내보내기 경로: 변환은 torch.export에서 시작하므로, 기존 내보내기 도구에서 흔히 사용하는 추적 워크플로보다 표현력이 높은 PyTorch 그래프를 유지합니다.
  • 세밀한 런타임 제어: 애플리케이션에서 특수화, 컴파일 모델 캐시, 추론 함수, 메모리, 컴퓨팅 배치를 관리할 수 있습니다.
  • 고급 모델 지원: 상태 유지 실행, 동적 형태, 하나의 아티팩트에 포함되는 여러 함수, 사용자 지정 Metal 커널은 최신 비전 및 생성형 아키텍처를 지원하도록 설계되었습니다.
  • 전용 개발자 도구: Core AI Debugger는 그래프와 텐서 값을 검사하고 원본 Python 코드까지 추적할 수 있습니다. Xcode와 Instruments는 런타임 프로파일링을 제공합니다.
  • 복사 없는 처리 기회: Core AI는 카메라, 그래픽, 추론 워크로드 간 복사를 줄이도록 설계된 스토리지 및 버퍼 제어 기능을 제공합니다.
  • Apple silicon 최적화: 기기 특수화를 통해 Apple은 특정 기기에서 사용할 수 있는 CPU, GPU, 신경망 엔진에 맞게 모델을 최적화할 수 있습니다.
  • 유연한 압축: Apple의 Core AI 최적화 도구는 저비트 가중치 형식을 포함해 양자화, 팔레타이제이션, 가지치기를 지원합니다.

이러한 기능은 동적 실행, 더 큰 멀티모달 구성 요소, 기존 Core ML 연산으로 원활하게 매핑되지 않는 사용자 지정 연산을 사용하는 향후 YOLO 모델에 특히 유용할 수 있습니다.

현재 단점 및 제한 사항#

현재 Core AI는 프로덕션 Core ML 경로를 대체할 수 없습니다.

  • 새 운영 체제 필요: 공개 프레임워크는 iOS 27 및 macOS 27 세대를 대상으로 하지만, Core ML은 훨씬 더 많은 기기에서 지원됩니다.
  • 베타 소프트웨어: Apple의 Core AI 프레임워크와 Python 도구 체인의 일부는 아직 초기 단계이며 정식 출시 전에 변경될 수 있습니다.
  • 제한적인 내보내기 환경: coreai-torch은 현재 Python 3.11~3.14와 최신 PyTorch 버전을 요구하므로, Ultralytics가 지원하는 Python 및 PyTorch 버전 범위보다 훨씬 좁습니다.
  • 내보내기 지원 플랫폼 제한: coreai-core은 macosx_26_0_arm64 및 manylinux_2_34_x86_64 휠만 게시하므로, format=coreai을 사용하려면 macOS 26 이상을 실행하는 Apple silicon Mac 또는 glibc 2.34 이상을 사용하는 x86_64 Linux(예: Ubuntu 22.04 이상)가 필요합니다. .aimodel를 실행하려면 여전히 Apple 하드웨어가 필요합니다.
  • Ultralytics SDK에서 선택적으로 제공되며 기본값은 아님: iPhone 17 Pro에서 온디바이스 비교를 수행한 결과, 전체 파이프라인에서 Core AI는 Core ML보다 빠르지 않고 비슷한 수준이며, 시맨틱 및 깊이 추론과 CPU 전용 추론은 더 느립니다. 또한 FP16 에셋은 다운로드 크기가 약 두 배이므로 iOS SDK와 Flutter 플러그인은 Core ML을 기본값으로 유지합니다.
  • SDK에는 원시 헤드를 사용하세요: nms=False을 사용할 경우 Core AI에서 YOLO26n을 실행하는 데 Core ML보다 약 두 배의 시간이 걸립니다(한 비교 실행에서 3.06ms 대 1.53ms). 또한 FP16 엔드투엔드 포즈 모델은 iOS 27.0의 Core AI 기본 배치에서 탐지 결과를 반환하지 않습니다(apple/coreai-torch#115). 원시 헤드(nms=None, 기본값)는 두 문제를 모두 방지하며, SDK는 Swift에서 NMS를 실행합니다. 헤드 선택을 참조하세요.
  • iOS Simulator 런타임 없음: iOS Simulator SDK에는 Core AI가 포함되어 있지 않습니다.
  • 애플리케이션 마이그레이션 필요: .aimodel은 .mlpackage을 대체할 수 없습니다. Ultralytics SDK에서 제공하는 Core AI 구현을 사용하지 않는다면 모델 로딩, 전처리, 추론 호출, 메타데이터 처리, 출력 디코딩을 위한 Core AI 구현이 필요합니다.
  • 프로덕션 검증 사례 부족: 지원되는 YOLO 태스크 및 기기 조합 전반에서 성능, 전력 사용량, 최초 실행 시 특수화 시간, 정확도, 압축을 검증해야 합니다.
  • NMS 파이프라인 없음: Core ML은 구형 YOLO 탐지 모델에 NMS 단계를 포함할 수 있습니다. Core AI는 기본적으로 원시 일대다 예측을 내보내므로, YOLO26의 NMS 없는 헤드에는 nms=False을 사용하세요. 내장 NMS(nms=True)와 dynamic=True는 지원되지 않습니다. coreai-torch에는 torchvision::nms용 로워링이 없으므로 NMS는 호스트에서 실행됩니다.
  • 고정 입력 크기: 내보낸 그래프는 하나의 imgsz 크기로 추적되며 동적 형태를 지원하지 않으므로, 내보낼 때 사용한 크기로 예측해야 합니다.
  • FP16 에셋 로드 중 프로세스가 중단될 수 있음: 일부 FP16 .aimodel 에셋은 Apple 신경망 엔진 프로그램을 로드하지 못하고 MPSGraph에서 어설션 실패를 발생시킵니다. 이 경우 대체 경로로 전환되지 않고 프로세스가 종료됩니다. 이 문제는 Ultralytics 코드가 실행되기 전에 Apple 런타임 내부에서 발생하며, 동일한 에셋도 CPU 전용 특수화에서는 로드됩니다. 에셋에서 이 문제가 발생하면 FP32로 전환하세요. iPhone 17 Pro에서 확인한 FP16 SDK 에셋(모든 nano 모델, 모든 크기의 detect 모델, 각 태스크의 가장 큰 모델)은 프로세스 중단 없이 로드되었습니다.

어떤 Apple 형식을 사용해야 하나요?#

다음이 필요한 경우 현재는 Core ML을 사용하세요.

  • 현재 및 이전 Apple 운영 체제 전반에 배포
  • Ultralytics iOS 또는 Flutter SDK의 기본 경로
  • Vision 프레임워크를 통한 이미지 처리
  • 테스트를 마친 FP16 및 INT8 YOLO 배포
  • 호환되는 레거시 탐지 모델을 위한 내장 NMS

iOS 27 또는 macOS 27을 요구할 수 있고 다음 기능이 필요한 경우 Core AI를 평가하세요.

  • 최신 Apple 온디바이스 신경망 런타임
  • 명시적인 특수화 및 캐시 관리
  • 고급 동적 또는 상태 유지 모델 실행
  • 사용자 지정 Core AI 연산 또는 Metal 커널
  • 상세한 Core AI 그래프 디버깅 및 런타임 프로파일링

애플리케이션이 전환되는 동안 Core ML과 Core AI는 함께 사용될 것으로 예상됩니다. 배포 대상과 애플리케이션 계약이 서로 다르므로 Core AI를 지원하더라도 Core ML이 당장 불필요해지는 것은 아닙니다.

Ultralytics 로드맵#

전용 coreai 내보내기 대상이 구현되었습니다. 지원되는 YOLO26 태스크 모델의 내보내기와 수치 검증을 수행하며, macOS 26에서 Ultralytics CI를 통해 지속적으로 실행하고 온디바이스 FP16 지연 시간도 측정합니다. Core AI가 Core ML 경로와 동등한 수준에 도달하기 위한 남은 로드맵은 다음과 같습니다.

  1. Apple 신경망 엔진의 엔드투엔드 헤드 지연 시간 격차(apple/coreai-torch#66)와 신경망 엔진 정확성 문제(apple/coreai-torch#115, #116)를 해결합니다.
  2. INT8 및 팔레타이즈된 Core AI 에셋을 지원합니다. SDK 에셋은 FP16이며 INT8 Core ML 에셋보다 다운로드 크기가 약 두 배입니다.
  3. Apple 프레임워크 및 변환 도구의 정식 버전을 출시합니다(iOS 27 및 macOS 27 세대는 현재 베타입니다).
  4. 지원되는 기기 조합 전반에서 메모리, 전력, 특수화 벤치마크를 수행합니다.

Ultralytics iOS SDK와 Flutter 플러그인은 iOS 27 이상에서 Core AI를 선택적으로 로드합니다. Core ML은 기본값으로 유지되며 iOS 27 미만의 기기를 지원하기 위한 권장 대상입니다. 남은 항목은 Ultralytics 로드맵과 릴리스 노트에서 확인하세요.

추가 리소스#

자주 묻는 질문#

  • 예. macOS 26 이상을 실행하는 Apple silicon Mac 또는 glibc 2.34 이상을 사용하는 x86_64 Linux에서 model.export(format="coreai") 또는 yolo export format=coreai로 내보내세요. 내보낸 .aimodel는 iOS 27 및 macOS 27에서 실행됩니다. Ultralytics iOS 및 Flutter SDK는 iOS 27 기기에서 옵트인 방식으로 해당 모델을 로드합니다. 기본 경로와 그 이전 세대 운영 체제에서는 format="coreml"를 사용해 Core ML .mlpackage 파일을 내보내세요.

  • 즉시 대체하지는 않습니다. Core AI는 최신 신경망을 위한 Apple의 새로운 경로이며, Core ML은 계속 지원되고 더 폭넓은 운영체제 호환성, Vision 통합 및 비신경망 모델 지원을 제공합니다.

  • 아니요. 두 형식은 서로 다른 모델 표현을 포함하며 서로 다른 프레임워크에서 로드됩니다. 적절한 Apple 툴체인을 통해 소스 모델에서 변환해야 합니다.

  • 초기 통합은 Core ML과 공존할 것으로 예상됩니다. 향후 대체 여부는 운영체제 채택률, 안정적인 도구 및 기기 내 성능에 따라 결정됩니다.

기여자

댓글