Ultralytics YOLO27: Bekleme listesine katıl.
Get Started

Apple Core AI Entegrasyonu#

Core AI dışa aktarımı için Apple silicon üzerinde macOS 26+ veya x86_64 Linux gerekir

coreai-core, macosx_26_0_arm64 ve manylinux_2_34_x86_64 wheel paketlerini yayımlar; böylece dışa aktarma, Apple silicon Mac'lerde ve glibc 2.34 veya daha yeni bir sürüme sahip x86_64 Linux sistemlerinde çalışır. Dışa aktarılan .aimodel, iOS 27 ve macOS 27'de çalışır. Ultralytics iOS SDK (8.9.15 ve sonraki sürümler) ve Flutter eklentisi (0.6.15 ve sonraki sürümler), iOS 27 cihazlarda .aimodel varlıklarını isteğe bağlı olarak yükler; varsayılan olarak Core ML kullanılmaya devam eder.

Core AI, sinir ağlarını doğrudan Apple silicon üzerinde çalıştırmaya yönelik Apple'ın yeni çerçevesidir. .aimodel model biçimini, modern bir Swift çıkarım API'sini, PyTorch tabanlı dönüştürme araçlarını, önceden derlemeyi, model özelleştirmeyi ve özel hata ayıklama ve profil oluşturma araçlarını sunar.

Apple, Core AI'ı cihaz üzerinde yapay zekâ çalıştırmanın bir sonraki evrimi ve cihaz üzerindeki Apple Intelligence'ın arkasındaki çıkarım çerçevesi olarak tanımlıyor. Kompakt görüntü işleme modellerinden büyük üretken modellere kadar güncel sinir ağı mimarileri için tasarlanmıştır ve işleri CPU, GPU ve Apple Sinir Motoru (ANE) arasında zamanlayabilir.

Core AI, Core ML'in yeni adı değil, yeni bir dağıtım yoludur. Bu çerçeveler farklı model biçimleri, dönüştürme araçları, çalışma zamanı API'leri ve uygulama entegrasyonu kalıpları kullanır.

Core AI ve Core ML Karşılaştırması#

YetenekCore AICore ML
Model yapıtı.aimodel.mlpackage veya .mlmodel
Ultralytics dışa aktarımıformat=coreai ile kullanılabilirformat=coreml ile kullanılabilir
Apple çalışma zamanı API'siAIModel, InferenceFunction ve NDArrayMLModel; genellikle VNCoreMLModel ve VNCoreMLRequest aracılığıyla
Dönüştürme iş akışıPyTorch torch.export ile coreai-torch üzerindencoremltools üzerinden TorchScript dönüştürmesi
Temel odakModern sinir ağları ve üretken yapay zekâSinir ağı tabanlı ve sinir ağı tabanlı olmayan modeller dâhil kapsamlı makine öğrenimi dağıtımı
Görüntü entegrasyonuUygulamalar tensörleri hazırlar veya Core AI görüntü tanımlayıcılarını ve arabelleklerini kullanırGörüntü ölçeklendirme, yönlendirme ve istekler için Vision çerçevesiyle doğrudan entegrasyon
DonanımCPU, GPU ve Apple Neural EngineCPU, GPU ve Apple Neural Engine
Model hazırlığıİsteğe bağlı önceden derlemeyle yükleme sırasında veya ilk kullanımda özelleştirmeXcode veya cihaz üzerinde model derlemesi
Özel işlemlerÖzel Core AI alt düzeyleştirmeleri ve Metal çekirdekleriCore ML özel katmanları ve desteklenen MIL işlemleri
Dağıtım kullanılabilirliğiYeni Apple işletim sistemi nesli; şu anda beta aşamasındaMevcut Apple işletim sistemlerinde geniş destek
Ultralytics iOS ve Flutter SDK'larıiOS 27 ve sonraki sürümlere sahip cihazlarda isteğe bağlıTam destekli ve varsayılan

Bir uygulamanın geniş cihaz desteğine, Vision çerçevesi entegrasyonuna veya karar ağaçları ve tablo tabanlı işlem hatları gibi model türlerine ihtiyacı olduğunda Core ML uygun seçim olmaya devam eder. Apple, Core ML'i desteklemeyi sürdürüyor ve sinir ağı tabanlı olmayan model türlerini kullanan geliştiricileri Core ML'e yönlendiriyor.

