ExecuTorch entegrasyonunu kullanarak Ultralytics YOLO modellerini dağıt
Ultralytics YOLO11 gibi Ultralytics YOLO modellerini, uç ve mobil cihazlarda PyTorch'a özgü verimli dağıtım için ExecuTorch biçimine nasıl aktaracağını keşfet.
Abirami Vina9 dakikalık okuma
Otomatik kalite denetimi, otonom dronlar veya akıllı güvenlik sistemleri gibi bazı bilgisayarlı görü uygulamaları, Ultralytics YOLO modelleri, örneğin Ultralytics YOLO11, görüntüleri yakalayan sensörün yakınında çalıştığında en iyi performansı gösterir. Başka bir deyişle, bu modellerin verileri buluta göndermek yerine doğrudan üretildikleri yerde, kameralarda, dronlarda veya gömülü sistemlerde işlemesi gerekir.
Uç yapay zekâ olarak bilinen bu yaklaşım, modellerin çıkarımı verinin yakalandığı cihazda doğrudan gerçekleştirmesini sağlar. Uzak sunuculara güvenmek yerine bilgileri yerel olarak işleyen sistemler, internet bağlantısının sınırlı olduğu veya hiç bulunmadığı ortamlarda bile daha düşük gecikme, gelişmiş veri gizliliği ve daha yüksek güvenilirlik sunabilir.
Örneğin, her dakika binlerce ürünü denetleyen bir üretim kamerası veya karmaşık ortamlarda yön bulan bir drone, bulut işlemenin neden olduğu gecikmeleri göze alamaz. Ultralytics YOLO11'i doğrudan cihazda çalıştırmak, anında cihaz üzerinde çıkarım yapılmasını sağlar.
Ultralytics tarafından desteklenen yeni ExecuTorch entegrasyonu, Ultralytics YOLO modellerini uç cihazlarda daha kolay ve verimli çalıştırmak için modelleri doğrudan mobil ve gömülü cihazlara aktarmanın ve dağıtmanın kolaylaştırılmış bir yolunu sunar. ExecuTorch, PyTorch Edge ekosisteminin bir parçasıdır ve telefonlar, giyilebilir cihazlar, gömülü kartlar ve mikrodenetleyiciler dâhil olmak üzere mobil ve uç donanımlarda yapay zekâ modellerini doğrudan çalıştırmak için uçtan uca bir çözüm sunar.
Bu entegrasyon, YOLO11 gibi bir Ultralytics YOLO modelini eğitimden uç cihazlara dağıtıma kadar kolayca kullanmanı sağlar. YOLO11'in görsel yeteneklerini ExecuTorch'un hafif çalışma zamanı ve PyTorch dışa aktarma işlem hattıyla birleştiren kullanıcılar, PyTorch tabanlı çıkarımın doğruluğunu ve performansını korurken uç donanımlarda verimli çalışan modeller dağıtabilir.
Bu yazıda ExecuTorch entegrasyonunun nasıl çalıştığını, uç yapay zekâ uygulamaları için neden uygun olduğunu ve Ultralytics YOLO modellerini ExecuTorch ile dağıtmaya nasıl başlayabileceğini daha yakından inceleyeceğiz.
ExecuTorch nedir?#
Genellikle PyTorch'ta bir model eğittiğinde model, buluttaki güçlü sunucularda veya grafik işlem birimlerinde (GPUs) çalışır. Ancak aynı modeli akıllı telefon, dron veya mikrodenetleyici gibi bir mobil ya da gömülü cihaza dağıtmak; sınırlı işlem gücü, bellek ve bağlantıyla başa çıkabilen özel bir çözüm gerektirir.
ExecuTorch tam da bu ihtiyacı karşılar. PyTorch Edge ekosisteminin bir parçası olarak geliştirilen ExecuTorch, mobil, gömülü ve uç platformlarda cihaz üzerinde verimli çıkarım yapılmasını sağlayan uçtan uca bir çözümdür. PyTorch'un yeteneklerini bulutun ötesine taşıyarak yapay zekâ modellerinin yerel cihazlarda doğrudan çalışmasına olanak tanır.
PyTorch çıkarımını uca taşımak#
ExecuTorch, temelinde PyTorch modellerinin doğrudan cihazda çalışmasını sağlayan hafif bir C++ çalışma zamanı sunar. ExecuTorch; daha hızlı yükleme, daha düşük bellek kullanımı ve daha iyi taşınabilirlik için optimize edilmiş bir dışa aktarma biçimi olan PyTorch ExecuTorch (.pte) model biçimini kullanır.
Verimli Merkezi İşlem Birimi (CPU) çıkarımı için varsayılan arka uç olarak XNNPACK'i destekler ve CoreML, Metal, Vulkan, Qualcomm, MediaTek, Arm EthosU, OpenVINO ve diğerleri dâhil olmak üzere çok çeşitli donanım arka uçlarıyla uyumluluk sunar.
Bu arka uçlar, mobil, gömülü ve özel uç cihazlarda optimize edilmiş hızlandırma sağlar. ExecuTorch ayrıca PyTorch dışa aktarma işlem hattıyla entegre olarak performansı ve farklı dağıtım ortamlarına uyarlanabilirliği artırmak için niceleme ve dinamik şekil işleme gibi gelişmiş özellikleri destekler.
Niceleme, yüksek hassasiyetli değerleri (örneğin 32 bit kayan noktalı sayıları) daha düşük hassasiyetli değerlere dönüştürerek model boyutunu küçültür ve çıkarım hızını artırır; dinamik şekil işleme ise modellerin değişken girdi boyutlarını verimli bir şekilde işlemesini sağlar. Her iki özellik de yapay zekâ modellerini kaynakları kısıtlı uç cihazlarda çalıştırmak için kritik öneme sahiptir.

