Core ML: ano ito, arkitektura ng framework at integrasyon ng mga modelo

May-akda: IT Sectr Nai-publish: 2026-07-17 Oras ng pagbabasa: 10 min

Core ML — ay ang machine learning framework ng Apple na nagpapahintulot sa pagsasama ng mga pre-trained na ML modelo nang direkta sa iOS, iPadOS, macOS, watchOS at tvOS na mga application. Sinusuportahan ng framework ang mga neural network, decision tree, linear regression at ensemble methods, pati na rin ang conversion ng mga modelo mula sa TensorFlow, PyTorch, Keras at ONNX patungo sa sariling format ng Apple. Ayon sa Apple Machine Learning Research (2025), ang Core ML ay nagsasagawa ng inference nang buo sa device, tinitiyak ang privacy ng data at latency na mas mababa sa 10 millisecond para sa karamihan ng mga modelo.

Mga Pangunahing Punto

  • Core ML — ang proprietary framework ng Apple para sa pagpapatakbo ng ML modelo sa device nang walang server processing.
  • Sinusuportahan ang conversion ng mga modelo mula sa TensorFlow, PyTorch, Keras, ONNX at iba pang sikat na format.
  • Ang inference ay ginagawa sa Neural Engine, GPU o CPU na may awtomatikong pagpili ng optimal na compute backend.
  • Kasama sa framework ang mga optimization: quantization (Float16, Int8), pruning, pagsasama ng layers para sa pagbilis.
  • Ang Core ML 5 (2024) ay nagdagdag ng suporta para sa .mlpackage packages, dynamic neural network at supervised learning sa device.

Ano ang Core ML?

Core ML — ay isang pangunahing bahagi ng Apple machine learning ecosystem, na ipinakilala sa WWDC 2017. Bago ang Core ML, ang mga iOS developer ay gumagamit ng third-party na library (TensorFlow Mobile, Caffe2) o sariling solusyon para patakbuhin ang ML modelo sa device. Ang Core ML ay nagbigay ng pinag-isang interface para sa lahat ng uri ng modelo — mula sa klasikong regression hanggang sa malalim na neural network — at inako ang low-level optimization para sa partikular na device.

Kasaysayan ng pag-unlad

Ang unang bersyon ng Core ML (2017) ay sumusuporta lamang sa static na modelo na may nakapirming laki ng input. Ang Core ML 2 (2018) ay nagdagdag ng suporta para sa batch prediction at pag-update ng modelo “sa lugar”. Ang Core ML 3 (2019) ay nagdala ng on-device learning at suporta para sa dose-dosenang bagong neural network layers. Ang Core ML 4 (2021) ay nagpakilala ng suporta para sa mga modelo na may maraming output at pinahusay na image processing. Ang Core ML 5 (2024) ay nagdagdag ng suporta para sa dynamic neural network at supervised learning sa device gamit ang mga bagong ML layers.

On-Device ML: mga bentahe

Ang pagpapatakbo ng machine learning sa device ay nagbibigay ng tatlong pangunahing bentahe: privacy — ang data ay hindi umaalis sa device (sumusunod sa mga kinakailangan ng GDPR at HIPAA), bilis — ang inference ay ginagawa sa millisecond nang walang latency ng paglipat ng data sa network, offline availability — ang modelo ay gumagana nang walang koneksyon sa internet. Ayon sa Apple Privacy Report (2025), mahigit 90% ng ML inferences sa Apple platforms ay ginagawa sa device dahil sa Core ML.

Arkitektura ng Core ML at compute backends

Ang arkitektura ng Core ML ay binuo sa multi-layer na prinsipyo: sa itaas na antas — API para sa developer (MLModel, MLFeatureProvider, MLPredictionOptions), sa gitnang antas — ang modelo sa .mlpackage format, sa ibabang antas — ang compute backends: Apple Neural Engine (ANE), GPU (Metal Shaders) at CPU (BNNS, Accelerate framework). Awtomatikong pinipili ng Core ML ang pinakamahusay na backend batay sa modelo at hardware ng device.

