Core ML: çerçeve mimarisi ve model entegrasyonu

Yazar: IT Sectr Yayınlanma: 2026-07-17 Okuma süresi: 10 dk

Core ML Apple’ın makine öğrenimi çerçevesidir ve önceden eğitilmiş ML modellerini doğrudan iOS, iPadOS, macOS, watchOS ve tvOS uygulamalarına entegre etmenizi sağlar. Çerçeve, sinir ağlarını, karar ağaçlarını, doğrusal regresyonları ve topluluk yöntemlerini ve ayrıca TensorFlow, PyTorch, Keras ve ONNX’ten Apple’ın kendi formatına model dönüştürmeyi destekler. Apple Machine Learning Research (2025)’e göre Core ML, çıkarımı tamamen cihaz üzerinde gerçekleştirir, veri gizliliğini sağlar ve çoğu model için 10 milisaniyenin altında gecikme süresi sunar.

Ana Noktalar

  • Core ML, sunucu tarafı işleme olmadan cihaz üzerinde ML modellerini çalıştırmak için Apple’ın tescilli çerçevesidir.
  • TensorFlow, PyTorch, Keras, ONNX ve diğer popüler formatlardan model dönüştürmeyi destekler.
  • Çıkarım, otomatik optimum bilgi işlem arka ucu seçimiyle Neural Engine, GPU veya CPU’da çalışır.
  • Çerçeve şunları içerir: niceleme (Float16, Int8), budama, hızlanma için katman birleştirme.
  • Core ML 5 (2024), .mlpackage paketleri, dinamik sinir ağları ve cihaz üzerinde denetimli öğrenme desteği ekledi.

Core ML Nedir?

Core ML, WWDC 2017’de tanıtılan Apple makine öğrenimi ekosisteminin temel bir bileşenidir. Core ML’den önce iOS geliştiricileri, cihaz üzerinde ML modellerini çalıştırmak için üçüncü taraf kütüphaneleri (TensorFlow Mobile, Caffe2) veya özel çözümleri kullanıyordu. Core ML, klasik regresyonlardan derin sinir ağlarına kadar tüm model türleri için tek bir birleşik arayüz sağladı ve belirli cihaz için düşük seviyeli optimizasyonu üstlendi.

Gelişim Geçmişi

Core ML’nin ilk sürümü (2017) yalnızca sabit giriş boyutlarına sahip statik modelleri destekliyordu. Core ML 2 (2018), toplu tahmin ve anlık model güncellemeleri desteği ekledi. Core ML 3 (2019), cihaz üzerinde eğitim ve düzinelerce yeni sinir ağı katmanı desteği getirdi. Core ML 4 (2021), çok çıkışlı modeller ve gelişmiş görüntü işleme desteği ekledi. Core ML 5 (2024), dinamik sinir ağları ve yeni ML katmanları kullanarak cihaz üzerinde denetimli öğrenme desteği ekledi.

Cihaz Üzerinde ML: Avantajlar

Makine öğrenimini cihaz üzerinde çalıştırmanın üç temel avantajı vardır: gizlilik — veriler cihazdan asla ayrılmaz (GDPR ve HIPAA gereksinimlerini karşılar), hız — çıkarım ağ gecikmesi olmadan milisaniyeler içinde tamamlanır, çevrimdışı kullanılabilirlik — model internet bağlantısı olmadan çalışır. Apple Gizlilik Raporu’na (2025) göre, Apple platformlarındaki ML çıkarımlarının %90’ından fazlası Core ML sayesinde cihaz üzerinde gerçekleştirilir.

Core ML Mimarisi ve Bilgi İşlem Arka Uçları

Core ML mimarisi çok katmanlı bir prensip üzerine kurulmuştur: en üst seviyede — geliştirici API’si (MLModel, MLFeatureProvider, MLPredictionOptions), orta seviyede — .mlpackage formatında model, alt seviyede — bilgi işlem arka uçları: Apple Neural Engine (ANE), GPU (Metal Shaders) ve CPU (BNNS, Accelerate framework). Core ML, modele ve cihaz donanımına bağlı olarak en iyi arka ucu otomatik olarak seçer.