Şekil 1. ExecuTorch'un nasıl çalıştığına bir bakış (Kaynak)
Uç donanımlar için birleşik bir katman#
ExecuTorch, çalışma zamanının yanı sıra birden fazla donanım arka ucu için birleşik bir soyutlama katmanı görevi de görür. Basitçe söylemek gerekirse, donanıma özgü ayrıntıları soyutlar ve modellerin CPU'lar, GPU'lar ve sinirsel işlem birimleri (NPUs) dahil farklı işlem birimleriyle nasıl etkileşim kurduğunu yönetir.
Bir model dışa aktarıldıktan sonra ExecuTorch, belirli bir cihaz için en uygun arka ucu hedefleyecek şekilde yapılandırılabilir. Geliştiriciler, cihaza özel kod yazmadan veya ayrı dönüştürme iş akışlarını sürdürmeden modelleri farklı donanımlara verimli bir şekilde dağıtabilir.
Modüler ve taşınabilir tasarımı, ayrıca PyTorch ile sıkı entegrasyonu sayesinde ExecuTorch; Ultralytics YOLO11 gibi bilgisayarlı görü modellerini mobil ve gömülü sistemlere dağıtmak için harika bir seçenektir. Model eğitimiyle gerçek dünyada dağıtım arasındaki boşluğu kapatarak uç yapay zekâyı daha hızlı, verimli ve kolay uygulanabilir hâle getirir.
ExecuTorch'un temel özellikleri#
Ultralytics YOLO modellerini ExecuTorch biçimine nasıl aktaracağımıza bakmadan önce, ExecuTorch'u uçta yapay zekâ dağıtımı için güvenilir bir seçenek yapan özellikleri inceleyelim.
Temel özelliklerinden bazılarına kısaca göz atalım:
- Niceleme desteği: ExecuTorch, model boyutunu küçültmek ve çıkarımı hızlandırmak için yüksek hassasiyetli değerleri daha düşük hassasiyetli değerlere dönüştüren bir teknik olan model nicelemeyi destekler. Bu sayede modeller, neredeyse aynı doğruluk düzeyini korurken uç cihazlarda daha hızlı çalışır ve daha az bellek kullanır. Ultralytics dışa aktarma işlemi şu anda XNNPACK arka ucu için FP32 modeller üretir.
- Belleğin verimli kullanımı: ExecuTorch'un en büyük avantajlarından biri belleği yönetme biçimidir. Gecikmeye ve güç tüketimine ek yük getirebilen dinamik bellek ayırmaya güvenmek yerine ExecuTorch, Önceden Bellek Planlaması (AOT) kullanır. Dışa aktarma sırasında model grafiğini analiz eder ve her işlem için gereken bellek miktarını önceden hesaplar. Böylece çalışma zamanı modelleri statik bir bellek planıyla çalıştırabilir; performans öngörülebilir olur ve RAM'i veya işlem kapasitesi sınırlı cihazlardaki yavaşlamalar ya da çökmeler önlenir.
- Yerleşik model meta verileri: Ultralytics tarafından desteklenen entegrasyon kullanılarak dışa aktarılan her model, girdi görüntüsü boyutu, sınıf adları ve yapılandırma parametreleri gibi önemli meta verileri içeren bir YAML dosyası içerir. Bu ek dosya, modelin çeşitli uygulamalara entegrasyonunu kolaylaştırır ve farklı uç platformlarda tutarlı davranış sağlar.
Ultralytics YOLO modellerini ExecuTorch biçimine aktarma#
ExecuTorch'un sunduklarını artık daha iyi anladığımıza göre, Ultralytics YOLO modellerini ExecuTorch biçimine aktarma adımlarını inceleyelim.
Adım 1: Ultralytics Python paketini yükleme#
Başlamak için, paket yükleyici olan pip'i kullanarak Ultralytics Python paketini yüklemen gerekir. Bunu terminalinde veya komut isteminde “pip install ultralytics” komutunu çalıştırarak yapabilirsin.
Jupyter Notebook veya Google Colab ortamında çalışıyorsan komutun önüne ünlem işareti eklemen yeterli: "!pip install ultralytics". Yüklendikten sonra Ultralytics paketi, Ultralytics YOLO11 dâhil bilgisayarlı görü modellerini eğitmek, test etmek ve dışa aktarmak için gereken tüm araçları sunar.
Yükleme sırasında veya modelini dışa aktarırken sorun yaşarsan resmi Ultralytics belgeleri ve Yaygın Sorunlar kılavuzu, sorunsuzca çalışmaya başlamana yardımcı olacak ayrıntılı sorun giderme adımları ve en iyi uygulamaları içerir.
Adım 2: Ultralytics YOLO11'i dışa aktarma#
Ultralytics paketini yükledikten sonra YOLO11 modelinin bir varyantını yükleyip ExecuTorch biçimine aktarabilirsin. Örneğin “yolo11n.pt” gibi önceden eğitilmiş bir modeli kullanabilir ve biçimi “executorch” olarak ayarlayarak dışa aktarma işlevini çağırabilirsin.
Bu işlem, optimize edilmiş model dosyasını (.pte) ve görüntü boyutu ile sınıf adları gibi önemli ayrıntıları içeren ayrı bir meta veri YAML dosyasını barındıran “yolo11n_executorch_model” adlı bir dizin oluşturur.
Modelini dışa aktarmak için kullanacağın kod:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="executorch")Adım 3: Modeli dışa aktardıktan sonra çıkarım çalıştırma#
Dışa aktarıldıktan sonra model, ExecuTorch çalışma zamanını kullanarak uç ve mobil cihazlara dağıtılmaya hazırdır. Dışa aktarılan .pte model dosyası, bulut bağlantısı gerektirmeden gerçek zamanlı cihaz üzerinde çıkarım yapmak için uygulamana yüklenebilir.
Örneğin aşağıdaki kod parçacığı, dışa aktarılan modelin nasıl yükleneceğini ve çıkarımın nasıl çalıştırılacağını gösteriyor. Çıkarım, eğitilmiş bir modelin yeni veriler üzerinde tahmin yapması anlamına gelir. Burada model, herkese açık bir URL'den alınmış bir otobüs görüntüsüyle test ediliyor.
executorch_model = YOLO("yolo11n_executorch_model")
results = executorch_model.predict("https://ultralytics.com/images/bus.jpg", save=True)Kodu çalıştırdıktan sonra algılanan nesnelerin bulunduğu çıktı görüntüsünü “runs/detect/predict” klasöründe bulabilirsin.