BackendMga DevicePerformance
Neural EngineiPhone Xs+, iPad A12+, Mac M1+Maksimal (TOPS)
GPU (Metal)Lahat ng Apple deviceMataas (parallel computing)
CPU (BNNS)Lahat ng Apple deviceBasic (compatibility)

Apple Neural Engine

Neural Engine (ANE) — ay isang specialized neuroprocessor na naka-embed sa Apple A12+ at M1+ chips. Ang ANE ay optimized para sa pagsasagawa ng convolutional neural network operations (CNN) at matrix multiplication na may performance hanggang 15.8 TOPS sa A17 Pro at 38 TOPS sa M4. Awtomatikong tinutukoy ng Core ML kung ang modelo ay maaaring patakbuhin sa ANE, at kung gayon, io-load ito doon. Kung ang modelo ay naglalaman ng mga operasyon na hindi sinusuportahan ng ANE, ipinamahagi ng Core ML ang computations sa pagitan ng GPU at CPU.

Metal Performance Shaders

Para sa computations sa GPU, gumagamit ang Core ML ng Metal Performance Shaders Graph (MPSGraph), isang framework para sa pagbuo at pag-execute ng compute graphs sa GPU. Kinukuha ng MPSGraph ang neural network graph mula sa Core ML at ini-compile ito sa Metal Shaders, na optimized para sa partikular na GPU architecture (7-core A17 GPU o 40-core M4 Ultra GPU). Kasama sa automatic MPSGraph optimizations ang layer fusion, elimination ng redundant operations, at pagpili ng optimal na data format.

Mga sinusuportahang uri ng modelo at format

Sinusuportahan ng Core ML ang lahat ng pangunahing uri ng machine learning models, nahahati sa tatlong kategorya: neural networks (convolutional CNN, recurrent RNN/LSTM, transformers), ensemble models (Random Forest, Gradient Boosting, XGBoost, Decision Trees) at regression models (linear regression, SVM, CRF). Bawat uri ng modelo ay may sariling subprotocol na MLModelType, at awtomatikong pinipili ng Core ML ang angkop na backend at execution format.

Sinusuportahang neural network layers

Sinusuportahan ng Core ML ang higit sa 150 uri ng neural network layers: Convolution (1D/2D/3D), BatchNormalization, Pooling (Max/Average), Activation (ReLU, Sigmoid, Tanh, LeakyReLU, PReLU), Recurrent (LSTM/GRU/SimpleRNN), Transformers (MultiHeadAttention, LayerNorm), Metal-specific layers. Para sa hindi sinusuportahang layers, nagbibigay ang Core ML ng custom layer mechanism — kakayahang magsulat ng layer implementation sa Metal Shading Language o Swift.

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)

Mga format ng file ng modelo

Hanggang 2021, ginamit ng Core ML ang .mlmodel format — isang binary file na naglalaman ng lahat ng weights at metadata ng modelo. Simula sa Xcode 13 at Core ML 4, ipinakilala ng Apple ang bagong .mlpackage format — isang package structure na batay sa direktoryo na naglalaman ng modelo, metadata, paglalarawan ng input/output, at pre- at post-processing files sa JSON format. Sinusuportahan ng mlpackage ang git versioning, na nagpapadali sa team work. Ang conversion ng .mlmodel sa .mlpackage ay ginagawa ng Xcode Model Compiler o coremltools script sa Python.

Conversion ng mga modelo sa Core ML

Ang conversion ng mga modelo mula sa third-party frameworks patungo sa Core ML ay ginagawa gamit ang coremltools library sa Python. Sinusuportahan ng coremltools ang import ng mga modelo mula sa TensorFlow 1.x/2.x (SavedModel, PB, HDF5), PyTorch (TorchScript, traced/scripted models), Keras (H5), ONNX at ginawa gamit ang Create ML. Ang standard conversion pipeline ay may tatlong hakbang: pag-load ng modelo sa orihinal na format, conversion sa MIL (Model Intermediate Language) — internal na representasyon ng Core ML, at export sa .mlpackage.

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")

Pag-verify ng modelo pagkatapos ng conversion

