Ultralytics YOLO27: انضم إلى قائمة الانتظار.
ترخيص YOLO
العودة إلى مسرد Ultralytics

YAML

YAML تنسيق بيانات مقروء للبشر يستخدم المسافات البادئة لتحديد البنية، ويشيع استخدامه لإعدادات مجموعات بيانات التعلم الآلي والتدريب. يتناول هذا النص صياغته ومشكلاته وبدائله.

YAML (اختصار عودي لعبارة «YAML ليست لغة ترميز») لغة تسلسل بيانات مقروءة للبشر، تُستخدم غالباً في ملفات الإعداد. تصف البيانات المتداخلة باستخدام المسافات البادئة بدلاً من الأقواس أو الوسوم، وتدعم التعليقات، وترتبط مباشرةً بالقواميس والقوائم والسلاسل النصية والأعداد في لغات البرمجة؛ لذا يسهل على الأشخاص تحرير الملف وعلى البرامج تحميله. في التعلم الآلي، تخزّن ملفات YAML مسارات مجموعات البيانات وبنى النماذج والمعلمات الفائقة وخطوات سير العمل خارج الشيفرة، ما يسهل إعادة التجارب ومراجعتها وإدارة إصداراتها في Git. والمواصفة الحالية هي YAML 1.2.2، وقد صُمم YAML 1.2 بحيث يكون JSON الصالح YAML صالحاً أيضاً.

أساسيات صياغة YAML#

يتكون مستند YAML من ثلاثة أنواع من العقد. التعيينات هي أزواج key: value، والتسلسلات عناصر تبدأ بـ- أو تُكتب بشكل مضمن على هيئة [a, b]، والقيم المفردة قيم منفردة مثل السلاسل النصية والأعداد والقيم المنطقية. يُحدد التداخل بالمسافات البادئة، ولا يُسمح باستخدام محارف الجدولة للمسافة البادئة. يبدأ # تعليقاً، ويفصل --- مستندات متعددة في ملف واحد، وتتيح المراسي (&name) مع الأسماء المستعارة (*name) إعادة استخدام كتلة في موضع آخر من الملف. لا تحتاج السلاسل النصية عادةً إلى علامات اقتباس، ما يجعل الملفات أقصر، لكن ذلك يعني أن المحلّل يحدد نوع كل قيمة غير مقتبسة.

YAML في سير عمل التعلم الآلي#

يفصل الاحتفاظ بالإعدادات في YAML بين ما تفعله التجربة وكيفية تنفيذ الشيفرة لذلك: يستطيع الفريق تبديل مجموعات البيانات أو تغيير معدلات التعلّم بتعديل ملف، وتسجيل الإعداد الدقيق باستخدام تتبّع التجارب، ومراجعة التغييرات في طلبات السحب. تستخدمه أدوات في مختلف مكونات الحزمة، ومنها Hydra لتجميع إعدادات التجارب، وGitHub Actions لخطوط أنابيب التكامل المستمر، وDocker Compose للتطبيقات متعددة الحاويات، وبيانات Kubernetes الوصفية الخاصة بـنشر النماذج. تستخدم Ultralytics YOLO ملفات YAML على ثلاثة مستويات: تسرد ملفات مجموعات البيانات مجلدات الصور وأسماء الفئات، وتحدد ملفات النماذج مثل yolo26.yaml الطبقات ومقاييس n إلى x في YOLO26، ويحوي ملف الإعداد الافتراضي جميع إعدادات التدريب والتنبؤ والتصدير، ويمكن لملف مخصص يُمرر باستخدام cfg= تجاوزها. يعرض هذا المقتطف بنية ملف مجموعة البيانات المضمّن coco8.yaml:

path: 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
  # ... up to 79: toothbrush

تقرأ عملية التدريب الملف باسمه، وتحل مسارات مجلدات الصور انطلاقاً من path، وتأخذ عدد الفئات وأسماءها من names:

from ultralytics import YOLO

