REFACTORING ML/DL ALGORITHMS: TECHNIQUES & PRINCIPLES EĞİTİMİ

ML kodunuzu üretime hazır hale getirin

Notebook'tan pakete geçiş, pytest, tasarım desenleri, profiling, MLflow ve CI ile ML/DL kodunu refactor edin.

Eğitim, ML ve DL projelerindeki kod borcunu ele alır. Notebook kodunu paketlenmiş Python projesine dönüştürür, scikit-learn Pipeline ile ön işlemeyi kapsüller, veri sızıntısına yol açan kalıpları temizlersiniz.

3 gün İleri Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Üç günde ML ve derin öğrenme kodunun sürdürülebilir hale getirilmesi

Eğitim, ML ve DL projelerindeki kod borcunu ele alır. Notebook kodunu paketlenmiş Python projesine dönüştürür, scikit-learn Pipeline ile ön işlemeyi kapsüller, veri sızıntısına yol açan kalıpları temizlersiniz. pytest ile tensor şekli, veri şeması ve eğitim döngüsü testleri yazar, Strategy, Factory ve Template Method desenleriyle genişletilebilir Trainer yapısı kurar, profiling, MLflow, ruff, mypy ve CI ile projeyi üretime hazırlarsınız.

Süre ve Format

3 Gün. Her gün dört modül; sabah ilke ve kalıp anlatımı, öğleden sonra gerçek bir notebook'u adım adım refactor etme.

Seviye

İleri Seviye — Python ML/DL kodunun refactoring'i: notebook'tan pakete, test, desen, performans ve CI.

Öğrenme Metodu

Katılımcılar dağınık bir PyTorch/scikit-learn notebook'unu modüllere böler, testler yazar, desenlerle yeniden yapılandırır ve CI hattına bağlar.

Neden Bu Eğitim?

📓Notebook'tan Pakete

Tekrar kullanılabilir ve versiyonlanabilir ML kodu üretirsiniz.

🧪Test Güvencesi

Tensor şekli, veri ve eğitim döngüsü için otomatik testler yazarsınız.

📈Deney Takibi

MLflow ve DVC ile deneyleri izlenebilir ve tekrarlanabilir kılarsınız.

Anahtar Konular

ml refactoringderin öğrenme kod kalitesinotebook refactoringpytest mlMLflowscikit-learn pipelineml mühendisliğipython tasarım desenleriml kod kalitesi
“Bir model, yeniden üretilemiyorsa bir sonuçtan çok bir hikâyedir.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
Python Bilgisi

Orta düzey Python ve nesne yönelimli programlama.

2
ML Deneyimi

scikit-learn veya PyTorch ile en az bir model eğitmiş olmak.

3
Git Bilgisi

Temel Git komutları.

4
Çalışma Ortamı

Python 3.10+, Jupyter ve Docker kurulu bilgisayar.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı ML projelerindeki teknik borcu ve veri sızıntısı kalıplarını tespit eder, notebook kodunu modüler pakete böler.
Modül 1
ML Projelerinde Kod Kokuları
  • Notebook kokuları: gizli durum, hücre sırası bağımlılığı, global değişkenler
  • Sihirli sayılar ve kopyala-yapıştır deney kodları
  • Data leakage: ölçekleyiciyi tüm veriye fit etme gibi hatalar
  • Entanglement ve CACE ilkesi (Sculley et al. teknik borç makalesi)
  • Pipeline jungle ve ölü deneysel kod yolları
  • Model kodu için kod inceleme kontrol listesi
Modül 2
ML/DL Kodunun Yeniden Yapılandırılması
  • Notebook'tan paketlenmiş Python koduna geçiş (src düzeni, modüller)
  • scikit-learn Pipeline ve ColumnTransformer ile ön işleme kapsülleme
  • Veri sızıntısı (data leakage) riskli kod kalıplarının temizlenmesi
  • Tekrarlanabilirlik: seed, config (Hydra/YAML) ve ortam sabitleme
  • Tensor şekil (shape) ve veri sözleşmesi testleri
  • PyTorch eğitim döngüsünün Trainer ve Dataset sınıflarına ayrıştırılması
Modül 3
Temiz Kod İlkeleri
  • Anlamlı adlandırma ve niyeti açık eden isimler
  • Küçük fonksiyonlar: tek iş, tek soyutlama seviyesi
  • Yorum yerine kodla ifade ve gerekli yorum türleri
  • Yinelemeyi kaldırma (DRY) ve yanlış soyutlama riski
  • Hata işleme: null yerine Optional/Result, istisna sınırları
  • Boy Scout kuralı ve sürekli iyileştirme
