Core ML: nədir, freymvork arxitekturası və modellərin inteqrasiyası

Müəllif: IT Sectr Dərc olunub: 2026-07-17 Oxuma vaxtı: 10 dəq

Core ML — bu Apple-ın maşın öyrənmə freymvorkudur, əvvəlcədən öyrədilmiş ML modellərini birbaşa iOS, iPadOS, macOS, watchOS və tvOS tətbiqlərinə inteqrasiya etməyə imkan verir. Freymvork neyron şəbəkələri, qərar ağacları, xətti reqressiyalar və ansambl metodlarını, həmçinin TensorFlow, PyTorch, Keras və ONNX-dən modellərin Apple-ın öz formatına konvertasiyasını dəstəkləyir. Apple Machine Learning Research (2025) məlumatlarına görə, Core ML inferensi tamamilə cihazda yerinə yetirir, məlumatların məxfiliyini və modellərin əksəriyyəti üçün 10 millisaniyədən az gecikmə təmin edir.

Başlıca

  • Core ML — ML modellərini server emalı olmadan cihazda yerinə yetirmək üçün Apple-ın möhkəmlikli freymvorku.
  • TensorFlow, PyTorch, Keras, ONNX və digər populyar formatlardan modellərin konvertasiyasını dəstəkləyir.
  • Inferens Neural Engine, GPU və ya CPU-da avtomatik optimal hesablama seçimi ilə yerinə yetirilir.
  • Freymvork optimallaşdırmaları əhatə edir: kvantlaşdırma (Float16, Int8), budama, təbəqələrin birləşdirilməsi.
  • Core ML 5 (2024) .mlpackage paketlərini, dinamik neyron şəbəkələrini və cihazda nəzarətli öyrənməni dəstəklədi.

Core ML nədir?

Core ML — bu Apple maşın öyrənmə ekosisteminin açar komponentidir, WWDC 2017-də təqdim edilmişdir. Core ML-dən əvvəl iOS tərtibatçıları ML modellərini cihazda işlətmək üçün üçüncü tərəf kitabxanalarından (TensorFlow Mobile, Caffe2) və ya öz həllərindən istifadə edirdilər. Core ML klassik reqressiyalardan dərin neyron şəbəkələrə qədər bütün model növləri üçün vahid interfeys təmin etdi və xüsusi cihaz üçün aşağı səviyyəli optimallaşdırmanı üzərinə götürdü.

İnkişaf tarixi

Core ML-in birinci versiyası (2017) yalnız sabit giriş ölçüsü olan statik modelləri dəstəkləyirdi. Core ML 2 (2018) batch prediction və modellərin “yerinə yetmə” yenilənməsini dəstəklədi. Core ML 3 (2019) cihazda öyrənmə və onlarla yeni neyron şəbəkə təbəqəsini dəstəklədi. Core ML 4 (2021) çox çıxışlı modelləri və təkmilləşmiş görüntü emalını dəstəklədi. Core ML 5 (2024) yeni ML təbəqələrindən istifadə edərək dinamik neyron şəbəkələrini və cihazda nəzarətli öyrənməni dəstəklədi.

Cihazda ML: üstünlüklər

Maşın öyrənməsini cihazda yerinə yetirmək üç əsas üstünlük verir: məxfilik — məlumatlar cihazı tərk etmir (GDPR və HIPAA tələblərinə cavab verir), sürət — inferens şəbəkə məlumat ötürmə gecikməsi olmadan millisaniyələrdə yerinə yetirilir, offline əlçatanlıq — model internet bağlantısı olmadan işləyir. Apple Privacy Report (2025) məlumatlarına görə, Apple platformalarında ML inferenslərinin 90%-dən çoxu Core ML sayəsində cihazda yerinə yetirilir.

Core ML arxitekturası və hesablama mühərrikləri

Core ML arxitekturası çoxsəviyyəli prinsip üzrə qurulmuşdur: yuxarı səviyyədə — tərtibatçı üçün API (MLModel, MLFeatureProvider, MLPredictionOptions), orta səviyyədə — .mlpackage formatında model, aşağı səviyyədə — hesablama mühərrikləri: Apple Neural Engine (ANE), GPU (Metal Shaders) və CPU (BNNS, Accelerate framework). Core ML model və cihaz avadanlığından asılı olaraq avtomatik olaraq ən yaxşı mühərriki seçir.

MühərrikCihazlarPerformans
Neural EngineiPhone Xs+, iPad A12+, Mac M1+Maksimal (TOPS)
GPU (Metal)Bütün Apple cihazlarıYüksək (paralel hesablama)
CPU (BNNS)Bütün Apple cihazlarıƏsas (uyğunluq)

Apple Neural Engine

