Hub documentation
Uso de sample-factory en Hugging Face
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:
- Una tarjeta de modelo generada automáticamente con una descripción, una configuración de entrenamiento y más.
- Etiquetas de metadatos que ayudan a la descubribilidad.
- Resultados de evaluación para comparar con otros modelos.
- 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/bloomUso 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_dirTenga 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 quehf_repositoryen 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á enhttps://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 amax_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 esNone, se guardará comoreplay.mp4en 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