Core AI Biçiminin Çalışma Şekli#

Core AI geliştirme iş akışı bir PyTorch modeliyle başlar:

PyTorch model
    ↓ torch.export
ExportedProgram
    ↓ coreai-torch
Core AI program
    ↓ optimize and save
.aimodel
    ↓ specialize or compile ahead of time
Apple silicon executable

Apple'ın coreai-torch paketi, PyTorch ATen işlemlerini Core AI işlemlerine alt düzeyleştirerek bir torch.export.ExportedProgram modelini dönüştürür. Desteklenmeyen işlemler özel bir alt düzeyleştirme veya özel bir Metal çekirdeğiyle uygulanabilir.

Sonuçta ortaya çıkan .aimodel, özelleştirilmemiş bir model varlığıdır. Bir uygulama modeli hazırladığında Core AI, modeli hedef cihaza göre özelleştirir. Uygulamalar bu işlemin ilk kullanımda gerçekleşmesine izin verebilir, özelleştirmeyi daha önceden isteyebilir veya ilk yükleme süresini azaltmak için önceden derlenmiş bir model gönderebilir.

Swift'te uygulamalar varlığı Core AI çerçevesiyle yükler, bir çıkarım işlevi seçer, türü belirtilmiş NDArray girdileri sağlar ve adlandırılmış çıktılar alır. Bu, bir Core ML modelini Vision isteği içinde sarmalamaktan farklıdır; dolayısıyla Core AI'ı benimsemek, .aimodel varlıkları için tasarlanmış bir uygulama çalışma zamanı gerektirir.

Uygulama ayrıntıları için Apple'ın AIModel, model özelleştirme ve önbelleğe alma ve önceden derleme belgelerine bak.

YOLO26 Modellerini Core AI'a Dışa Aktarma#

Örnek
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="coreai")  # 'yolo26n.aimodel' oluşturur
model.export(format="coreai", quantize=16)  # FP16 asset

# Dışa aktarılan modeli çalıştır
coreai_model = YOLO("yolo26n.aimodel")
results = coreai_model("https://ultralytics.com/images/bus.jpg")

Bağımsız değişkenlerin tam listesi için Dışa aktarma modu sayfasına bak. Grafik statiktir: export değerine verilen imgsz boyutunda izlenir; bu nedenle tahminleri aynı boyutta yap. Ultralytics meta verileri doğrudan varlığın kendi metadata.json içinde taşınır; böylece sınıf adları, stride ve görev gidiş dönüş sırasında korunur.

Çıkış başlığını seçme#

nms=False ile YOLO26, algılamaları grafik içinde seçen uçtan uca başlığını dışa aktarır. Core AI'da top-k ilkeli bir işlem olmadığından bu seçim, tam sıralama işlemine indirgenir ve Apple Neural Engine bölümleme sınırında sabit bir maliyete yol açar: max_det değerinden bağımsız olarak yaklaşık 1.7 ms. nms=None ile dışa aktarma bunun yerine ham (1, 84, 8400) tahminlerini üretir ve eşik dışı bastırma işlemini tahminleyiciye bırakır:

yolo export model=yolo26n.pt format=coreai nms=None quantize=16

iOS 27.0 çalıştıran bir iPhone 17 Pro'da YOLO26n, 640 boyutunda; grafik içindeki başlıkla 3.01 ms, başlık olmadan 1.28 ms ölçülür (FP16, önceden derlenmiş, 50 yinelemeli üç araya eklenmiş blok). Her iki model de çıkarım için YOLO(...) üzerinden gidiş dönüş yapar. Tek bir grafik çağrısının tamamlanmış algılamaları döndürmesi gerekiyorsa nms=False kullan; harici NMS için varsayılan nms=None ayarını koru.

iOS 27 veya macOS 27'de bir uygulama, dışa aktarılan varlığı Apple'ın Core AI Swift API'si aracılığıyla yükleyip çalıştırabilir. Dışa aktarılan varlıklar main giriş noktasını kullanır, [batch, 3, imgsz, imgsz] şeklinde images tek bir girdi alır ve output0 döndürür (örnek segmentasyon modelleri ayrıca output1 döndürür):

