Apple Core AI Entegrasyonu#
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ı#
| Yetenek | Core AI | Core ML |
|---|---|---|
| Model yapıtı | .aimodel | .mlpackage veya .mlmodel |
| Ultralytics dışa aktarımı | format=coreai ile kullanılabilir | format=coreml ile kullanılabilir |
| Apple çalışma zamanı API'si | AIModel, InferenceFunction ve NDArray | MLModel; genellikle VNCoreMLModel ve VNCoreMLRequest aracılığıyla |
| Dönüştürme iş akışı | PyTorch torch.export ile coreai-torch üzerinden | coremltools üzerinden TorchScript dönüştürmesi |
| Temel odak | Modern 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ü entegrasyonu | Uygulamalar tensörleri hazırlar veya Core AI görüntü tanımlayıcılarını ve arabelleklerini kullanır | Görüntü ölçeklendirme, yönlendirme ve istekler için Vision çerçevesiyle doğrudan entegrasyon |
| Donanım | CPU, GPU ve Apple Neural Engine | CPU, GPU ve Apple Neural Engine |
| Model hazırlığı | İsteğe bağlı önceden derlemeyle yükleme sırasında veya ilk kullanımda özelleştirme | Xcode veya cihaz üzerinde model derlemesi |
| Özel işlemler | Özel Core AI alt düzeyleştirmeleri ve Metal çekirdekleri | Core ML özel katmanları ve desteklenen MIL işlemleri |
| Dağıtım kullanılabilirliği | Yeni Apple işletim sistemi nesli; şu anda beta aşamasında | Mevcut 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 executableApple'ı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#
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=16iOS 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.
| Model | Görev | boyut (piksel) | Core ML CPUCPU_ONLY(ms) | Core ML CPU + ANE tercih edilirCPU_AND_NE(ms) | Core AI CPUcpu_only()(ms) | Core AI CPU + ANE tercih edilirneural_engine()(ms) |
|---|---|---|---|---|---|---|
| YOLO26n | Detect | 640 | 14.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-seg | Segment | 640 | 18.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-sem | Anlamsal | 640 | 33.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-depth | Derinlik | 640 | 36.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-cls | Sınıflandırma | 224 | 3.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-pose | Poz | 640 | 15.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-obb | OBB | 640 | 32.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 15predictç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_ONLYveyaCPU_AND_NEile yüklenir; Core AI satırlarıSpecializationOptions.cpu_only()veyaSpecializationOptions.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.exportile 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-coreyalnızcamacosx_26_0_arm64vemanylinux_2_34_x86_64wheel'lerini yayımlar; bu nedenleformat=coreaiiç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=Falseile 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,.mlpackageyerine 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=Falsekullan. Gömülü NMS (nms=True) vedynamic=Truedesteklenmiyor.coreai-torch,torchvision::nmsiç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
imgszdeğ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
.aimodelvarlı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ı:
- 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).
- 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ı.
- 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).
- 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#
- Apple Core AI'ye genel bakış
- Core AI çerçevesi belgeleri
- Core AI PyTorch Extensions
- Core AI Optimization
- Apple Core AI modelleri deposu
- Ultralytics Core ML entegrasyonu
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")veyayolo export format=coreaiile 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çinformat="coreml"ile Core ML.mlpackagedosyaları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ı.