Hub documentation
Usando sample-factory no Hugging Face
Usando sample-factory no Hugging Face
sample-factory é uma base de código para aprendizado por reforço assíncrono de alto rendimento. Ele possui integrações com o Hugging Face Hub para compartilhar modelos com resultados de avaliação e métricas de treinamento.
Explorando o sample-factory no Hub
Você pode encontrar modelos do sample-factory filtrando à esquerda na página de modelos.
Todos os modelos no Hub vêm com recursos úteis:
- Um cartão de modelo gerado automaticamente com uma descrição, uma configuração de treinamento e mais.
- Tags de metadados que auxiliam na descoberta.
- Resultados de avaliação para comparação com outros modelos.
- Um widget de vídeo onde você pode assistir seu agente em ação.
Instale a biblioteca
Para instalar a biblioteca sample-factory, você precisa instalar o pacote:
pip install sample-factory
O SF é conhecido por funcionar em Linux e MacOS. Não há suporte para Windows no momento.
Carregando modelos do Hub
Usando load_from_hub
Para baixar um modelo do Hugging Face Hub para usar com o Sample-Factory, use o script load_from_hub:
python -m sample_factory.huggingface.load_from_hub -r <HuggingFace_repo_id> -d <train_dir_path>Os argumentos de linha de comando são:
-r: O ID do repositório do repositório HF de onde baixar. O ID do repositório deve estar no formato<username>/<repo_name>-d: Um argumento opcional para especificar o diretório onde o experimento será salvo. O padrão é./train_dir, que salvará o repositório em./train_dir/<repo_name>
Baixar Repositório de Modelo Diretamente
Os repositórios do Hugging Face podem ser baixados diretamente usando git clone:
git clone git@hf.co:<Name of HuggingFace Repo> # example: git clone git@hf.co:bigscience/bloomUsando modelos baixados com Sample-Factory
Após baixar o modelo, você pode executar os modelos do repositório com o script enjoy correspondente ao seu ambiente. Por exemplo, se você estiver baixando um modelo mujoco-ant, ele pode ser executado com:
python -m sf_examples.mujoco.enjoy_mujoco --algo=APPO --env=mujoco_ant --experiment=<repo_name> --train_dir=./train_dirObserve que você pode precisar especificar o --train_dir se o seu train_dir local tiver um caminho diferente do que está no cfg.json
Compartilhando seus modelos
Usando push_to_hub
Se você deseja fazer o upload sem gerar métricas de avaliação ou um vídeo de replay, pode usar o script push_to_hub:
python -m sample_factory.huggingface.push_to_hub -r <hf_username>/<hf_repo_name> -d <experiment_dir_path>Os argumentos de linha de comando são:
-r: O repo_id para salvar no HF Hub. Este é o mesmo quehf_repositoryno script enjoy e deve estar no formato<hf_username>/<hf_repo_name>-d: O caminho completo para o diretório do seu experimento para upload
Usando enjoy.py
Você pode enviar seus modelos para o Hub usando o script enjoy do seu ambiente com a flag --push_to_hub. O envio usando enjoy também pode gerar métricas de avaliação e um vídeo de replay.
As métricas de avaliação são geradas executando seu modelo no ambiente especificado por um número de episódios e reportando a média e o desvio padrão da recompensa dessas execuções.
Outros argumentos de linha de comando relevantes são:
--hf_repository: O repositório para o qual será feito o push. Deve estar no formato<username>/<repo_name>. O modelo será salvo emhttps://huggingface.co/<username>/<repo_name>--max_num_episodes: Número de episódios a serem avaliados antes do upload. Usado para gerar métricas de avaliação. É recomendado usar múltiplos episódios para gerar uma média e um desvio padrão precisos.--max_num_frames: Número de quadros a serem avaliados antes do upload. Uma alternativa paramax_num_episodes--no_render: Uma flag que desativa a renderização e a exibição das etapas do ambiente. É recomendável definir essa flag para acelerar o processo de avaliação.
Você também pode salvar um vídeo do modelo durante a avaliação para enviar ao hub com a flag --save_video
--video_frames: O número de quadros a serem renderizados no vídeo. O valor padrão é -1, o que renderiza um episódio inteiro--video_name: O nome do vídeo a ser salvo. SeNone, será salvo comoreplay.mp4no diretório do seu experimento
Por exemplo:
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