Hub documentation
Hugging Face에서 sample-factory 사용
Hugging Face에서 sample-factory 사용
sample-factory는 고처리량 비동기 강화 학습을 위한 코드베이스입니다. Hugging Face Hub와 통합되어 평가 결과 및 학습 지표와 함께 모델을 공유할 수 있습니다.
Hub에서 sample-factory 탐색
모델 페이지 왼쪽에서 필터링하여 sample-factory 모델을 찾을 수 있습니다.
Hub의 모든 모델에는 유용한 기능이 함께 제공됩니다:
- 설명, 학습 구성 및 기타 항목이 포함된 자동 생성된 모델 카드
- 검색 가능성을 높이는 메타데이터 태그.
- 다른 모델과 비교하기 위한 평가 결과.
- 에이전트가 수행하는 모습을 볼 수 있는 비디오 위젯입니다.
라이브러리 설치
sample-factory 라이브러리를 설치하려면 패키지를 설치해야 합니다:
pip install sample-factory
SF는 Linux와 MacOS에서 작동하는 것으로 알려져 있습니다. 현재 Windows는 지원되지 않습니다.
Hub에서 모델 로드
load_from_hub 사용
Sample-Factory와 함께 사용할 모델을 Hugging Face Hub에서 다운로드하려면 load_from_hub 스크립트를 사용하세요:
python -m sample_factory.huggingface.load_from_hub -r <HuggingFace_repo_id> -d <train_dir_path>명령줄 인수는 다음과 같습니다:
-r: 다운로드할 HF 저장소의 repo ID입니다. repo ID는<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의 경로가 cfg.json의 경로와 다르면 --train_dir를 지정해야 할 수 있습니다.
모델 공유
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: HF Hub에 저장할 repo_id입니다. enjoy 스크립트의hf_repository와 동일하며<hf_username>/<hf_repo_name>형식이어야 합니다.-d: 업로드할 실험 디렉터리의 전체 경로
enjoy.py 사용
환경의 enjoy 스크립트에 --push_to_hub 플래그를 사용하여 모델을 Hub에 업로드할 수 있습니다. enjoy를 사용하여 업로드하면 평가 지표와 리플레이 비디오도 생성할 수 있습니다.
평가 지표는 지정된 환경에서 모델을 여러 에피소드 동안 실행하여 해당 실행들의 평균 보상과 표준편차를 보고함으로써 생성됩니다.
기타 관련 커맨드 라인 인수는 다음과 같습니다:
--hf_repository: push할 대상 저장소입니다.<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