Articlehuggingface.co·2025년 9월 17일·0

Post-Training Isaac GR00T N1.5 for LeRobot SO-101 Arm

Quick Summary

이 글은 NVIDIA Isaac GR00T N1.5를 저가형 오픈소스 LeRobot SO 101 로봇팔에 맞게 후학습하고, 데이터 준비부터 평가·실물 배포까지 진행하는 절차를 단계별로 설명한다.

Post-Training Isaac GR00T N1.5 for LeRobot SO-101 Arm 관련 대표 이미지

🖼️ 인포그래픽

Post-Training Isaac GR00T N1.5 for LeRobot SO-101 Arm 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

Post-Training Isaac GR00T N1.5 for LeRobot SO-101 Arm 내용을 설명하는 본문 이미지

💡 한 줄 요약

이 글은 NVIDIA Isaac GR00T N1.5를 저가형 오픈소스 LeRobot SO-101 로봇팔에 맞게 후학습하고, 데이터 준비부터 평가·실물 배포까지 진행하는 절차를 단계별로 설명한다.

📌 핵심 요약

  • Isaac GR00T N1.5는 GR00T N1의 첫 주요 업데이트로 소개되며, 언어와 이미지 같은 멀티모달 입력을 처리해 다양한 환경에서 조작 작업을 수행하도록 설계된 범용 휴머노이드 로봇 추론·기술 기반 모델이다.
  • 글의 핵심 목적은 단일 SO-101 로봇팔에서 수집한 원격조작 데이터를 사용해 GR00T N1.5를 특정 하드웨어, 작업, 환경에 맞게 후학습하는 방법을 보여주는 것이다.
  • 튜토리얼은 Isaac-GR00T 저장소 클론, conda 환경 생성, 패키지 설치, LeRobot 데이터셋 다운로드 또는 직접 생성, modality.json 구성, 데이터 로딩 확인 순서로 준비 과정을 안내한다.
  • SO-100 또는 SO-101 데이터셋은 GR00T N1.5의 초기 사전학습에 포함되지 않았기 때문에, 이 글에서는 이를 new_embodiment로 다루고 테이블 정리 작업 데이터셋을 예시로 미세조정을 수행한다.
  • 훈련 후에는 open-loop 평가로 정책 동작을 시각화하고, 이후 추론 서버와 별도 클라이언트 스크립트를 실행해 실제 SO-101 로봇에 배포하며, 댓글에서는 의존성 오류·움직임의 거칠음·프롬프트 일반화 같은 실사용 이슈도 제기된다.

🧩 주요 포인트

  1. Isaac GR00T N1.5는 GR00T N1의 첫 주요 업데이트로 소개되며, 언어와 이미지 같은 멀티모달 입력을 처리해 다양한 환경에서 조작 작업을 수행하도록 설계된 범용 휴머노이드 로봇 추론·기술 기반 모델이다.
  2. 글의 핵심 목적은 단일 SO-101 로봇팔에서 수집한 원격조작 데이터를 사용해 GR00T N1.5를 특정 하드웨어, 작업, 환경에 맞게 후학습하는 방법을 보여주는 것이다.
  3. 튜토리얼은 Isaac-GR00T 저장소 클론, conda 환경 생성, 패키지 설치, LeRobot 데이터셋 다운로드 또는 직접 생성, modality.json 구성, 데이터 로딩 확인 순서로 준비 과정을 안내한다.
  4. SO-100 또는 SO-101 데이터셋은 GR00T N1.5의 초기 사전학습에 포함되지 않았기 때문에, 이 글에서는 이를 new_embodiment로 다루고 테이블 정리 작업 데이터셋을 예시로 미세조정을 수행한다.
  5. 훈련 후에는 open-loop 평가로 정책 동작을 시각화하고, 이후 추론 서버와 별도 클라이언트 스크립트를 실행해 실제 SO-101 로봇에 배포하며, 댓글에서는 의존성 오류·움직임의 거칠음·프롬프트 일반화 같은 실사용 이슈도 제기된다.

🧠 상세 정리

1. 글의 목적과 GR00T N1.5 소개

이 글은 NVIDIA Isaac GR00T N1.5를 LeRobot SO-101 로봇팔에 맞게 후학습하는 실습형 튜토리얼이다. 서두에서는 Isaac GR00T가 로봇 기반 모델과 데이터 파이프라인을 만들기 위한 연구개발 플랫폼이라고 설명한다. 이어 GR00T N1.5가 GR00T N1의 첫 주요 업데이트이며, 일반화된 휴머노이드 로봇 추론과 기술을 위한 오픈 기반 모델로 소개된다. 모델은 언어와 이미지 등 멀티모달 입력을 처리하고, 다양한 환경에서 조작 작업을 수행할 수 있도록 설계되었다. 글의 초점은 이러한 모델을 단일 SO-101 로봇팔에서 얻은 원격조작 데이터로 특정 작업과 하드웨어에 적응시키는 과정에 있다.