import CoreAI

let modelURL = Bundle.main.url(forResource: "yolo26n", withExtension: "aimodel")!
let model = try await AIModel(contentsOf: modelURL)
guard let function = try model.loadFunction(named: "main") else {
    throw AppError.missingInferenceFunction
}

let outputs = try await function.run(inputs: ["images": imageTensor])

Mevcut Core ML ve Vision iş akışından farklı olarak Ultralytics iOS SDK içindeki Core AI yolu, letterbox ön işleme ve NDArray oluşturma işlemlerini kendisi yapar, aynı Ultralytics meta verilerini varlığın metadata.json alanından okur ve Core ML çıkış kod çözücülerini yeniden kullanır. Uygulama bir .aimodel yolu veya .aimodel.zip URL'si ilettiğinde varlık yüklenir. Apple, güncel API ayrıntılarını Core AI çerçevesi belgelerinde, çalışan model örneklerini ise Core AI modelleri deposunda sunuyor.

Ölçülen Performans#

Varsayılan ham başlıkla (nms=None) dışa aktarılan YOLO26n FP16 (quantize=16) Core ML ve Core AI modelleri için tek görüntülü uçtan uca çıkarım; Apple M4 işlemcili, 16 GB belleğe ve macOS 27.0'a sahip bir Mac mini'de (4 Performance ve 6 Efficiency CPU çekirdeği, 10 çekirdekli GPU, 16 çekirdekli Neural Engine), ultralytics 8.4.168, Core ML çıkarımı için coremltools 9.0 ve Python 3.13 üzerinde Core AI çıkarımı için coreai-core 1.0.0b3 ile coreai-torch 0.4.3 kullanılarak ölçülmüştür. Her hücre toplam süreyi (ön işleme + çıkarım + son işleme), alt satırında ise aşamaların süre dağılımını gösterir.

ModelGörevboyut
(piksel)
Core ML CPU
CPU_ONLY
(ms)
Core ML CPU + ANE tercih edilir
CPU_AND_NE
(ms)
Core AI CPU
cpu_only()
(ms)
Core AI CPU + ANE tercih edilir
neural_engine()
(ms)
YOLO26nDetect64014.4
0.6 / 13.4 / 0.4
7.6
0.6 / 6.7 / 0.4
16.8
0.6 / 15.9 / 0.3
2.8
0.6 / 2.0 / 0.2
YOLO26n-segSegment64018.7
0.6 / 16.5 / 1.5
9.2
0.6 / 7.1 / 1.5
25.3
0.6 / 23.2 / 1.5
5.1
0.6 / 3.1 / 1.4
YOLO26n-semAnlamsal64033.9
1.3 / 32.2 / 0.4
73.7
1.4 / 71.9 / 0.4
47.1
1.2 / 38.5 / 7.4
18.7
1.2 / 11.1 / 6.4
YOLO26n-depthDerinlik64036.8
0.8 / 35.5 / 0.5
12.1
0.9 / 10.7 / 0.5
40.2
0.8 / 39.0 / 0.5
7.5
0.7 / 6.3 / 0.5
YOLO26n-clsSınıflandırma2243.8
1.9 / 1.8 / 0.0
3.3
1.9 / 1.4 / 0.0
3.0
1.9 / 1.0 / 0.0
2.4
1.9 / 0.6 / 0.0
YOLO26n-posePoz64015.5
0.6 / 14.6 / 0.3
7.0
0.6 / 6.2 / 0.3
17.8
0.5 / 17.0 / 0.3
2.7
0.5 / 2.0 / 0.2
YOLO26n-obbOBB64032.7
1.3 / 31.1 / 0.2
16.9
1.5 / 15.2 / 0.2
37.2
1.1 / 35.9 / 0.2
5.7
1.3 / 4.3 / 0.1
  • Hız değerleri, tek görüntülü seri gecikmelerdir: Her model ve hesaplama birimi için ayrı bir süreçte, Ultralytics Python API aracılığıyla bus.jpg üzerinde 3 ısınma çağrısının ardından yapılan 15 predict çağrısının ortalamasıdır. CPU/hızlandırıcı sıralaması, tek bir sıralı taramada görevler arasında değiştirildi. Core ML satırları coremltools.ComputeUnit.CPU_ONLY veya CPU_AND_NE ile yüklenir; Core AI satırları SpecializationOptions.cpu_only() veya SpecializationOptions.from_preferred_compute_unit_kind(ComputeUnitKind.neural_engine()) ile özelleştirilir ve son işlem yerleşimi her çerçeve tarafından kontrol edilir.
  • Detect, segment, classify, pose ve OBB, her hesaplama biriminde iki biçimde de aynı tahminleri döndürdü. Core ML FP16 anlamsal modeli, Neural Engine'in tercih edildiği durumda yalnızca bu Mac'te CPU'da çalışmaya kıyasla daha yavaş çalışıyor; Core AI anlamsal son işleme ise Core ML'in 0.4 ms değerine karşılık 6.4 ila 7.4 ms sürüyor.
  • Cihaz üzerindeki iPhone 17 Pro sonuçlarını CoreML entegrasyonunda karşılaştır.

