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 üzeri sürümüne 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 üzeri) ve Flutter eklentisi (0.6.15 ve üzeri), iOS 27 cihazlarda .aimodel varlıklarını isteğe bağlı olarak yükler; varsayılanları Core ML olmaya 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, modele özgü optimizasyonu ve özel hata ayıklama ve profil oluşturma araçlarını sunar.
Apple, Core AI'ı cihaz üzerindeki yapay zekâ yürütmesinin bir sonraki evrimi ve cihaz üzerinde çalışan Apple Intelligence'ın arkasındaki çıkarım çerçevesi olarak tanımlıyor. Kompakt görme modellerinden büyük üretken modellere kadar güncel sinir ağı mimarileri için tasarlanmıştır ve işleri CPU, GPU ve Apple'ın Sinirsel Motoru (ANE) arasında planlayabilir.
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 dosyası | .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, coreai-torch aracılığıyla | coremltools aracılığıyla TorchScript dönüştürmesi |
| Temel odak | Modern sinir ağları ve üretken yapay zekâ | Sinir ağları kullanan ve kullanmayan modeller dâhil geniş kapsamlı makine öğrenimi dağıtımı |
| Görsel entegrasyonu | Uygulamalar tensörleri hazırlar veya Core AI görsel tanımlayıcılarını ve arabelleklerini kullanır | Görsellerin ölçeklendirilmesi, yönlendirilmesi 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ırlama | İsteğe bağlı önceden derlemeyle, yükleme sırasında veya ilk kullanımda modele özgü optimizasyon | Xcode ile veya cihaz üzerinde model derleme |
| Özel işlemler | Özel Core AI alt düzey eşlemeleri 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üm cihazlarda isteğe bağlı | Tamamen desteklenir ve varsayılan olarak kullanılır |
Bir uygulamanın geniş cihaz desteğine, Vision çerçevesi entegrasyonuna veya karar ağaçları ve tablo verisi işlem hatları gibi model türlerine ihtiyacı olduğunda Core ML doğru seçim olmaya devam eder. Apple, Core ML'i desteklemeyi sürdürüyor ve sinir ağı tabanlı olmayan model türleri için 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üzeyde eşleyerek bir torch.export.ExportedProgram modelini dönüştürür. Desteklenmeyen işlemler özel bir alt düzey eşlemeyle veya özel Metal çekirdeğiyle uygulanabilir.
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 erken isteyebilir veya ilk yükleme süresini azaltmak için önceden derlenmiş bir modeli uygulamayla birlikte sunabilir.
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, Core ML modelini bir Vision isteğine sarmalamaktan farklıdır; bu nedenle 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 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")Tüm bağımsız değişkenlerin listesi için Dışa aktarma modu sayfasına bak. Grafik statiktir: export için verilen imgsz boyutunda izlenir; bu nedenle tahmini aynı boyutta yap. Ultralytics meta verileri doğrudan varlığın kendi metadata.json alanında taşınır; böylece sınıf adları, stride ve görev gidiş-dönüşte korunur.
Başlığı 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ıralamaya dönüştürülür ve Apple Neural Engine bölüm sınırında sabit bir maliyet oluşturur; bu maliyet, max_det değerinden bağımsız olarak yaklaşık 1,7 ms'dir. nms=None ile dışa aktarma bunun yerine ham (1, 84, 8400) tahminlerini üretir ve bastırma işlemini tahminleyiciye bırakır:
yolo export model=yolo26n.pt format=coreai nms=None quantize=16iOS 27.0 çalıştıran iPhone 17 Pro'da, 640 çözünürlükte YOLO26n; başlık grafikteyken 3,01 ms, başlık olmadan 1,28 ms sürer (FP16, önceden derlenmiş, iç içe yürütülen üç adet 50 yinelemelik blok). Her iki durumda da çıkarım için YOLO(...) üzerinden gidiş-dönüş yapılır. 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 seçeneğini kullanmaya devam et.
iOS 27 veya macOS 27'de bir uygulama, dışa aktarılan varlığı Apple'ın Core AI Swift API'si üzerinden yükleyip çalıştırır. Dışa aktarılan varlıklar main giriş noktasını kullanır, [batch, 3, imgsz, imgsz] biçiminde tek bir images girdisi alır ve output0 döndürür (örnek segmentasyonu 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 kendi letterbox ön işlemesini ve NDArray oluşturma işlemini yapar, aynı Ultralytics meta verilerini varlığın metadata.json alanından okur ve Core ML çıktı çözücülerini yeniden kullanır. Uygulama bir .aimodel yolu veya .aimodel.zip URL'si sağladığında 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 sunar.
Ölçülen Performans#
Varsayılan ham başlıkla (nms=None) YOLO26n FP16 (quantize=16) Core ML ve Core AI dışa aktarımlarının uçtan uca tek görüntü çıkarımı; Apple M4 bulunan bir Mac mini'de (4 Performance ve 6 Efficiency CPU çekirdeği, 10 çekirdekli GPU, 16 çekirdekli Neural Engine), 16 GB bellek ve macOS 27.0 ile; Core ML çıkarımı için ultralytics 8.4.168 ve coremltools 9.0, Python 3.13 üzerinde Core AI çıkarımı için coreai-torch 0.4.3 ve coreai-core 1.0.0b3 kullanılarak ölçülmüştür. Her hücrede toplam süre (ön işleme + çıkarım + son işleme), altında ise aşama sürelerinin dökümü gösterilir.
| 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 | Algıla | 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ır | 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ü art arda çağrı gecikmeleridir: Ultralytics Python API'si 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; her model ve hesaplama birimi yeni bir süreçte çalıştırılmıştır. Tek bir sıralı geçişte görevler arasında CPU/hızlandırıcı sırası dönüşümlü olarak değiştirilmiştir. 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şlemlerin yerleşimi her çerçeve tarafından belirlenir. - Algılama, segmentasyon, sınıflandırma, poz ve OBB, her hesaplama biriminde her iki biçimde de aynı tahminleri döndürdü. Core ML FP16 semantik modeli, bu Mac'te Neural Engine tercih edildiğinde yalnızca CPU kullanımına kıyasla daha yavaş çalışıyor; Core AI semantik son işleme ise Core ML'deki 0.4 ms'ye karşılık 6.4 ila 7.4 ms sürüyor.
- Cihaz üzerinde iPhone 17 Pro'da elde edilen sonuçları CoreML entegrasyonu bölümündeki sonuçlarla karşılaştır.
Core AI'ın Avantajları#
Core AI, Ultralytics'in gelecekteki dağıtımları için umut vadeden çeşitli avantajlar sunar:
- 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ı denetimi: 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 dosyada 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, ayrıca bunların kaynağı olan Python koduna kadar iz sürebilir. Xcode ve Instruments çalışma zamanı profillemesi sağlar.
- Kopyasız işleme olanakları: Core AI, kamera, grafik ve çıkarım iş yükleri arasındaki kopyaları azaltmak üzere depolama ve arabellek denetimleri sunar.
- Apple silicon optimizasyonu: Cihaza özgü özelleştirme, Apple'ın modeli belirli cihazda 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 dâhil nicemleme, paletleştirme ve budama işlemlerini destekler.
Bu özellikler; dinamik yürütme, daha büyük çok modlu bileşenler veya mevcut Core ML işlemlerine kolayca eşlenemeyen özel işlemler kullanan 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 alamaz:
- Yeni işletim sistemleri gerekir: Genel kullanıma açık çerçeve iOS 27 ve macOS 27 neslini hedeflerken Core ML çok daha geniş bir kurulu cihaz tabanını destekler.
- 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ındadır ve kararlı sürümleri çıkmadan önce değişebilir.
- Daha sınırlı dışa aktarma ortamı:
coreai-torchşu anda Python 3.11–3.14 ve yakın tarihli PyTorch sürümlerini gerektirir; bu, Ultralytics'in desteklediği Python ve PyTorch aralığından çok daha dardır. - Sınırlı dışa aktarma platformları:
coreai-coreyalnızcamacosx_26_0_arm64vemanylinux_2_34_x86_64wheel paketlerini yayımlar; bu nedenleformat=coreaiiçin macOS 26 veya üzeri sürümünü çalıştıran bir Apple silicon Mac ya da glibc 2.34 veya üzeri sürümüne sahip x86_64 Linux gerekir (ör. Ubuntu 22.04+)..aimodelçalıştırmak için yine Apple donanımı gerekir. - Ultralytics SDK'larında varsayılan değil, isteğe bağlı: iPhone 17 Pro'da yapılan cihaz üzeri karşılaştırma, tüm işlem hattında Core AI'ın Core ML ile aynı düzeyde olduğunu, ondan daha hızlı olmadığını gösteriyor. Anlamsal, derinlik ve yalnızca CPU kullanan çıkarım daha yavaş; FP16 varlıklarının indirme boyutu ise yaklaşık iki kat. Bu nedenle iOS SDK ve Flutter eklentisinde varsayılan olarak Core ML kullanılmaya devam ediyor.
- SDK'lar için ham başlığı kullan:
nms=Falseile YOLO26n, Core AI'da Core ML'e kıyasla yaklaşık iki kat daha uzun sürer (bir karşılaştırma çalıştırmasında 3,06 ms'ye karşı 1,53 ms) ve FP16 uçtan uca poz modeli, iOS 27.0'da Core AI'ın varsayılan yerleşimiyle hiçbir algılama döndürmez (apple/coreai-torch#115). Ham başlık (nms=None, varsayılan seçenek) bu iki sorunu da önler ve SDK'lar NMS'yi Swift'te çalıştırır. Başlığı seçme bölümüne bak. - iOS Simulator çalışma zamanı yok: iOS Simulator SDK'sı Core AI'ı içermez.
- Uygulama geçişi gerekir:
.aimodel,.mlpackageyerine kullanılamaz; model yükleme, ön işleme, çıkarım çağrıları, meta veri işleme ve çıktı çözme için Ultralytics SDK'ları dışında Core AI uygulaması gerekir; Ultralytics SDK'ları böyle bir uygulama sunar. - Üretim ortamında sınırlı kanıt: Performansın, güç tüketiminin, ilk çalıştırmada özelleştirme süresinin, doğruluğun ve sıkıştırmanın desteklenen YOLO görevleri ve cihazları matrisinde doğrulanması gerekir.
- NMS işlem hattı yok: Core ML, eski YOLO algılama modelleri için bir NMS aşamasını pakete ekleyebilir. Core AI dışa aktarımları varsayılan olarak ham bire-çok tahminleri üretir; YOLO26'nın NMS gerektirmeyen başlığı için
nms=Falsekullan. Gömülü NMS (nms=True) vedynamic=Truedesteklenmez.coreai-torch,torchvision::nmsiçin alt düzey eşleme sunmadığından NMS ana makinede kalır. - Girdi boyutu sabit: Dışa aktarılan grafik tek bir
imgszboyutunda izlenir ve dinamik şekilleri desteklemez; bu nedenle tahmini, modelin dışa aktarıldığı boyutta yap. - FP16 varlıkları yükleme sırasında işlemi sonlandırabilir: Bazı FP16
.aimodelvarlıkları Apple Neural Engine programlarını yükleyemez ve MPSGraph başarısız bir doğrulama hatası verir; bu durumda işlem yedek seçeneğe geçmek yerine sonlanır. Bu, Ultralytics kodu çalışmadan önce Apple'ın çalışma zamanı içinde gerçekleşir ve aynı varlık yalnızca CPU'yu kullanan bir özelleştirmeyle yüklenir. Varlıkta bu sorun olursa FP32'ye geç; iPhone 17 Pro'da denetlenen FP16 SDK varlıkları (tüm nano modeller, her boyuttaki detect modeli ve her görevin en büyük modeli) işlemi sonlandırmadan yüklendi.
Hangi Apple Biçimini Kullanmalısın?#
Şunlara ihtiyacın varsa bugün Core ML kullan:
- Mevcut ve eski Apple işletim sistemlerine dağıtım
- Ultralytics iOS veya Flutter SDK'sının varsayılan yolu
- Görsellerin Vision çerçevesiyle işlenmesi
- FP16 ve INT8 YOLO dağıtımının test edilmiş olması
- Uyumlu eski algılama modelleri için gömülü NMS
iOS 27 veya macOS 27 gerektirebiliyorsan ve aşağıdakilere ihtiyacın varsa Core AI'ı değerlendir:
- Apple'ın cihaz üzerinde çalışan en yeni sinir ağı çalışma zamanı
- Açıkça yönetilen özelleştirme ve önbellek
- Gelişmiş dinamik veya durum bilgili model yürütme
- Özel Core AI işlemleri veya Metal çekirdekleri
- Core AI grafikleri için ayrıntılı hata ayıklama ve çalışma zamanı profillemesi
Uygulamalar geçiş yaparken Core ML ve Core AI'ın 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ırmaz.
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 macOS 26 üzerinde Ultralytics CI'da sürekli çalışıyor; FP16 gecikmesi de cihaz üzerinde ölçülüyor. Core AI'ın Core ML yoluyla eşit düzeye gelmesi için kalan yol haritası:
- Apple Neural Engine'de uçtan uca başlık gecikmesi farkını kapatma (apple/coreai-torch#66) ve Neural Engine doğruluk sorunlarını giderme (apple/coreai-torch#115, #116).
- INT8 ve paletleştirilmiş Core AI varlıkları; SDK varlıkları FP16'dır ve INT8 Core ML varlıklarından yaklaşık iki kat daha büyük indirme boyutuna sahiptir.
- 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 cihazlar matrisinde bellek, güç ve özelleştirme kıyaslamaları.
Ultralytics iOS SDK ve Flutter eklentisi, Core AI'ı iOS 27 ve sonraki sürümlerde isteğe bağlı olarak yükler; varsayılan olarak Core ML kullanılmaya devam eder ve iOS 27'nin altındaki sürümlerde daha geniş destek için Core ML önerilir. Kalan maddeler için Ultralytics yol haritasını ve sürüm notlarını takip et.
Ek Kaynaklar#
- Apple Core AI genel bakışı
- Core AI çerçevesi belgeleri
- Core AI PyTorch Eklentileri
- Core AI Optimizasyonu
- Apple Core AI modelleri deposu
- Ultralytics Core ML entegrasyonu
Sık Sorulan Sorular#
Evet. macOS 26 veya üzeri sürümünü çalıştıran bir Apple silicon Mac'te ya da glibc 2.34 veya üzeri sürümüne sahip x86_64 Linux sisteminde
model.export(format="coreai")veyayolo export format=coreaiile dışa aktarım yap; dışa aktarılan.aimodel, iOS 27 ve macOS 27'de çalışır. Ultralytics iOS ve Flutter SDK'ları, iOS 27 cihazlarda bu modeli isteğe bağlı olarak yükler. Varsayılan yöntemleri ve daha eski nesil 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 yöntemdir; Core ML ise desteklenmeye devam eder, daha geniş işletim sistemi kapsamı, Vision entegrasyonu ve sinir ağı olmayan model desteği sunar.
Hayır. Farklı model temsilleri içerirler ve farklı çerçeveler tarafından yüklenirler. 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. Gelecekte bir değişiklik yapılıp yapılmayacağı, işletim sisteminin benimsenmesine, araçların kararlılığına ve cihaz üzerindeki performansa bağlıdır.