Neural Engine (ANE) — bu Apple A12+ və M1+ çiplərinə daxil edilmiş ixtisaslaşdırılmış neyroprosessordur. ANE konvolyusiya neyron şəbəkələri (CNN) və matris vurma əməliyyatlarını A17 Pro-da 15.8 TOPS və M4-də 38 TOPS performansla yerinə yetirmək üçün optimallaşdırılmışdır. Core ML avtomatik olaraq modelin ANE-də yerinə yetirilə biləcəyini məyyənləşdirir və mümkündərsə onu oraya yükləyir. Əgər model ANE tərəfindən dəstəklənməyən əməliyyatlar ehtiva edirsə, Core ML hesablamaları GPU və CPU arasında bölüşdürür.

Metal Performance Shaders

GPU-da hesablamalar üçün Core ML Metal Performance Shaders Graph (MPSGraph) — GPU-da hesablama qraflarını qurmaq və yerinə yetirmək üçün freymvorkdan istifadə edir. MPSGraph Core ML-dən neyron şəbəkə qrafını götürür və onu xüsusi GPU arxitekturası (7-nüvəli A17 GPU və ya 40-nüvəli M4 Ultra GPU) üçün optimallaşdırılmış Metal Shaders-ə kompilə edir. MPSGraph avtomatik optimallaşdırmaları təbəqə birləşməsi, artıq əməliyyatların aradan qaldırılması və optimal məlumat formatının seçimini əhatə edir.

Dəstəklənən model növləri və formatlar

Core ML üç kateqoriyaya bölünmüş bütün əsas maşın öyrənmə model növlərini dəstəkləyir: neyron şəbəkələr (konvolyusiya CNN, rekurent RNN/LSTM, transformerlər), ansambl modellər (Random Forest, Gradient Boosting, XGBoost, Decision Trees) və reqressiya modelləri (xətti reqressiya, SVM, CRF). Hər model növü öz MLModelType altprotokoluna malikdir və Core ML avtomatik olaraq müvafiq mühərrik və icra formatını seçir.

Dəstəklənən neyron şəbəkə təbəqələri

Core ML 150-dən çox neyron şəbəkə təbəqəsi növünü dəstəkləyir: Convolution (1D/2D/3D), BatchNormalization, Pooling (Max/Average), Activation (ReLU, Sigmoid, Tanh, LeakyReLU, PReLU), Recurrent (LSTM/GRU/SimpleRNN), Transformers (MultiHeadAttention, LayerNorm), Metal-üzərə xüsusi təbəqələr. Dəstəklənməyən təbəqələr üçün Core ML custom layer mexanizmi təmin edir — təbəqənin Metal Shading Language və ya Swift-də tətbiqini yazmaq imkanı.

swift
let model = try MLModel(contentsOf: modelURL)
let input = try MLMultiArray(shape: [1, 224, 224, 3], dataType: .float32)
let prediction = try model.prediction(from: input)

Model fayl formatları

2021-ci ilə qədər Core ML .mlmodel formatından — modelin bütün çəkilərini və metadatalarını ehtiva edən ikili fayldan istifadə edirdi. Xcode 13 və Core ML 4-dən başlayaraq, Apple yeni format .mlpackage təqdim etdi — modeli, metadataları, giriş/çıxış təsvirini və JSON formatında pre- və post-emal fayllarını ehtiva edən kataloq əsaslı paket strukturu. mlpackage git versiyalaşdırmasını dəstəkləyir, bu da komanda işini asanlaşdırır. .mlmodel-in .mlpackage-ə konvertasiyası Xcode Model Compiler və ya Python-da coremltools skripti ilə yerinə yetirilir.

Modellərin Core ML-ə konvertasiyası

Modellərin üçüncü tərəf freymvorklardan Core ML-ə konvertasiyası Python-da coremltools kitabxanası ilə yerinə yetirilir. coremltools TensorFlow 1.x/2.x (SavedModel, PB, HDF5), PyTorch (TorchScript, traced/scripted modellər), Keras (H5), ONNX və Create ML ilə yaradılmış modellərin idxalını dəstəkləyir. Standart konvertasiya kəməri üç addımdan ibarətdir: modelin orijinal formatda yüklənməsi, MIL (Model Intermediate Language) — Core ML daxili təsvirinə konvertasiya və .mlpackage-ə ixrac.

python
import coremltools as ct

model = ct.converters.pytorch.convert(
    source = "model.pt",
    inputs = [ct.TensorType(shape=(1, 3, 224, 224))]
)
model.author = "IT Sectr"
model.short_description = "Image classifier"
model.save("MyModel.mlpackage")

Konvertasiyadan sonra modelin yoxlanması

