Core ML — Apple tarafından iOS, macOS, watchOS ve tvOS cihazlarında ML modellerini doğrudan çalıştırmak için optimize edilmiş bir makine öğrenimi framework'üdür. Bulut tabanlı ML hizmetlerinin aksine Core ML, Apple'ın donanım hızlandırıcılarını (Neural Engine, GPU ve CPU) kullanarak veri işleme sırasında minimum gecikme sağlar. Apple Core ML Documentation (2026)'ya göre, framework birleşik .mlpackage formatında PyTorch, TensorFlow ve Create ML modellerini destekler ve ortalama çıkarım süresi 5–50 ms'dir.
Önemli Noktalar
Core ML, Apple tarafından WWDC 2017'de iPhone, iPad, Mac, Apple Watch ve Apple TV için geliştirme ekosisteminin bir parçası olarak tanıtılan bir makine öğrenimi framework'üdür. Core ML, cihazda ML modellerini çalıştırmak için bir çalışma zamanı sağlar ve geliştiriciyi donanım optimizasyonunun ayrıntılarından soyutlar. Framework, her model işlemi için en iyi hesaplama motorunu — A12+ yongalarda Neural Engine, GPU veya CPU — otomatik olarak seçer.
Core ML'nin temel avantajı, Apple Silicon ile derin entegrasyonudur. Sinir ağı işlemleri, işlemcinin ana çekirdeklerini yüklemeyen özel Neural Engine'de çalıştırılır. Apple'a (WWDC 2025) göre Core ML modelleri, benzer Android cihazlardaki TensorFlow Lite'dan 6 kat daha hızlı çalışır.
Core ML geniş bir makine öğrenimi görev yelpazesini destekler: görüntü sınıflandırma, nesne algılama, anlamsal bölümleme, doğal dil işleme, ses analizi ve tablo verileri. Framework, çeşitli model türleriyle çalışır: sinir ağları (evrişimli, yinelenen, transformatörler), ağaç toplulukları, doğrusal regresyonlar ve Gauss süreçleri.
Core ML, .mlpackage formatında eğitilmiş bir modeli girdi olarak alır, belirli cihaz için optimize edilmiş makine koduna derler ve birleşik bir API aracılığıyla çıkarımı çalıştırır. Modelin yüklenmesinden sonucun alınmasına kadar tüm pipeline, Swift kodunun 3–5 satırını gerektirir.
.mlpackage, Apple tarafından 2020 yılında eski .mlmodel'in yerini almak üzere tanıtılan bir kapsayıcı formatıdır. Paket, JSON manifestosu, ikili MLProgram formatında model dosyası, meta veriler (yazar, sürüm, açıklama) ve sınıf etiketleri gibi kaynakları içeren bir dizindir. Apple'a göre .mlpackage, ağırlık optimizasyonu yoluyla .mlmodel'e kıyasla model boyutunu %30–50 oranında azaltır.
Apple Neural Engine (ANE), A12 Bionic'den (2018) itibaren Apple yongalarında bulunan özel bir sinir işlemcisidir. ANE, aynı güç tüketiminde CPU'dan onlarca kat daha verimli şekilde matris işlemlerini gerçekleştirir. ANE performansı, A12'de 5 TOPS'tan M4 Ultra'da (2025) 35 TOPS'a yükselerek milyarlarca parametreli modellerin çalıştırılmasını sağlar. ANE, sinir ağı mimarisine sahip tüm Core ML modelleri için otomatik olarak kullanılır.
Core ML'nin önemli bir özelliği, doğruluk kaybı olmadan modellerin FP16 ve INT8'e nicelenmesini desteklemesidir. Niceleme, model boyutunu 2–4 kat azaltır ve ANE'de çıkarımı %40–60 hızlandırır. Apple, otomatik optimum hassasiyet seçimi için Xcode Model Quantization aracını sağlar: geliştirici bir model yükler, kabul edilebilir kalite kaybını (genellikle %0.1–0.5) belirtir ve Xcode en iyi ağırlık temsil formatını seçer.
| Yonga | TOPS (ANE) | ResNet-50 Çıkarım | Yıl |
|---|---|---|---|
| A12 Bionic | 5 | 18 ms | 2018 |
| A14 Bionic | 11 | 9 ms | 2020 |
| M1 Max | 22 | 4 ms | 2021 |
| M4 Ultra | 35 | 2 ms | 2025 |
Çoğu ML modeli PyTorch veya TensorFlow'da oluşturulur ve Core ML'de kullanım için .mlpackage formatına dönüştürme gerektirir. Apple, modelleri dönüştürmek, optimize etmek ve doğrulamak için coremltools yardımcı programını sağlar — bir Python paketi.
coremltools, ML modellerini dönüştürmek için Apple'ın resmi yardımcı programıdır. PyTorch (torch.onnx veya doğrudan), TensorFlow (SavedModel, H5, Frozen Graph) ve ONNX'ten içe aktarmayı destekler. Dönüştürmeden sonra, FP16 veya INT8 niceleme etkinleştirilebilir, bu da önemli doğruluk kaybı olmadan model boyutunu 2–4 kat azaltır.
coremltools sürüm 8.0 kullanarak eğitilmiş bir PyTorch modelini Core ML formatına dönüştürmeyi inceleyelim. İşlem Python'da 2–3 adım sürer.
import torch
import coremltools as ct
# Eğitilmiş PyTorch modeli yükleniyor
model = torch.load('model.pth')
model.eval()
# Örnek girdi ile model izleniyor
example_input = torch.randn(1, 3, 224, 224)
traced_model = torch.jit.trace(model, example_input)
# Core ML .mlpackage'e dönüştürülüyor
mlmodel = ct.convert(
traced_model,
convert_to='mlprogram',
inputs=[ct.TensorType(shape=(1, 3, 224, 224))]
)
mlmodel.save('Model.mlpackage')
Kod, eğitilmiş PyTorch modelini yükler, örnek bir girdi ile JIT izleme gerçekleştirir ve bunu mlprogram formatına (Core ML ikili formatı) dönüştürür. Ortaya çıkan .mlpackage Xcode'a sürüklenebilir ve Swift kodunda hemen kullanılabilir.
Model dönüştürmeden sonra, Swift'te bir iOS uygulamasına entegrasyonu birkaç satırda tamamlanır. Xcode, .mlpackage meta verilerine dayanarak model için otomatik olarak bir Swift sınıfı oluşturur.
Core ML ve Vision framework'ünü kullanarak görüntü sınıflandırma örneğini inceleyelim. Vision, görüntüyü otomatik olarak gerekli boyuta ve piksel formatına dönüştürür.
import CoreML
import Vision
// Core ML modeli yükleniyor
guard let model = try? VNCoreMLModel(
for: MobileNetV2.configuration.model
) else { return }
// VNCoreMLRequest oluşturuluyor
let request = VNCoreMLRequest(model: model) { request, error in
guard let results = request.results
as? [VNClassificationObservation]
else { return }
// İlk 3 tahmini çıktıla
for result in results.prefix(3) {
print("\(result.identifier):
\(result.confidence)")
}
}
// Görüntü işleme başlatılıyor
let handler = VNImageRequestHandler(
url: imageURL
)
try? handler.perform([request])
Swift kodu, Vision framework'ü aracılığıyla MobileNetV2 modelini yükler, bir sınıflandırma isteği oluşturur ve sonucu — sınıf etiketleri ve güven yüzdeleri içeren VNClassificationObservation nesneleri dizisi — işler. Yüklemeden çıktıya kadar tüm pipeline, modele bağlı olarak 5–50 ms sürer.
Başlatma süresini optimize etmek için Core ML, modeli ilk kullanımda derler. Önceden derlenmiş model, soğuk başlatmayı 2–3 saniyeden 100–200 ms'ye düşürür. Modelin uygulamanın ilk açılışında değil, Xcode'da derleme zamanında derlenmesi önerilir. Bu, özellikle birden çok ML modeli olan uygulamalar için önemlidir — örneğin, nesne algılama + sınıflandırma + NLP.
Core ML ve ML Kit, benzer cihaz içi ML görevlerini çözer ancak farklı ekosistemlere yöneliktir. Core ML, Apple Silicon ile derinlemesine entegredir ve yalnızca Apple platformlarını destekler. Google'ın ML Kit'i, Android ve iOS için çapraz platform bir çözümdür.
| Özellik | Core ML | ML Kit |
|---|---|---|
| Platformlar | iOS, macOS, watchOS, tvOS | Android, iOS |
| Yerleşik API'ler | Vision, Natural Language aracılığıyla | 15+ yerleşik API |
| Özel Modeller | .mlpackage (PyTorch, TF) | TFLite (adaptör aracılığıyla) |
| Donanım Hızlandırma | ANE, GPU, CPU | GPU (Android), CPU |
| Başlama Kolaylığı | Model dönüştürme gerektirir | Data Science gerektirmeyen hazır API'ler |
| Performans | 2–50 ms (ANE) | 80–200 ms (CPU/GPU) |
Ekosisteminiz yalnızca Apple ise ve ANE aracılığıyla maksimum performansa ihtiyacınız varsa Core ML'yi seçin. Çapraz platform desteği veya dönüştürme gerektirmeyen hazır API'ler gerekiyorsa ML Kit daha pratik olacaktır.
Pratikte birçok proje her iki framework'ü de kullanır: yüksek performans için iOS Core ML ve Android'de ML Kit veya TensorFlow Lite. Birleşik bir PyTorch modeli, Apple için .mlpackage ve Android için .tflite'a dönüştürülür ve her iki platformda da tutarlı ML özellik kalitesi sağlar. Bu yaklaşım biraz daha fazla DevOps çabası gerektirir ancak maksimum kitle kapsamı sağlar.
Sıkça Sorulan Sorular
iOS 11+ temel modeller için, iOS 14+ .mlpackage formatı için. Apple Neural Engine, A12 Bionic veya daha yeni bir yonga gerektirir. Core ML, 2017'den itibaren tüm iPhone, iPad ve Mac'i destekler.
Evet, coremltools aracı aracılığıyla. TensorFlow modelleri, doğruluk korunarak .mlpackage'e dönüştürülür. Desteklenen formatlar TensorFlow 2.x, SavedModel, H5 ve Frozen Graph'ı içerir.
.mlpackage, meta veriler, ikili MLProgram dosyası ve kaynakları içeren bir dizin olarak yapılandırılmış modern bir kapsayıcı formatıdır. Eski .mlmodel'den 2–3 kat daha küçüktür ve nicelemeyi destekler.
Tüm hesaplamalar kesinlikle cihazda gerçekleştirilir. Core ML, Apple sunucularına veri göndermez. Framework, uçak modunda çalışır ve çıkarım için internet bağlantısı gerektirmez.
Swift, Core ML'yi iOS/macOS uygulamalarına entegre etmek için birincil dildir. Python, coremltools aracılığıyla model dönüştürme için kullanılır. Objective-C de geriye dönük uyumluluk için desteklenir.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun