CoolFace
Datasetpublic

prehj/demospeedup-libero-robocasa-entropy

DemoSpeedup 엔트로피: LIBERO / RoboCasa 기존 GR00T-N1.5 DemoSpeedup 재현에서 실제로 사용한 원본 프레임별 엔트로피입니다. 모델 재추론 없이 구간 분류 역치를 변경하고, 원본 데모를 다른 배속으로 재구성할 수 있습니다. 모델 아키텍처를 변경하는 방법이 아니며, 변환한 데모로 기존 GR00T-N1.5를 학습합니다. 벤치마크 에피소드 프레임 누락/NaN/Inf LIBERO 1,693 273,465 0 RoboCasa 7,200 2,073,457 0 재현 범위 정정 (2026-09-19) 이 저장소의 엔트로피와 라벨은 우리 GR00T 이식 구현의 결과이며, 논문을 그대로 재현한 결과라고 해석하면 안 됩니다. 논문 §3.2는 클러스터의 평균 엔트로피가 0 미만이면 precision, 그 외(노이즈 포함)는 casual이라고 설명합니다. 공식 공개 코드의… See the full description on the dataset page: https://huggingface.co/datasets/prehj/demospeedup-libero-robocasa-entropy.

sourceHugging Faceupdated 7d agoView on Hugging Face
0likes71downloads
Dataset Card

DemoSpeedup 엔트로피: LIBERO / RoboCasa

기존 GR00T-N1.5 DemoSpeedup 재현에서 실제로 사용한 원본 프레임별 엔트로피입니다. 모델 재추론 없이 구간 분류 역치를 변경하고, 원본 데모를 다른 배속으로 재구성할 수 있습니다. 모델 아키텍처를 변경하는 방법이 아니며, 변환한 데모로 기존 GR00T-N1.5를 학습합니다.

벤치마크에피소드프레임누락/NaN/Inf
LIBERO1,693273,4650
RoboCasa7,2002,073,4570

재현 범위 정정 (2026-09-19)

이 저장소의 엔트로피와 라벨은 우리 GR00T 이식 구현의 결과이며, 논문을 그대로 재현한 결과라고 해석하면 안 됩니다. 논문 §3.2는 클러스터의 평균 엔트로피가 0 미만이면 precision, 그 외(노이즈 포함)는 casual이라고 설명합니다. 공식 공개 코드의 BiGym 분기는 np.mean(cluster_points[:, 1] < 1)을 조건으로 사용해 클러스터의 모든 값이 1 이상인 경우만 casual이 됩니다. ALOHA 분기는 같은 형태에 0을 씁니다. 우리 구현은 BiGym의 클러스터 조건을 사용하지만 노이즈를 precision으로 처리하므로 공식 BiGym 구현 전체와도 다릅니다. tools/segment_entropy_reference.py는 이름과 달리 공식 소스의 그대로인 사본이 아니라 우리 이식 코드의 reference 모드 구현입니다. 따라서 기본 역치로 저장 라벨이 재현된다는 검증은 우리 기존 결과와의 일치를 뜻합니다.

또한 제공 데이터 builder는 단일 다운샘플 경로를 사용합니다. 논문의 replicate-before-downsample(여러 시작 offset으로 복제해 모든 관측을 유지) 전략은 구현하지 않았습니다. GR00T의 action horizon도 기존 16을 유지합니다. 공식 논문의 엄밀한 재현을 목표로 할 경우 이 차이들도 별도로 해결해야 합니다. 기존 엔트로피 원본·라벨·현재 실험 설정은 이 문서 정정으로 변경되지 않았습니다.

파일과 다운로드

demospeedup_entropy_20260918.zip에 CSV.gz, NumPy NPZ, 원래 precision/casual 라벨, 태스크·에피소드 메타데이터, 계산 코드와 provenance가 들어 있습니다. SHA256SUMS는 ZIP 체크섬입니다. tools/는 역치 변경과 데이터 재구성용 코드입니다.

