YAML
تعلّم كيف يبسّط YAML مسارات عمل الذكاء الاصطناعي. اكتشف كيفية استخدام ملفات YAML لتهيئة مجموعات البيانات وتدريب نماذج Ultralytics YOLO26 من أجل عمليات MLOps أسرع وأسهل.
YAML (ليست لغة ترميز) هو معيار لتسلسل البيانات قابل للقراءة البشرية، ويُستخدم على نطاق واسع في صناعة البرمجيات لكتابة ملفات التكوين. وعلى خلاف لغات الترميز الأكثر تعقيدًا، يعطي YAML الأولوية للتنسيق الواضح وسهولة القراءة، ما يجعله خيارًا ممتازًا للمطورين وعلماء البيانات الذين يحتاجون إلى فحص المعلمات أو تعديلها بسرعة. تعتمد بنيته البسيطة على المسافات البادئة بدلًا من الأقواس أو الوسوم، ما يتيح للمستخدمين تعريف هياكل بيانات هرمية مثل القوائم والقواميس بأقل قدر من الفوضى البصرية. وفي سياق الذكاء الاصطناعي وتعلُّم الآلة، يعمل YAML كحلقة وصل أساسية بين نية الإنسان والتنفيذ الآلي، إذ يخزّن كل شيء بدءًا من مسارات مجموعات البيانات وصولًا إلى إعدادات ضبط المعلمات الفائقة بتنسيق يسهل التحكم في إصداراته ومشاركته.
الأهمية في تعلُّم الآلة#
في عمليات تعلُّم الآلة (MLOps) الحديثة، يُعد الحفاظ على تجارب قابلة لإعادة الإنتاج ومنظمة أمرًا ضروريًا. تعمل ملفات YAML كمخططات لهذه التجارب، إذ تجمع كل تفاصيل التكوين اللازمة في مستند واحد. وتعتمد أطر العمل، مثل نماذج Ultralytics YOLO26، اعتمادًا كبيرًا على ملفات التكوين هذه لتعريف بنيات النماذج وبروتوكولات التدريب.
عند تدريب نموذج للرؤية الحاسوبية، تحتاج غالبًا إلى تحديد مكان وجود بيانات التدريب، وعدد الفئات التي تكتشفها، وأسماء تلك الفئات. وبدلًا من تضمين هذه القيم مباشرةً في نصوص Python البرمجية، ما قد يؤدي إلى قواعد برمجية فوضوية، تفصل هذه البيانات في ملف YAML. ويتيح هذا الفصل بين المسؤوليات للباحثين تبديل مجموعات البيانات أو ضبط معدلات التعلم دون المساس بقاعدة الشيفرة الأساسية، ما يسهّل تتبُّع التجارب والتعاون على نحو أفضل.
YAML مقابل JSON مقابل XML#
على الرغم من أن YAML يُقارَن غالبًا بـ JSON (ترميز كائنات JavaScript) وXML (لغة الترميز القابلة للتوسعة)، فإن لكل منها أغراضًا مختلفة قليلًا في منظومة الذكاء الاصطناعي.
- YAML: الأفضل لملفات التكوين التي يكتبها البشر ويقرؤونها. وهو يدعم التعليقات، التي تُعد ضرورية لتوثيق سبب اختيار أوزان النموذج أو معلمات معينة.
- JSON: مثالي للتواصل بين الآلات، مثل واجهات برمجة الويب أو حفظ نتائج الاستدلال. وهو أكثر صرامة وأصعب على البشر في التعديل اليدوي بسبب علامات الاقتباس والأقواس المعقوفة اللازمة، كما أنه لا يدعم التعليقات.
- XML: تنسيق أكثر إسهابًا يُستخدم غالبًا في الأنظمة القديمة أو تخزين المستندات المعقدة، مثل تعليقات Pascal VOC. ويُعد عمومًا ثقيلًا أكثر من اللازم لمهام التكوين البسيطة في سير عمل التعلم العميق الحديث.
التطبيقات الواقعية في الذكاء الاصطناعي#
يجد YAML مكانه في عدة مراحل حاسمة من دورة حياة تطوير الذكاء الاصطناعي:
- تكوين مجموعة البيانات: عند العمل مع مجموعات بيانات اكتشاف الكائنات مثل COCO أو البيانات المخصصة على منصة Ultralytics، يحدد ملف YAML (
data.yaml) عادةً مسارات الأدلة لمجموعات التدريب والتحقق والاختبار. كما يربط فهارس الفئات (0، 1، 2) بأسماء الفئات (شخص، دراجة، سيارة)، ما يضمن فهم النموذج لبنية البيانات. - مسارات CI/CD: في سير عمل التكامل المستمر، تستخدم أدوات مثل GitHub Actions لغة YAML لتعريف خطوات الأتمتة. وقد يشمل ذلك تشغيل اختبارات الوحدة على بنية جديدة لشبكة عصبية أو نشر نموذج في حاوية Docker كلما دُفعت الشيفرة إلى مستودع.
مثال: تكوين عملية تدريب YOLO#
يوضح المثال التالي كيف يعمل ملف YAML نموذجي كواجهة لمجموعة بيانات بغرض تدريب نموذج YOLO26. ويوضح مقطع Python التالي كيف تستهلك مكتبة Ultralytics هذا الملف لبدء عملية التدريب.
1. ملف coco8.yaml (المفهوم): سيحتوي هذا الملف على مسارات الصور وقائمة بأسماء الفئات.
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: تقرأ الشيفرة التكوين وتبدأ التدريب باستخدام المعلمات المحددة.
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)المفاهيم الأساسية لبنية الصياغة#
يساعد فهم بعض قواعد الصياغة الأساسية على تجنب الأخطاء الشائعة، مثل ScannerError أو ParserError، التي تحدث غالبًا بسبب المسافات البادئة غير الصحيحة.
- المسافات البادئة: يستخدم YAML المسافات البيضاء (المسافات، وليس علامات الجدولة) للدلالة على البنية. ويجب إزاحة العناصر المتداخلة بمسافة أكبر من العناصر الأصلية.
- أزواج المفتاح والقيمة: تُخزَّن البيانات بصيغة
key: value. فعلى سبيل المثال، يحددepochs: 100عدد دورات التدريب. - القوائم: تُ标َّم التسلسلات بواصلة
-. ويفيد ذلك في تعريف قوائم خطوات زيادة البيانات أو مصادر إدخال متعددة. - التعليقات: يتجاهل المحلل الأسطر التي تبدأ بـ
#، ما يتيح لك ترك ملاحظات حول المعلمات الفائقة مباشرةً في الملف.
من خلال إتقان YAML، يستطيع الممارسون تبسيط سير عمل تدريب النماذج، وتقليل أخطاء التكوين، وضمان بقاء مشاريع الذكاء الاصطناعي لديهم قابلة للتوسع وسهلة الصيانة.