Şekil 2. Dışa aktarılan Ultralytics YOLO11 modelini ExecuTorch biçiminde kullanarak nesneleri algılama.
ExecuTorch entegrasyonunu kullanmanın avantajları#
Ultralytics tarafından desteklenen farklı dışa aktarma seçeneklerini incelerken ExecuTorch entegrasyonunu benzersiz kılan şeyin ne olduğunu merak edebilirsin. Temel fark; performansı, basitliği ve esnekliği ne kadar iyi birleştirdiğidir. Bu sayede güçlü yapay zekâ modellerini doğrudan mobil ve uç cihazlara dağıtmak kolaylaşır.
ExecuTorch entegrasyonunu kullanmanın temel avantajlarından bazıları:
- Esnek dağıtım seçenekleri: ExecuTorch modelleri mobil uygulamalara, gömülü sistemlere, Nesnelerin İnterneti (IoT) cihazlarına ve özel uç yapay zekâ donanımlarına dağıtılabilir. Bu esneklik, geliştiricilerin farklı platformlarda ve ortamlarda tutarlı performans gösteren ölçeklenebilir yapay zekâ çözümleri geliştirmesini sağlar.
- Kıyaslamalarla kanıtlanmış performans: Raspberry Pi 5 gibi cihazlarda yapılan testler, ExecuTorch biçimine aktarılan Ultralytics YOLO11 modellerinin neredeyse aynı doğruluğu koruyarak PyTorch karşılıklarından yaklaşık 2 kat daha hızlı çalıştığını gösteriyor.
- Esnek entegrasyon API'leri: ExecuTorch, iOS, Android ve gömülü Linux için C++, Kotlin ve Objective-C API'leri sunarak geliştiricilerin YOLO modellerini doğrudan yerel uygulamalara entegre etmesini sağlar.
- Donanım hızlandırma desteği: ExecuTorch; mobil GPU'lar için Vulkan ve Metal dâhil olmak üzere birden fazla donanım hızlandırma arka ucunu destekler ve isteğe bağlı olarak OpenCL ve satıcıya özgü diğer API'lerle entegre olabilir. Yalnızca CPU ile çıkarıma kıyasla önemli hız artışları sağlamak için NPU ve DSP gibi özel hızlandırıcılardan da yararlanabilir.
Ultralytics YOLO11 ve ExecuTorch dışa aktarımının gerçek dünyadaki uygulamaları#
Ultralytics kısa süre önce bir PyTorch ExecuTorch başarı öyküsü olarak öne çıkarıldı. Bu, cihaz üzerinde çıkarım için erken dönemde sunduğumuz desteği ve PyTorch ekosistemine devam eden katkılarımızı vurguluyor. Bu takdir, mobil ve uç platformlarda yüksek performanslı yapay zekâyı daha erişilebilir kılma yönündeki ortak hedefi yansıtıyor.
Buluttan uca: ExecuTorch ve Ultralytics YOLO11 görsel yapay zekâyı nasıl hayata geçiriyor?#
Uygulamada bu, akıllı telefonlardan gömülü sistemlere kadar pek çok cihazda verimli çalışan gerçek dünya görsel yapay zekâ çözümleri anlamına geliyor. Örneğin üretimde uç cihazlar, üretim hatlarını izleme ve kusurları gerçek zamanlı algılama konusunda önemli bir rol oynuyor.

