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 işaretleme dillerinden farklı olarak YAML, temiz biçimlendirmeye ve okunabilirliğe öncelik verir; bu da onu parametreleri hızlı bir şekilde incelemesi veya değiştirmesi gereken geliştiriciler ve veri bilimciler için mükemmel bir seçim haline getirir. Basit yapısı, parantez veya etiketler yerine girintilere dayanır; bu da kullanıcıların listeler ve sözlükler gibi hiyerarşik veri yapılarını en az görsel karmaşıklıkla tanımlamasına olanak tanır. Yapay zeka ve makine öğrenimi bağlamında YAML, veri kümesi yollarından hiperparametre optimizasyonu ayarlarına kadar her şeyi sürüm kontrolü yapılması ve paylaşılması kolay bir biçimde saklayarak insan amacı ile makine yürütme arasında kritik bir köprü görevi görür.
Link to this sectionMakine Öğrenimindeki Önemi#
Modern makine öğrenimi operasyonları (MLOps) dünyasında, tekrarlanabilir ve düzenli deneyler sürdürmek çok önemlidir. YAML dosyaları, tüm gerekli yapılandırma ayrıntılarını tek bir belgede kapsülleyerek bu deneyler için birer taslak işlevi görür. Ultralytics YOLO26 modelleri gibi çerçeveler, model mimarilerini ve eğitim protokollerini tanımlamak için büyük ölçüde bu yapılandırma dosyalarına dayanır.
Bir bilgisayarlı görü modelini eğitirken, genellikle eğitim verilerinizin nerede bulunduğunu, kaç sınıf tespit ettiğinizi ve bu sınıfların isimlerini belirtmeniz gerekir. Bu değerleri, karmaşık kod tabanlarına yol açabilecek Python betiklerine doğrudan kodlamak yerine, bu verileri bir YAML dosyasında ayırırsınız. Bu ilgi alanı ayrımı, araştırmacıların temel kod tabanına dokunmadan veri kümelerini değiştirmesine veya öğrenme oranlarını ayarlamasına olanak tanır, böylece daha iyi deney takibi ve iş birliği kolaylaşır.
Link to this sectionYAML 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 ağırlıklarının veya parametrelerinin neden seçildiğini belgelendirmek için çok önemli olan yorum satırlarını destekler.
- JSON: Web API'leri veya çıkarım sonuçlarının kaydedilmesi gibi makineden makineye iletişim için idealdir. Daha katıdır ve tırnak işaretleri ile parantezler gerektiğinden insanlar tarafından manuel olarak düzenlenmesi daha zordur; ayrıca yorum desteğinden yoksundur.
- XML: Eski sistemlerde veya karmaşık belge depolamada (örneğin Pascal VOC ek açıklamaları) 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 fazla hantal kabul edilir.
Link to this sectionYapay 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:
- Veri Kümesi Yapılandırması: COCO gibi nesne tespiti veri kümeleriyle veya Ultralytics Platform üzerindeki özel verilerle çalışırken, bir YAML dosyası (
data.yaml) genellikle eğitim, doğrulama ve test kümeleri için dizin yollarını tanımlar. Ayrıca sınıf dizinlerini (0, 1, 2) sınıf isimleriyle (kişi, bisiklet, araba) eşleyerek modelin veri yapısını anlamasını sağlar. - CI/CD İş Akışları: Sürekli entegrasyon 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ğı mimarisinde birim testlerini çalıştırmayı veya kod bir depoya gönderildiğinde bir modeli Docker konteynerine dağıtmayı içerebilir.
Link to this sectionÖ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 kümesi arayüzü görevi gördüğünü göstermektedir. Aşağıdaki Python kod parçası, 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)Link to this sectionSözdizimi Temel Kavramları#
Birkaç temel sözdizimi kuralını anlamak, genellikle yanlış girintileme nedeniyle oluşan 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: Data is stored as
key: value. For example,epochs: 100sets the number of training cycles. - Listeler: Diziler, bir tire
-ile gösterilir. Bu, veri artırma adımlarının veya birden fazla girdi kaynağının listelerini tanımlamak için yararlıdır. - Yorumlar:
#ile başlayan satırlar ayrıştırıcı tarafından yok sayılır, bu da doğrudan dosya içinde belirli hiperparametreler hakkında notlar bırakmanıza olanak tanır.
YAML'de uzmanlaşarak model eğitimi iş akışlarını kolaylaştırabilir, yapılandırma hatalarını azaltabilir ve yapay zeka projelerinizin ölçeklenebilir ve bakımı kolay kalmasını sağlayabilirsin.