2. SO-101과 EmbodimentTag를 통한 적응

튜토리얼은 GR00T N1.5가 다양한 로봇 형태를 다루는 개발자에게 접근 가능해졌고, 저렴한 오픈소스 LeRobot SO-101 팔을 통해 쉽게 미세조정될 수 있다고 설명한다. 이 유연성은 EmbodimentTag 시스템을 통해 가능하다고 제시된다. EmbodimentTag는 모델을 서로 다른 로봇 플랫폼에 맞게 맞춤화할 수 있도록 해, 취미 개발자·연구자·엔지니어가 고급 추론 및 조작 기능을 자신의 하드웨어에 적용할 수 있게 한다. 특히 SO-100 또는 SO-101 데이터셋은 GR00T N1.5의 초기 사전학습에 포함되지 않았으므로, 이 글에서는 해당 로봇팔을 새로운 embodiment로 취급한다는 점이 중요하게 언급된다.

3. 설치와 개발 환경 구성

실습은 먼저 사전 요구사항을 확인한 뒤 Isaac-GR00T 저장소를 클론하는 단계에서 시작한다. 사용자는 GitHub의 NVIDIA/Isaac-GR00T 저장소를 내려받고 해당 디렉터리로 이동해야 한다. 이후 gr00t라는 이름의 conda 환경을 Python 3.10으로 만들고 활성화한 다음, setuptools를 업그레이드하고 프로젝트를 editable 모드로 설치한다. 추가로 flash-attn 2.7.1.post4를 별도 빌드 격리 없이 설치하는 명령도 제공된다. 댓글에서 한 사용자가 원래 스크립트의 출처를 찾기 어려웠다고 지적했고, 글 작성자가 설치 섹션을 업데이트했다고 답한 점을 보면, 이 설치 단계는 실제 재현성 측면에서 중요한 보완으로 제시된다.

4. 데이터셋 준비와 테이블 정리 예제

데이터 준비 단계에서는 사용자가 임의의 LeRobot 데이터셋으로 GR00T N1.5를 미세조정할 수 있다고 설명하면서, 예시로 table cleanup 작업을 사용한다. 글은 직접 커스텀 데이터셋을 만드는 방법을 권장하는 동시에, Hugging Face에서 youliangtan/so101-table-cleanup 데이터셋을 다운로드하는 명령도 제공한다. 다운로드 명령에는 데이터셋 유형을 지정하고 로컬 저장 경로를 ./demo_data/so101-table-cleanup으로 설정하는 옵션이 포함된다. 이 단계의 핵심은 단순히 데이터를 확보하는 것이 아니라, SO-101이라는 사전학습에 없던 로봇 형태를 새 embodiment로 학습시키기 위한 입력 자료를 준비하는 데 있다.

5. modality.json 구성과 데이터 로딩 확인

데이터셋을 GR00T와 호환되게 만들기 위해서는 modality.json 파일을 구성해야 한다. 이 파일은 상태와 행동 모달리티에 대한 추가 정보를 제공하며, 글에서는 getting_started/examples/so100_dualcam__modality.json을 데이터셋의 meta/modality.json 위치로 복사하라고 안내한다. 단일 카메라 설정인 so100_strawberry_grape 같은 경우에는 별도의 so100__modality.json 예시를 사용하라는 주의도 붙어 있다. 이후 데이터셋은 GR00T의 LeRobotSingleDataset 클래스로 로드할 수 있으며, scripts/load_dataset.py를 실행해 상태·행동 플롯과 비디오 백엔드를 포함한 로딩 확인을 수행한다. 이 단계는 모델 학습 전에 데이터 구조와 모달리티 해석이 맞는지 점검하는 절차다.

6. 미세조정 실행과 자원 요구사항

