YAML
تعرّف على كيفية تبسيط YAML لسير عمل الذكاء الاصطناعي. اكتشف كيفية استخدام ملفات YAML لتهيئة مجموعات البيانات وتدريب نماذج Ultralytics YOLO26 لعمليات MLOps أسرع وأسهل.
يُعد (YAML Ain't Markup Language) معياراً لتسلسل البيانات يمكن للبشر قراءته ويُستخدم على نطاق واسع في صناعة البرمجيات لكتابة ملفات التكوين. وعلى عكس لغات الترميز الأكثر تعقيداً، يمنح YAML الأولوية للتنسيق النظيف والقراءة، مما يجعله خياراً ممتازاً للمطورين وعلماء البيانات الذين يحتاجون إلى فحص المعلمات أو تعديلها بسرعة. يعتمد هيكله البسيط على المسافة البادئة بدلاً من الأقواس أو الوسوم، مما يسمح للمستخدمين بتحديد هياكل البيانات الهرمية مثل القوائم والقواميس بأقل قدر من الفوضى البصرية. وفي سياق الذكاء الاصطناعي والتعلم الآلي، يعمل YAML كجسر حاسم بين نية الإنسان والتنفيذ الآلي، حيث يخزن كل شيء بدءاً من مسارات مجموعات البيانات وحتى إعدادات ضبط المعلمات الفائقة بتنسيق يسهل التحكم في إصداراته ومشاركته.
الأهمية في تعلم الآلة#
في عمليات التعلم الآلي (MLOps) الحديثة، يُعد الحفاظ على تجارب قابلة للاستنساخ ومنظمة أمراً أساسياً. تعمل ملفات YAML كخطط أساسية لهذه التجارب، حيث تلخص جميع تفاصيل التكوين اللازمة في مستند واحد. تعتمد الأطر مثل نماذج Ultralytics YOLO26 بشكل كبير على ملفات التكوين هذه لتحديد هندسة النماذج وبروتوكولات التدريب.
عند تدريب نموذج رؤية حاسوبية، غالباً ما تحتاج إلى تحديد مكان بيانات التدريب الخاصة بك، وعدد الفئات التي تقوم اكتشافها، وأسماء تلك الفئات. بدلاً من ترميز هذه القيم بشكل ثابت في نصوص Python البرمجية، مما قد يؤدي إلى قواعد بيانات غير منظمة، يمكنك فصل هذه البيانات في ملف YAML. يسمح هذا الفصل بين الاهتمامات للباحثين بتبديل مجموعات البيانات أو ضبط معدلات التعلم دون المساس بقاعدة البرامج الأساسية، مما يسهل تتبع التجربة والتعاون بشكل أفضل.
YAML مقابل JSON مقابل XML#
على الرغم من أن YAML يُقارن غالباً بـ JSON (JavaScript Object Notation) و XML (eXtensible Markup Language)، إلا أنها تخدم أغراضاً مختلفة قليلاً في منظومة الذكاء الاصطناعي.
- 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، يمكن للممارسين تبسيط سير عمل تدريب النموذج الخاص بهم، وتقليل أخطاء التكوين، وضمان بقاء مشاريع الذكاء الاصطناعي قابلة للتوسع وسهلة الصيانة.






