Yolo Vision Shenzhen
Shenzhen
Şimdi katılın
Sözlük

Sürekli Entegrasyon (CI)

Makine öğrenimi için Sürekli Entegrasyon (CI) özelliğini keşfedin. Testleri otomatikleştirmeyi, verileri doğrulamayı ve sağlam MLOps için Ultralytics modellerini dağıtmayı öğrenin.

Sürekli Entegrasyon (CI), geliştiricilerin sık sık kod değişikliklerini merkezi bir depoya birleştirerek otomatik derleme ve test dizilerini tetiklediği modern yazılım mühendisliğinde temel bir uygulamadır. CI, Makine öğrenimi (ML) gibi özel bir alanda CI, standart kod doğrulamanın ötesine geçerek veri boru hatlarının, model mimarilerinin ve eğitim yapılandırmalarının doğrulanmasını da içerir. Entegrasyon hatalarını, sözdizimi hatalarını ve performans gerilemelerini yaşam döngüsünün erken aşamalarında tespit ederek, ekipler sağlam bir kod tabanını koruyabilir ve deneysel araştırmadan üretim düzeyinde bilgisayar görme uygulamalarına geçişi hızlandırabilir.

Makine Öğreniminde CI'nın Önemi

Geleneksel CI süreçleri yazılım derlemeye ve birim testleri çalıştırmaya odaklanırken, ML merkezli bir CI iş akışı olasılıksal sistemlerin kendine özgü karmaşıklıklarını ele almalıdır. Tek bir hiperparametrede yapılan bir değişiklik veya bir veri ön işleme komut dosyasında yapılan bir değişiklik, nihai modelin davranışını büyük ölçüde değiştirebilir. Bu nedenle, sağlam bir CI stratejisi, kod veya verilerdeki her güncellemenin belirlenmiş temel değerlere göre otomatik olarak doğrulanmasını sağlar.

Bu süreç, Makine Öğrenimi Operasyonları'nın (MLOps) kritik bir bileşenidir ve performans düşüşünü önleyen bir güvenlik ağı görevi görür. AI projeleri için etkili CI boru hatları genellikle aşağıdakileri içerir:

  • Kod Kalitesi Kontroller: statik analiz araçları ve linter'lar kullanarak kodlama standartlarını uygulamak ve yürütme öncesinde sözdizimi hatalarını yakalamak.
  • Veri Doğrulama: Gelen eğitim verilerinin beklenen şemalara ve istatistiksel dağılımlara uygun olduğunu doğrulayarak, bozuk görüntü dosyaları veya eksik açıklamalar gibi sorunları önler.
  • Otomatik Test: Yardımcı işlevler üzerinde birim testleri ve birkaç dönem boyunca küçük bir modelin eğitilmesini içerebilen entegrasyon testleri çalıştırarak yakınsamayı sağlamak.
  • Model Karşılaştırması: modeli sabit bir doğrulama setine göre değerlendirerek, ortalama ortalama hassasiyet (mAP) gibi temel metriklerin kabul edilebilir bir eşiğin altına düşüp düşmediğini kontrol etmek.

Gerçek Dünya Uygulamaları

Sürekli Entegrasyonun uygulanması, güvenilirlik ve güvenliğin öncelikli olduğu sektörler için çok önemlidir.

  • Otonom Sürüş Sistemleri: Otonom araçların geliştirilmesinde mühendisler, yaya ve şerit algılama algoritmalarını sürekli olarak geliştiriyorlar. CI boru hattı, ekibin yeni nesne algılama modellerini, şiddetli yağmur veya düşük ışıkta sürüş gibi geniş bir regresyon senaryoları kütüphanesi ile otomatik olarak test etmesine olanak tanıyor ve kod güncellemesinin sistemin detect yeteneğini kazara azaltmamasını sağlıyor.
  • Tıbbi Tanı Görüntüleme: MRG taramalarında tümörleri tespit etmek gibi sağlık uygulamaları için tekrarlanabilirlik yasal bir gerekliliktir. CI, tanı yazılımının her sürümünün izlenebilir ve test edilmiş olmasını sağlar. Bir geliştirici çıkarım motorunu hız için optimize ederse, CI sistemi güncelleme hastanelere dağıtılmadan önce tanının doğruluğunun değişmediğini doğrular.

CI ile Sürekli Teslimat (CD) ve MLOps Karşılaştırması

Sürekli Entegrasyonu, geliştirme yaşam döngüsündeki ilgili kavramlardan ayırmak önemlidir.

  • Sürekli Entegrasyon (CI): Entegrasyon aşamasına odaklanır — kod birleştirme, otomatik testler ve yapıların doğrulanması. "Bu yeni kod mevcut işlevselliği bozuyor mu?" sorusuna cevap verir. .
  • Sürekli Teslimat (CD): CI'yı takip eder ve sürüm aşamasına odaklanır. Doğrulanmış modeli bulut sunucusu veya uç cihaz gibi bir üretim ortamına dağıtmak için gereken adımları otomatikleştirir. Model dağıtımı hakkında daha fazla bilgi edinin.
  • MLOps: CI, CD ve sürekli izlemeyi kapsayan genel bir disiplindir. CI belirli bir uygulama iken, MLOps tüm AI yaşam döngüsünü yönetmek için kullanılan kültür ve araçlar bütünüdür.

AI Entegrasyonu için Araçlar ve Platformlar

Geliştiriciler, bu ardışık düzenleri koordine etmek için çeşitli araçlar kullanır. GitHub Actions veya Jenkins gibi genel amaçlı platformlar, kod taahhütleri üzerine iş akışlarını tetiklemek için yaygın olarak kullanılır. Ancak, büyük veri kümelerini ve model sürümlerini yönetmek genellikle özel araçlar gerektirir. Geliştiriciler, kod taahhütleri üzerine iş akışlarını tetiklemek için GitHub Actions veya Jenkins gibi genel amaçlı platformları yaygın olarak kullanır. Ancak, büyük veri kümelerini ve model sürümlerini yönetmek genellikle özel araçlar gerektirir. Geliştiriciler, kod taahhütleri üzerine iş akışlarını tetiklemek için GitHub Actions veya Jenkins gibi genel amaçlı platformları yaygın olarak kullanır. Ancak, büyük veri kümelerini

Ultralytics , CI iş akışlarını tamamlayan merkezi bir hub görevi görür. Ekiplerin veri kümelerini yönetmesine, track deneylerini track ve performans metriklerini görselleştirmesine olanak tanır. Bir CI boru hattı yeni bir YOLO26 modelini başarıyla eğittiğinde, sonuçlar doğrudan platforma kaydedilebilir, böylece projenin durumu merkezi bir şekilde görüntülenebilir ve veri bilimcileri arasındaki işbirliği kolaylaşır .

Otomatik Test Örneği

Bir CI boru hattında, modelinizin hatasız bir şekilde yüklenip çıkarım yapabildiğini sık sık doğrulamanız gerekir. Aşağıdaki Python komut dosyası, kod depoya her gönderildiğinde otomatik olarak çalıştırılabilen basit bir "sağlamlık kontrolü"nü göstermektedir. .

from ultralytics import YOLO

# Load the YOLO26 model (using the nano version for speed in CI tests)
model = YOLO("yolo26n.pt")

# Perform inference on a dummy image or a standard test asset
# 'bus.jpg' is a standard asset included in the package
results = model("bus.jpg")

# Assert that detections were made to ensure the pipeline isn't broken
# If len(results[0].boxes) is 0, something might be wrong with the model or input
assert len(results[0].boxes) > 0, "CI Test Failed: No objects detected!"

print("CI Test Passed: Model loaded and inference successful.")

Bu komut dosyası ultralytics hafif bir modeli yüklemek ve beklendiği gibi çalıştığını doğrulamak için kullanılan bir paket. Üretim CI ortamında, bu, aşağıdaki gibi çerçeveleri kullanan daha büyük bir test paketinin parçası olacaktır: Pytest kapsamlı bir teminat sağlamak için.

Ultralytics topluluğuna katılın

Yapay zekanın geleceğine katılın. Küresel yenilikçilerle bağlantı kurun, işbirliği yapın ve birlikte büyüyün

Şimdi katılın