Core AI'nin avantajları#

Core AI, Ultralytics'in gelecekteki dağıtımları için umut vadeden çeşitli avantajlar sunuyor:

  • Modern PyTorch dışa aktarma yolu: Dönüştürme torch.export ile başlar ve mevcut birçok dışa aktarıcının kullandığı izleme iş akışına kıyasla daha ifade gücü yüksek bir PyTorch grafiğini korur.
  • Ayrıntılı çalışma zamanı kontrolü: Uygulamalar özelleştirmeyi, derlenmiş model önbelleklerini, çıkarım işlevlerini, belleği ve hesaplama yerleşimini yönetebilir.
  • Gelişmiş model desteği: Durum bilgili yürütme, dinamik şekiller, tek bir yapıda birden fazla işlev ve özel Metal çekirdekleri, modern görme ve üretken mimariler için tasarlanmıştır.
  • Geliştiricilere özel araçlar: Core AI Debugger grafikleri ve tensör değerlerini inceleyebilir, bunları kaynak Python koduna kadar izleyebilir. Xcode ve Instruments çalışma zamanı profillemesi sağlar.
  • Kopyalama gerektirmeyen kullanım olanakları: Core AI, kamera, grafik ve çıkarım iş yükleri arasındaki kopyaları azaltmayı amaçlayan depolama ve arabellek denetimleri sunar.
  • Apple silikonuna yönelik optimizasyon: Aygıta özgü özelleştirme, Apple'ın modeli ilgili aygıtta bulunan CPU, GPU ve Neural Engine için optimize etmesini sağlar.
  • Esnek sıkıştırma: Apple'ın Core AI Optimization araçları, düşük bitli ağırlık biçimleri de dahil olmak üzere nicelemeyi, paletlemeyi ve budamayı destekler.

Bu özellikler; dinamik yürütmeye, daha büyük çok modlu bileşenlere veya mevcut Core ML işlemleriyle kolayca eşleşmeyen özel işlemlere sahip gelecekteki YOLO modelleri için özellikle yararlı olabilir.

Mevcut dezavantajlar ve sınırlamalar#

