Hub documentation

استخدام sample-factory في Hugging Face

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

استخدام sample-factory في Hugging Face

sample-factory هو قاعدة أكواد للتعزيز غير المتزامن عالي الإنتاجية. يتضمن تكاملات مع Hugging Face Hub لمشاركة النماذج مع نتائج التقييم ومقاييس التدريب.

استكشاف sample-factory في Hub

يمكنك العثور على نماذج sample-factory عن طريق التصفية في الجزء الأيسر من صفحة النماذج.

تأتي جميع النماذج على Hub بميزات مفيدة:

  1. بطاقة نموذج مُولَّدة تلقائيًا تتضمن وصفًا وإعدادات تدريب وغيرها.
  2. وسوم البيانات الوصفية التي تساعد في إمكانية الاكتشاف.
  3. نتائج التقييم للمقارنة مع نماذج أخرى.
  4. مكوّن فيديو يمكنك من خلاله مشاهدة أداء وكيلك.

تثبيت المكتبة

لتثبيت مكتبة sample-factory، تحتاج إلى تثبيت الحزمة:

pip install sample-factory

تُعرف SF بأنها تعمل على نظامي Linux و MacOS. ولا تتوفر حالياً أي دعم لنظام Windows.

تحميل النماذج من المستودع

باستخدام load_from_hub

لتحميل نموذج من Hugging Face Hub لاستخدامه مع Sample-Factory، استخدم سكربت load_from_hub:

python -m sample_factory.huggingface.load_from_hub -r <HuggingFace_repo_id> -d <train_dir_path>

معاملات سطر الأوامر هي:

  • -r: معرّف المستودع (repo ID) الخاص بمستودع HF الذي سيتم التنزيل منه. يجب أن يكون معرّف المستودع بالصيغة <username>/<repo_name>
  • -d: حجة اختيارية لتحديد المجلد الذي سيتم حفظ التجربة فيه. القيمة الافتراضية هي ./train_dir مما يعني حفظ المستودع في ./train_dir/<repo_name>

تنزيل مستودع النموذج مباشرة

يمكن تنزيل مستودعات Hugging Face مباشرة باستخدام git clone:

git clone git@hf.co:<Name of HuggingFace Repo> # example: git clone git@hf.co:bigscience/bloom

استخدام النماذج المُحمّلة مع Sample-Factory

بعد تنزيل النموذج، يمكنك تشغيل النماذج الموجودة في المستودع باستخدام سكربت الاستمتاع (enjoy) المقابل لبيئتك. على سبيل المثال، إذا كنت تنزّل نموذج mujoco-ant، فيمكن تشغيله باستخدام:

python -m sf_examples.mujoco.enjoy_mujoco --algo=APPO --env=mujoco_ant --experiment=<repo_name> --train_dir=./train_dir

لاحظ أنه قد يتعين عليك تحديد --train_dir إذا كان مسار train_dir المحلي مختلفًا عن المسار الموجود في cfg.json

مشاركة نماذجك

باستخدام push_to_hub

إذا كنت ترغب في الرفع دون توليد مقاييس التقييم أو فيديو إعادة التشغيل، يمكنك استخدام سكربت push_to_hub:

python -m sample_factory.huggingface.push_to_hub -r <hf_username>/<hf_repo_name> -d <experiment_dir_path>

معاملات سطر الأوامر هي:

  • -r: معرف المستودع (repo_id) الذي سيتم حفظه على HF Hub. وهو نفسه hf_repository في سكربت enjoy، ويجب أن يكون بالصيغة <hf_username>/<hf_repo_name>
  • -d: المسار الكامل إلى مجلد تجربتك الذي تريد رفعه

استخدام enjoy.py

يمكنك رفع نماذجك إلى Hub باستخدام سكربت enjoy الخاص ببيئتك مع علم --push_to_hub. كما يمكن لرفع النموذج باستخدام enjoy توليد مقاييس تقييم وفيديو إعادة تشغيل.

تُنتَج مقاييس التقييم من خلال تشغيل نموذجك في البيئة المحددة لعدد من الحلقات، ثم الإبلاغ عن متوسط ومعايير انحراف المكافآت لتلك التشغيلات.

من بين حُجج سطر الأوامر ذات الصلة الأخرى:

  • --hf_repository: المستودع الذي سيتم الدفع إليه. يجب أن يكون على شكل <username>/<repo_name>. سيتم حفظ النموذج في https://huggingface.co/<username>/<repo_name>
  • --max_num_episodes: عدد الحلقات التي سيتم التقييم عليها قبل الرفع. يُستخدم لتوليد مقاييس التقييم. يُوصى باستخدام عدة حلقات لتوليد متوسط وانحراف معياري دقيقين.
  • --max_num_frames: عدد الإطارات التي سيتم تقييمها قبل الرفع. بديل عن max_num_episodes
  • --no_render: علم يُعطّل العرض وإظهار خطوات البيئة. يُنصح بتعيين هذا العلم لتسريع عملية التقييم.

يمكنك أيضًا حفظ فيديو للنموذج أثناء التقييم لرفعه إلى المستودع باستخدام علم --save_video

  • --video_frames: عدد الإطارات التي سيتم عرضها في الفيديو. القيمة الافتراضية هي -1 مما يؤدي إلى عرض الحلقة كاملة
  • --video_name: اسم الفيديو الذي سيتم حفظه. إذا كان None، فسيتم الحفظ في replay.mp4 داخل مجلد التجربة الخاص بك

على سبيل المثال:

python -m sf_examples.mujoco_examples.enjoy_mujoco --algo=APPO --env=mujoco_ant --experiment=<repo_name> --train_dir=./train_dir --max_num_episodes=10 --push_to_hub --hf_username=<username> --hf_repository=<hf_repo_name> --save_video --no_render
Update on GitHub