# ⁨تحميل نموذج YOLO26 nano مُدرَّب مسبقًا⁩
model = YOLO("yolo26n.pt")

# ⁨درّب النموذج على مجموعة البيانات الموصوفة في ملف YAML⁩
results = model.train(data="coco8.yaml", epochs=3, imgsz=640)

لا تحتاج مجموعة البيانات المخصصة إلا إلى ملف YAML خاص بها بالمفاتيح نفسها، يشير إلى صورها ويسرد فئاتها وفق تنسيق مجموعة بيانات الكشف في Ultralytics.

مقارنة YAML وJSON وTOML#

  • JSON: يستخدم الأقواس المعقوفة والمربعة والمفاتيح الموضوعة بين علامتي اقتباس، ولا يدعم التعليقات، ويُحلّل بالطريقة نفسها في كل مكان. وهو أنسب للبيانات المتبادلة بين البرامج، مثل استجابات API والتنبؤات المحفوظة، من الملفات التي يحررها الأشخاص.
  • TOML: تنسيق شبيه بـINI يتضمن أنواعاً صريحة ومفاجآت أقل بسبب المسافات البادئة، ويستخدمه pyproject.toml الخاص بـPython. وهو أقل ملاءمة للبيانات المتداخلة بعمق.
  • XML: لغة ترميز مطوّلة قائمة على الوسوم، ما زالت مستخدمة في تنسيقات التعليقات التوضيحية الأقدم مثل Pascal VOC، ونادراً ما تُختار لملفات الإعداد الجديدة.

المزالق الشائعة في YAML#

تنشأ معظم أخطاء YAML من المسافات البادئة: إذ يغيّر محرف جدولة أو مسافة واحدة في غير موضعها البنية، أو يوقف المحلّل بسبب ScannerError أو ParserError. أما المشكلات الأقل وضوحاً فتنشأ من تحديد الأنواع الضمني. تتبع PyYAML، وهي المحلّل الذي تستخدمه معظم مشاريع Python، قواعد YAML 1.1 الأقدم، التي تحول بعض الكلمات غير الموضوعة بين علامتي اقتباس إلى قيم منطقية، وتتطلب نقطة عشرية في الأعداد العشرية. ويمكن أن يؤدي تحميل ملفات غير موثوقة باستخدام yaml.unsafe_load أو UnsafeLoader في PyYAML إلى إنشاء كائنات Python عشوائية وتنفيذ شيفرة، لذا تستخدم شيفرة الإعداد yaml.safe_load الذي لا ينشئ إلا أنواع البيانات الأساسية:

import yaml

config = """
model: yolo26n.pt
epochs: 100
lr0: 1e-3
python: 3.10
country: NO
classes: [person, car]
"""

# safe_load builds plain Python dicts, lists, and scalars from the text
data = yaml.safe_load(config)
for key, value in data.items():
    print(f"{key}: {value!r} ({type(value).__name__})")

تُظهر المخرجات ثلاث مفاجآت: يُحمّل lr0 كسلسلة نصية '1e-3' لافتقاره إلى نقطة عشرية، ويصبح python: 3.10 العدد العشري 3.1، بينما يتحول رمز البلد NO إلى القيمة المنطقية False، وهي قاعدة في YAML 1.1 تلقب بمشكلة النرويج. وفق المخطط الأساسي لـYAML 1.2، يُحمّل 1e-3 عدداً عشرياً وتبقى NO سلسلة نصية، بينما تظل 3.10 تتحول إلى 3.1.

استكشف الحلول

الرؤية الحاسوبية في الرياضة

الرؤية الحاسوبية في الرياضة

اكتشف كيف يعزّز Ultralytics YOLO الرؤية الحاسوبية الرياضية عبر تتبّع اللاعبين والكرة، وتحليلات الأداء، ورؤى التدريب، وإعادة تأهيل الرياضيين.
معرفة المزيد
الرؤية الحاسوبية للصور الجوية

الرؤية الحاسوبية للصور الجوية

