YAML
YAML'in yapay zeka iş akışlarını nasıl kolaylaştırdığını öğren. Veri kümelerini yapılandırmak ve daha hızlı, daha kolay MLOps için Ultralytics YOLO26 modellerini eğitmek amacıyla YAML dosyalarının nasıl kullanılacağını keşfet.
YAML (YAML Ain't Markup Language), yazılım endüstrisinde yapılandırma dosyaları yazmak için yaygın olarak kullanılan, insanlar tarafından okunabilir bir veri serileştirme standardıdır. Daha karmaşık biçimlendirme dillerinin aksine YAML, temiz biçimlendirmeye ve okunabilirliğe öncelik vererek parametreleri hızlı bir şekilde incelemesi veya değiştirmesi gereken geliştiriciler ve veri bilimciler için mükemmel bir seçim olmasını sağlar. Basit yapısı, parantezler veya etiketler yerine girintilere dayanır; bu da kullanıcıların liste ve sözlük gibi hiyerarşik veri yapılarını minimum görsel dağınıklıkla tanımlamasına olanak tanır. Yapay zeka ve makine öğrenimi bağlamında YAML; veri seti yollarından hyperparameter tuning ayarlarına kadar her şeyi sürüm kontrolü kolay ve paylaşılabilir bir biçimde depolayarak insan iradesi ile makine yürütmesi arasında kritik bir köprü görevi görür.
Makine Öğrenimindeki Önemi#
Modern machine learning operations (MLOps) süreçlerinde, yeniden üretilebilir ve organize deneyler sürdürmek çok önemlidir. YAML dosyaları, gerekli tüm yapılandırma detaylarını tek bir belgede toplayarak bu deneyler için birer taslak işlevi görür. Ultralytics YOLO26 gibi çerçeveler, model mimarilerini ve eğitim protokollerini tanımlamak için büyük ölçüde bu yapılandırma dosyalarına güvenir.
Bir bilgisayarlı görü modeli eğittiğinizde, genellikle training data verilerinizin nerede bulunduğunu, kaç sınıf tespit ettiğinizi ve bu sınıfların adlarını belirtmeniz gerekir. Dağınık kod tabanlarına yol açabilen bu değerleri Python betiklerinin içine doğrudan (hard-code) yazmak yerine, bu verileri bir YAML dosyasında ayırırsınız. Sorumlulukların bu şekilde ayrılması, araştırmacıların ana kod tabanına dokunmadan veri setlerini değiştirmesine veya learning rates ayarlarını yapmasına olanak tanıyarak daha iyi experiment tracking ve iş birliği sağlar.
YAML ve JSON ve XML Karşılaştırması#
YAML genellikle JSON (JavaScript Object Notation) ve XML (eXtensible Markup Language) ile karşılaştırılsa da, yapay zeka ekosisteminde biraz farklı amaçlara hizmet ederler.
- YAML: İnsanlar tarafından yazılan ve okunan yapılandırma dosyaları için en iyisidir. Belirli model weights veya parametrelerin neden seçildiğini belgelemek açısından çok önemli olan yorum satırlarını destekler.
- JSON: Web API'leri veya inference results kaydetme gibi makineler arası iletişim için idealdir. Gerekli tırnak işaretleri ve süslü parantezler nedeniyle insanlar tarafından manuel olarak düzenlenmesi daha katı ve zordur, ayrıca yorum satırı desteği yoktur.
- XML: Eski sistemlerde veya karmaşık belge depolamada ( Pascal VOC annotations gibi) sıklıkla kullanılan, daha ayrıntılı bir biçimdir. Modern derin öğrenme iş akışlarındaki basit yapılandırma görevleri için genellikle fazlasıyla hantal kabul edilir.
Yapay Zekada Gerçek Dünya Uygulamaları#
YAML, yapay zeka geliştirme yaşam döngüsünün çeşitli kritik aşamalarında yerini bulur:
- Dataset Configuration: COCO gibi object detection veri setleriyle veya Ultralytics Platform üzerindeki özel verilerle çalışırken, bir YAML dosyası (
data.yaml) tipik olarak eğitim, doğrulama ve test setleri için dizin yollarını tanımlar. Ayrıca sınıf indekslerini (0, 1, 2) sınıf adlarıyla (kişi, bisiklet, araba) eşleştirerek modelin veri yapısını anlamasını sağlar. - CI/CD Pipelines: continuous integration iş akışlarında GitHub Actions gibi araçlar, otomasyon adımlarını tanımlamak için YAML kullanır. Bu, yeni bir sinir ağı mimarisi üzerinde birim testleri çalıştırmayı veya koda bir depo gönderildiğinde (push) modeli bir Docker container içine dağıtmayı içerebilir.
Örnek: Bir YOLO Eğitim Sürecini Yapılandırma#
Aşağıdaki örnek, tipik bir YAML dosyasının bir YOLO26 modelini eğitmek için nasıl bir veri seti arayüzü olarak görev yaptığını gösterir. Aşağıdaki Python kod parçacığı, Ultralytics kütüphanesinin eğitim sürecini başlatmak için bu dosyayı nasıl kullandığını gösterir.
1. coco8.yaml dosyası (Kavram): Bu dosya, görüntülere giden yolları ve bir sınıf isimleri listesini içerir.
path: ../datasets/coco8 # dataset root dir
train: images/train # train images (relative to 'path')
val: images/val # val images (relative to 'path')
# Classes
names:
0: person
1: bicycle
2: car
...2. Python Kullanımı: Kod, yapılandırmayı okur ve belirtilen parametreleri kullanarak eğitimi başlatır.
from ultralytics import YOLO
# Load the YOLO26 model (recommended for new projects)
model = YOLO("yolo26n.pt")
# Train the model using the dataset configuration defined in the YAML file
# The 'data' argument points directly to the YAML file
results = model.train(data="coco8.yaml", epochs=5, imgsz=640)Sözdizimi Temel Kavramları#
Birkaç temel sözdizimi kuralını anlamak, yanlış girintileme nedeniyle genellikle ortaya çıkan ScannerError veya ParserError gibi yaygın hatalardan kaçınmanıza yardımcı olur.
- Girintileme: YAML, yapıyı belirtmek için boşluk (sekme yerine boşluk) kullanır. İç içe geçmiş öğeler, üst öğelerinden daha fazla girintili olmalıdır.
- Key-Value Pairs: Veriler
key: valueolarak saklanır. Örneğin,epochs: 100eğitim döngüsü sayısını ayarlar. - Lists: diziler bir tire işareti
-ile belirtilir. Bu, data augmentation adımlarının veya birden fazla girdi kaynağının listelerini tanımlamak için yararlıdır. - Comments:
#ile başlayan satırlar ayrıştırıcı tarafından yok sayılır, böylece belirli hyperparameters hakkında doğrudan dosya içinde notlar bırakabilirsiniz.
YAML konusunda uzmanlaşarak uygulayıcılar, model training iş akışlarını basitleştirebilir, yapılandırma hatalarını azaltabilir ve yapay zeka projelerinin ölçeklenebilir ve bakımı kolay kalmasını sağlayabilir.