Modül 4
Legacy Kodda Test ve Refactoring
  • Characterization test ile mevcut davranışı sabitleme
  • Seam kavramı ve bağımlılık kırma teknikleri (Feathers)
  • Extract and Override, Wrap Method ve Sprout Class
  • Golden master / approval testing
  • Statik bağımlılık ve Singleton'ı test edilebilir hale getirme
  • Refactoring kararı için risk ve değer ölçütleri
Günün hedefiKatılımcı pytest ile ML testleri yazar, test edilebilir tasarım kurar ve Strategy, Factory, Template Method desenlerini Trainer yapısına uygular.
Modül 1
ML/DL Kodu için Test Stratejisi
  • pytest fixture, parametrize ve conftest yapısı
  • Tensor şekil, dtype ve NaN kontrolleri
  • Sayısal tolerans: numpy.testing.assert_allclose ve torch.testing
  • Küçük veriyle overfit testi (sanity check)
  • Veri doğrulama (Great Expectations / pandera) ve şema testleri
  • Property-based testing için Hypothesis ve deterministik seed
Modül 2
Test Edilebilir Tasarım
  • Test edilebilirlik ve bağımlılık enjeksiyonu ilişkisi
  • Saf fonksiyon ve yan etkilerin sınırda toplanması
  • Zaman, rastgelelik ve I/O soyutlama (Clock, Random)
  • Test verisi oluşturma: Object Mother ve Test Data Builder
  • Test kokuları: kırılgan, yavaş, belirsiz (flaky) testler
  • Contract test ve entegrasyon testi sınırlarını belirleme
Modül 3
ML Kodunda Tasarım Desenleri
  • Strategy ile kayıp fonksiyonu ve optimizer seçimi
  • Factory / Registry ile model mimarisi ve dataset kaydı
  • Builder ile deney konfigürasyonu (dataclass + Hydra)
  • Template Method ile Trainer iskeleti ve callback hook'ları
  • Observer ile metrik loglama (TensorBoard, MLflow)
  • Pipeline ve Chain of Responsibility ile ön işleme adımları
Modül 4
Refactoring ile Desene Geçiş
  • Extract Method, Extract Class ve Extract Interface adımları
  • Replace Conditional with Polymorphism ile Strategy/State'e geçiş
  • Replace Constructor with Factory Method ve Builder'a evrim
  • Introduce Parameter Object ve Null Object kullanımı
  • Kerievsky'nin 'Refactoring to Patterns' yaklaşımı
  • Her adımda birim testle davranışın korunması
Günün hedefiKatılımcı profiling ve MLflow ile deneyleri yönetir, CI/tür denetimi kurar ve bağımlılıkları enjekte ederek SOLID'e uygun hale getirir.
Modül 1
ML Kodunda Performans ve Deney Yönetimi
  • Döngüden NumPy vektörleştirmesine geçiş
  • cProfile ve PyTorch profiler ile darboğaz bulma
  • DataLoader, num_workers ve batch boyutu etkisi
  • MLflow veya DVC ile deney ve veri versiyonlama
  • Model ve metrik regresyon testleri
  • Strategy ve Factory desenleriyle model/kayıp fonksiyonu seçimi
Modül 2
ML Projelerinde Kalite Kapıları ve Paketleme
  • pyproject.toml ile paketleme ve sürüm yönetimi
  • ruff, black ve mypy ile statik denetim, type hints
  • pre-commit kancaları ve GitHub Actions CI hattı
  • Docker ile eğitim ortamı sabitleme
  • Model kaydı (model registry) ve artefakt versiyonlama
  • Kod inceleme ve değişiklik günlüğü (changelog) pratiği
Modül 3
Dependency Injection ve IoC
  • Constructor, setter ve method injection farkları ve tercih ölçütleri
  • Inversion of Control ile Dependency Inversion ilkesinin farkı
  • Spring ve Microsoft.Extensions.DependencyInjection konteyner kullanımı
  • Yaşam süreleri: transient, scoped, singleton ve captive dependency hatası
  • Service Locator'ın anti-pattern olarak değerlendirilmesi
  • Composition Root ve test için sahte (mock) bağımlılık enjeksiyonu
Modül 4
SOLID İlkeleri
  • SRP: değişim nedeni kavramı ve sorumlulukların ayrıştırılması
  • OCP: soyutlama ile genişleme, if-zincirlerinin temizlenmesi
  • LSP: sözleşmeyle tasarım ve Kare-Dikdörtgen ihlali
  • ISP: şişkin arayüzün rol arayüzlerine bölünmesi
  • DIP: yüksek seviyeli modülün soyutlamaya bağımlı kılınması
  • Kod kokularından SOLID ihlali tespiti ve düzeltme sırası

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
ML Teknik Borcu