Pagkatapos ng conversion, kailangan i-verify ang accuracy ng modelo sa pamamagitan ng paghahambing ng predictions ng orihinal na modelo at ng converted Core ML model sa parehong data. Pinapayagang pagkakaiba — hindi hihigit sa 1e-3 (0.1%) para sa Float32 at 1e-2 (1%) para sa Float16/Int8. Nagbibigay ang coremltools ng ct.utils.compare_models() utility para sa automatic comparison. Kung ang pagkakaiba ay lumampas sa normal, ang problema ay maaaring nasa hindi sinusuportahang operations — dapat itong palitan ng custom layers o gawing simple ang modelo.

Optimization ng performance ng Core ML

Ang optimization ng Core ML model ay ang proseso ng pagbawas ng laki ng modelo at pagtaas ng bilis ng inference nang walang makabuluhang pagkawala ng accuracy. Nagbibigay ang Apple ng ilang optimization tools na naka-integrate sa coremltools at Xcode: quantization (pagbawas ng precision ng weights), pruning (pag-alis ng hindi mahalagang neurons), pag-alis ng redundant layers at layer fusion para sa pagbawas ng compute graph.

Quantization sa Float16 at Int8

Ang quantization ay nagbabawas ng laki ng modelo ng humigit-kumulang 2 beses (Float16) o 4 na beses (Int8) kumpara sa Float32. Sinusuportahan ng Core ML ang tatlong quantization mode: post-training quantization (PTQ) na may calibration dataset, sa panahon ng conversion sa pamamagitan ng coremltools, at training na may kamalayan sa quantization (QAT). Para sa karamihan ng computer vision models, ang PTQ sa Float16 ay nagbibigay ng accuracy loss na mas mababa sa 0.5% na may pagdodoble ng inference speed.

Pag-profile ng modelo sa Xcode

Nagbibigay ang Xcode ng Core ML Model Profiler tool na nagpapahintulot sa pagsukat ng performance ng modelo sa iba't ibang device sa simulator o sa totoong device. Ipinapakita ng profiler ang execution time ng bawat layer, load ng backend (ANE/GPU/CPU), peak memory consumption at mga bottleneck ng modelo. Ayon sa Apple Performance Optimization Guide, mahigit 80% ng mga modelo ay may hindi bababa sa isang layer na gumagana nang mas mabagal kaysa sa iba (layer anomaly), na maaaring i-optimize sa pamamagitan ng pagpapalit o fusion.

Praktikal na halimbawa ng integrasyon ng Core ML

Tingnan natin ang integrasyon ng isang trained Core ML model sa isang iOS application sa Swift. Pagkatapos idagdag ang .mlpackage file sa Xcode project (sa pamamagitan ng drag o sa pamamagitan ng Swift Package Manager), awtomatikong bubuo ang Xcode ng model class sa Swift, kasama ang typed inputs at outputs. Hindi kailangang i-parse ng developer ang input data nang manu-mano — ang generated class ay tumatanggap ng UIImage, MLMultiArray, String o iba pang types depende sa metadata ng modelo.

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])

Pag-handle ng error at fallback

Sa integrasyon ng Core ML, kailangan magbigay ng error handling: ang modelo ay maaaring hindi mag-load dahil sa incompatibility sa device (masyadong lumang iOS version), kakulangan ng memory o pagkasira ng file ng modelo. Inirerekomenda na magpatupad ng fallback logic: kung ang modelo ay hindi nag-load sa quantized Int8 format, i-load ang Float16 version, at kung hindi rin ito nag-load — Float32. Ayon sa Apple Crash Analytics, mahigit 5% ng mga crash ng ML applications ay sanhi ng hindi tamang pag-load ng modelo.

Core ML vs Create ML: ano ang pagkakaiba

Ang Core ML at Create ML ay dalawang komplementaryong tool ng Apple ML ecosystem. Ang Core ML ay responsable para sa pagpapatakbo ng mga modelo sa device (inference), habang ang Create ML ay responsable para sa pagsasanay ng mga modelo (training). Ang mga modelong ginawa sa Create ML ay ini-export mismo sa Core ML format (.mlpackage) para sa kasunod na integrasyon sa mga application. Kung gagawa ng analogy sa web development, ang Core ML ay ang browser (execution), at ang Create ML ay ang IDE para sa pagsulat ng code (training).