Arka UçCihazlarPerformans
Neural EngineiPhone Xs+, iPad A12+, Mac M1+Maksimum (TOPS)
GPU (Metal)Tüm Apple cihazlarıYüksek (paralel hesaplama)
CPU (BNNS)Tüm Apple cihazlarıTemel (uyumluluk)

Apple Neural Engine

Neural Engine (ANE), Apple A12+ ve M1+ çiplerine yerleşik özel bir nöral işlemcidir. ANE, A17 Pro’da 15.8 TOPS ve M4’te 38 TOPS’a varan performansla evrişimli sinir ağı (CNN) işlemleri ve matris çarpanları için optimize edilmiştir. Core ML, modelin ANE’de çalışıp çalışamayacağını otomatik olarak belirler ve çalışabiliyorsa oraya yükler. Model, ANE tarafından desteklenmeyen işlemler içeriyorsa Core ML, hesaplamayı GPU ve CPU arasında dağıtır.

Metal Performance Shaders

GPU hesaplamaları için Core ML, Metal Performance Shaders Graph’ı (MPSGraph) kullanır. MPSGraph, GPU üzerinde hesaplama grafikleri oluşturmak ve yürütmek için bir çerçevedir. MPSGraph, Core ML’den sinir ağı grafiğini alır ve belirli GPU mimarisi (7 çekirdekli A17 GPU veya 40 çekirdekli M4 Ultra GPU) için optimize edilmiş Metal Shaders’a derler. MPSGraph’ın otomatik optimizasyonları arasında katman birleştirme, gereksiz işlemleri kaldırma ve optimum veri formatı seçimi bulunur.

Desteklenen Model Türleri ve Formatları

Core ML, üç kategoriye ayrılan tüm ana makine öğrenimi model türlerini destekler: sinir ağları (evrişimli CNN, yinelenen RNN/LSTM, dönüştürücüler), topluluk modelleri (Rastgele Orman, Gradient Boosting, XGBoost, Karar Ağaçları) ve regresyon modelleri (doğrusal regresyon, SVM, CRF). Her model türünün kendi MLModelType alt protokolü vardır ve Core ML uygun arka ucu ve yürütme formatını otomatik olarak seçer.

Desteklenen Sinir Ağı Katmanları

Core ML, 150’den fazla sinir ağı katmanı türünü destekler: Convolution (1D/2D/3D), BatchNormalization, Pooling (Max/Average), Activation (ReLU, Sigmoid, Tanh, LeakyReLU, PReLU), Recurrent (LSTM/GRU/SimpleRNN), Transformers (MultiHeadAttention, LayerNorm), Metal’e özgü katmanlar. Desteklenmeyen katmanlar için Core ML, özel katman mekanizması sağlar — Metal Shading Language veya Swift’te katman uygulaması yazma yeteneği.

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 Dosya Formatları

2021’den önce Core ML, .mlmodel formatını kullanıyordu — tüm model ağırlıklarını ve meta verilerini içeren ikili bir dosya. Xcode 13 ve Core ML 4’ten başlayarak Apple, yeni .mlpackage formatını tanıttı — modeli, meta verileri, giriş/çıkış açıklamalarını ve JSON formatında ön/son işleme dosyalarını içeren dizin tabanlı bir paket yapısı. mlpackage, git sürümlemeyi destekleyerek ekip geliştirmeyi basitleştirir. .mlmodel’den .mlpackage’ye dönüştürme, Xcode Model Compiler yardımcı programı veya coremltools Python betiği ile yapılır.

Modelleri Core ML’ye Dönüştürme

Dönüştürme, Python’daki coremltools kütüphanesi kullanılarak gerçekleştirilir. coremltools, TensorFlow 1.x/2.x (SavedModel, PB, HDF5), PyTorch (TorchScript, izlenmiş/betiklenmiş modeller), Keras (H5), ONNX ve Create ML ile oluşturulan modellerin içe aktarımını destekler. Standart dönüştürme hattı üç adımdan oluşur: modeli orijinal formatında yükleme, MIL’e (Model Intermediate Language) — Core ML’nin iç gösterimi — dönüştürme ve .mlpackage’ye dışa aktarma.

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

