Core ML — nedir, makine öğrenimi modeli ve iOS'ta çalışma şekli

Yazar: IT Sectr Yayınlanma: 2026-03-26 Okuma süresi: 8 dk

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 — tüm ekosistem platformlarında cihaz üzerinde makine öğrenimi için Apple'ın framework'ü
  • Apple Neural Engine (ANE), 11 TOPS'a kadar performansla sinir ağları için donanım hızlandırması sağlar
  • .mlpackage formatı model, meta veri ve yapılandırmayı kullanışlı bir kapsayıcıda birleştirir
  • PyTorch ve TensorFlow'dan model dönüşümü Python aracı coremltools ile yapılır
  • Vision ve Natural Language ile entegrasyon, karmaşık ML pipeline'ları oluşturmayı sağlar

Core ML Nedir?

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.

Temel Özellikler

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 Nasıl Çalışır

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 Model Formatı

.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

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.

Core ML Performans Karşılaştırması

YongaTOPS (ANE)ResNet-50 ÇıkarımYıl
A12 Bionic518 ms2018
A14 Bionic119 ms2020
M1 Max224 ms2021
M4 Ultra352 ms2025

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

Ç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 Aracı

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.

PyTorch'tan Dönüştürme Örneği

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.

python
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.

Core ML'yi iOS Uygulamasına Entegre Etme

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.

Swift Kod Örneği

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.

swift
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 vs ML Kit

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.

ÖzellikCore MLML Kit
PlatformlariOS, macOS, watchOS, tvOSAndroid, iOS
Yerleşik API'lerVision, Natural Language aracılığıyla15+ yerleşik API
Özel Modeller.mlpackage (PyTorch, TF)TFLite (adaptör aracılığıyla)
Donanım HızlandırmaANE, GPU, CPUGPU (Android), CPU
Başlama KolaylığıModel dönüştürme gerektirirData Science gerektirmeyen hazır API'ler
Performans2–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

Core ML için minimum gereksinimler nelerdir?

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.

Core ML TensorFlow ile kullanılabilir mi?

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, .mlmodel'den nasıl farklıdır?

.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.

Core ML veri gizliliğini nasıl yönetir?

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.

Core ML hangi programlama dillerini destekler?

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

  • Core ML — Apple Neural Engine desteğiyle tüm ekosistem platformlarında cihaz içi ML için Apple'ın framework'ü
  • .mlpackage — model, meta veri ve kaynakları tek bir pakette birleştiren modern kapsayıcı formatı
  • Apple Neural Engine, M4 Ultra'da 35 TOPS'a kadar performansla sinir ağları için donanım hızlandırması sağlar
  • coremltools, Python kullanarak üç adımda PyTorch, TensorFlow ve ONNX'ten model dönüştürmeye olanak tanır
  • Vision framework'ü aracılığıyla entegrasyon, bir görüntüde model çalıştırmak için 5–10 satır Swift kodu gerektirir
  • Çıkarım performansı, modele ve yongaya bağlı olarak 2–50 ms arasında değişir
  • Veri gizliliği — tüm hesaplamalar kesinlikle yereldir, sunuculara veri gönderilmez

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