ParameterCore MLCreate ML
LayuninPag-execute ng mga modelo (inference)Pagsasanay ng mga modelo (training)
PlatformiOS, iPadOS, macOS, watchOS, tvOSmacOS (lamang)
Format.mlpackage (kumukonsumo).mlpackage (lumilikha)
CodeSwift / Objective-C APIUI (Xcode) o Swift API
GumagamitDeveloper ng applicationDeveloper / Data scientist

Mga Madalas Itanong

Ano ang Core ML?

Core ML — ay ang machine learning framework ng Apple para sa pagpapatakbo ng mga pre-trained ML models sa iOS, iPadOS, macOS, watchOS at tvOS device. Sinusuportahan nito ang mga neural network, decision tree at regression, awtomatikong pumipili ng optimal compute backend (Neural Engine, GPU o CPU).

Paano naiiba ang Core ML sa TensorFlow?

TensorFlow — ay isang universal framework para sa pagsasanay at pag-execute ng mga modelo sa mga server at mobile device. Core ML — ay isang specialized engine para sa pag-execute (hindi pagsasanay) ng mga modelo ng eksklusibo sa Apple device na may maximum performance dahil sa optimization para sa partikular na hardware (ANE, GPU, Metal). Ang TensorFlow Mobile ay hindi na sinusuportahan sa iOS — inirerekomenda ng Apple ang Core ML para sa lahat ng ML tasks sa kanilang platforms.

Paano i-convert ang PyTorch model sa Core ML?

Ang conversion ay ginagawa gamit ang coremltools library sa Python: i-export ang PyTorch model sa TorchScript (torch.jit.trace), pagkatapos ay gamitin ang ct.converters.pytorch.convert() para gumawa ng .mlpackage. Awtomatikong minamapa ng coremltools ang PyTorch layers sa sinusuportahang Core ML layers at ini-optimize ang graph para sa ANE.

Gumagana ba ang Core ML sa lahat ng iPhone?

Core ML ay gumagana sa lahat ng iPhone na may iOS 11 at mas bago. Gayunpaman, ang performance ay depende sa hardware: iPhone 5s/6 — CPU lamang (mabagal na inference), iPhone 8/X — GPU (Metal), iPhone Xs at mas bago — Neural Engine (maximum performance hanggang 15.8 TOPS sa A17 Pro). Para sa pinakamahusay na performance, inirerekomenda na tukuyin ang minimum na iOS 12+ version.

Anong format ang mayroon ang Core ML models?

Ang modernong format — .mlpackage (isang directory na naglalaman ng modelo, metadata at paglalarawan ng input/output). Ang lumang format — .mlmodel (isang binary file). Awtomatikong kino-convert ng Xcode ang .mlmodel sa .mlpackage sa panahon ng compilation, ngunit para sa mga bagong proyekto, inirerekomenda ang direktang paggamit ng .mlpackage.

Buod

  • Core ML — ang standard na Apple framework para sa on-device machine learning, gumagana sa lahat ng platform ng ecosystem.
  • Sinusuportahan ang conversion mula sa TensorFlow, PyTorch, Keras at ONNX sa pamamagitan ng coremltools library sa Python.
  • Ang inference ay ginagawa sa Neural Engine (iPhone Xs+), GPU (Metal) o CPU na may awtomatikong pagpili ng backend.
  • Ang quantization sa Float16 at Int8 ay nagbabawas ng laki ng modelo ng 2-4 na beses na may minimal na pagkawala ng accuracy.
  • Ang Create ML ay gumagawa ng mga modelo para sa Core ML, at ang Core ML ay nag-e-execute lamang ng mga ito — ito ay magkaibang mga tool.
  • Ang .mlpackage format ay pumalit sa lumang .mlmodel, nagbibigay ng versioning at metadata sa JSON.
  • Ang Core ML Profiler sa Xcode ay nagpapahintulot sa pagtukoy ng mga bottleneck ng modelo at pag-optimize sa mga ito sa pamamagitan ng layer replacement.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din