Şekil 3. Üretim montaj hattını analiz etmek için Ultralytics YOLO11 kullanımına bir örnek. (Kaynak)
Gecikmelere neden olabilen ve internet bağlantısına bağlı olan görüntüleri veya sensör verilerini işlenmek üzere buluta göndermek yerine ExecuTorch entegrasyonu, Ultralytics YOLO11 modellerinin yerel donanımda doğrudan çalışmasını sağlar. Böylece fabrikalar sınırlı bilgi işlem kaynaklarıyla çalışırken kalite sorunlarını anında algılayabilir, kesinti sürelerini azaltabilir ve veri gizliliğini koruyabilir.
ExecuTorch entegrasyonu ve Ultralytics YOLO modellerinin kullanılabileceği diğer birkaç örnek:
- Akıllı şehirler: Şehirler, Ultralytics YOLO11 modellerini ExecuTorch ile yerel olarak çalıştırarak trafik sıkışıklıklarını algılamaktan tehlikeleri belirlemeye kadar daha hızlı ve veriye dayalı kararlar alabilir, böylece genel hareketliliği ve güvenliği iyileştirebilir.
- Perakende ve depolama: Cihaz üzerinde çıkarımla perakendeciler, bulut bağlantılarına güvenmeden raf takibini otomatikleştirebilir, envanteri izleyebilir ve paketleri hızlı ve güvenli bir şekilde inceleyebilir.
- Robotik ve dronlar: Uç cihazlar için optimize edilmiş Ultralytics YOLO11 modelleri, robotların ve dronların nesneleri tanımasını, ortamlarda yön bulmasını ve internet erişimi olmasa bile gerçek zamanlı kararlar almasını sağlar.

Şekil 4. YOLO11 ile trafikteki araçları algılama ve sayma (Kaynak)
Önemli çıkarımlar#
Ultralytics YOLO modellerini ExecuTorch biçimine aktarmak, akıllı telefonlar, tabletler ve Raspberry Pi gibi gömülü sistemler dâhil olmak üzere çok sayıda cihaza bilgisayarlı görü modelleri dağıtmayı kolaylaştırır. Böylece bulut bağlantısına güvenmeden optimize edilmiş cihaz üzerinde çıkarım yapmak mümkün olur; hız, gizlilik ve güvenilirlik artar.
ExecuTorch'un yanı sıra Ultralytics; TensorRT, OpenVINO, CoreML ve daha fazlasını içeren geniş bir entegrasyon yelpazesini destekleyerek geliştiricilere modellerini farklı platformlarda çalıştırma esnekliği sunar. Görsel yapay zekânın benimsenmesi arttıkça bu entegrasyonlar, gerçek dünya koşullarında verimli çalışacak şekilde geliştirilen akıllı sistemlerin dağıtımını kolaylaştırır.
Yapay zekâyı merak ediyor musun? GitHub depomuza göz at, topluluğumuza katıl ve görsel yapay zekâ projene başlamak için lisanslama seçeneklerimizi incele. Çözümler sayfalarımızı ziyaret ederek perakendede yapay zekâ ve lojistikte bilgisayarlı görü gibi yenilikler hakkında daha fazla bilgi edin.
Yazan
Yorumlar
Soru sor, sonuçlarını paylaş veya başka birine yardım et.










