Hub documentation

Uso de sample-factory en Hugging Face

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Uso de sample-factory en Hugging Face

sample-factory es una base de código para el aprendizaje por refuerzo asíncrono de alto rendimiento. Cuenta con integraciones con Hugging Face Hub para compartir modelos con resultados de evaluación y métricas de entrenamiento.

Explorando sample-factory en el Hub

Puedes encontrar modelos de sample-factory filtrando a la izquierda de la página de modelos.

Todos los modelos del Hub vienen con características útiles:

  1. Una tarjeta de modelo generada automáticamente con una descripción, una configuración de entrenamiento y más.
  2. Etiquetas de metadatos que ayudan a la descubribilidad.
  3. Resultados de evaluación para comparar con otros modelos.
  4. Un widget de video donde puedes ver a tu agente en acción.

Instalar la biblioteca

Para instalar la biblioteca sample-factory, necesitas instalar el paquete:

pip install sample-factory

SF se sabe que funciona en Linux y MacOS. En este momento no hay soporte para Windows.

Carga de modelos desde el Hub

Usando load_from_hub

Para descargar un modelo del Hugging Face Hub para usarlo con Sample-Factory, use el script load_from_hub:

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

Los argumentos de línea de comandos son:

  • -r: El ID del repositorio del repositorio de HF desde el que se descargará. El ID del repositorio debe estar en el formato <username>/<repo_name>
  • -d: Un argumento opcional para especificar el directorio donde se guardará el experimento. El valor predeterminado es ./train_dir, que guardará el repositorio en ./train_dir/<repo_name>

Descargar el repositorio del modelo directamente

Los repositorios de Hugging Face se pueden descargar directamente usando git clone:

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

Uso de modelos descargados con Sample-Factory

Después de descargar el modelo, puedes ejecutar los modelos del repositorio con el script enjoy correspondiente a tu entorno. Por ejemplo, si estás descargando un modelo mujoco-ant, se puede ejecutar con:

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

Tenga en cuenta que es posible que tenga que especificar --train_dir si su train_dir local tiene una ruta diferente a la del cfg.json

Compartir tus modelos

Usando push_to_hub

Si deseas subir sin generar métricas de evaluación ni un video de reproducción, puedes usar el script push_to_hub:

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

Los argumentos de línea de comandos son:

  • -r: El repo_id para guardar en HF Hub. Es el mismo que hf_repository en el script enjoy y debe estar en el formato <hf_username>/<hf_repo_name>
  • -d: La ruta completa al directorio de su experimento para subir

Usando enjoy.py

Puedes subir tus modelos al Hub usando el script enjoy de tu entorno con la bandera --push_to_hub. La subida mediante enjoy también puede generar métricas de evaluación y un video de reproducción.

Las métricas de evaluación se generan ejecutando su modelo en el entorno especificado durante un número de episodios e informando la recompensa media y la desviación estándar de esas ejecuciones.

Otros argumentos de línea de comandos relevantes son:

  • --hf_repository: El repositorio al que se enviarán los datos. Debe tener el formato <username>/<repo_name>. El modelo se guardará en https://huggingface.co/<username>/<repo_name>
  • --max_num_episodes: Número de episodios a evaluar antes de subir. Se utiliza para generar métricas de evaluación. Se recomienda usar varios episodios para generar una media y una desviación estándar precisas.
  • --max_num_frames: Número de fotogramas a evaluar antes de subir. Una alternativa a max_num_episodes
  • --no_render: Una bandera que deshabilita la renderización y la visualización de los pasos del entorno. Se recomienda establecer esta bandera para acelerar el proceso de evaluación.

También puedes guardar un video del modelo durante la evaluación para subirlo al hub con la bandera --save_video

  • --video_frames: El número de fotogramas que se renderizarán en el video. El valor predeterminado es -1, lo que renderiza un episodio completo
  • --video_name: El nombre con el que se guardará el video. Si es None, se guardará como replay.mp4 en el directorio de tu experimento

Por ejemplo:

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