Dönüştürme Sonrası Model Doğrulaması

Dönüştürmeden sonra, orijinal model ile dönüştürülmüş Core ML modelinin aynı veriler üzerindeki tahminlerini karşılaştırarak model doğruluğunu doğrulamanız gerekir. Kabul edilebilir sapma Float32 için 1e-3 (%0,1) ve Float16/Int8 için 1e-2 (%1) değerinden fazla değildir. coremltools, otomatik karşılaştırma için ct.utils.compare_models() yardımcı programını sağlar. Sapma normu aşarsa, desteklenmeyen işlemlerle ilgili bir sorun olabilir — bunların özel katmanlarla değiştirilmesi veya modelin basitleştirilmesi gerekir.

Core ML Performans Optimizasyonu

Optimizasyon, önemli bir doğruluk kaybı olmadan model boyutunu küçültme ve çıkarım hızını artırma sürecidir. Apple, coremltools ve Xcode’da yerleşik birkaç optimizasyon aracı sağlar: niceleme (ağırlık hassasiyetini azaltma), budama (önemsiz nöronları kaldırma), gereksiz katmanları kaldırma ve hesaplama grafiğini azaltmak için katman birleştirme.

Float16 ve Int8’e Niceleme

Niceme, model boyutunu Float32’ye kıyasla yaklaşık 2 kat (Float16) veya 4 kat (Int8) azaltır. Core ML üç niceleme modunu destekler: bir kalibrasyon veri kümesiyle eğitim sonrası niceleme (PTQ), coremltools aracılığıyla dönüştürme sırasında ve niceleme farkında eğitim (QAT). Çoğu bilgisayarlı görme modeli için PTQ ile Float16’ya dönüştürme, çıkarım hızını ikiye katlarken %0,5’ten az doğruluk kaybına neden olur.

Xcode’da Model Profilleme

Xcode, Core ML Model Profiler aracını sağlar ve simülatörde veya gerçek bir cihazda çeşitli cihazlardaki model performansını ölçmenize olanak tanır. Profil oluşturucu, her katmanın yürütme süresini, arka uç yükünü (ANE/GPU/CPU), tepe bellek kullanımını ve model darboğazlarını gösterir. Apple Performans Optimizasyon Kılavuzu’na göre, modellerin %80’inden fazlası, değiştirme veya birleştirme yoluyla optimize edilebilen, diğerlerinden önemli ölçüde daha yavaş çalışan en az bir katmana (katman anormalliği) sahiptir.

Pratik Core ML Entegrasyon Örneği

Swift kullanarak bir iOS uygulamasına eğitilmiş bir Core ML modelinin entegrasyonuna bakalım. .mlpackage dosyasını Xcode projesine ekledikten sonra (sürükleyerek veya Swift Package Manager aracılığıyla), Xcode otomatik olarak tür belirtilmiş girdi ve çıktılara sahip bir Swift model sınıfı oluşturur. Geliştiricinin giriş verilerini manuel olarak ayrıştırması gerekmez — oluşturulan sınıf, model meta verilerine bağlı olarak UIImage, MLMultiArray, String veya diğer türleri kabul eder.

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

Hata Yönetimi ve Yedekleme

Core ML’yi entegre ederken hata yönetimini uygulamanız gerekir: model, cihaz uyumsuzluğu (çok eski iOS sürümü), yetersiz bellek veya model dosyası bozulması nedeniyle yüklenemeyebilir. Yedekleme mantığı uygulanması önerilir: model nicelenmiş Int8 formatında yüklenemezse Float16 sürümünü yükleyin, o da başarısız olursa — Float32’yi yükleyin. Apple Crash Analytics’e göre, ML uygulaması çökmelerinin %5’inden fazlası yanlış model yüklemesinden kaynaklanır.

Core ML ve Create ML Farkı

Core ML ve Create ML, Apple ML ekosisteminin iki tamamlayıcı aracıdır. Core ML, cihaz üzerinde model yürütmeyi (çıkarım) yönetirken Create ML, model eğitimini yönetir. Create ML’de oluşturulan modeller, uygulamalara daha sonra entegrasyon için özel olarak Core ML formatına (.mlpackage) aktarılır. Web geliştirme terimleriyle ifade etmek gerekirse Core ML tarayıcı (yürütme), Create ML ise kod yazmak için IDE’dir (eğitim).