حوّل صور الطائرات المسيّرة والصور الجوية إلى رؤى آنية للزراعة وتربية الأحياء المائية والحفاظ على البيئة والتحليل الجغرافي المكاني باستخدام Ultralytics YOLO.
معرفة المزيد
الرؤية الحاسوبية في قطاع الطيران والفضاء

الرؤية الحاسوبية في قطاع الطيران والفضاء

طبّق الرؤية الحاسوبية في مجال الطيران والفضاء باستخدام Ultralytics YOLO لفحص الطائرات، واكتشاف الأجسام الغريبة على المدارج (FOD)، والعمليات الأرضية في المطارات، واكتشاف عيوب المواد المركّبة.
معرفة المزيد
الرؤية الحاسوبية في مجال الأمن

الرؤية الحاسوبية في مجال الأمن

احمِ كل موقع باستخدام نماذج Ultralytics YOLO. يدعم الذكاء الاصطناعي البصري مراقبة المحيط، واكتشاف التهديدات، والتعرف على لوحات المركبات، والسلامة في مكان العمل.
معرفة المزيد
الرؤية الحاسوبية في الروبوتات

الرؤية الحاسوبية في الروبوتات

عزّز أداء الآلات الذكية باستخدام نماذج Ultralytics YOLO. يدعم الذكاء الاصطناعي البصري في الروبوتات الملاحة الذاتية والإدراك وتعقب الأجسام والتحكم الآني.
معرفة المزيد
الرؤية الحاسوبية في الخدمات اللوجستية

الرؤية الحاسوبية في الخدمات اللوجستية

بسّط العمليات اللوجستية باستخدام نماذج Ultralytics YOLO. يتيح الذكاء الاصطناعي البصري فحص الطرود وفرزها وتتبع المركبات ومراقبة سلامة المستودعات في الوقت الفعلي.
معرفة المزيد
الرؤية الحاسوبية في تجارة التجزئة

الرؤية الحاسوبية في تجارة التجزئة

أعِد تصور تجارة التجزئة باستخدام نماذج Ultralytics YOLO. يتيح الذكاء الاصطناعي البصري تتبع المخزون ومراقبة الرفوف وإدارة الطوابير واستخلاص رؤى أذكى عن العملاء.
معرفة المزيد
الرؤية الحاسوبية في الرعاية الصحية

الرؤية الحاسوبية في الرعاية الصحية

أنشئ حلولًا للرعاية الصحية باستخدام نماذج Ultralytics YOLO. يعزز الذكاء الاصطناعي البصري في الرعاية الصحية سرعة التصوير الطبي، وكفاءة التشخيص، ومراقبة المرضى.
معرفة المزيد
الرؤية الحاسوبية في التصنيع

الرؤية الحاسوبية في التصنيع

حسّن التصنيع باستخدام نماذج Ultralytics YOLO. يعزز الذكاء الاصطناعي للرؤية مراقبة الجودة واكتشاف العيوب والالتزام بمعدات الوقاية الشخصية وأتمتة خطوط التجميع.
معرفة المزيد
الرؤية الحاسوبية في قطاع السيارات

الرؤية الحاسوبية في قطاع السيارات

طبّق الرؤية الحاسوبية في قطاع السيارات باستخدام نماذج Ultralytics YOLO. يعزز الذكاء الاصطناعي للرؤية سلامة الطرق ومساعدة السائق وأتمتة المركبات لإنشاء طرق أكثر ذكاءً.
معرفة المزيد
الرؤية الحاسوبية في الزراعة

الرؤية الحاسوبية في الزراعة

أدخل الذكاء الاصطناعي البصري إلى الزراعة الذكية باستخدام نماذج Ultralytics YOLO. عزّز مراقبة المحاصيل وتتبع الماشية والزراعة الدقيقة لزيادة الإنتاجية وتحسينها.
معرفة المزيد

لنبنِ مستقبل الذكاء الاصطناعي معًا!

ابدأ رحلتك نحو مستقبل تعلّم الآلة