unilabsim/UniLab
요약
UniLab은 GPU 시뮬레이션 백엔드 없이도 로봇 강화학습(RL)을 효율적으로 수행할 수 있는 이종 런타임 프레임워크입니다. CPU 병렬 시뮬레이션과 GPU 정책 학습을 공유 메모리로 연결하여 다양한 물리 백엔드와 알고리즘을 통합 지원합니다.
핵심 포인트
- CPU 시뮬레이션과 GPU 학습 간의 이종 런타임 구조 지원
- MuJoCo 및 MotrixSim 등 다양한 물리 백엔드 통합
- PPO, SAC, TD3 등 다양한 RL 알고리즘 지원
- Linux(CUDA/ROCm/XPU) 및 Apple Silicon 교차 플랫폼 지원
- uv 패키지 매니저를 활용한 간편한 워크플로우 제공
언어: English | 简体中文
GPU 시뮬레이션 백엔드 없이 로봇 RL (강화학습) 학습. 티저(Teaser)는 MotrixSim으로 렌더링되었습니다.
기본 학습 명령어를 실행하려면 아래의 Quick Demo부터 시작하세요. 권장되는 설정은 uv를 사용하는 것입니다. Conda 및 pip 사용자는 현재까지 uv 워크플로우를 따르는 것이 좋습니다. 플랫폼별 참고 사항 및 현재 제한 사항은 설치 가이드에 명시되어 있습니다.
┌───────────────────┐ ┌─────────────────────────┐
│ CPU Physics Sim │ Unified Shared Memory │ GPU Policy Training │
│ MuJoCo/Motrix │ ─────────────────────────▶ │ PPO / SAC / TD3 │
...
이종 (Heterogeneous) RL 런타임: CPU 병렬 시뮬레이션이 공유 메모리(Shared Memory)를 통해 전이(Transitions)를 전달하는 동안, 정책(Policy) 학습은 GPU 가속기에서 실행됩니다.
두 가지 물리 백엔드 (Physics Backends): MuJoCoUni와 MotrixSim이 백엔드 전용 어댑터 및 태스크 소유자(Task Owner) 설정을 통해 통합되어 있습니다.
통합 학습 CLI: uv run train 및 uv run eval은 PPO, MLX PPO, APPO, SAC, TD3, FlashSAC을 지원하며, 추가적인 HORA 및 HIM-PPO 경로는 스크립트 수준의 워크플로우로 문서화되어 있습니다.
설정 소유 태스크 (Config-owned tasks): Hydra 소유자 YAML 파일이 태스크, 보상(Reward), 백엔드 및 알고리즘 설정을 함께 선택합니다. 백엔드 전환은 task=<task>/<backend>와 같이 표현됩니다.
교차 플랫폼 설정 경로: 이 저장소는 Linux CUDA, Linux ROCm, Linux XPU 및 Apple Silicon / macOS 설정 흐름을 추적합니다.
# 0. uv가 설치되어 있지 않은 경우
curl -LsSf https://astral.sh/uv/install.sh | sh
# 1. 저장소 클론
...
사용 가능한 데모 이름: teaser, dance, wallflip, boxtracking, locomani, inhandgrasp. 전체 목록과 플래그(Flags)는 통합 CLI 페이지를 참조하세요.
중국 본토 사용자: 모션, 장면 및 데모 체크포인트는 첫 실행 시 Hugging Face에서 가져옵니다. 만약 huggingface.co
접속할 수 없는 경우, 데모 명령을 실행하기 전에 클라이언트를 커뮤니티 미러(community mirror)로 지정하십시오: export HF_ENDPOINT=https://hf-mirror.com
학습 (training) 및 평가 (evaluation)를 위해:
uv run train --algo appo --task go2_joystick_flat --sim motrix
uv run eval --algo appo --task go2_joystick_flat --sim motrix --load-run -1
# Linux/서버 실행을 위한 Headless Motrix 비디오 내보내기
...
이는 go2_joystick_flat/motrix 태스크 소유자 설정 (task owner config)을 통해 라우팅되며 백엔드 (backend) 선택을 명시적으로 유지합니다.
macOS / MacBook의 경우, UniLab CLI는 필요한 경우 mxpython을 통해 Motrix 대화형 재생 (interactive playback)을 라우팅합니다. Motrix는 기본적으로 대화형 재생을 수행합니다. 헤드리스 (headless) 비디오 내보내기를 위해서는 --render-mode record를 사용하거나, 재생을 건너뛰려면 --render-mode none을 사용하십시오. 상세한 스크립트 수준의 명령은 학습 가이드 (Training Guide)에 있습니다.
uv run train --algo sac --task g1_walk_flat --sim mujoco
uv run train --algo sac --task g1_motion_tracking --sim motrix
uv run train --algo appo --task sharpa_inhand --sim mujoco --profile hora
파지 (Grasp) 캐시는 첫 실행 시 Hugging Face (unilabsim/unilab-caches)에서 src/unilab/assets/caches/로 자동 다운로드되며, 별도의 수동 단계는 필요하지 않습니다. 사용자 정의 스케일 (custom scales)을 위해 로컬에서 재생성하려면 (느림): bash scripts/sharpa_collect_grasps.sh 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5
uv run train --algo ppo --task go2_arm_manip_loco --sim motrix
uv run eval --algo ppo --task go2_arm_manip_loco --sim motrix --load-run -1
학습 (training)에는 uv run train을, 체크포인트 (checkpoint) 재생에는 uv run eval을, 로컬 데모 프리셋 (local demo preset)에는 uv run demo를 사용하십시오. 이 명령들은 알고리즘 (algorithm), 태스크 (task), 그리고 백엔드 (backend) 선택을 명시적으로 유지합니다.
더 많은 학습 명령, 스크립트 수준의 엔트리포인트 (entrypoints), 알고리즘 매트릭스 (algorithm matrix), 재개 흐름 (resume flow), 그리고 W&B 상세 정보는 학습 가이드 (Training Guide)에 있습니다.
발행된 UniLab 문서를 사용하십시오. 영어 문서 인덱스 (English documentation index)부터 시작하는 것을 권장합니다. 핵심적인 엔트리포인트 (High-signal entrypoints)는 다음과 같습니다:
- 시작하기 (Getting Started): 설치 (installation), Docker 런타임 (Docker runtime), 의존성 설정 (dependency setup), 그리고 첫 실행 명령 (first-run commands)
- 학습 가이드 (Training Guide): 학습 (training), 재생 (playback), 재개 흐름 (resume flow), Hydra 오버라이드 (Hydra overrides), 그리고 W&B
- 시뮬레이션 백엔드 (Simulation Backends): 생성된 MuJoCo / Motrix 지원 매트릭스 (support matrix)
- 개발 표준 (Development Standard): 계약 (contracts), 계층화 (layering), 그리고 검증 경계 (validation boundaries)
- ADR 인덱스 (ADR Index): 승인된 아키텍처 결정 (accepted architecture decisions)
커뮤니티와 대화하고 도움을 받으려면 저희 Discord 서버에 참여하세요.
| WeChat 그룹 | WeChat 어시스턴트 |
|---|---|
| UniLab WeChat 그룹에 참여하려면 스캔하세요. | 그룹이 가득 찼다면, 어시스턴트를 추가하고 메시지에 unilab交流를 포함하세요. |
@article{jia2026unilab,
title = {UniLab: GPU 중심 패러다임을 넘어선 로봇 강화학습 (RL)을 위한 이기종 아키텍처 (A Heterogeneous Architecture for Robot RL Beyond GPU-Dominant Paradigms)},
author = {Yufei Jia and Zhanxiang Cao and Mingrui Yu and Heng Zhang and Shenyu Chen and Dixuan Jiang and Meng Li and Xiaofan Li and Yiyang Liu and Junzhe Wu and Zheng Li and XiLin Fang and Tingyu Cui and Shengcheng Fu and Haoyang Li and Anqi Wang and Zifan Wang and Dongjie Zhu and Chenyu Cao and Zhenbiao Huang and Ziang Zheng and Jie Lu and Xin Ma and Zhengyang Wei and Xiang Zhao and Tianyue Zhan and Ye He and Yuxiang Chen and Yizhou Jiang and Yue Li and Haizhou Ge and Yuhang Dong and Fan Jia and Ziheng Zhang and Meng Zhang and Xiwa Deng and Zhixing Chen and Hanyang Shao and Chenxin Dong and Yixuan Li and Yizhi Chen and Bokui Chen and Kaifeng Zhang and Hanqing Cui and Yusen Qin and Ruqi Huang and Lei Han and Tiancai Wang and Xiang Li and Yue Gao and Guyue Zhou},
...
@article{jia2026mujocouni,
title = {MuJoCoUni: MuJoCo를 위한 지속적 배치 런타임 프리미티브 (Persistent Batched Runtime Primitives for MuJoCo)},
author = {Jia, Yufei and Wu, Junzhe},
...
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Python (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기