openpi 한국어 딥다이브

이 문서는 openpi 저장소를 연구 시작점으로 삼기 위해 필요한 배경, 모델 구조, 데이터 흐름, 학습/추론 실행 경로, 수정 포인트를 한곳에 모은 해설서다. 파일별 세부 책임은 openpi_code_reference_ko.md, 실행 절차와 핵심 코드 line-by-line 해설은 openpi_usage_line_by_line_ko.md에 따로 정리했다.

1. 프로젝트 한눈에 보기

openpi는 Physical Intelligence가 공개한 로봇 VLA(Vision-Language-Action) 모델 계열의 학습, 파인튜닝, 추론, 원격 서빙 코드를 담은 저장소다. README 기준으로 세 모델 축을 제공한다.

계열 코드 모델 타입 핵심 아이디어 이 저장소에서의 위치
pi0 ModelType.PI0 PaliGemma 기반 VLM 위에 연속 action expert를 붙이고 flow matching으로 action chunk를 생성 src/openpi/models/pi0.py, src/openpi/models/pi0_config.py
pi0-FAST ModelType.PI0_FAST 연속 action chunk를 FAST 토큰으로 바꿔 autoregressive next-token prediction으로 학습/추론 src/openpi/models/pi0_fast.py, src/openpi/models/tokenizer.py
pi0.5 ModelType.PI05 pi0의 flow matching head를 유지하되, π0.5/knowledge insulation 계열의 상태 토큰화와 AdaRMS 조건부 action expert 구조를 반영 src/openpi/models/pi0.py, src/openpi/models/pi0_config.py

