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 — 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.
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.
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.
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.
| Backend | Mga Device | Performance |
|---|---|---|
| Neural Engine | iPhone Xs+, iPad A12+, Mac M1+ | Maksimal (TOPS) |
| GPU (Metal) | Lahat ng Apple device | Mataas (parallel computing) |
| CPU (BNNS) | Lahat ng Apple device | Basic (compatibility) |
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.
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.
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.
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.
let model = try MLModel(contentsOf: modelURL)
let input = try MLMultiArray(shape: [1, 224, 224, 3], dataType: .float32)
let prediction = try model.prediction(from: input)
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.
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.
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")
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.
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.
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.
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.
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.
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])
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.
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).
| Parameter | Core ML | Create ML |
|---|---|---|
| Layunin | Pag-execute ng mga modelo (inference) | Pagsasanay ng mga modelo (training) |
| Platform | iOS, iPadOS, macOS, watchOS, tvOS | macOS (lamang) |
| Format | .mlpackage (kumukonsumo) | .mlpackage (lumilikha) |
| Code | Swift / Objective-C API | UI (Xcode) o Swift API |
| Gumagamit | Developer ng application | Developer / Data scientist |
Mga Madalas Itanong
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).
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.
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.
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.
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
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.
Basahin din