Hub documentation
استخدام sample-factory في Hugging Face
استخدام sample-factory في Hugging Face
sample-factory هو قاعدة أكواد للتعزيز غير المتزامن عالي الإنتاجية. يتضمن تكاملات مع Hugging Face Hub لمشاركة النماذج مع نتائج التقييم ومقاييس التدريب.
استكشاف sample-factory في Hub
يمكنك العثور على نماذج sample-factory عن طريق التصفية في الجزء الأيسر من صفحة النماذج.
تأتي جميع النماذج على Hub بميزات مفيدة:
- بطاقة نموذج مُولَّدة تلقائيًا تتضمن وصفًا وإعدادات تدريب وغيرها.
- وسوم البيانات الوصفية التي تساعد في إمكانية الاكتشاف.
- نتائج التقييم للمقارنة مع نماذج أخرى.
- مكوّن فيديو يمكنك من خلاله مشاهدة أداء وكيلك.
تثبيت المكتبة
لتثبيت مكتبة 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