Core AI şu anda üretimde kullanılan Core ML yolunun yerini almıyor:

  • Yeni işletim sistemleri gerekiyor: Herkese açık çerçeve iOS 27 ve macOS 27 neslini hedeflerken Core ML çok daha geniş bir kurulu cihaz tabanını destekliyor.
  • Beta yazılım: Apple'ın Core AI çerçevesi ve Python araç zincirinin bazı bölümleri hâlâ ön sürüm aşamasında ve kararlı sürümlerinden önce değişebilir.
  • Daha dar dışa aktarma ortamı: coreai-torch şu anda Python 3.11–3.14 ve güncel PyTorch sürümlerini gerektiriyor; bu, Ultralytics'in desteklediği Python ve PyTorch aralığından çok daha dar.
  • Sınırlı dışa aktarma platformları: coreai-core yalnızca macosx_26_0_arm64 ve manylinux_2_34_x86_64 wheel'lerini yayımlar; bu nedenle format=coreai için macOS 26 veya üzerini çalıştıran Apple silikonlu bir Mac ya da glibc 2.34 veya üzerini kullanan x86_64 Linux (ör. Ubuntu 22.04+) gerekir. .aimodel çalıştırmak için yine Apple donanımı gerekir.
  • Ultralytics SDK'larında isteğe bağlı, varsayılan değil: iPhone 17 Pro'daki cihaz üzeri karşılaştırma, Core AI'nin tüm işlem hattında Core ML'den daha iyi değil onunla aynı seviyede olduğunu gösteriyor; anlamsal, derinlik ve yalnızca CPU üzerinde çıkarım daha yavaş, FP16 varlıkları ise indirme boyutunun yaklaşık iki katı. Bu nedenle iOS SDK ve Flutter eklentisi varsayılan olarak Core ML'i kullanıyor.
  • SDK'larda ham başlığı kullan: nms=False ile YOLO26n, Core AI'de Core ML'e kıyasla yaklaşık iki kat daha uzun sürüyor (bir karşılaştırma çalıştırmasında 3.06 ms'ye karşı 1.53 ms) ve uçtan uca FP16 poz modeli, iOS 27.0'da Core AI'nin varsayılan yerleşimiyle hiçbir algılama döndürmüyor (apple/coreai-torch#115). Ham başlık (nms=None, varsayılan), her iki sorunu da önlüyor ve SDK'lar NMS'yi Swift'te çalıştırıyor. Başlığı seçme bölümüne bak.
  • iOS Simulator çalışma zamanı yok: iOS Simulator SDK, Core AI'yi içermiyor.
  • Uygulama geçişi gerekiyor: .aimodel, .mlpackage yerine kullanılamaz; model yükleme, ön işleme, çıkarım çağrıları, meta veri yönetimi ve çıktı çözümleme için Ultralytics SDK'larının dışında bir Core AI uygulaması gerekir ve bu uygulama SDK'lar tarafından sağlanır.
  • Üretim ortamına dair kanıt sınırlı: Performansın, güç tüketiminin, ilk çalıştırmadaki özelleştirme süresinin, doğruluğun ve sıkıştırmanın desteklenen YOLO görev ve aygıt matrisinde doğrulanması gerekiyor.
  • NMS işlem hattı yok: Core ML, eski YOLO algılama modelleri için bir NMS aşamasını pakete ekleyebilir. Core AI varsayılan olarak ham, bire çok tahminler dışa aktarır; YOLO26'nın NMS içermeyen başlığı için nms=False kullan. Gömülü NMS (nms=True) ve dynamic=True desteklenmiyor. coreai-torch, torchvision::nms için aşağı dönüştürme desteğine sahip olmadığından NMS ana bilgisayarda çalışır.
  • Girdi boyutu sabit: Dışa aktarılan grafik tek bir imgsz değerinde izlenir ve dinamik şekillere sahip değildir; bu nedenle tahmini dışa aktarma sırasında kullanılan boyutta yap.
  • FP16 varlıkları yüklenirken işlem sonlandırılabilir: Bazı FP16 .aimodel varlıkları Apple Neural Engine programlarını yükleyemiyor ve MPSGraph başarısız bir doğrulamaya neden oluyor; bu da geri dönüş yapmak yerine işlemi sonlandırıyor. Bu durum, herhangi bir Ultralytics kodu çalışmadan önce Apple'ın çalışma zamanı içinde gerçekleşiyor; aynı varlık yalnızca CPU kullanılan özelleştirmeyle yükleniyor. Bir varlıkta bu sorun görülürse FP32'ye geç. iPhone 17 Pro'da kontrol edilen FP16 SDK varlıkları (tüm nano modeller, tüm boyutlardaki detect modelleri ve her görevin en büyük modeli) işlem sonlandırma hatası olmadan yüklendi.

Hangi Apple biçimini kullanmalısın?#

Şunlara ihtiyacın varsa bugün Core ML kullan:

  • Güncel ve eski Apple işletim sistemlerinde dağıtım
  • Ultralytics iOS veya Flutter SDK'sının varsayılan yolu
  • Vision framework görüntü işleme
  • Test edilmiş FP16 ve INT8 YOLO dağıtımı
  • Uyumlu eski algılama modelleri için gömülü NMS

iOS 27 veya macOS 27 gerektirebiliyorsan ve şunlara ihtiyacın varsa Core AI'yi değerlendir:

  • Apple'ın cihaz üzerindeki en yeni sinir ağı çalışma zamanı
  • Açık özelleştirme ve önbellek yönetimi
  • Gelişmiş dinamik veya durum bilgili model yürütme
  • Özel Core AI işlemleri veya Metal çekirdekleri
  • Ayrıntılı Core AI grafiği hata ayıklama ve çalışma zamanı profillemesi

Uygulamalar geçiş yaparken Core ML ve Core AI'nin birlikte var olması bekleniyor. Dağıtım hedefleri ve uygulama sözleşmeleri farklı olduğundan Core AI desteği, Core ML ihtiyacını hemen ortadan kaldırmıyor.

Ultralytics yol haritası#

Özel coreai dışa aktarma hedefi uygulandı: dışa aktarma ve sayısal doğrulama, desteklenen YOLO26 görev modellerini kapsıyor ve Ultralytics CI'da macOS 26 üzerinde sürekli çalışıyor; FP16 gecikmesi de aygıtta ölçülüyor. Core AI'nin Core ML yoluyla eşit düzeye ulaşması için kalan yol haritası:

  1. Apple Neural Engine'de uçtan uca başlık gecikmesi farkını kapatmak (apple/coreai-torch#66) ve Neural Engine doğruluk sorunlarını gidermek (apple/coreai-torch#115, #116).
  2. INT8 ve paletlenmiş Core AI varlıkları; SDK varlıkları FP16 biçiminde ve indirme boyutları INT8 Core ML varlıklarının yaklaşık iki katı.
  3. Kararlı Apple çerçevesi ve dönüştürme aracı sürümleri (iOS 27 ve macOS 27 nesli şu anda beta aşamasında).
  4. Desteklenen aygıt matrisi genelinde bellek, güç ve özelleştirme kıyaslamaları.

Ultralytics iOS SDK ve Flutter eklentisi, iOS 27 ve üzeri sürümlerde Core AI'yi isteğe bağlı olarak yükler; varsayılanları Core ML olmaya devam eder ve iOS 27'nin altındaki sürümleri kapsamak için önerilen hedef Core ML'dir. Kalan maddeler için Ultralytics yol haritasını ve sürüm notlarını takip et.

Ek Kaynaklar#

Sık Sorulan Sorular#

  • Evet. macOS 26 veya üzerini çalıştıran Apple silikonlu bir Mac'te ya da glibc 2.34 veya üzerini kullanan x86_64 Linux'ta model.export(format="coreai") veya yolo export format=coreai ile dışa aktarabilirsin; dışa aktarılan .aimodel, iOS 27 ve macOS 27'de çalışır. Ultralytics iOS ve Flutter SDK'ları bunu iOS 27 aygıtlarında isteğe bağlı olarak yükler. Varsayılan yolları ve bu neslin altındaki işletim sistemleri için format="coreml" ile Core ML .mlpackage dosyalarını dışa aktar.

  • Hemen değil. Core AI, Apple'ın modern sinir ağları için sunduğu daha yeni yol; Core ML ise desteklenmeye devam ediyor ve daha geniş işletim sistemi kapsamı, Vision entegrasyonu ve sinir ağı tabanlı olmayan model desteği sağlıyor.

  • Hayır. Bu dosyalar farklı model gösterimleri içerir ve farklı çerçeveler tarafından yüklenir. Dönüştürme, uygun Apple araç zinciri kullanılarak kaynak modelden başlatılmalıdır.

  • İlk entegrasyonun Core ML ile birlikte çalışması bekleniyor. Gelecekteki olası bir değiştirme kararı, işletim sisteminin benimsenme düzeyine, kararlı araçlara ve cihaz üzerindeki performansa bağlı.

Katkıda Bulunanlar

Yorumlar