Konvertasiyadan sonra eyni məlumatlar üzərində orijinal modelin və konvertasiya edilmiş Core ML modelinin proqnozlarını müqayisə edərək model dəqiqliyini yoxlamaq lazımdır. İcazə verilən fərq — Float32 üçün 1e-3 (0,1%) və Float16/Int8 üçün 1e-2 (1%)-dən çox deyil. coremltools avtomatik müqayisə üçün ct.utils.compare_models() utilitini təqdim edir. Əgər fərq normadan çox olarsa, problem dəstəklənməyən əməliyyatlarda ola bilər — onlar custom layers ilə əvəz edilməli və ya model sadələşdirilməlidir.

Core ML performans optimallaşdırması

Core ML modelinin optimallaşdırılması — bu model ölçüsünü azaltma və dəqiqliyi əhəmiyyətli itirmədən inferens sürətini artırma prosesidir. Apple coremltools və Xcode-da daxili olan bir neçə optimallaşdırma vasitəsi təqdim edir: kvantlaşdırma (çəki dəqiqliyinin azaldılması), budama (əhəmiyyətsiz neyronların silinməsi), artıq təbəqələrin silinməsi və hesablama qrafını azaltmaq üçün təbəqə birləşməsi (fusion).

Float16 və Int8-ə kvantlaşdırma

Kvantlaşdırma model ölçüsünü Float32 ilə müqayisədə təxminən 2 dəfə (Float16) və ya 4 dəfə (Int8) azaldır. Core ML üç kvantlaşdırma rejimini dəstəkləyir: kalibrasiya məlumatları dəsti ilə təlimdən sonra kvantlaşdırma (PTQ), coremltools vasitəsilə konvertasiya zamanı və kvantlaşdırma nəzərə alınmaqla təlim (QAT). Kompüter görmü modellərinin əksəriyyəti üçün Float16-ya PTQ inferens sürətini iki dəfə artırarkən 0,5%-dən az dəqiqlik itkisi verir.

Xcode-da modelin profilləşdirilməsi

Xcode Core ML Model Profiler alətini təqdim edir, bu da modelin performansını müxtəlif cihazlarda simulyatorda və ya real cihazda ölçməyə imkan verir. Profiler hər təbəqənin icra müddətini, mühərrik yüklənməsini (ANE/GPU/CPU), pik yaddaş istehlakını və modelin darboğazlarını göstərir. Apple Performance Optimization Guide məlumatlarına görə, modellərin 80%-dən çoxu ən azı bir dəfə digərlərindən əhəmiyyətli dərəcədə yavaş işləyən təbəqəyə (təbəqə anomaliyası) malikdir və bu təbəqə dəyişdirilərək və ya birləşdirilərək optimallaşdırıla bilər.

Core ML inteqrasiyasının praktik nümunəsi

Swift-də iOS tətbiqinə öyrədilmiş Core ML modelinin inteqrasiyasını nəzərdən keçirək. .mlpackage faylını Xcode layihəsinə əlavə etdikdən sonra (sürükləmə və ya Swift Package Manager vasitəsilə), Xcode avtomatik olaraq Swift-də model sinfini yaradır, o cümledən tipləşdirilmiş giriş və çıxışları. Tərtibatçı giriş məlumatlarını əllə pars etməlidir — yaradılan sinif modelin metadatalarından asılı olaraq UIImage, MLMultiArray, String və ya digər tipləri qəbul edir.

swift
import CoreML
import Vision

guard let model = try? VNCoreMLModel(
    for: MyImageClassifier().model
) else { return }

let request = VNCoreMLRequest(model: model) { request, error in
    guard let results = request.results
        as? [VNClassificationObservation]
    else { return }

    if let topResult = results.first {
        print("Class: \(topResult.identifier)")
        print("Confidence: \(topResult.confidence)")
    }
}

let handler = VNImageRequestHandler(
    cgImage: image.cgImage!,
    options: [:]
)
try handler.perform([request])

Xəta idarəsi və fallback

Core ML inteqrasiyası zamanı xəta idarəsini nəzərdə tutmaq lazımdır: model cihazla uyğunsuzluq (çox köhnə iOS versiyası), yaddaş çatışmazlığı və ya model faylının zədələnməsi səbəbindən yüklənməyə bilər. Fallback məntiqi tətbiq etmək tövsiyə olunur: əgər model kvantlaşdırılmış Int8 formatında yüklənmədisə, Float16 versiyasını yükləyin, əgər o da yüklənmədisə — Float32. Apple Crash Analytics məlumatlarına görə, ML tətbiqlərinin çökmələrinin 5%-dən çoxu modelin səhv yüklənməsindən qaynaqlanır.

Core ML vs Create ML: fərq nədir