저장소의 중요한 설계 기준은 “모델 내부 표현은 공통 형식으로 고정하고, 로봇/데이터셋별 차이는 transform에서 흡수한다”는 것이다. 즉, ALOHA, DROID, LIBERO, 커스텀 로봇의 원본 observation/action 형식은 policies/*_policy.pytraining/config.pyDataConfigFactory가 공통 입력으로 바꾼다. 그 뒤 모델은 Observation(images, image_masks, state, tokenized_prompt, ...)[batch, horizon, action_dim] action만 본다.

2. 외부 연구 배경

2.1 π0: flow matching VLA

공식 π0 블로그와 논문은 일반ist robot policy를 만들기 위해 인터넷 규모 VLM pretraining과 대규모 로봇 데이터를 결합한다고 설명한다. 논문 초록은 pretrained VLM 위에 flow matching architecture를 얹어 인터넷 규모 semantic knowledge를 상속하고, 여러 dexterous robot platform 데이터로 학습한다고 요약한다. 공식 블로그도 VLM은 원래 discrete language token을 내지만 로봇 제어는 최대 50Hz 수준의 연속 motor command가 필요하므로, diffusion 계열인 flow matching으로 continuous action output을 추가했다고 설명한다.

이 저장소의 대응은 명확하다.

  • 이미지 인코더는 SigLIP So400m/14이고, 언어/토큰 backbone은 Gemma 계열이다.
  • pi0.py는 image/language prefix와 state/action suffix를 나눠 transformer에 넣는다.
  • 학습 때는 실제 action과 Gaussian noise 사이의 중간점 x_t를 만들고, 모델이 noise - action 벡터장을 예측하도록 MSE를 건다.
  • 추론 때는 random noise에서 시작해 Euler step으로 t=1 -> t=0 방향으로 denoise하여 action chunk를 만든다.

코드 기준으로 π0의 핵심은 Pi0.compute_loss()Pi0.sample_actions()다. 자세한 줄 단위 해설은 사용 문서의 5장에서 다룬다.

2.2 FAST와 π0-FAST

FAST 논문은 기존 per-dimension, per-timestep binning action discretization이 고주파 dexterous skill에는 잘 맞지 않는다고 보고, DCT(discrete cosine transform) 기반 compression action tokenizer를 제안한다. FAST는 Frequency-space Action Sequence Tokenization의 약자이며, FAST+는 100만 개 real robot action trajectory로 학습된 universal action tokenizer다. 논문은 π0와 결합했을 때 diffusion VLA 성능에 맞먹으면서 학습 시간을 최대 5배 줄인다고 주장한다.

이 저장소에서 pi0-FAST는 continuous flow head가 없다. 대신 다음 순서를 따른다.

  1. FASTTokenizer가 prompt, discretized state, FAST action token sequence를 하나의 PaliGemma token sequence로 만든다.
  2. Pi0FAST.compute_loss()는 이미지 토큰과 텍스트/action 토큰을 한 sequence로 합친 뒤 next-token cross entropy를 계산한다.
  3. Pi0FAST.sample_actions()는 EOS가 나오거나 max_decoding_steps에 도달할 때까지 greedy 또는 sampling autoregressive decoding을 한다.
  4. ExtractFASTActions transform이 생성 토큰을 FAST decoder로 다시 연속 action chunk로 바꾼다.

따라서 π0-FAST는 학습 목적함수가 LLM의 next-token prediction과 같고, action precision은 FAST tokenizer 품질에 크게 의존한다. 반대로 π0/π0.5는 action을 직접 연속값으로 생성한다.

2.3 π0.5와 knowledge insulation

π0.5 논문은 π0 기반 모델에 heterogeneous co-training을 더해 open-world generalization을 개선했다고 설명한다. 데이터는 여러 robot, high-level semantic prediction, web data, object detection, subtask prediction 등 multimodal example을 함께 포함한다. 공식 블로그는 새로운 집처럼 학습에 없던 환경에서 kitchen/bedroom cleanup 같은 작업을 수행하는 generalization을 강조한다.

Knowledge insulation 문서는 더 구체적인 학습 레시피를 설명한다. 핵심 문제의식은 continuous action expert를 VLM backbone에 새로 붙이면, 초기화되지 않은 action expert의 gradient가 pretrained VLM knowledge를 손상시키고 학습을 느리게 만들 수 있다는 점이다. 제안은 backbone은 discretized action token과 VLM data의 next-token objective로 representation을 배우게 하고, action expert는 continuous flow/diffusion objective로 학습하되 action expert gradient가 backbone으로 흐르지 않게 insulating하는 것이다.

현재 저장소의 README는 “π0.5 training/inference는 flow matching head만 지원한다”고 명시한다. 코드상 π0.5는 다음 차이가 있다.

  • Pi0Config(pi05=True)model_type == PI05를 반환한다.
  • max_token_len 기본값이 48에서 200으로 늘어난다.
  • discrete_state_input 기본값이 True가 되어 tokenizer prompt에 state bin을 넣을 수 있다.
  • Pi0.__init__()에서 Gemma action expert에 AdaRMS(adarms=True)를 켠다.
  • embed_suffix()에서 π0처럼 별도 continuous state token을 suffix에 넣지 않고, timestep embedding을 AdaRMS conditioning으로 사용한다.

즉, 공개 코드의 π0.5는 논문/블로그의 전체 co-training system을 모두 재현하는 저장소가 아니라, 공개 checkpoint를 파인튜닝/추론하기 위한 flow matching policy path에 초점이 있다.

2.4 기반 모델: PaliGemma, Gemma, SigLIP

openpi는 PaliGemma 형태의 VLM을 로봇 제어에 맞게 바꾼다. PaliGemma 논문은 SigLIP-So400m vision encoder와 Gemma-2B language model을 결합한 3B급 VLM이라고 설명한다. 이 저장소도 같은 선택을 따른다.

  • src/openpi/models/siglip.py: JAX/Flax SigLIP vision encoder 구현. 각 224x224 이미지에서 patch token을 만들고 transformer를 통과시켜 PaliGemma width로 projection한다.
  • src/openpi/models/gemma.py: π0/π0.5용 multi-expert Gemma. VLM expert와 action expert가 별도 파라미터를 가지되 attention에서 함께 보게 하는 구조다.
  • src/openpi/models/gemma_fast.py: π0-FAST용 single-expert Gemma. autoregressive token policy라서 standard decoder LM에 가깝다.
  • src/openpi/models/lora.py: Gemma attention/FFN에 낮은 rank adapter를 붙이는 LoRA 구현.

2.5 로봇/벤치마크 배경

이름 이 저장소에서의 역할 연구적 의미
DROID DROID fine-tuned checkpoint, full RLDS training, custom DROID LeRobot conversion 76k demonstration, 350시간, 564 scene, 84 task 규모의 in-the-wild Franka manipulation dataset
ALOHA/Mobile ALOHA ALOHA real/sim examples, towel/tupperware/pen checkpoints 저비용 bimanual manipulation hardware와 ACT action chunking 계열 연구의 대표 플랫폼
LIBERO π0.5 LIBERO checkpoint와 fine-tuning/evaluation 예제 lifelong robot learning과 knowledge transfer 평가 benchmark
LeRobot 저장소의 표준 학습 dataset format Hugging Face의 real-world robotics dataset/tooling ecosystem

3. 저장소 구조

상위 폴더는 다음 책임을 가진다.

경로 책임
src/openpi/models JAX 모델 구현. π0, π0.5, π0-FAST, Gemma/SigLIP/LoRA/tokenizer 포함
src/openpi/models_pytorch PyTorch π0/π0.5 구현과 Hugging Face transformers patch
src/openpi/policies 로봇별 observation/action 변환과 checkpoint에서 policy 객체 생성
src/openpi/training config registry, data loader, checkpoint, optimizer, sharding, weight loader
src/openpi/shared 다운로드/cache, image resize, normalization, typing, NNX helper
src/openpi/serving websocket policy server
src/openpi/transforms.py 데이터 변환 DSL. training/inference에서 같은 변환 체인을 공유
scripts 학습, PyTorch 학습, norm stat 계산, policy server 실행
examples ALOHA real/sim, DROID, LIBERO, simple client, JAX->PyTorch 변환
packages/openpi-client 로봇/클라이언트 환경에서 쓰는 경량 websocket client/runtime package
docs Docker, norm stats, remote inference와 이 문서들
third_party ALOHA/LIBERO submodule 자리. 현재 워크트리에서는 submodule이 초기화되지 않은 상태

현재 파일 수는 .git 제외 143개, Python 파일 91개다. third_party/aloha, third_party/libero.gitmodules에는 등록되어 있지만 현재 git submodule status 기준 - prefix라 checkout되지 않았다. 해당 예제를 실제로 실행하려면 git submodule update --init --recursive가 필요하다.

4. 공통 데이터 흐름

학습과 추론 모두 아래 흐름을 공유한다.

원본 데이터/로봇 observation
  -> repack transform
  -> robot-specific data transform
  -> Normalize
  -> model-specific transform
  -> Observation.from_dict
  -> model.compute_loss 또는 model.sample_actions
  -> model output transform
  -> Unnormalize
  -> robot-specific output transform
  -> repack output transform

실제 구현은 policy_config.create_trained_policy()가 위 transform chain을 조립한다. 중요한 점은 transform의 입력 방향과 출력 방향이 서로 역순이라는 것이다. transforms.Group.push()는 input transform은 뒤에 붙이고, output transform은 앞에 붙인다. 이 덕분에 DeltaActions 입력 변환을 추가하면 추론 output에는 대응되는 AbsoluteActions가 반대로 먼저 적용된다.

5. 모델별 코드 구조

5.1 BaseModelConfigObservation

src/openpi/models/model.py는 모든 모델의 공통 계약이다.

  • ModelType: PI0, PI0_FAST, PI05.
  • IMAGE_KEYS: π0/π0.5 기본 카메라 키 base_0_rgb, left_wrist_0_rgb, right_wrist_0_rgb.
  • IMAGE_RESOLUTION: 모든 모델 입력 이미지 기본 224x224.
  • Observation: 이미지 dict, 이미지 mask dict, proprioceptive state, tokenized prompt/mask, FAST용 AR/loss mask를 담는다.
  • Observation.from_dict(): 일반 dict를 모델 dataclass로 바꾸며 uint8 이미지는 [-1, 1] float 범위로 정규화한다.
  • preprocess_observation(): 이미지 resize, train augmentation, mask 보정.
  • BaseModelConfig: model factory, checkpoint loading, input spec, fake observation/action 생성.
  • BaseModel: compute_loss()sample_actions() 추상 메서드.
  • restore_params(): Orbax checkpoint에서 JAX parameter pytree 복원.

5.2 π0/π0.5

src/openpi/models/pi0.pyPi0 클래스는 두 expert transformer 구조다.

images -> SigLIP -> image tokens
prompt/state text -> PaliGemma tokenizer -> language tokens
actions + time -> action expert tokens
prefix(image/language) + suffix(state/action) -> Gemma multi-expert transformer
suffix output -> action_out_proj -> flow vector

π0와 π0.5 차이는 suffix 구성과 timestep conditioning 방식이다.

항목 π0 π0.5
state 입력 suffix에 continuous state token 추가 기본적으로 prompt 안에 discretized state를 넣을 수 있음
time 입력 action token과 time embedding을 concatenate한 뒤 MLP time embedding을 AdaRMS conditioning으로 action expert에 주입
max text token 기본값 48 200
모델 타입 PI0 PI05

학습 objective는 flow matching이다.

  1. 실제 action a와 noise eps를 샘플링한다.
  2. t ~ Beta(1.5, 1)를 샘플링한다.
  3. x_t = t * eps + (1 - t) * a를 만든다.
  4. target vector field는 u_t = eps - a다.
  5. 모델이 v_t(x_t, obs, t)를 예측한다.
  6. loss는 mean((v_t - u_t)^2)다.

추론은 역방향 Euler integration이다.

  1. action shape의 random noise에서 시작한다.
  2. prefix(image/language)를 한 번 forward해서 KV cache를 채운다.
  3. 각 denoise step마다 suffix(action/time)를 forward하고 v_t를 얻는다.
  4. x_t <- x_t + dt * v_t, dt = -1 / num_steps.
  5. t가 0 근처가 되면 x_0을 action chunk로 반환한다.

5.3 π0-FAST

src/openpi/models/pi0_fast.py는 π0와 달리 action expert가 없다. image token과 prompt/action token을 single Gemma decoder에 넣는다.

images -> SigLIP tokens
prompt + discretized state + FAST action tokens -> PaliGemma token ids
image tokens + text/action token embeddings -> Gemma FAST decoder
next-token CE loss 또는 autoregressive decoding
generated tokens -> FAST decode -> continuous action chunk

Pi0FASTConfig.inputs_spec()에서 볼 수 있듯 이미지 키도 π0 기본과 다르다.

  • π0/π0.5 기본: base_0_rgb, left_wrist_0_rgb, right_wrist_0_rgb
  • π0-FAST 기본: base_0_rgb, base_1_rgb, wrist_0_rgb

DROID transform도 모델 타입에 따라 이 차이를 반영한다.

5.4 Tokenizer 계층

src/openpi/models/tokenizer.py는 세 부류를 구현한다.

  • PaligemmaTokenizer: π0/π0.5 prompt tokenizer. π0.5에서는 state를 256-bin으로 discretize해 State: ...; 형식으로 넣을 수 있다.
  • FASTTokenizer: Hugging Face physical-intelligence/fast processor와 PaliGemma tokenizer를 결합한다. FAST action token을 PaliGemma reserved token 영역으로 매핑해 autoregressive VLA 학습에 사용한다.
  • BinningTokenizer, FSQTokenizer: RoboArena/PolaRiS baseline용 action tokenizer. 메인 README의 세 모델보다는 실험 config 확장에 사용된다.

5.5 PyTorch 구현

README는 PyTorch 지원이 2025년 9월 추가되었고 현재 π0/π0.5만 지원한다고 설명한다. 코드 기준 핵심 파일은 다음이다.

  • src/openpi/models_pytorch/pi0_pytorch.py: JAX Pi0의 PyTorch 버전. flow matching loss와 Euler sampling을 구현한다.
  • src/openpi/models_pytorch/gemma_pytorch.py: Hugging Face PaliGemma/Gemma action expert를 한 모델로 묶는다.
  • src/openpi/models_pytorch/preprocessing_pytorch.py: torch tensor용 image resize/augmentation/preprocess.
  • src/openpi/models_pytorch/transformers_replace/*: AdaRMS, precision control, KV cache update 제어를 위해 transformers 4.53.2 내부 파일을 덮어쓰는 patch.

PyTorch checkpoint는 directory 안에 model.safetensors가 있으면 자동 감지된다. JAX checkpoint는 params/ Orbax tree를 사용한다.

6. 체크포인트와 config

README의 base checkpoint는 다음 세 개다.

체크포인트 config에서 주로 쓰는 모델 용도
gs://openpi-assets/checkpoints/pi0_base Pi0Config() π0 fine-tuning base
gs://openpi-assets/checkpoints/pi0_fast_base Pi0FASTConfig() π0-FAST fine-tuning base
gs://openpi-assets/checkpoints/pi05_base Pi0Config(pi05=True) π0.5 fine-tuning base

주요 공개 fine-tuned checkpoint는 다음이다.

이름 config checkpoint 비고
π0-FAST-DROID pi0_fast_droid gs://openpi-assets/checkpoints/pi0_fast_droid DROID table-top zero-shot용 autoregressive policy
π0-DROID pi0_droid gs://openpi-assets/checkpoints/pi0_droid 빠른 continuous inference, language following은 FAST보다 약할 수 있음
π0-ALOHA-towel pi0_aloha_towel gs://openpi-assets/checkpoints/pi0_aloha_towel ALOHA towel folding
π0-ALOHA-tupperware pi0_aloha_tupperware gs://openpi-assets/checkpoints/pi0_aloha_tupperware Tupperware unpacking
π0-ALOHA-pen-uncap pi0_aloha_pen_uncap gs://openpi-assets/checkpoints/pi0_aloha_pen_uncap public ALOHA pen task
π0.5-LIBERO pi05_libero gs://openpi-assets/checkpoints/pi05_libero LIBERO benchmark
π0.5-DROID pi05_droid gs://openpi-assets/checkpoints/pi05_droid fast inference + language following

전체 config registry는 src/openpi/training/config.py_CONFIGS에 있다. 이 저장소가 다루는 config 이름은 다음 범주로 나뉜다.

  • 기본/추론: pi0_aloha, pi05_aloha, pi0_aloha_towel, pi0_aloha_tupperware, pi0_droid, pi0_fast_droid, pi05_droid.
  • LIBERO fine-tuning: pi0_libero, pi0_libero_low_mem_finetune, pi0_fast_libero, pi0_fast_libero_low_mem_finetune, pi05_libero.
  • ALOHA fine-tuning: pi0_aloha_pen_uncap, pi05_aloha_pen_uncap, pi0_aloha_sim.
  • DROID full/custom fine-tuning: pi0_fast_full_droid_finetune, pi05_full_droid_finetune, pi05_droid_finetune.
  • debug: debug, debug_restore, debug_pi05.
  • misc 연구 config: RoboArena와 PolaRiS config가 training/misc에서 registry에 추가된다.

7. 학습 시스템

JAX 학습의 entrypoint는 scripts/train.py다. 흐름은 다음이다.

  1. config = tyro CLI로 선택한다.
  2. batch size가 device 수로 나누어지는지 확인한다.
  3. JAX compilation cache와 mesh/FSDP sharding을 준비한다.
  4. checkpoint directory를 초기화하거나 resume 상태를 판단한다.
  5. data_loader.create_data_loader()로 transformed dataset loader를 만든다.
  6. init_train_state()에서 모델 생성, weight loading, optimizer, EMA state를 초기화한다.
  7. train_step()jax.jit로 감싼다.
  8. loop에서 batch를 가져와 loss/grad/update/EMA를 수행한다.
  9. save_interval마다 Orbax checkpoint와 norm stats asset을 저장한다.

PyTorch 학습 entrypoint는 scripts/train_pytorch.py다. DDP, torchrun, safetensors, optimizer checkpoint 저장을 제공하지만 README 기준 mixed precision/FSDP/LoRA/EMA는 아직 지원하지 않는다.

Norm stats는 학습 전에 scripts/compute_norm_stats.py --config-name <config>로 계산한다. 이 값은 state/action normalization에 매우 중요하다. 특히 quantile normalization을 쓰는 π0-FAST/π0.5 계열에서 q01, q99가 너무 작게 잡히면 loss divergence가 날 수 있다.

8. 추론/서빙 시스템

로컬 Python에서 직접 추론하면 다음 API를 쓴다.

from openpi.training import config as _config
from openpi.policies import policy_config
from openpi.shared import download

config = _config.get_config("pi05_droid")
checkpoint_dir = download.maybe_download("gs://openpi-assets/checkpoints/pi05_droid")
policy = policy_config.create_trained_policy(config, checkpoint_dir)
action_chunk = policy.infer(example)["actions"]

로봇과 GPU 서버를 분리하려면 websocket server를 띄운다.

uv run scripts/serve_policy.py policy:checkpoint \
  --policy.config=pi05_droid \
  --policy.dir=gs://openpi-assets/checkpoints/pi05_droid

클라이언트는 packages/openpi-clientWebsocketClientPolicy를 사용한다. ActionChunkBroker를 감싸면 모델이 여러 step action chunk를 반환하더라도 로봇 runtime에는 한 step씩 공급할 수 있다.

9. 커스텀 로봇/데이터셋에 맞게 수정하는 법

커스텀 적용에서 바꾸는 파일은 보통 네 군데다.

  1. src/openpi/policies/<your_robot>_policy.py
    • 원본 observation을 images, image_masks, state로 변환한다.
    • 모델 action을 실제 robot command space로 되돌린다.
  2. src/openpi/training/config.py
    • DataConfigFactory를 만들거나 기존 SimpleDataConfig/LeRobot*DataConfig를 복사한다.
    • repack_transforms로 LeRobot dataset key와 runtime observation key를 맞춘다.
    • data_transforms로 로봇별 입력/출력 변환을 넣는다.
    • _CONFIGS에 새 TrainConfig를 추가한다.
  3. 데이터 변환 script
    • 예: examples/libero/convert_libero_data_to_lerobot.py, examples/droid/convert_droid_data_to_lerobot.py, examples/aloha_real/convert_aloha_data_to_lerobot.py.
    • LeRobot dataset에는 observation image/state/action/prompt/task가 학습 config와 맞는 이름으로 들어가야 한다.
  4. inference runtime
    • 실제 로봇에서 sensor frame을 모아 policy server에 보내고 action chunk를 command로 실행한다.
    • 예: examples/droid/main.py, examples/aloha_real/main.py, examples/libero/main.py.

수정 시 가장 먼저 정해야 하는 것은 action space다.

  • action이 joint velocity인지, joint position인지, end-effector delta pose인지 결정한다.
  • gripper는 absolute로 둘지 delta로 둘지 결정한다.
  • action_dimaction_horizon을 실제 policy output과 맞춘다.
  • base checkpoint의 norm stats를 재사용할지, 새 데이터에서 계산할지 결정한다.

10. 주의할 점

  • 이 저장소는 Ubuntu 22.04와 NVIDIA GPU를 전제로 한다.
  • 현재 워크트리의 third_party/aloha, third_party/libero는 submodule 미초기화 상태다.
  • src/openpi/models/vit.pyopenpi.models.resnet을 import하지만 해당 파일은 저장소에 없다. 현재 메인 경로에서는 사용되지 않는 legacy/unused 코드로 보는 것이 안전하다.
  • PyTorch 경로는 transformers 4.53.2 내부 파일을 직접 덮어쓴다. uv hardlink cache 때문에 다른 프로젝트에 영향이 남을 수 있어 README의 uv cache clean transformers 경고를 따라야 한다.
  • policy_config.py 주석에는 "model.safensors" 오타가 있지만 실제 코드는 "model.safetensors"를 확인한다.
  • π0-FAST는 PyTorch 구현이 없다.
  • JAX 학습은 multi-node training을 지원하지 않는다고 README가 명시한다.
  • examples/simple_client/Dockerfilepython:3.7-slim 기반이지만 내부에서 Python 3.11.9 venv를 만든다. openpi-client 자체는 >=3.7이라 가능한 구성이지만, 전체 openpi와 혼동하지 않는 편이 좋다.

11. 읽는 순서 추천

  1. 이 문서 1-8장을 읽어 전체 구조를 잡는다.
  2. openpi_usage_line_by_line_ko.md의 설치, inference, training 절차를 따라 실행 흐름을 익힌다.
  3. openpi_code_reference_ko.md의 파일 인벤토리를 보며 수정하려는 영역을 찾는다.
  4. 실제 연구 적용 전에는 debug 또는 pi0_aloha_sim처럼 작은 config로 transform/data loader/model loss가 정상 동작하는지 먼저 검증한다.
  5. 그 다음 목표 로봇의 action space와 norm stats를 확정하고 full fine-tuning이나 LoRA fine-tuning으로 넘어간다.

12. 주요 출처

  • Physical Intelligence, π0 공식 블로그: https://www.pi.website/blog/pi0
  • π0: A Vision-Language-Action Flow Model for General Robot Control, arXiv: https://arxiv.org/abs/2410.24164
  • Physical Intelligence, FAST 공식 글: https://www.pi.website/research/fast
  • FAST: Efficient Action Tokenization for Vision-Language-Action Models, arXiv: https://arxiv.org/abs/2501.09747
  • Physical Intelligence, π0.5 공식 블로그: https://www.pi.website/blog/pi05
  • π0.5: a Vision-Language-Action Model with Open-World Generalization, arXiv: https://arxiv.org/abs/2504.16054
  • Physical Intelligence, Knowledge Insulation 공식 글: https://www.pi.website/research/knowledge_insulation
  • Knowledge Insulating Vision-Language-Action Models, PDF: https://www.pi.website/download/pi05_KI.pdf
  • Hugging Face FAST tokenizer card: https://huggingface.co/physical-intelligence/fast
  • Hugging Face π0/π0-FAST blog: https://huggingface.co/blog/pi0
  • PaliGemma: A versatile 3B VLM for transfer, arXiv: https://arxiv.org/abs/2407.07726
  • Gemma: Open Models Based on Gemini Research and Technology, arXiv: https://arxiv.org/abs/2403.08295
  • Sigmoid Loss for Language Image Pre-Training, arXiv: https://arxiv.org/abs/2303.15343
  • DROID: A Large-Scale In-The-Wild Robot Manipulation Dataset, arXiv: https://arxiv.org/abs/2403.12945
  • Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware, arXiv: https://arxiv.org/abs/2304.13705
  • Mobile ALOHA, arXiv: https://arxiv.org/abs/2401.02117
  • LIBERO: Benchmarking Knowledge Transfer for Lifelong Robot Learning, arXiv: https://arxiv.org/abs/2306.03310
  • Hugging Face LeRobot docs: https://huggingface.co/docs/lerobot/main/index