python
from huggingface_hub import snapshot_download
snapshot_download('prehj/demospeedup-libero-robocasa-entropy',
                  repo_type='dataset', local_dir='./entropy_dataset')
bash
cd entropy_dataset
sha256sum -c SHA256SUMS
unzip demospeedup_entropy_20260918.zip -d scores
python -m pip install -r tools/requirements-relabel.txt

CSV/NPZ의 주요 필드:

  • —episode_index: 원본 데이터의 에피소드 ID, 0부터 시작.
  • —frame_index: 원본 에피소드 내 프레임 번호. 배속 변환 전의 좌표.
  • —entropy: 저장된 float32 값. 재정규화 없이 보존.
  • —segment_label: 당시 저장된 라벨. 0=precision, 1=casual.
  • —entropy_valid: 유한한 엔트로피인지 여부.

무엇을 바꿀 수 있나?

저장된 엔트로피로 구간 분류 역치, clustering/후처리, slow/fast 배속을 변경할 수 있습니다. 반면 엔트로피 계산의 KDE bandwidth, 액션 차원, temporal ensemble 길이 K, 샘플 수 N, 추출 정책 체크포인트를 변경하려면 원래 액션 샘플이나 모델 재추론이 필요합니다. 이 저장소에는 액션 샘플·이미지·영상·모델 가중치가 없습니다.

엔트로피는 정규화된 정책 액션 예측의 KDE 점수입니다: density_i = mean_j exp(-||x_i-x_j||^2/(2*bandwidth^2)), entropy = -mean_i log(density_i + 1e-8). 0~1 확률이 아니며 두 벤치마크의 원시 점수를 같은 절대 역치로 비교하는 것은 주의가 필요합니다. 계산 요약에 N=10과 action chunk shape가 기록되어 있습니다. 소스 기본값은 K=8, bandwidth=1, LIBERO action dims 0:7, RoboCasa 0:12이지만 당시 CLI override는 NPZ/요약에 남아 있지 않아 역사적 실행값 전체를 독립적으로 검증한 것은 아닙니다.

1. 역치를 바꿔 라벨 생성

제공 도구는 우리 재현 코드의 `reference` 모드를 유지하면서 역치만 노출합니다. 이는 아래 설명처럼 논문 본문 및 공식 코드 전체와 동일하지 않습니다. 에피소드별 표준화 → IsolationForest(contamination=0.1, seed=0) 이상값 보정 → 다시 표준화 → (표준화된 시간, 엔트로피) HDBSCAN(minclustersize=5) → 최대 25개씩 cluster 분할 → cluster 내 모든 점이 역치 이상이면 casual입니다. 노이즈 cluster는 precision으로 남습니다. 역치는 원시 엔트로피가 아니라 이 후처리·표준화 공간의 값입니다. 기본 1.0이 기존 코드의 기준입니다.

bash
# 예시: LIBERO 역치 0.5. 성공률로 검증된 권장값은 아닙니다.
python tools/relabel_entropy.py --entropy scores/libero_entropy.npz \
  --threshold 0.5 --out labels/libero_tau05.npz

# RoboCasa 역치 1.5 예시
python tools/relabel_entropy.py --entropy scores/robocasa_entropy.npz \
  --threshold 1.5 --out labels/robocasa_tau15.npz

역치를 낮추면 casual 구간이 늘거나 유지되고, 높이면 줄거나 유지됩니다. 실제 유지 프레임 비율은 구간 경계와 skip rule에 따라 별도로 계산해야 합니다. 출력 NPZ의 키는 에피소드 ID 문자열, 값은 원본 길이와 같은 int8 라벨 배열입니다. 함께 생성되는 .summary.json으로 라벨 비율과 원본 점수 체크섬을 확인하십시오. 기존 라벨을 정확히 재사용하려면 재분류하지 않고 ZIP에 있는 scores/{bench}_provenance/labels_{bench}.npz를 쓰면 됩니다. 라이브러리 버전에 따라 clustering 결과가 달라질 수 있어 도구 테스트 환경도 제공합니다.

