YAML
YAML'ın yapay zekâ iş akışlarını nasıl kolaylaştırdığını öğren. Daha hızlı ve kolay MLOps için veri kümelerini yapılandırmak ve Ultralytics YOLO26 modellerini eğitmek üzere YAML dosyalarının nasıl kullanılacağını keşfet.
YAML (İşaretleme Dili Değildir), yazılım sektöründe 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 dillerinin aksine YAML, temiz biçimlendirmeye ve okunabilirliğe öncelik verir; bu da onu parametreleri hızlıca incelemesi veya değiştirmesi gereken geliştiriciler ve veri bilimcileri için mükemmel bir seçenek haline getirir. Basit yapısı köşeli ayraçlar veya etiketler yerine girintiye dayanır; bu sayede kullanıcılar listeler ve sözlükler gibi hiyerarşik veri yapılarını görsel karmaşayı en aza indirerek tanımlayabilir. Yapay zekâ ve makine öğrenimi bağlamında YAML, insan niyeti ile makine yürütmesi arasında kritik bir köprü görevi görür; veri kümesi yollarından hiperparametre ayarlama ayarlarına kadar her şeyi sürüm kontrolü ve paylaşım için kolay bir biçimde depolar.
Makine Öğrenimindeki Önemi#
Modern makine öğrenimi operasyonlarında (MLOps) tekrarlanabilir ve düzenli deneyleri sürdürmek büyük önem taşır. YAML dosyaları, bu deneyler için tüm gerekli yapılandırma ayrıntılarını tek bir belgede kapsayan şablonlar görevi 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 eğitim verilerinin nerede bulunduğunu, kaç sınıf tespit ettiğini ve bu sınıfların adlarını belirtmen gerekir. Bu değerleri dağınık kod tabanlarına yol açabilecek şekilde Python betiklerine sabitlemek yerine, verileri bir YAML dosyasına ayırırsın. Sorumlulukların bu şekilde ayrılması, 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 sağlanır.
YAML ve JSON ve XML Karşılaştırması#
YAML genellikle JSON (JavaScript Nesne Gösterimi) ve XML (Genişletilebilir İşaretleme Dili) ile karşılaştırılsa da yapay zekâ ekosisteminde biraz farklı amaçlara hizmet ederler.
- YAML: İnsanlar tarafından yazılıp okunan yapılandırma dosyaları için en uygunudur. Belirli model ağırlıklarının veya parametrelerin neden seçildiğini belgelemek açısından kritik olan yorumları destekler.
- JSON: Web API'leri veya çıkarım sonuçlarını kaydetmek gibi makineler arası iletişim için idealdir. Gerekli tırnak işaretleri ve süslü parantezler nedeniyle daha katıdır ve insanların elle düzenlemesi daha zordur; ayrıca yorum desteği yoktur.
- XML: Genellikle eski sistemlerde veya karmaşık belge depolamada (örneğin Pascal VOC açıklamaları) 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 gereğinden ağır kabul edilir.
Yapay Zekâda Gerçek Dünya Uygulamaları#
YAML, yapay zekâ geliştirme yaşam döngüsünün birkaç kritik aşamasında kullanılır:
- Veri Kümesi Yapılandırması: COCO gibi nesne tespiti veri kümeleriyle veya Ultralytics Platformu üzerindeki özel verilerle çalışırken bir YAML dosyası (
data.yaml) genellikle eğitim, doğrulama ve test kümelerinin dizin yollarını tanımlar. Ayrıca sınıf dizinlerini (0, 1, 2) sınıf adlarıyla (person, bicycle, car) 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 adımlar, yeni bir sinir ağı mimarisi üzerinde birim testleri çalıştırmayı veya kod bir depoya gönderildiğinde bir modeli Docker kapsayıcısına dağıtmayı içerebilir.
Örnek: Bir YOLO Eğitim Çalışmasının Yapılandırılması#
Aşağıdaki örnek, tipik bir YAML dosyasının YOLO26 modeli eğitimi için veri kümesi arayüzü olarak nasıl çalıştığı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ü yollarını ve sınıf adlarının bir 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özdiziminin Temel Kavramları#
Birkaç temel sözdizimi kuralını anlamak, yanlış girinti nedeniyle sıkça ortaya çıkan ScannerError veya ParserError gibi yaygın hatalardan kaçınmana yardımcı olur.
- Girinti: YAML, yapıyı belirtmek için boşluk karakterlerini (sekme değil, boşluk) kullanır. İç içe öğeler, üst öğelerinden daha fazla girintilenmelidir.
- Anahtar-Değer Çiftleri: Veriler
key: valueolarak depolanır. Örneğinepochs: 100, eğitim döngülerinin sayısını belirler. - Listeler: Diziler,
-kısa çizgisiyle gösterilir. Bu kullanım, veri artırma adımlarının veya birden fazla giriş 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; böylece belirli hiperparametreler hakkında notları doğrudan dosyaya ekleyebilirsin.
YAML konusunda uzmanlaşarak uygulayıcılar model eğitimi iş akışlarını kolaylaştırabilir, yapılandırma hatalarını azaltabilir ve yapay zekâ projelerinin ölçeklenebilir ve bakımı kolay kalmasını sağlayabilir.









