Sözlük

Sürekli Entegrasyon (CI)

Sürekli Entegrasyon ile AI/ML iş akışlarını geliştirin. Testleri otomatikleştirin, kod kalitesini artırın ve model geliştirmeyi zahmetsizce kolaylaştırın.

Sürekli Entegrasyon (CI), geliştiricilerin kod değişikliklerini sık sık merkezi bir depoda birleştirdiği ve ardından otomatik derlemelerin ve testlerin çalıştırıldığı bir yazılım geliştirme uygulamasıdır. CI'ın birincil amacı entegrasyon sorunlarını erken tespit etmek, kod kalitesini artırmak ve geliştirme iş akışını kolaylaştırmaktır. Yapay Zeka (AI) ve Makine Öğrenimi (ML) bağlamında CI, verilerin, modellerin ve genel boru hattı performansının doğrulanmasını içerecek şekilde geleneksel kod kontrollerinin ötesine geçerek Makine Öğrenimi Operasyonlarının (MLOps) kritik bir bileşenini oluşturur.

Sürekli Entegrasyonun Temel İlkeleri

CI süreci, otomasyon ve sık yineleme temeli üzerine inşa edilmiştir. Geliştiriciler Git gibi bir sürüm kontrol sistemi kullanarak küçük ve sık değişiklikleri paylaşılan bir depoya gönderir. Her gönderim, birkaç önemli adımı gerçekleştiren otomatik bir iş akışını veya ardışık düzeni tetikler:

  • Otomatik Derleme: Sistem, doğru şekilde entegre olmasını sağlamak için kodu otomatik olarak derler. Makine öğrenimi projeleri için bu, Docker gibi konteynerleştirme araçlarını kullanarak ortamın kurulmasını içerebilir.
  • Otomatik Test: Yeni değişiklikleri doğrulamak için bir test paketi çalıştırılır. Bu, kod mantığı için birim testlerini, bileşen etkileşimleri için entegrasyon testlerini ve ML için veri doğrulama ve model değerlendirme gibi özel testleri içerir.
  • Hızlı Geri Bildirim Döngüsü: Boru hattındaki herhangi bir adım başarısız olursa, geliştirme ekibi derhal bilgilendirilir. Bu, sorunları daha karmaşık hale gelmeden ve ana kod tabanına entegre edilmeden önce hızla ele almalarını sağlar.

Makine Öğrenimi için CI (CI4ML)

Makine Öğrenimi projelerine CI uygulamak benzersiz zorluklar ortaya çıkarır. Makine öğrenimi sistemleri, kodun ötesinde, aynı zamanda sürümlendirilmesi ve doğrulanması gereken verileri ve eğitilmiş modelleri içerir. Ultralytics YOLO modelini içeren bir ML projesi için etkili bir CI işlem hattı ek adımlar içerir:

  • Veri Doğrulama: Yeni verilerin doğruluk, şema uyumu ve potansiyel veri kümesi yanlılığı açısından otomatik olarak kontrol edilmesi. Bunun için Great Expectations gibi araçlar kullanılabilir.
  • Model Testi: Performans düşüşünü kontrol etmek için testlerin çalıştırılması. Bu, yeni modelin performans metriklerinin standartlaştırılmış bir doğrulama veri kümesi üzerinde temel bir sürümle karşılaştırılmasını içerir.
  • Eğitim Boru Hattı Doğrulaması: Model eğitim sürecinin kendisinin tekrarlanabilir ve verimli olmasını sağlamak. Bu, veri kümesi yönetimini ve eğitim iş akışlarını kolaylaştıran Ultralytics HUB gibi platformlar kullanılarak yönetilebilir.

Gerçek Dünya Uygulamaları

  1. Otonom Sürüş Geliştirme: Otonom araçlar için bir nesne algılama modeli üzerinde çalışan bir ekip, bir CI işlem hattı kullanıyor. Bir geliştirici, modelin geceleri yayaları algılama yeteneğini geliştirmek için kod gönderdiğinde, işlem hattı otomatik olarak tetiklenir. Birim testlerini çalıştırıyor, YOLO11 modelinin hafif bir sürümünü bir test veri kümesi üzerinde yeniden eğitiyor ve mAP'sini değerlendiriyor. Doğruluk oranı düşmezse ve tüm testler başarılı olursa değişiklik birleştirme için onaylanır. GitHub Actions veya Jenkins gibi popüler CI araçları, bu iş akışlarını otomatikleştirmek için yaygın olarak kullanılır.
  2. Tıbbi Görüntü Analizi: Tıbbi görüntülerde tümör tespiti için tasarlanmış bir sistemde, bir veri bilimci sağlamlığı artırmak için yeni artırılmış veriler ekleyebilir. CI işlem hattı yeni veri formatını ve dağıtımını doğrular. Ardından, modelin "altın veri kümesi" üzerindeki tahminlerinin tutarlı kalmasını sağlamak için önceden eğitilmiş bir model kullanarak bir doğrulama çalışmasını tetikler ve üretimde beklenmedik davranışları önler. Bu süreç, sağlık hizmetlerinde yapay zeka için çok önemli olan yüksek güvenilirlik standartlarının korunmasına yardımcı olur.

Sürekli Entegrasyon ve Sürekli Teslimat/Dağıtım (CD)

Birbiriyle yakından ilişkili olsa da CI, Sürekli Teslimat ve Sürekli Dağıtımdan (CD) farklıdır.

  • Sürekli Entegrasyon (CI): Kod değişikliklerinin sık sık entegrasyonuna ve otomatik olarak test edilmesine odaklanır. Çıktı, bir sonraki aşama için hazır olan doğrulanmış bir yapıdır. Ultralytics, tüm çekme isteklerini birleştirmeden önce test etmek için CI kullanır.
  • Sürekli Teslimat (CD): Onaylanan her değişikliği otomatik olarak bir hazırlık veya üretim ortamına yayınlanmak üzere hazırlayarak CI'yı genişletir. Ancak, üretime son model dağıtımı manuel onay gerektirir. Bu yaklaşım, Atlassian gibi kaynakların kılavuzlarında ayrıntılı olarak açıklanmıştır.
  • Sürekli Dağıtım (CD): Onaylanan her değişikliği herhangi bir insan müdahalesi olmadan doğrudan üretime otomatik olarak dağıtarak bir adım daha ileri gider. Bu, yazılım sürüm yaşam döngüsündeki en yüksek otomasyon seviyesini temsil eder.

CI ve CD uygulamaları birlikte, ilk denemeden dağıtıma ve sürekli model izlemeye kadar makine öğrenimi sistemlerinin geliştirilmesini ve işletilmesini birleştirmeyi amaçlayan sağlam bir MLOps stratejisinin temelini oluşturur.

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 büyüyün

Şimdi katılın
Panoya kopyalanan bağlantı