2. 원본 데모 준비 — 반드시 필요

엔트로피만으로 영상·액션을 복원할 수 없습니다. 다른 서버에서도 다음과 동일한 원본 LeRobot 데이터(에피소드 순서·프레임 길이·액션 의미 포함)를 준비해야 합니다:

  • —LIBERO: 서버 원본 /s3data/libero_gr00t_delta/v1, 1,693개/273,465프레임, 10 Hz.
  • —RoboCasa: /s3data/robocasa_mg_gr00t_300/v1, 7,200개/2,073,457프레임, 20 Hz.

이 경로는 원 서버의 경로이며 다른 서버에서 자동으로 접근되는 다운로드 주소가 아닙니다. 원본 데이터의 배포·이전은 별도로 필요합니다. ZIP의 *_provenance/episodes.jsonl과 원본 episode ID/length/tasks를 대조하십시오. 임의의 다른 LIBERO/RoboCasa 버전과 프레임 단위로 맞는다고 가정하면 안 됩니다. 이미 1/2 또는 2/4배속으로 변환한 데이터는 원본 대체재가 아닙니다. 삭제된 프레임을 복원할 수 없으므로 새 역치 실험은 원본에서 시작해야 합니다.

3. 새 라벨로 별도 데이터 생성

영상 재인코딩/데이터 변환은 CPU 작업이며, 서버 규칙에 따라 compute job에서 실행하십시오. numpy, pandas, pyarrow, av, decord가 필요합니다. SRC는 원본, DST는 반드시 새 빈 출력 경로로 지정하십시오. 원본을 덮어쓰지 마십시오. 아래 명령은 순차 실행 예시이며, 대량 데이터는 builder의 --shard/--nshards로 나눌 수 있습니다.

bash
SRC=/path/to/original/libero_gr00t_delta/v1
DST=/scratch/myuser/libero_tau05_slow1_fast2
python tools/build_retimed_dataset.py --src "$SRC" --dst "$DST" \
  --labels labels/libero_tau05.npz --low-v 1 --high-v 2 \
  --delta-dims 0:6 --discrete-dims 6
python tools/finalize_retimed_dataset.py --src "$SRC" --dst "$DST"

RoboCasa는 --delta-dims 5:11 --discrete-dims 4,11과 RoboCasa 원본·라벨을 사용합니다. 이는 이 재현의 데이터 전용 액션 레이아웃이며 다른 embodiment에 그대로 적용하지 마십시오. 제공 builder는 기존 재현의 어댑터를 보존합니다. 연속 delta는 그룹 내 합산, 이산 차원은 그룹 마지막 값을 사용하고, 상태·영상은 선택한 프레임으로 재구성합니다. 지정하지 않은 액션 차원은 기존 구현대로 0으로 설정됩니다.

finalizer는 원본 통계를 복사하지 않습니다. GR00T loader로 변환 데이터의 통계를 다시 계산한 뒤, 전체 에피소드 수, 영상/액션 길이, 라벨 길이와 delta 합산을 검증하고 학습하십시오. finalizer의 경고만 보고 성공으로 간주하지 마십시오. 누락이 없어야 합니다.

4. 학습과 평가

GR00T-N1.5의 일반 학습 경로에 새 dataset path를 지정합니다. 추가 배속 헤드나 새 아키텍처는 필요하지 않습니다. 기존 비교 조건은 base model nvidia/GR00T-N1.5-3B, 60k steps, seed 42, global batch LIBERO 32 / RoboCasa 64입니다. 추출 정책으로부터 이어 학습하는 것과 base model에서 새로 학습하는 것을 혼동하지 마십시오. 여러 역치를 비교할 때 학습 조건과 평가 제어 설정을 고정하고, 평가 성공률로 고른 역치는 튜닝 결과임을 구분해 기록하십시오. 이 저장소는 특정 새 역치의 성공률을 보장하지 않습니다.