미세조정은 scripts/gr00t_finetune.py 스크립트를 통해 실행된다. 예시 명령은 SO-101 테이블 정리 데이터셋 경로를 지정하고, GPU 1개를 사용하며, 출력 체크포인트를 ./so101-checkpoints에 저장하도록 설정한다. 최대 학습 스텝은 10000으로 제시되고, 데이터 구성은 so100_dualcam, 비디오 백엔드는 torchvision_av로 지정된다. 글은 기본 미세조정 설정에 약 25GB의 VRAM이 필요하다고 밝히며, 그만큼의 VRAM이 없다면 --no-tune_diffusion_model 플래그를 추가해보라고 안내한다. 이후 댓글에서는 한 사용자가 RTX 4080에서 해당 플래그, 배치 크기, LoRA rank, dataloader worker 수 등을 사용한 사례를 공유하고, 작성자는 diffusion model 조정 옵션을 제거해 expert head 전체를 튜닝해보라고 답한다.

7. open-loop 평가와 성공 확인

훈련이 끝나면 생성된 fine-tuned policy를 open-loop 환경에서 시각화해 성능을 확인한다. 글은 scripts/eval_policy.py--plot 옵션과 함께 실행하는 명령을 제공하며, 이때 embodiment tag는 new_embodiment로 지정된다. 모델 경로는 앞서 저장한 ./so101-checkpoints, 데이터 구성은 so100_dualcam, 데이터셋 경로는 테이블 정리 데이터셋, 비디오 백엔드는 torchvision_av로 맞춘다. 또한 --modality_keys single_arm gripper를 사용해 단일 팔과 그리퍼 관련 모달리티를 평가 대상으로 지정한다. 이 단계는 실제 로봇에 바로 올리기 전, 학습된 정책이 데이터셋 기반 평가에서 어떤 동작을 보이는지 확인하는 중간 검증 절차로 제시된다.

8. 실물 배포와 커뮤니티 피드백

마지막 단계는 fine-tuning과 평가를 마친 정책을 실제 로봇에 배포하는 것이다. 먼저 scripts/inference_service.py를 서버 모드로 실행해 체크포인트, new_embodiment, so100_dualcam, denoising steps 값을 지정한다. 별도 터미널에서는 getting_started/examples/eval_lerobot.py를 클라이언트로 실행하며, 로봇 타입, 포트, 로봇 ID, 손목·전방 카메라의 OpenCV 인덱스와 해상도, policy host, 언어 지시문을 사용자의 설정에 맞게 바꿔야 한다. 글은 학습 데이터에 포함된 다른 언어 지시문, 예를 들어 테이프를 집어 펜 홀더에 넣으라는 프롬프트로 정책을 조향할 수 있다고 설명한다. 댓글에는 모듈 누락 오류, 어떤 conda 환경을 써야 하는지, 움직임이 거친 문제, 학습 스텝과 과학습 가능성, 텍스트 프롬프트 일반화 문제 등 실제 재현 과정에서 나온 질문들이 이어진다.

🧾 핵심 주장 / 시사점

  • 이 글에서 가장 중요한 실무 포인트는 모델 자체보다 데이터셋 구조와 modality.json, new_embodiment, 카메라·로봇 포트 설정처럼 하드웨어와 데이터 인터페이스를 정확히 맞추는 과정이다.
  • SO-101이 초기 사전학습에 포함되지 않았다는 설명은, 후학습이 단순 성능 개선이 아니라 새로운 로봇 형태를 모델에 연결하는 적응 절차라는 점을 보여준다.
  • 댓글에 등장한 의존성 오류, jerky motion, 프롬프트 무시 가능성은 튜토리얼 명령을 그대로 실행하는 것만으로 끝나지 않고, 환경 구성·학습 설정·데이터 다양성·실물 제어 품질을 함께 점검해야 함을 시사한다.

✅ 액션 아이템

  • SO-101 후학습 파이프라인은 저장소 클론→conda 생성→패키지 설치→데이터셋 준비→modality.json 구성→데이터 로딩 확인 순으로 정비한다.
  • SO-100/101 데이터셋을 new_embodiment로 분류해 테이블 정리 예시를 중심으로 GR00T N1.5 미세조정 절차를 재현한다.
  • 학습 후에는 open-loop 시각화 평가와 추론 서버·클라이언트 분리 실행으로 SO-101 실물 배포를 1회 점검한다.

❓ 열린 질문

  • 단일 SO-101 원격조작 데이터셋에서 환경·작업 변형은 어느 범위까지 확보하면 배포 성능이 안정되는가?
  • 의존성 오류 발생 시 Isaac-GR00T 기준에서 패키지 버전은 어떤 방식으로 고정하면 재현성과 배포 안정성을 동시에 높일 수 있는가?
  • open-loop에서 보이는 거친 동작과 프롬프트 일반화 편차는 어떤 정량 지표로 수치화해 배포 허용 여부를 판단할 것인가?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.