ParametreCore MLCreate ML
AmaçModel yürütme (çıkarım)Model eğitimi
PlatformiOS, iPadOS, macOS, watchOS, tvOSmacOS (yalnızca)
Format.mlpackage (tüketir).mlpackage (oluşturur)
KodSwift / Objective-C APIXcode arayüzü veya Swift API
KullanıcıUygulama geliştiricisiGeliştirici / Veri bilimci

Sıkça Sorulan Sorular

Core ML nedir?

Core ML, iOS, iPadOS, macOS, watchOS ve tvOS cihazlarında önceden eğitilmiş ML modellerini çalıştırmak için Apple’ın makine öğrenimi çerçevesidir. Sinir ağlarını, karar ağaçlarını ve regresyonları destekler ve otomatik olarak en uygun bilgi işlem arka ucunu (Neural Engine, GPU veya CPU) seçer.

Core ML, TensorFlow’dan nasıl farklıdır?

TensorFlow, sunucularda ve mobil cihazlarda modelleri eğitmek ve çalıştırmak için evrensel bir çerçevedir. Core ML, donanıma özgü optimizasyon (ANE, GPU, Metal) yoluyla maksimum performansla yalnızca Apple cihazlarında modelleri çalıştırmak (eğitmek değil) için özel bir motordu. TensorFlow Mobile artık iOS’ta desteklenmemektedir — Apple, platformlarındaki tüm ML görevleri için Core ML’yi önermektedir.

Bir PyTorch modeli Core ML’ye nasıl dönüştürülür?

Dönüştürme, Python’daki coremltools kütüphanesi kullanılarak yapılır: PyTorch modelini TorchScript’e (torch.jit.trace) aktarın, ardından .mlpackage oluşturmak için ct.converters.pytorch.convert() işlevini kullanın. coremltools, PyTorch katmanlarını desteklenen Core ML katmanlarına otomatik olarak eşeler ve ANE için grafiği optimize eder.

Core ML tüm iPhone’larda çalışır mı?

Core ML, iOS 11 ve sonraki sürümlere sahip tüm iPhone’larda çalışır. Ancak performans donanıma bağlıdır: iPhone 5s/6 — yalnızca CPU (yavaş çıkarım), iPhone 8/X — GPU (Metal), iPhone Xs ve sonrası — Neural Engine (A17 Pro’da 15.8 TOPS’a kadar maksimum performans). En iyi performans için minimum iOS sürümünün 12+ olarak ayarlanması önerilir.

Core ML modelleri hangi formatı kullanır?

Modern format .mlpackage’dir (modeli, meta verileri ve giriş/çıkış açıklamalarını içeren bir dizin). Eski format .mlmodel’dir (tek bir ikili dosya). Xcode, derleme sırasında .mlmodel’i otomatik olarak .mlpackage’ye dönüştürür, ancak yeni projeler için doğrudan .mlpackage kullanılması önerilir.

Özet

  • Core ML, tüm ekosistem platformlarında çalışan, cihaz üzerinde makine öğrenimi için Apple’ın standart çerçevesidir.
  • Python’daki coremltools kütüphanesi aracılığıyla TensorFlow, PyTorch, Keras ve ONNX’ten dönüştürmeyi destekler.
  • Çıkarım, otomatik arka uç seçimiyle Neural Engine (iPhone Xs+), GPU (Metal) veya CPU’da çalışır.
  • Float16 ve Int8’e niceleme, minimum doğruluk kaybıyla model boyutunu 2-4 kat azaltır.
  • Create ML, Core ML için modeller oluştururken Core ML bunları yalnızca yürütür — bunlar farklı araçlardır.
  • .mlpackage formatı, eski .mlmodel’in yerini alarak JSON’da sürümleme ve meta veri sağlar.
  • Xcode’daki Core ML Profiler, darboğazları belirlemeye ve bunları katman değişimiyle optimize etmeye yardımcı olur.

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.

Projeyi tartış

Ayrıca okuyun