Core MLCreate ML — bunlar Apple ML ekosisteminin bir-birini tamamlayan iki alətidir. Core ML modelləri cihazda yerinə yetirməyə (inferens) cavabdehdir, Create ML isə modellərin öyrədilməsinə (təlim). Create ML-də yaradılan modellər tətbiqlərə inteqrasiya üçün məhz Core ML formatına (.mlpackage) ixrac edilir. Veb inkişafı ilə analogiya aparsaq, Core ML brauzerdir (icra), Create ML isə kod yazmaq üçün IDE-dir (öyrənmə).

ParametrCore MLCreate ML
TəyinatModellərin icrası (inferens)Modellərin öyrədilməsi (təlim)
PlatformaiOS, iPadOS, macOS, watchOS, tvOSmacOS (yalnız)
Format.mlpackage (istehlak edir).mlpackage (yaradır)
KodSwift / Objective-C APIUI (Xcode) və ya Swift API
İstifadəçiTətbiq tərtibatçısıTərtibatçı / Data scientist

Tez-tez verilən suallar

Core ML nədir?

Core ML — bu Apple-ın əvvəlcədən öyrədilmiş ML modellərini iOS, iPadOS, macOS, watchOS və tvOS cihazlarında yerinə yetirmək üçün maşın öyrənmə freymvorkudur. Neyron şəbəkələri, qərar ağacları və reqressiyaları dəstəkləyir, avtomatik olaraq optimal hesablama mühərriki seçir (Neural Engine, GPU və ya CPU).

Core ML TensorFlow-dan nə ilə fərqlənir?

TensorFlow — serverlərdə və mobil cihazlarda modelləri öyrətmək və yerinə yetirmək üçün universal freymvorkdur. Core ML — modelləri yalnız Apple cihazlarında maksimal performansla yerinə yetirmək (təlim yox) üçün ixtisaslaşdırılmış mühərrikdir, xüsusi avadanlıq (ANE, GPU, Metal) üçün optimallaşdırma sayəsində. TensorFlow Mobile artıq iOS-da dəstəklənmir — Apple öz platformalarında bütün ML tapşırıqları üçün Core ML-i tövsiyə edir.

PyTorch modelini Core ML-ə necə konvertasiya etməli?

Konvertasiya Python-da coremltools kitabxanası ilə yerinə yetirilir: PyTorch modelini TorchScript-ə (torch.jit.trace) ixrac edin, sonra .mlpackage yaratmaq üçün ct.converters.pytorch.convert() istifadə edin. coremltools avtomatik olaraq PyTorch təbəqələrini dəstəklənən Core ML təbəqələrinə xəritələyir və qrafı ANE üçün optimallaşdırır.

Core ML bütün iPhone-larda işləyir?

Core ML iOS 11 və daha yeni olan bütün iPhone-larda işləyir. Lakin performans avadanlıqdan asılıdır: iPhone 5s/6 — yalnız CPU (yavaş inferens), iPhone 8/X — GPU (Metal), iPhone Xs və daha yeniləri — Neural Engine (A17 Pro-da 15.8 TOPS-a qədər maksimal performans). Ən yaxşı performans əldə etmək üçün minimum iOS 12+ versiyasını göstərmək tövsiyə olunur.

Core ML modelləri hansı formatdadır?

Müasir format — .mlpackage (modeli, metadataları və giriş/çıxış təsvirini ehtiva edən kataloq). Köhnəlmiş format — .mlmodel (tək ikili fayl). Xcode kompilə zamanı .mlmodel-i avtomatik olaraq .mlpackage-ə konvertasiya edir, lakin yeni layihələr üçün birbaşa .mlpackage istifadə etmək tövsiyə olunur.

Nəticə

  • Core ML — Apple ekosisteminin bütün platformalarında işləyən standart cihazdaxili maşın öyrənmə freymvorku.
  • Python-da coremltools kitabxanası vasitəsilə TensorFlow, PyTorch, Keras və ONNX-dən konvertasiyanı dəstəkləyir.
  • Inferens Neural Engine (iPhone Xs+), GPU (Metal) və ya CPU-da avtomatik mühərrik seçimi ilə yerinə yetirilir.
  • Float16 və Int8-ə kvantlaşdırma model ölçüsünü minimal dəqiqlik itkisi ilə 2-4 dəfə azaldır.
  • Create ML Core ML üçün modellər yaradır, Core ML isə onları yalnız icra edir — bunlar fərqli alətlərdir.
  • .mlpackage formatı köhnəlmiş .mlmodel-i əvəz edərək versiyalaşdırma və JSON metadataları təmin edir.
  • Xcode-da Core ML Profiler modelin darboğazlarını müəyyənləşdirməyə və təbəqə dəyişdirməsi ilə onları optimallaşdırmağa imkan verir.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun