Hub documentation

Menggunakan sample-factory di Hugging Face

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Menggunakan sample-factory di Hugging Face

sample-factory adalah basis kode untuk pembelajaran penguatan asinkron dengan throughput tinggi. Basis kode ini memiliki integrasi dengan Hugging Face Hub untuk berbagi model beserta hasil evaluasi dan metrik pelatihan.

Menjelajahi sample-factory di Hub

Anda dapat menemukan model sample-factory dengan memfilter di sisi kiri halaman model.

Semua model di Hub dilengkapi dengan fitur yang berguna:

  1. Kartu model yang dihasilkan secara otomatis dengan deskripsi, konfigurasi pelatihan, dan lainnya.
  2. Tag metadata yang membantu untuk kemudahan penemuan.
  3. Hasil evaluasi untuk dibandingkan dengan model lain.
  4. Widget video tempat Anda dapat menonton agen Anda beraksi.

Instal pustaka

Untuk menginstal pustaka sample-factory, Anda perlu menginstal paket:

pip install sample-factory

SF diketahui dapat berjalan di Linux dan MacOS. Saat ini, tidak ada dukungan untuk Windows.

Memuat model dari Hub

Menggunakan load_from_hub

Untuk mengunduh model dari Hugging Face Hub untuk digunakan dengan Sample-Factory, gunakan skrip load_from_hub:

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

Argumen baris perintahnya adalah:

  • -r: ID repo untuk repositori HF yang akan diunduh. ID repo harus dalam format <username>/<repo_name>
  • -d: Argumen opsional untuk menentukan direktori tempat eksperimen disimpan. Nilainya secara default adalah ./train_dir yang akan menyimpan repo ke ./train_dir/<repo_name>

Unduh Repositori Model Secara Langsung

Repositori Hugging Face dapat diunduh langsung menggunakan git clone:

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

Menggunakan Model yang Diunduh dengan Sample-Factory

Setelah mengunduh model, Anda dapat menjalankan model di repo dengan skrip enjoy yang sesuai dengan lingkungan Anda. Misalnya, jika Anda mengunduh model mujoco-ant, model tersebut dapat dijalankan dengan:

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

Perlu dicatat, Anda mungkin perlu menentukan --train_dir jika path lokal train_dir Anda berbeda dengan yang ada di cfg.json

Berbagi model Anda

Menggunakan push_to_hub

Jika Anda ingin mengunggah tanpa menghasilkan metrik evaluasi atau video replay, Anda dapat menggunakan skrip push_to_hub:

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

Argumen baris perintahnya adalah:

  • -r: repo_id untuk disimpan di HF Hub. Ini sama dengan hf_repository di skrip enjoy dan harus dalam bentuk <hf_username>/<hf_repo_name>
  • -d: Path lengkap ke direktori eksperimen Anda untuk diunggah

Menggunakan enjoy.py

Anda dapat mengunggah model Anda ke Hub menggunakan skrip enjoy dari lingkungan Anda dengan flag --push_to_hub. Mengunggah menggunakan enjoy juga dapat menghasilkan metrik evaluasi dan video replay.

Metrik evaluasi dihasilkan dengan menjalankan model Anda pada lingkungan yang ditentukan selama sejumlah episode dan melaporkan rata-rata serta standar deviasi reward dari eksekusi tersebut.

Argumen baris perintah lain yang relevan adalah:

  • --hf_repository: Repositori yang akan dituju untuk push. Harus dalam bentuk <username>/<repo_name>. Model akan disimpan ke https://huggingface.co/<username>/<repo_name>
  • --max_num_episodes: Jumlah episode yang dievaluasi sebelum diunggah. Digunakan untuk menghasilkan metrik evaluasi. Disarankan untuk menggunakan beberapa episode guna menghasilkan rata-rata dan standar deviasi yang akurat.
  • --max_num_frames: Jumlah frame yang dievaluasi sebelum diunggah. Alternatif untuk max_num_episodes
  • --no_render: Flag yang menonaktifkan rendering dan tampilan langkah-langkah lingkungan. Disarankan untuk mengatur flag ini guna mempercepat proses evaluasi.

Anda juga dapat menyimpan video model selama evaluasi untuk diunggah ke hub dengan flag --save_video

  • --video_frames: Jumlah frame yang akan dirender dalam video. Nilainya secara default -1, yang merender seluruh episode
  • --video_name: Nama video untuk disimpan. Jika None, akan disimpan sebagai replay.mp4 di direktori eksperimen Anda

Sebagai contoh:

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