ML projelerindeki teknik borcu ve veri sızıntısı riskli kod kalıplarını tespit edebilirsiniz.

🔧
Temiz Kod

Okunabilir, niyeti açık ve bakımı kolay kod yazma disiplinini uygulayabilirsiniz.

🧠
Legacy Kod

Testsiz legacy kodu karakterizasyon testleriyle güvenceye alıp güvenle dönüştürebilirsiniz.

📐
Test Edilebilirlik

Bağımlılıkları soyutlayarak testi kolay, kırılgan olmayan tasarımlar kurabilirsiniz.

🧩
ML Tasarım Desenleri

Strategy, Factory ve Template Method desenleriyle genişletilebilir ML eğitim kodu yazabilirsiniz.

🛡️
ML Mühendisliği

Deneyleri izlenebilir kılıp ML kodunun performans darboğazlarını ölçerek giderebilirsiniz.

📊
ML Kalite Hattı

CI, tür denetimi ve paketleme ile ML deposunu sürdürülebilir hale getirebilirsiniz.

🚀
SOLID Uygulama

Mevcut sınıflardaki SOLID ihlallerini tespit edip adım adım düzeltebilirsiniz.

Kimler İçin Uygundur?

  • ML/DL modelleri geliştiren veri bilimciler
  • ML mühendisleri
  • araştırmacı yazılımcılar

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
ML/DL modelleri geliştiren veri bilimciler, ML mühendisleri ve araştırmacı yazılımcılar.
Eğitim sonunda sertifika verilir mi?
Eğitimi tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.
Eğitim kaç gün sürer ve nasıl işlenir?
Eğitim 3 gündür; katılımcılar dağınık bir PyTorch/scikit-learn notebook'unu modüllere böler, testler yazar, desenlerle yeniden yapılandırır ve CI hattına bağlar.
Hangi kütüphaneler kullanılır?
scikit-learn, PyTorch, pytest, MLflow, Hydra, ruff ve mypy kullanılır; kavramlar TensorFlow için de uygulanabilir.
Veri bilimcisi yazılım mühendisi olmak zorunda mı?
Hayır; eğitim, veri bilimcilerin ihtiyaç duyduğu yazılım mühendisliği pratiklerini ML bağlamında aktarır.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Refactoring ML/DL Algorithms: Techniques & Principles Eğitim Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre3 gün
Seviyeİleri Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Yazılım Mimarisi ve Tasarım DesenleriStructures of Object-oriented Programming Eğitimi
Yazılım Geliştirme Eğitimleri

Structures of Object-oriented Programming Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Structures of Object-Oriented Programming eğitimi: class, struct, record, interface, kalıtım, generics, UML ve temel desenler. Orta seviye 3 gün uygulamalı.

Detayları Gör →
Yazılım Mimarisi ve Tasarım DesenleriTasarım Kalıpları (Design Patterns) ve Yazılım Mimarisi Eğitimi
Yazılım Geliştirme Eğitimleri

Tasarım Kalıpları (Design Patterns) ve Yazılım Mimarisi Eğitimi

4 günİleriOnline / Yüz Yüze / Hibrit

Tasarım Kalıpları (Design Patterns) ve Yazılım Mimarisi eğitimi: GoF kalıpları, SOLID, kurumsal desenler, mimari stiller ve ADR. 4 gün uygulamalı.

Detayları Gör →
Yazılım Mimarisi ve Tasarım DesenleriUML Diagrams & UML Foundation Eğitimi
Yazılım Geliştirme Eğitimleri

UML Diagrams & UML Foundation Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

UML Diagrams ve UML Foundation eğitimi: use case, sınıf, nesne, sıra, durum, etkinlik, dağıtım diyagramları, OCL ve model yönetimi. 3 gün temel seviye.

Detayları Gör →
Yazılım Mimarisi ve Tasarım DesenleriUML Essentials for Agile Development Training Eğitimi
Yazılım Geliştirme Eğitimleri

UML Essentials for Agile Development Training Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

Çevik geliştirme için UML Essentials eğitimi: Agile Modeling, PlantUML, use case, sınıf, sıra, durum ve etkinlik diyagramları. 2 gün uygulamalı.

Detayları Gör →
Yazılım Mimarisi ve Tasarım DesenleriUML ile Nesne Yönelimli Analiz ve Tasarım Eğitimi
Yazılım Geliştirme Eğitimleri

UML ile Nesne Yönelimli Analiz ve Tasarım Eğitimi

4 günOrtaOnline / Yüz Yüze / Hibrit

UML ile Nesne Yönelimli Analiz ve Tasarım eğitimi: use case, domain model, GRASP, UML davranış modelleri, SOLID ve GoF desenleri. 4 gün uygulamalı.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn