Continuous Integration (CI)
Makine öğrenimi için Sürekli Entegrasyonu (CI) keşfet. Sağlam MLOps için Ultralytics YOLO26 modellerini nasıl test edeceğini, verileri doğrulayacağını ve dağıtacağını öğren.
Sürekli Entegrasyon (CI), geliştiricilerin kod değişikliklerini merkezi bir depoya sık sık birleştirdiği ve otomatik derlemeler ile test dizilerini tetiklediği modern yazılım mühendisliğinde temel bir uygulamadır. Makine öğrenimi (ML) gibi özelleşmiş bir alanda CI, standart kod doğrulamasının ötesine geçerek veri hatlarının, model mimarilerinin ve eğitim yapılandırmalarının doğrulanmasını da kapsar. Entegrasyon hatalarını, sözdizimi hatalarını ve performans gerilemelerini yaşam döngüsünün başlarında tespit ederek, ekipler sağlam bir kod tabanı sürdürebilir ve deneysel araştırmadan üretime hazır bilgisayarlı görü uygulamalarına geçişi hızlandırabilirler.
Link to this sectionMakine Öğreniminde CI'ın Önemi#
Geleneksel CI hatları yazılımı derlemeye ve birim testlerini çalıştırmaya odaklansa da, ML odaklı bir CI iş akışı olasılıksal sistemlerin benzersiz karmaşıklıklarını yönetmek zorundadır. Tek bir hiperparametredeki bir değişiklik veya bir veri ön işleme betiğindeki bir değişiklik, nihai modelin davranışını büyük ölçüde değiştirebilir. Bu nedenle, sağlam bir CI stratejisi, koddaki veya verideki her güncellemenin oluşturulmuş referans noktalarına karşı otomatik olarak doğrulanmasını sağlar.
Bu süreç, performans düşüşünü önleyen bir güvenlik ağı görevi görerek Makine Öğrenimi Operasyonları'nın (MLOps) kritik bir bileşenini oluşturur. Yapay zeka projeleri için etkili CI hatları tipik olarak şunları içerir:
- Kod Kalite Kontrolleri: Kodlama standartlarını uygulamak ve yürütme öncesinde sözdizimi hatalarını yakalamak için statik analiz araçları ve linter'lar kullanmak.
- Veri Doğrulama: Gelen eğitim verilerinin, beklenen şemalara ve istatistiksel dağılımlara uyduğunu doğrulamak; bozuk görüntü dosyaları veya eksik açıklamalar gibi sorunları önlemek.
- Otomatik Test: Yardımcı işlevler üzerinde birim testleri ve yakınsamayı sağlamak için birkaç epok boyunca küçük bir modelin eğitilmesini içerebilecek entegrasyon testleri çalıştırmak.
- Model Benchmarking: evaluating the model against a fixed validation set to check if key metrics such as mean Average Precision (mAP) have dropped below an acceptable threshold.
Link to this sectionGerçek Dünya Uygulamaları#
Sürekli Entegrasyon uygulamak, güvenilirlik ve güvenliğin her şeyden önemli olduğu endüstriler için şarttır.
- Otonom Sürüş Sistemleri: Otonom araçların geliştirilmesinde mühendisler, yaya ve şerit algılama algoritmalarını sürekli olarak geliştirirler. Bir CI hattı, ekibin yeni nesne algılama modellerini, şiddetli yağmurda veya düşük ışıkta sürüş gibi geniş bir regresyon senaryoları kütüphanesine karşı otomatik olarak test etmesine olanak tanır ve bir kod güncellemesinin sistemin tehlikeleri algılama yeteneğini yanlışlıkla azaltmadığından emin olur.
- Tıbbi Tanısal Görüntüleme: MRI taramalarında tümör tespiti gibi sağlık hizmeti uygulamaları için tekrarlanabilirlik yasal bir gerekliliktir. CI, tanısal yazılımın her sürümünün izlenebilir ve test edilebilir 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şmeden kaldığını doğrular.
Link to this sectionCI vs. Sürekli Teslimat (CD) vs. MLOps#
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 test ve derlemeleri doğrulama. Şu soruya yanıt verir: "Bu yeni kod mevcut işlevselliği bozuyor mu?"
- Sürekli Teslimat (CD): CI'ı takip eder ve yayınlama aşamasına odaklanır. Doğrulanmış modeli bir 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 üst disiplindir. CI belirli bir uygulama iken, MLOps tüm yapay zeka yaşam döngüsünü yönetmek için kullanılan kültür ve araçlar bütünüdür.
Link to this sectionYapay Zeka Entegrasyonu için Araçlar ve Platformlar#
Geliştiriciler bu hatları yönetmek için çeşitli araçlar kullanırlar. GitHub Actions veya Jenkins gibi genel amaçlı platformlar, kod işlemleri ü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ümlemesini yönetmek genellikle özel araçlar gerektirir.
Ultralytics Platform, CI iş akışlarını tamamlayan merkezi bir merkez görevi görür. Ekiplerin veri kümelerini yönetmesine, eğitim deneyimlerini takip etmesine ve performans metriklerini görselleştirmesine olanak tanır. Bir CI hattı başarılı bir şekilde yeni bir YOLO26 modeli eğittiğinde, sonuçlar doğrudan platforma kaydedilebilir, böylece projenin sağlığına dair merkezi bir görünüm sağlanır ve veri bilimcileri arasında iş birliği kolaylaştırılır.
Link to this sectionOtomatik Test Örneği#
Bir CI hattında, genellikle modelinizin hata almadan yüklenebildiğini ve çıkarım işlemini doğru şekilde gerçekleştirebildiğini doğrulamanız gerekir. Aşağıdaki Python betiği, kod depoya her gönderildiğinde otomatik olarak çalıştırılabilecek basit bir "sağlıklı çalışma kontrolü" gösterir.
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 betik, hafif bir modeli yüklemek ve beklendiği gibi çalıştığını doğrulamak için ultralytics paketini kullanır. Bir üretim CI ortamında bu, kapsamlı bir test sağlamak için Pytest gibi çerçevelerden yararlanan daha büyük bir test paketinin parçası olacaktır.






