Hub documentation
Sử dụng sample-factory trên Hugging Face
Sử dụng sample-factory trên Hugging Face
sample-factory là một mã nguồn cho học tăng cường bất đồng bộ thông lượng cao. Nó có các tích hợp với Hugging Face Hub để chia sẻ các mô hình kèm theo kết quả đánh giá và các chỉ số huấn luyện.
Khám phá sample-factory trên Hub
Bạn có thể tìm các mô hình sample-factory bằng cách lọc ở phía bên trái của trang models.
Tất cả các model trên Hub đều đi kèm với các tính năng hữu ích:
- Thẻ mô tả mô hình được tạo tự động, bao gồm phần mô tả, cấu hình huấn luyện và nhiều thông tin khác.
- Các thẻ metadata giúp tăng khả năng tìm kiếm.
- Kết quả đánh giá để so sánh với các mô hình khác.
- Một widget video cho phép bạn xem agent của mình thực hiện.
Cài đặt thư viện
Để cài đặt thư viện sample-factory, bạn cần cài đặt gói:
pip install sample-factory
SF được biết là hoạt động trên Linux và MacOS. Hiện tại chưa có hỗ trợ cho Windows.
Tải mô hình từ Hub
Sử dụng load_from_hub
Để tải một mô hình từ Hugging Face Hub về sử dụng với Sample-Factory, hãy dùng script load_from_hub:
python -m sample_factory.huggingface.load_from_hub -r <HuggingFace_repo_id> -d <train_dir_path>Các đối số dòng lệnh là:
-r: ID của kho cho kho HF để tải xuống. ID kho phải ở định dạng<username>/<repo_name>-d: Một đối số tùy chọn để chỉ định thư mục lưu trữ thí nghiệm. Mặc định là./train_dir, sẽ lưu kho vào./train_dir/<repo_name>
Tải trực tiếp kho lưu trữ mô hình
Các kho lưu trữ Hugging Face có thể được tải xuống trực tiếp bằng git clone:
git clone git@hf.co:<Name of HuggingFace Repo> # example: git clone git@hf.co:bigscience/bloomSử dụng các Mô hình đã Tải xuống với Sample-Factory
Sau khi tải xuống mô hình, bạn có thể chạy các mô hình trong kho bằng script enjoy tương ứng với môi trường của bạn. Ví dụ, nếu bạn tải xuống một mô hình mujoco-ant, nó có thể được chạy bằng:
python -m sf_examples.mujoco.enjoy_mujoco --algo=APPO --env=mujoco_ant --experiment=<repo_name> --train_dir=./train_dirLưu ý, bạn có thể phải chỉ định --train_dir nếu đường dẫn của train_dir cục bộ khác với đường dẫn trong cfg.json
Chia sẻ các mô hình của bạn
Sử dụng push_to_hub
Nếu bạn muốn tải lên mà không tạo các chỉ số đánh giá hoặc video phát lại, bạn có thể sử dụng script push_to_hub:
python -m sample_factory.huggingface.push_to_hub -r <hf_username>/<hf_repo_name> -d <experiment_dir_path>Các đối số dòng lệnh là:
-r: repo_id để lưu trên HF Hub. Đây giống vớihf_repositorytrong script enjoy và phải ở dạng<hf_username>/<hf_repo_name>-d: Đường dẫn đầy đủ đến thư mục thử nghiệm của bạn để tải lên
Sử dụng enjoy.py
Bạn có thể tải mô hình của mình lên Hub bằng cách sử dụng script enjoy của môi trường với cờ --push_to_hub. Việc tải lên bằng enjoy cũng có thể tạo ra các chỉ số đánh giá và một video phát lại.
Các chỉ số đánh giá được tạo ra bằng cách chạy mô hình của bạn trong môi trường đã chỉ định qua một số lượng episode nhất định và báo cáo phần thưởng trung bình và độ lệch chuẩn của các lần chạy đó.
Các đối số dòng lệnh liên quan khác là:
--hf_repository: Kho lưu trữ để đẩy lên. Phải có dạng<username>/<repo_name>. Mô hình sẽ được lưu vàohttps://huggingface.co/<username>/<repo_name>--max_num_episodes: Số lượng episodes để đánh giá trước khi tải lên. Được sử dụng để tạo các chỉ số đánh giá. Khuyến nghị sử dụng nhiều episodes để tạo ra giá trị trung bình và độ lệch chuẩn chính xác.--max_num_frames: Số khung hình cần đánh giá trước khi tải lên. Một phương án thay thế chomax_num_episodes--no_render: Một cờ để tắt việc render và hiển thị các bước của môi trường. Khuyến nghị đặt cờ này để tăng tốc quá trình đánh giá.
Bạn cũng có thể lưu video của mô hình trong quá trình đánh giá để tải lên hub bằng cờ --save_video
--video_frames: Số khung hình sẽ được render trong video. Mặc định là -1, render toàn bộ một episode--video_name: Tên của video cần lưu. Nếu làNone, video sẽ được lưu thànhreplay.mp4trong thư mục thử nghiệm của bạn
Ví dụ:
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