From 8a7664d07dd7ba1ff1628037fa2877e0a85da059 Mon Sep 17 00:00:00 2001 From: eehyo Date: Thu, 6 Nov 2025 11:40:41 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=E2=9C=8D=EF=B8=8F=20Add(post):=20pi0-fast?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _posts/2025-11-10-pi0-fast.md | 277 ++++++++++++++++++++++++++++++++++ 1 file changed, 277 insertions(+) create mode 100644 _posts/2025-11-10-pi0-fast.md diff --git a/_posts/2025-11-10-pi0-fast.md b/_posts/2025-11-10-pi0-fast.md new file mode 100644 index 00000000..44f130a0 --- /dev/null +++ b/_posts/2025-11-10-pi0-fast.md @@ -0,0 +1,277 @@ +--- +layout: post +title: "π0 & π0-FAST: 범용 로봇 제어를 위한 Vision-Language-Action 모델" +author: hyojung +categories: [Robotics, Ai, Community] +image: assets/images/blog/posts/2025-11-10-pi-fast/thumbnail.png +--- +* TOC +{:toc} + + +_이 글은 Hugging Face 블로그의 [π0 and π0-FAST: Vision-Language-Action Models for General Robot Control](https://huggingface.co/blog/pi0)를 한국어로 번역한 글입니다._ + +--- + + +We have ported the first **robotics foundation models** to **Hugging Face LeRobot**! Both **π0 and π0-FAST**, developed by Physical Intelligence, are now available in the **LeRobot repository**, bringing generalist robotic intelligence to the Hugging Face ecosystem. If you are curious about how Vision-Language-Action (VLA) models differ from Vision-Language Models (VLMs) and how actions are represented, dive into this blog post to find out! + +Explore the model collection and the PyTorch Version of the model in our repository: +[Huggingface collection of Pi0 models](https://huggingface.co/collections/lerobot/pi0-models-67a0f92dc62e52ace7220eba) | [Huggingface collection of Pi0+FAST models](https://huggingface.co/collections/lerobot/pi0fast-models-67eab97cc139d6f20513ff4a) | [LeRobot repo](https://github.com/huggingface/lerobot/tree/main) + +--- + +## Introduction + + +Robert Heinlein suggests that a well-rounded person should be capable of handling a wide range of tasks—both intellectual and physical—rather than being narrowly specialized in one field. Drawing a parallel between a well-rounded person and machine intelligence: AI systems vary widely, but human intelligence excels in versatility—adapting to tasks, environments, and surprises. While large language and vision-language models (LLMs, VLMs) show promise, they lack interaction with the physical world. To bridge this gap, we need models trained on robotic data. Generalist robot models can enhance adaptability, using diverse data to improve generalization and robustness. Instead of training on isolated tasks, pre-training on varied robotic data—similar to LLMs—boosts efficiency and performance. + +Developing generalist robot policies, or robot foundation models, presents three key challenges: + +1. **The need for large-scale research** to fully leverage pre-training benefits. +2. **Designing model architectures** that can integrate diverse data sources while capturing complex physical interactions. A key challenge in this regard is **cross-embodiment training**, where a model must learn from diverse robot types with varying configurations, control spaces, and action representations. Existing approaches tackle this by: + - **Combining multimodal datasets** from different robotic platforms to enhance generalization. + - **Using shared representations** to bridge the gap between distinct robot morphologies, such as single-arm, dual-arm, and mobile manipulators. + +3. **Crafting an effective training recipe**, as recent advances in NLP and vision have heavily relied on careful pre-training and post-training strategies. + +In this post, we introduce **π0 and π0-FAST**, prototype models and learning frameworks developed by **Physical Intelligence**, designed to overcome these challenges. + +--- + +## 🔍 What is π0? + +[Paper](https://www.physicalintelligence.company/download/pi0.pdf) | [Jax Code](https://github.com/Physical-Intelligence/openpi) + +π0 (**Pi-Zero**) is a **Vision-Language-Action (VLA) model**, developed by the [Physical Intelligence team](https://www.physicalintelligence.company) designed for **generalist robot control**. It builds upon **large-scale pretraining** and **flow matching-based action generation**, enabling robots to perform **dexterous manipulation tasks** across different embodiments. + +π0 is trained on data from **7 robotic platforms** and **68 unique tasks**, demonstrating strong **zero-shot** and **fine-tuned performance** on complex, real-world tasks such as **laundry folding, table bussing, grocery bagging, box assembly, and object retrieval**. + +Unlike standard robotic policies, **π0 employs flow matching** to produce **smooth, real-time action trajectories at 50Hz**, making it highly **efficient, precise, and adaptable** for real-world deployment. Flow matching was used in continuous normalizing flows and improved generation quality in diffusion models. The denoising process π0 used works in the same way, starting with a random noise that progressively converges towards a sequence of motor actions that make sense. + +## How to Use π0 in LeRobot? + +First of all, you need to upgrade your lerobot install, which leverages `transformers` as a dependency now! Simply do after a git clone + +```python +pip install -e ".[pi0]" +``` +π0 models are foundational models that, much like PaliGemma, are made to be adapted to a variety of frameworks, environments, and scene inputs. The base models here are usable as-is, in particular π0. + +### Inference on π0 pretrained model + +```python +python lerobot/scripts/eval.py \ +--pretrained_policy.path=/path/to/pretrained/pi0 +``` + +However, the performances are reduced as it's a conversion from jax to torch and from a specific environment. We recommend fine-tuning your own π0 to your own environment, like below. + +### Fine-tuning the π0 Pretrained Model + +To fine-tune the **π0** model using the `pi0_base` checkpoint from `openpi`, run the following command: + +```python +python lerobot/scripts/train.py \ +--policy.path=lerobot/pi0 \ +--dataset.repo_id=danaaubakirova/koch_test +``` + +To fine-tune the π0 neural network with PaliGemma and Expert Gemma, which were pretrained using VLM default parameters before π0 fine-tuning, execute: + +```python +python lerobot/scripts/train.py \ +--policy.type=pi0 \ +--dataset.repo_id=danaaubakirova/koch_test +``` + +You can also use the pretrained π0 model independently from the LeRobot training framework with the following code: + +```python +policy = Pi0Policy.from_pretrained("lerobot/pi0") +``` + +## What is the difference between VLMs and VLAs? + +Vision-Language Models (VLMs) and Vision-Language-Action Models (VLAs) share a common foundation: transformers. However, the key distinction lies in action representation. While VLMs process and generate multimodal representations (images and text), VLAs extend this by incorporating action and observation state tokens. With these additional tokens in place, the next challenge is understanding how attention is computed. + +## Attention Mechanisms in Robotics Policies + +Let’s expand our vocabulary and introduce key terms: + +#### **State Token** +- It is a single token that represents the robot’s **current environment state** (e.g., joint angles, sensor values, or other relevant observations). +- The masking rules allow this token to **attend to the prefix’s image and text**, meaning the state token can “see” any visual or textual cues necessary for decision-making. +- It also attends to **previous states in a triangular manner**. If multiple state tokens are used, each new state token can see older ones but not vice versa. + +#### **Action Tokens** +- Represent the **motor command sequence**. +- Have **full visibility** over everything except padding regions. This means each action token can attend to: + - **All non-padding image tokens** (the entire scene), + - **All non-padding text tokens** (instructions or descriptions), + - **State tokens** (both current and previous), + - **Other action tokens**. + +#### **Prefix Tokens** +- Represent the **full scene** and fully attend to each other, similar to **PaliGemma**. + +### **Key Idea** +These tokens encapsulate: +- The **robot’s internal representation** of the environment (**state**), +- The **commands or controls** the robot issues (**action**), +- An encoding of **time or step index** (**time embedding**). + +They are appended after the prefix portion (images + text), so the prefix serves as context (e.g., a scene image, language instructions like *"be a good robot"* or *"transfer the cube"*), while the suffix captures policy‐specific features. + +--- + +## ⚡ Towards the Faster Attention in π0 + +However, efficiently handling attention in π0 comes with its own set of challenges. The unique shape of its attention mask influences how attention is computed—let’s dive into the details! + +### **Handling 2D Attention Masks** + +The resulting **2D causal mask** exhibits strong **block sparsity**, but defining the boundaries of each block—especially in a batch of samples—is a bit tricky. We are used to causal masks with triangular structures for autoregressive modeling, but this is not one of those cases. + +As you can see in this example below: the image (first element) has some padding tokens, representing empty cameras. Then, text tokens and state tokens are added. This "prefix" part forms a fully noncausal attention, as in PaliGemma. Then, the "suffix" (state + action/time tokens) has a causal-block structure. The eager naive implementation performs matrix multiplications and applies softmax across the entire input, making it highly inefficient. + +
+ VLA Attention Mask +
+ +

+ Figure 1: The visualization of the VLA attention mask +

+ +### **Can we use FlashAttention2?** +- FlashAttention2 provides a **varlen interface**, but the `cu_seqlens` (cumulative prefix lengths) **must be computed manually**. It is designed for **contiguous (or strictly causal) attention patterns** with uniform query and key lengths. +- It does not **naturally handle irregular block masks** or arbitrary per-token “allowed” positions, which is exactly what we need. +- So, while it's possible to use it at some cost of implementation, we decided to turn to... + +### **Using FlexAttention in PyTorch** +This looks like a [FlexAttention](https://pytorch.org/blog/flexattention/) job! It has a pure PyTorch interface, in which explored two options: +1. **Adding a `score_mod`** to our causal mask in positions where attention is tuned out. However, even a scalar addition **significantly decreases FlexAttention’s performance**. This is because the ``score_mod`` in our case is added outside of the optimized cuda kernel. +2. The correct option is **indexing our causal mask and passing the resulting signature to create a block mask.** This block mask efficiently indicates where the attention has to be computed and where it can be skipped entirely. + +```python +# Example of indexing the causal mask and using mask_mod +causal_mask = generate_causal_mask(your_samples) # should be[batch, head, q_len, kv_len] +# Now we need to wrap this mask +def precomputed_mask_factory(precomputed_mask: torch.Tensor) -> _mask_mod_signature: + def mask_mod(b, h, q_idx, kv_idx): + return precomputed_mask[b][h][q_idx][kv_idx] + return mask_mod +flex_attention_output = flex_attention(query, key, value, mask_mod=mask_mod) + +mask_mod = precomputed_mask_factory(causal_mask) +# create a block mask with that signature +block_mask = create_block_mask( + mask_mod=mask_mod, + # ... +) + +# Call flex attention now! +attn_output, attention_weights = flex_attention( + query, + key, + value, + block_mask=block_mask, +) + +``` + +The current implementation runs, and a WIP is to have it support `torch.compile` and leverage it to the fullest! + +## How to effectively represent Actions? + +Now that we know actions are simply **n-dimensional** vectors that can be tokenized, we can explore the challenges of action representation in Vision-Language-Action (VLA) models. The way actions are represented directly impacts efficiency, generalization, and execution fidelity. + +One approach is **semantic action representation**, where actions are described as high-level concepts like sub-tasks or keypoints. While this allows for few-shot and zero-shot learning, it often relies on hand-designed low-level controllers, limiting flexibility across different robots. In contrast, low-level control representations map actions directly to motor commands, enabling precise movements but making training less stable and harder to scale. + +Most existing VLAs use **discrete action tokenization**, converting continuous actions into discrete tokens generated autoregressively. The most common method—per-dimension, per-timestep binning—struggles with high-frequency control tasks, leading to lossy representations and inefficient training. Alternatives like vector quantization (VQ) and time-series compression help, but **VQ is sensitive to hyperparameters**, making it less reliable for diverse robot designs. + +To address these issues, **Frequency-space Action Sequence Tokenization (FAST)** introduces a novel time-series compression approach using the Discrete Cosine Transform (DCT). FAST reduces redundancy, improves efficiency, and enhances action fidelity. + +With this, we present **π0-FAST**, faster and autoregressive version of **π0** also available in Lerobot repo, an extension of **π0**, which leverages this new tokenizer for better action representation. + + +--- +## 🚀 What is π0-FAST? + +[Paper](https://arxiv.org/pdf/2501.09747) | [Jax Code](https://github.com/Physical-Intelligence/openpi) | [Our implementation in Lerobot](https://github.com/huggingface/lerobot/pull/921) + +π0-FAST is an **autoregressive version** of π0, introducing **FAST (Frequency-space Action Sequence Tokenization)**—a new tokenization scheme that enhances efficiency and performance. + +### Key Advantages of π0-FAST: +- **5x faster training** compared to diffusion-based VLAs. +- **Improved action representation**, reducing redundancy in action sequences. +- **Stronger generalization** across unseen environments and robot morphologies. + +🔗 The **π0-FAST tokenizer** can be accessed here: [FAST Tokenizer](https://huggingface.co/physical-intelligence/fast) + +🔗 Pretrained weights can be accessed here: [Pi0+FAST](https://huggingface.co/collections/lerobot/pi0fast-models-67eab97cc139d6f20513ff4a) + +--- + +## How does FAST work? + +**FAST** uses the Discrete Cosine Transform (DCT) to compress continuous action sequences into discrete tokens. The process, illustrated in Figure 2, begins with normalizing raw robot actions, mapping the 1st and 99th quantiles of each action dimension to the range [-1,1]. This normalization is used to ensure consistency across different robotic systems and improve robustness against outliers. + +Each action dimension is then transformed independently using DCT, converting the time-domain signal into the frequency domain. To reduce redundancy, insignificant coefficients are removed through a scale-and-round operation, where a hyperparameter balances compression rate and reconstruction accuracy. The resulting DCT coefficient matrix, often sparse, is flattened into a one-dimensional sequence of integers, interleaving low-frequency components first across dimensions to preserve critical information. + +To further compress the sequence, Byte Pair Encoding (BPE) is applied. As usual, BPE merges frequently occurring patterns across dimensions while maintaining a fixed-size vocabulary. + +![image/png](https://cdn-uploads.huggingface.co/production/uploads/640e21ef3c82bd463ee5a76d/w3p752hK9lyXH1HHYQfde.png) +

+ Figure 2: The FAST action tokenization pipeline +

+ +Since all operations are invertible, actions can be reconstructed efficiently and losslessly from tokens. The tokenization pipeline has only two hyperparameters: the scaling coefficient applied before rounding and the BPE vocabulary size. Both parameters remain robust across different datasets. + +Additionally, a universal version of FAST, called **FAST+**, has been trained on one million action sequences from single-arm, bimanual, and mobile manipulation robots, making it applicable across diverse robotic setups. FAST+ is available as a **Hugging Face AutoProcessor**, allowing users to tokenize action sequences with just a few lines of code. + +For optimal compression, input actions should be quantile-normalized to [-1,1] before tokenization. With the ``AutoProcessor`` module, the users can train a custom FAST tokenizer on their own datasets. + +--- +## How to use FAST tokenizer? + +🔗 Code for the usage and training custom action tokenizers in the official [FAST Repo](https://huggingface.co/physical-intelligence/fast) + +FAST is integrated into **Hugging Face Transformers** and can be easily used for encoding and decoding robot action sequences. + +## What’s Next for Generalist Robot Intelligence? + +With π0 and π0-FAST, we take a significant step towards generalist robot intelligence, bringing scalable, efficient, and versatile Vision-Language-Action (VLA) models to LeRobot. By leveraging **FAST tokenization**, we enhance action representation, enabling robots to perform a diverse range of tasks with higher efficiency and adaptability. These steps open the door for future multi-embodiment, real-time robotic policies, pushing the boundaries of what robots can achieve in the real world. 🚀 + +## Additional Resources + +- [LeRobot](https://huggingface.co/lerobot) +- [Paligemma Blogpost](https://huggingface.co/blog/paligemma) +- [Original Pi0 Blogpost](https://www.physicalintelligence.company/blog/pi0) +- [FAST: Efficient Robot Action Tokenization](https://www.physicalintelligence.company/research/fast) + +## References + +```bash +@book{heinlein2021time, + title={Time enough for love}, + author={Heinlein, Robert A}, + year={2021}, + publisher={Penguin} +} + +@article{black2024pi_0, + title={$$\backslash$pi\_0 $: A Vision-Language-Action Flow Model for General Robot Control}, + author={Black, Kevin and Brown, Noah and Driess, Danny and Esmail, Adnan and Equi, Michael and Finn, Chelsea and Fusai, Niccolo and Groom, Lachy and Hausman, Karol and Ichter, Brian and others}, + journal={arXiv preprint arXiv:2410.24164}, + year={2024} +} + +@article{pertsch2025fast, + title={FAST: Efficient Action Tokenization for Vision-Language-Action Models}, + author={Pertsch, Karl and Stachowicz, Kyle and Ichter, Brian and Driess, Danny and Nair, Suraj and Vuong, Quan and Mees, Oier and Finn, Chelse|a and Levine, Sergey}, + journal={arXiv preprint arXiv:2501.09747}, + year={2025} +} + +``` \ No newline at end of file From 106f93ec65c3a740f0cf373d12e0a989c280cc8b Mon Sep 17 00:00:00 2001 From: eehyo Date: Thu, 6 Nov 2025 11:41:29 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=E2=9C=8D=EF=B8=8F=20Add(assets):=20pi0-fas?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../posts/2025-11-10-pi-fast/thumbnail.png | Bin 0 -> 163270 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/images/blog/posts/2025-11-10-pi-fast/thumbnail.png diff --git a/assets/images/blog/posts/2025-11-10-pi-fast/thumbnail.png b/assets/images/blog/posts/2025-11-10-pi-fast/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..78d06f72334ab9473929e6cd52ef67b40d9b1fa7 GIT binary patch literal 163270 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迳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

C~M~sym)_5Ww1*KmIdwqN} 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 Date: Sun, 9 Nov 2025 22:15:04 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=E2=9C=8D=EF=B8=8F=20update:=20final=20tran?= =?UTF-8?q?slation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _posts/2025-11-10-pi0-fast.md | 229 +++++++++++++++++++--------------- 1 file changed, 125 insertions(+), 104 deletions(-) diff --git a/_posts/2025-11-10-pi0-fast.md b/_posts/2025-11-10-pi0-fast.md index 44f130a0..55352525 100644 --- a/_posts/2025-11-10-pi0-fast.md +++ b/_posts/2025-11-10-pi0-fast.md @@ -8,68 +8,72 @@ image: assets/images/blog/posts/2025-11-10-pi-fast/thumbnail.png * TOC {:toc} - _이 글은 Hugging Face 블로그의 [π0 and π0-FAST: Vision-Language-Action Models for General Robot Control](https://huggingface.co/blog/pi0)를 한국어로 번역한 글입니다._ --- -We have ported the first **robotics foundation models** to **Hugging Face LeRobot**! Both **π0 and π0-FAST**, developed by Physical Intelligence, are now available in the **LeRobot repository**, bringing generalist robotic intelligence to the Hugging Face ecosystem. If you are curious about how Vision-Language-Action (VLA) models differ from Vision-Language Models (VLMs) and how actions are represented, dive into this blog post to find out! +우리는 **Hugging Face LeRobot**에 최초의 **로봇 파운데이션 모델**을 공개했습니다! **Physical Intelligence**에서 개발한 **π0**와 **π0-FAST** 모델이 이제 **LeRobot repository**를 통해 제공되며, 이를 통해 범용 로봇 지능(Generalist Robotic Intelligence)이 Hugging Face 생태계에 새롭게 도입되었습니다. 만약 Vision-Language-Action(VLA) 모델이 Vision-Language Model(VLM)과 어떻게 다른지, 그리고 행동(action)이 어떤 방식으로 표현되는지 궁금하다면, 이 블로그 포스트를 끝까지 읽어보세요! -Explore the model collection and the PyTorch Version of the model in our repository: -[Huggingface collection of Pi0 models](https://huggingface.co/collections/lerobot/pi0-models-67a0f92dc62e52ace7220eba) | [Huggingface collection of Pi0+FAST models](https://huggingface.co/collections/lerobot/pi0fast-models-67eab97cc139d6f20513ff4a) | [LeRobot repo](https://github.com/huggingface/lerobot/tree/main) +모델 컬렉션과 PyTorch 버전의 모델의 아래에서 확인할 수 있습니다: +[Huggingface의 Pi0 모델 컬렉션](https://huggingface.co/collections/lerobot/pi0-models-67a0f92dc62e52ace7220eba) | [Huggingface의 Pi0+FAST 모델 컬렉션](https://huggingface.co/collections/lerobot/pi0fast-models-67eab97cc139d6f20513ff4a) | [LeRobot repo](https://github.com/huggingface/lerobot/tree/main) --- ## Introduction -Robert Heinlein suggests that a well-rounded person should be capable of handling a wide range of tasks—both intellectual and physical—rather than being narrowly specialized in one field. Drawing a parallel between a well-rounded person and machine intelligence: AI systems vary widely, but human intelligence excels in versatility—adapting to tasks, environments, and surprises. While large language and vision-language models (LLMs, VLMs) show promise, they lack interaction with the physical world. To bridge this gap, we need models trained on robotic data. Generalist robot models can enhance adaptability, using diverse data to improve generalization and robustness. Instead of training on isolated tasks, pre-training on varied robotic data—similar to LLMs—boosts efficiency and performance. +Robert Heinlein은 다재다능한 사람이란 하나의 분야에만 전문화된 사람이 아니라, 지적·육체적으로 폭넓은 과제를 수행할 수 있는 사람이라고 말했습니다. 이 개념을 기계 지능(machine intelligence)에 비유해보면, AI 시스템은 매우 다양한 형태로 존재하지만, 인간 지능은 다재다능함에서 두드러집니다 — 즉, 다양한 과제와 환경, 예기치 않은 상황에 유연하게 적응할 수 있습니다. 대형 언어 모델(LLM)과 비전-언어 모델(VLM)은 큰 가능성을 보여주고 있지만, 여전히 물리적 세계와의 상호작용 능력이 부족합니다. 이 격차를 해소하기 위해서는 로봇 데이터를 기반으로 학습된 모델이 필요합니다. 이러한 범용 로봇 모델(generalist robot models)은 다양한 데이터를 활용해 적응력을 높이고, 일반화 성능과 견고성을 향상시킬 수 있습니다. 즉, 개별 작업(task)별로 모델을 따로 학습시키는 대신, LLM과 유사한 방식으로 다양한 로봇 데이터를 pre-training하면 학습 효율과 성능을 모두 크게 향상시킬 수 있습니다. + +범용 로봇 정책(generalist robot policies) 또는 로봇 파운데이션 모델(robot foundation models)을 개발하기 위해서는 +다음과 같은 세 가지 주요 과제가 존재합니다: -Developing generalist robot policies, or robot foundation models, presents three key challenges: +1. **대규모 연구의 필요성** — pre-training의 이점을 최대한 활용하기 위해서는 방대한 데이터와 실험을 기반으로 한 대규모 연구가 필요합니다. +2. **모델 아키텍처 설계** — 다양한 데이터 소스를 통합하면서도 복잡한 물리적 상호작용을 포착할 수 있는 아키텍처를 설계해야 합니다. 이와 관련된 중요한 도전 과제는 **크로스 임바디먼트 학습(cross-embodiment training)**입니다. 이는 로봇의 구조, 제어 공간, 그리고 행동 표현이 서로 다른 다양한 로봇 유형들로부터 모델이 학습해야 하는 과정을 의미합니다. +기존 접근법들은 다음과 같은 방식으로 이를 해결하고자 합니다: + - **다양한 로봇 플랫폼의 멀티모달 데이터셋을 결합**하여 일반화 능력을 향상시키는 방법 + - **공유 표현(shared representations)**을 활용하여 단일 팔(single-arm), 양팔(dual-arm), 모바일 매니퓰레이터(mobile manipulator) 등 서로 다른 형태의 로봇 간 격차를 줄이는 방법 -1. **The need for large-scale research** to fully leverage pre-training benefits. -2. **Designing model architectures** that can integrate diverse data sources while capturing complex physical interactions. A key challenge in this regard is **cross-embodiment training**, where a model must learn from diverse robot types with varying configurations, control spaces, and action representations. Existing approaches tackle this by: - - **Combining multimodal datasets** from different robotic platforms to enhance generalization. - - **Using shared representations** to bridge the gap between distinct robot morphologies, such as single-arm, dual-arm, and mobile manipulators. +3. **효율적인 학습 레시피 개발** — 최근 NLP와 비전 분야의 발전이 세밀한 pre-training 및 post-training 전략에 크게 의존한 것처럼, 로봇 모델에서도 이에 상응하는 학습 절차를 정립하는 것이 중요합니다. -3. **Crafting an effective training recipe**, as recent advances in NLP and vision have heavily relied on careful pre-training and post-training strategies. +이 글에서는 이러한 도전 과제를 해결하기 위해 **Physical Intelligence**가 개발한 **π0와 π0-FAST** — 두 개의 프로토타입 모델 및 학습 프레임워크를 소개합니다. -In this post, we introduce **π0 and π0-FAST**, prototype models and learning frameworks developed by **Physical Intelligence**, designed to overcome these challenges. --- -## 🔍 What is π0? +## 🔍 π0란 무엇인가? -[Paper](https://www.physicalintelligence.company/download/pi0.pdf) | [Jax Code](https://github.com/Physical-Intelligence/openpi) +[논문](https://www.physicalintelligence.company/download/pi0.pdf) | [Jax 코드](https://github.com/Physical-Intelligence/openpi) -π0 (**Pi-Zero**) is a **Vision-Language-Action (VLA) model**, developed by the [Physical Intelligence team](https://www.physicalintelligence.company) designed for **generalist robot control**. It builds upon **large-scale pretraining** and **flow matching-based action generation**, enabling robots to perform **dexterous manipulation tasks** across different embodiments. +**π0 (Pi-Zero)**는 [Physical Intelligence 팀](https://www.physicalintelligence.company)이 개발한 **Vision-Language-Action (VLA) 모델**로, **범용 로봇 제어(generalist robot control)**를 위해 설계되었습니다. +이 모델은 **대규모 pretraining**과 **flow matching 기반의 행동 생성**을 결합하여, 다양한 로봇 형태에서 **정교한 조작 작업**을 수행할 수 있도록 합니다. -π0 is trained on data from **7 robotic platforms** and **68 unique tasks**, demonstrating strong **zero-shot** and **fine-tuned performance** on complex, real-world tasks such as **laundry folding, table bussing, grocery bagging, box assembly, and object retrieval**. +π0는 **7개의 로봇 플랫폼**과 **68개의 고유한 작업 데이터**로 학습되었으며, **zero-shot** 및 **fine-tuning** 환경 모두에서 우수한 성능을 보여줍니다. 예를 들어, **빨래 개기**, **식탁 정리**, **식료품 포장**, **박스 조립**, **물체 회수** 등 복잡한 실제 작업에서도 뛰어난 결과를 보입니다. -Unlike standard robotic policies, **π0 employs flow matching** to produce **smooth, real-time action trajectories at 50Hz**, making it highly **efficient, precise, and adaptable** for real-world deployment. Flow matching was used in continuous normalizing flows and improved generation quality in diffusion models. The denoising process π0 used works in the same way, starting with a random noise that progressively converges towards a sequence of motor actions that make sense. +기존의 로봇 정책과 달리, **π0는 flow matching 기법**을 활용하여 **50Hz의 주파수로 부드럽고 실시간 행동 궤적(action trajectories)**을 생성합니다. 이를 통해 실제 환경에서도 **높은 효율성, 정밀성, 적응성**을 달성합니다. +Flow Matching은 원래 연속 정규화 플로우나 diffusion models의 생성 품질을 개선하기 위해 사용된 기법으로, π0에서도 유사한 원리를 적용합니다. 즉, 무작위 노이즈 상태에서 시작해 점진적으로 의미 있는 모터 동작 시퀀스로 수렴해 나가는 디노이징(denoising) 과정을 거칩니다. -## How to Use π0 in LeRobot? +## π0를 LeRobot에서 사용하는 방법 -First of all, you need to upgrade your lerobot install, which leverages `transformers` as a dependency now! Simply do after a git clone +먼저, `transformers` 라이브러리가 새로운 의존성으로 추가되었기 때문에 `LeRobot` 설치 버전을 최신으로 업데이트해야 합니다. git clone 후 아래 명령어를 실행하세요: ```python pip install -e ".[pi0]" ``` -π0 models are foundational models that, much like PaliGemma, are made to be adapted to a variety of frameworks, environments, and scene inputs. The base models here are usable as-is, in particular π0. +π0 모델은 PaliGemma와 마찬가지로 다양한 프레임워크와 환경, 그리고 시각 입력에 유연하게 적용될 수 있도록 설계된 파운데이션 모델입니다. 이 중에서도 기본 모델(Base model)인 π0는 별도의 수정 없이 그대로 사용할 수 있습니다. -### Inference on π0 pretrained model +### π0 Pretrained 모델 실행 ```python python lerobot/scripts/eval.py \ --pretrained_policy.path=/path/to/pretrained/pi0 ``` -However, the performances are reduced as it's a conversion from jax to torch and from a specific environment. We recommend fine-tuning your own π0 to your own environment, like below. +다만, 이 모델은 JAX에서 PyTorch로 변환된 버전이며 특정 환경에 맞춰 학습된 모델이기 때문에 일부 성능이 저하될 수 있습니다. 따라서 아래와 같이 사용자 환경에 맞게 직접 fine-tuning 하는 것을 권장합니다. -### Fine-tuning the π0 Pretrained Model +### π0 Pretrained 모델 Fine-tuning -To fine-tune the **π0** model using the `pi0_base` checkpoint from `openpi`, run the following command: +`openpi`의 `pi0_base` 체크포인트를 사용하여 **π0** 모델을 fine-tuning하려면 다음 명령어를 실행하세요: ```python python lerobot/scripts/train.py \ @@ -77,7 +81,8 @@ python lerobot/scripts/train.py \ --dataset.repo_id=danaaubakirova/koch_test ``` -To fine-tune the π0 neural network with PaliGemma and Expert Gemma, which were pretrained using VLM default parameters before π0 fine-tuning, execute: +π0 신경망(neural network)을 PaliGemma와 Expert Gemma와 함께 fine-tuning하려면, 다음 명령어를 실행하세요. +이 두 모델은 π0 fine-tuning 이전에 VLM 기본 파라미터로 pre-training된 모델입니다. ```python python lerobot/scripts/train.py \ @@ -85,78 +90,93 @@ python lerobot/scripts/train.py \ --dataset.repo_id=danaaubakirova/koch_test ``` -You can also use the pretrained π0 model independently from the LeRobot training framework with the following code: +또한, 아래 코드를 사용하면 LeRobot 학습 프레임워크와 독립적으로 pretrained π0 모델을 직접 사용할 수도 있습니다: ```python policy = Pi0Policy.from_pretrained("lerobot/pi0") ``` -## What is the difference between VLMs and VLAs? +## VLM과 VLA의 차이점은 무엇일까? -Vision-Language Models (VLMs) and Vision-Language-Action Models (VLAs) share a common foundation: transformers. However, the key distinction lies in action representation. While VLMs process and generate multimodal representations (images and text), VLAs extend this by incorporating action and observation state tokens. With these additional tokens in place, the next challenge is understanding how attention is computed. +Vision-Language Models(VLMs)과 Vision-Language-Action Models(VLAs)은 공통적으로 Transformer 아키텍처를 기반으로 합니다.하지만 두 모델의 핵심적인 차이는 행동의 표현 방식에 있습니다. VLM은 이미지와 텍스트를 기반으로 멀티모달 표현을 학습하고 생성하지만, VLA는 여기에 행동과 관찰 상태 토큰을 추가로 통합합니다. 이러한 토큰이 추가되면, 다음으로 중요한 과제는 어텐션(attention)이 어떻게 계산되는지를 이해하는 것입니다. -## Attention Mechanisms in Robotics Policies +## 로봇 정책에서의 어텐션 메커니즘(Attention Mechanisms) -Let’s expand our vocabulary and introduce key terms: +이제 주요 개념들을 하나씩 살펴보겠습니다. #### **State Token** -- It is a single token that represents the robot’s **current environment state** (e.g., joint angles, sensor values, or other relevant observations). -- The masking rules allow this token to **attend to the prefix’s image and text**, meaning the state token can “see” any visual or textual cues necessary for decision-making. -- It also attends to **previous states in a triangular manner**. If multiple state tokens are used, each new state token can see older ones but not vice versa. +- 로봇의 **현재 환경 상태**를 나타내는 단일 토큰입니다. (예: 관절 각도, 센서 값, 기타 관련 관찰 정보 등) +- 마스킹 규칙에 따라, 이 토큰은 **prefix 구간의 이미지와 텍스트**에 어텐션할 수 있습니다. 즉, state token은 의사결정에 필요한 시각적·언어적 단서를 “볼 수” 있습니다. +- 또한 **이전 상태를 삼각형(triangular) 구조**로 참조합니다. 여러 개의 state token이 존재할 경우, 새로운 토큰은 이전 토큰을 볼 수 있지만 그 반대는 불가능합니다. #### **Action Tokens** -- Represent the **motor command sequence**. -- Have **full visibility** over everything except padding regions. This means each action token can attend to: - - **All non-padding image tokens** (the entire scene), - - **All non-padding text tokens** (instructions or descriptions), - - **State tokens** (both current and previous), - - **Other action tokens**. +- 로봇의 **모터 명령 시퀀스**를 나타냅니다. +- 패딩 영역(padding regions)을 제외하고는 모든 토큰에 대해 **완전한 가시성**을 가집니다. + 즉, 각 action token은 다음 항목들에 어텐션할 수 있습니다: + - **비패딩 이미지 토큰** (전체 장면) + - **비패딩 텍스트 토큰** (명령어 또는 설명) + - **State tokens** (현재 및 이전 상태) + - **다른 Action tokens** + #### **Prefix Tokens** -- Represent the **full scene** and fully attend to each other, similar to **PaliGemma**. +- **전체 장면**을 표현하며, **PaliGemma**와 유사하게 서로 완전히 어텐션할 수 있습니다. -### **Key Idea** -These tokens encapsulate: -- The **robot’s internal representation** of the environment (**state**), -- The **commands or controls** the robot issues (**action**), -- An encoding of **time or step index** (**time embedding**). +### **핵심 아이디어** +이러한 토큰들은 다음과 같은 요소들을 포함합니다: +- 로봇이 환경을 이해하는 **내부 표현** — 즉, **상태(state)** +- 로봇이 실행하는 **명령 또는 제어 신호** — 즉, **행동(action)** +- **시간 또는 단계**를 인코딩한 **시간 임베딩(time embedding)** -They are appended after the prefix portion (images + text), so the prefix serves as context (e.g., a scene image, language instructions like *"be a good robot"* or *"transfer the cube"*), while the suffix captures policy‐specific features. +이 토큰들은 prefix 구간 — 이미지와 텍스트로 구성된 부분 — 뒤에 추가됩니다. +따라서 prefix는 맥락(context)으로 작용하며, 예를 들어 장면 이미지나 *"착한 로봇이 되어라"*이나 *"큐브를 옮겨라"* 같은 언어 지시가 여기에 포함됩니다. 반면, suffix는 로봇의 의사결정 정책(policy)과 관련된 특성을 포착합니다. + +### **전체 토큰 구성 흐름** +[Image Tokens] + [Text Tokens] + [State Tokens] + [Action Tokens] + [Time Tokens] + +- **Prefix (Image + Text)** → 상황과 명령의 **맥락(context)** +- **Suffix (State + Action)** → 로봇의 **의사결정(policy)**과 **제어(action)** +즉, VLA 모델은 **“무엇을 보고(Image), 어떤 지시를 받고(Text), 어떤 상태(State)에서, 어떤 행동(Action)을 할지”** 모두 Transformer 시퀀스 하나로 통합하여 학습합니다. --- -## ⚡ Towards the Faster Attention in π0 +## ⚡ π0에서 더 빠른 어텐션을 향하여 -However, efficiently handling attention in π0 comes with its own set of challenges. The unique shape of its attention mask influences how attention is computed—let’s dive into the details! +그러나 π0에서 어텐션을 효율적으로 처리하는 것은 또 다른 도전 과제를 동반합니다. +특유의 어텐션 마스크 형태가 어텐션 계산 방식에 영향을 미치기 때문이죠 — 이제 그 세부 내용을 살펴보겠습니다! -### **Handling 2D Attention Masks** +### **2D 어텐션 마스크 다루기** -The resulting **2D causal mask** exhibits strong **block sparsity**, but defining the boundaries of each block—especially in a batch of samples—is a bit tricky. We are used to causal masks with triangular structures for autoregressive modeling, but this is not one of those cases. +결과적으로 생성된 **2D 인과 마스크(causal mask)**는 강한 블록 희소성(block sparsity)을 보입니다. 하지만 각 블록의 경계를 정의하는 일 — 특히 여러 샘플(batch)을 다루는 경우 — 은 꽤 까다롭습니다. 우리는 일반적으로 자기회귀(autoregressive) 모델링에서 +삼각형 형태의 causal mask에 익숙하지만, 이번 경우는 그렇지 않습니다. -As you can see in this example below: the image (first element) has some padding tokens, representing empty cameras. Then, text tokens and state tokens are added. This "prefix" part forms a fully noncausal attention, as in PaliGemma. Then, the "suffix" (state + action/time tokens) has a causal-block structure. The eager naive implementation performs matrix multiplications and applies softmax across the entire input, making it highly inefficient. +예를 들어 아래 예시를 보면, 이미지(첫 번째 요소)는 빈 카메라를 나타내는 패딩 토큰(padding tokens)을 포함합니다. 그 다음으로 텍스트 토큰과 state 토큰이 추가됩니다. 이 “prefix” 부분은 PaliGemma에서처럼 완전 비인과(non-causal) 어텐션을 형성합니다. 반면, 그 이후의 “suffix” (즉, state + action/time 토큰) 부분은 인과적(causal) 블록 구조를 가집니다. 이때 단순한 즉시 실행 방식의 구현은 입력 전체에 대해 행렬 곱을 수행하고 softmax를 적용하기 때문에, 매우 비효율적입니다.

VLA Attention Mask

- Figure 1: The visualization of the VLA attention mask + Figure 1: VLA 어텐션 마스크 시각화

-### **Can we use FlashAttention2?** -- FlashAttention2 provides a **varlen interface**, but the `cu_seqlens` (cumulative prefix lengths) **must be computed manually**. It is designed for **contiguous (or strictly causal) attention patterns** with uniform query and key lengths. -- It does not **naturally handle irregular block masks** or arbitrary per-token “allowed” positions, which is exactly what we need. -- So, while it's possible to use it at some cost of implementation, we decided to turn to... +--- -### **Using FlexAttention in PyTorch** -This looks like a [FlexAttention](https://pytorch.org/blog/flexattention/) job! It has a pure PyTorch interface, in which explored two options: -1. **Adding a `score_mod`** to our causal mask in positions where attention is tuned out. However, even a scalar addition **significantly decreases FlexAttention’s performance**. This is because the ``score_mod`` in our case is added outside of the optimized cuda kernel. -2. The correct option is **indexing our causal mask and passing the resulting signature to create a block mask.** This block mask efficiently indicates where the attention has to be computed and where it can be skipped entirely. +### **FlashAttention2를 사용할 수 있을까?** +- FlashAttention2는 **가변 길이(varlen) 인터페이스**를 제공하지만, `cu_seqlens`(누적 시퀀스 길이, cumulative prefix lengths)을 **직접 계산해야** 합니다. 이 라이브러리는 **연속적(또는 엄격히 인과적인) 어텐션 패턴**에서, **쿼리**와 **키**의 길이가 동일한 경우에 맞춰 설계되었습니다. +- 따라서 우리가 필요로 하는 것처럼 **불규칙한 블록 마스크**나 +토큰별로 허용된 위치가 제각각인 경우를 자연스럽게 처리하지 못합니다. +- 즉, 구현 복잡도를 감수하면 사용할 수는 있지만, 우리는 더 적합한 대안을 선택했습니다. + +### **PyTorch에서 FlexAttention 사용하기** +이 문제는 [FlexAttention](https://pytorch.org/blog/flexattention/)으로 해결할 수 있습니다! FlexAttention은 순수 PyTorch 인터페이스를 제공하며, 두 가지 방법을 시도해볼 수 있습니다: +1. **score_mod를 추가하는 방법**은 어텐션이 비활성화된 위치(즉, 주의를 기울이지 않아야 하는 위치)에 causal mask에 score_mod를 추가하는 방식입니다. 그러나 단순히 스칼라 값을 더하는 것만으로도 **FlexAttention의 성능이 크게 저하**되었습니다. 그 이유는, 우리의 경우 score_mod가 최적화된 CUDA 커널 외부에서 더해지기 때문입니다. +2. 정확한 접근법은 **causal mask를 인덱싱하여, 그 결과로 얻은 시그니처를 사용해 block mask를 생성하는 것**입니다. 이렇게 생성된 block mask는 어텐션을 실제로 계산해야 하는 위치와 완전히 건너뛸 수 있는 위치를 효율적으로 구분합니다. ```python -# Example of indexing the causal mask and using mask_mod -causal_mask = generate_causal_mask(your_samples) # should be[batch, head, q_len, kv_len] -# Now we need to wrap this mask +# causal mask를 인덱싱하고 mask_mod를 사용하는 예시 +causal_mask = generate_causal_mask(your_samples) # 형태는 [batch, head, q_len, kv_len] 이어야 함 +# 이제 이 마스크를 감싸는 함수를 정의 def precomputed_mask_factory(precomputed_mask: torch.Tensor) -> _mask_mod_signature: def mask_mod(b, h, q_idx, kv_idx): return precomputed_mask[b][h][q_idx][kv_idx] @@ -164,13 +184,13 @@ def precomputed_mask_factory(precomputed_mask: torch.Tensor) -> _mask_mod_signat flex_attention_output = flex_attention(query, key, value, mask_mod=mask_mod) mask_mod = precomputed_mask_factory(causal_mask) -# create a block mask with that signature +# 해당 시그니처를 이용해 block mask 생성 block_mask = create_block_mask( mask_mod=mask_mod, # ... ) -# Call flex attention now! +# 이제 FlexAttention을 호출! attn_output, attention_weights = flex_attention( query, key, @@ -180,77 +200,78 @@ attn_output, attention_weights = flex_attention( ``` -The current implementation runs, and a WIP is to have it support `torch.compile` and leverage it to the fullest! - -## How to effectively represent Actions? +현재 구현은 정상적으로 작동하지만, `torch.compile`을 지원하도록 개선하는 작업이 진행 중(WIP)이며, 이를 통해 성능을 최대한 활용할 수 있도록 할 예정입니다! -Now that we know actions are simply **n-dimensional** vectors that can be tokenized, we can explore the challenges of action representation in Vision-Language-Action (VLA) models. The way actions are represented directly impacts efficiency, generalization, and execution fidelity. +## 행동(Action)을 효과적으로 표현하는 방법 -One approach is **semantic action representation**, where actions are described as high-level concepts like sub-tasks or keypoints. While this allows for few-shot and zero-shot learning, it often relies on hand-designed low-level controllers, limiting flexibility across different robots. In contrast, low-level control representations map actions directly to motor commands, enabling precise movements but making training less stable and harder to scale. +이제 행동(action)이 단순히 **n차원 벡터**로 표현될 수 있고, 이를 토크나이즈할 수 있다는 것을 알게 되었습니다. 그렇다면 이제 Vision-Language-Action (VLA) 모델에서 행동 표현(action representation)이 가지는 도전 과제들을 살펴보겠습니다. 행동이 어떻게 표현되느냐는 효율성, 일반화 능력, 그리고 실행 정확도에 직접적인 영향을 미칩니다. -Most existing VLAs use **discrete action tokenization**, converting continuous actions into discrete tokens generated autoregressively. The most common method—per-dimension, per-timestep binning—struggles with high-frequency control tasks, leading to lossy representations and inefficient training. Alternatives like vector quantization (VQ) and time-series compression help, but **VQ is sensitive to hyperparameters**, making it less reliable for diverse robot designs. +하나의 접근 방식은 **의미 기반 행동 표현(semantic action representation)**입니다. 이 방식에서는 행동을 하위 과제(sub-task)나 키포인트(keypoint) 같은 고수준 개념(high-level concept)으로 설명합니다. +이러한 방법은 few-shot이나 zero-shot 학습을 가능하게 하지만, 대개 수작업으로 설계된 저수준 제어기(low-level controller)에 의존하기 때문에 서로 다른 로봇 간의 유연성이 떨어지는 한계가 있습니다. 반대로 저수준 제어 표현(low-level control representation)은 행동을 직접 모터 명령으로 매핑합니다. 이 방식은 정밀한 동작을 가능하게 하지만, 훈련의 안정성이 낮고 확장성이 떨어진다는 단점이 있습니다. -To address these issues, **Frequency-space Action Sequence Tokenization (FAST)** introduces a novel time-series compression approach using the Discrete Cosine Transform (DCT). FAST reduces redundancy, improves efficiency, and enhances action fidelity. +대부분의 기존 VLA 모델은 **이산적 행동 토크나이제이션(discrete action tokenization)방식**을 사용합니다. 즉, 연속적인 행동을 자가회귀적(autoregressive)으로 생성되는 이산 토큰으로 변환하는 것입니다. 가장 일반적인 방법은 차원별, 시간 단계별 구간화 방식이지만, 이 접근법은 고주파 제어 작업에서 어려움을 겪으며, 결과적으로 손실이 많은 표현과 비효율적인 학습으로 이어집니다. 이에 대한 대안으로 **벡터 양자화(Vector Quantization, VQ)**나 시계열 압축(time-series compression) 같은 방법들이 제안되었지만, +VQ는 하이퍼파라미터에 매우 민감하여, 다양한 로봇 설계 간의 일반성을 확보하기 어렵다는 한계가 있습니다. -With this, we present **π0-FAST**, faster and autoregressive version of **π0** also available in Lerobot repo, an extension of **π0**, which leverages this new tokenizer for better action representation. +이러한 문제를 해결하기 위해, **주파수 공간 행동 시퀀스 토크나이제이션(Frequency-space Action Sequence Tokenization, FAST)**이 제안되었습니다. FAST는 **이산 코사인 변환(Discrete Cosine Transform, DCT)**을 활용한 새로운 시계열 압축 기법으로, 중복을 줄이고, 효율성을 향상시키며, 행동의 충실도를 향상시킵니다. +이를 바탕으로, 우리는 **π0-FAST**를 소개합니다. **π0-FAST**는 **π0**의 확장 버전으로, 새로운 토크나이저를 활용해 행동 표현을 개선한 더 빠르고, 자가회귀적(autoregressive) 구조의 모델입니다. +이 모델은 LeRobot repo에서도 사용할 수 있습니다. --- -## 🚀 What is π0-FAST? - -[Paper](https://arxiv.org/pdf/2501.09747) | [Jax Code](https://github.com/Physical-Intelligence/openpi) | [Our implementation in Lerobot](https://github.com/huggingface/lerobot/pull/921) +## 🚀 π0-FAST란 무엇인가? -π0-FAST is an **autoregressive version** of π0, introducing **FAST (Frequency-space Action Sequence Tokenization)**—a new tokenization scheme that enhances efficiency and performance. +[논문](https://arxiv.org/pdf/2501.09747) | [Jax 코드](https://github.com/Physical-Intelligence/openpi) | [LeRobot 구현 버전](https://github.com/huggingface/lerobot/pull/921) -### Key Advantages of π0-FAST: -- **5x faster training** compared to diffusion-based VLAs. -- **Improved action representation**, reducing redundancy in action sequences. -- **Stronger generalization** across unseen environments and robot morphologies. +π0-FAST는 π0의 **자가회귀(autoregressive) 버전**으로, 새로운 토크나이제이션 방식인 **FAST (Frequency-space Action Sequence Tokenization)**을 도입하여 모델의 효율성과 성능을 대폭 향상시킨 모델입니다. -🔗 The **π0-FAST tokenizer** can be accessed here: [FAST Tokenizer](https://huggingface.co/physical-intelligence/fast) - -🔗 Pretrained weights can be accessed here: [Pi0+FAST](https://huggingface.co/collections/lerobot/pi0fast-models-67eab97cc139d6f20513ff4a) +### π0-FAST의 주요 장점: +- Diffusion 기반 VLA보다 **5배 빠른 학습 속도** +- 행동 시퀀스 내 중복 감소로 인한 더 나은 **행동 표현력** +- 보지 못한 환경과 다양한 로봇 형태에 대한 **일반화 능력 강화** +🔗 **π0-FAST 토크나이저**는 여기에서 확인할 수 있습니다: [FAST Tokenizer](https://huggingface.co/physical-intelligence/fast) +🔗 Pretrained weights는 여기에서 다운로드할 수 있습니다: [Pi0+FAST](https://huggingface.co/collections/lerobot/pi0fast-models-67eab97cc139d6f20513ff4a) --- -## How does FAST work? +## FAST는 어떻게 작동할까? -**FAST** uses the Discrete Cosine Transform (DCT) to compress continuous action sequences into discrete tokens. The process, illustrated in Figure 2, begins with normalizing raw robot actions, mapping the 1st and 99th quantiles of each action dimension to the range [-1,1]. This normalization is used to ensure consistency across different robotic systems and improve robustness against outliers. +**FAST**는 이산 코사인 변환(Discrete Cosine Transform, DCT)을 사용하여 연속적인 로봇 행동 시퀀스를 이산 토큰(discrete tokens)으로 압축합니다. 그 과정은 아래의 Figure 2에 설명되어 있습니다. 먼저 로봇의 원시 행동(raw robot actions)을 정규화합니다. 각 행동 차원의 1번째 분위수(quantile)와 99번째 분위수를 [-1, 1] 범위에 매핑하여, 서로 다른 로봇 시스템 간의 일관성을 확보하고 이상치에 대한 강건성을 높입니다. -Each action dimension is then transformed independently using DCT, converting the time-domain signal into the frequency domain. To reduce redundancy, insignificant coefficients are removed through a scale-and-round operation, where a hyperparameter balances compression rate and reconstruction accuracy. The resulting DCT coefficient matrix, often sparse, is flattened into a one-dimensional sequence of integers, interleaving low-frequency components first across dimensions to preserve critical information. +그 다음, 각 행동 차원은 DCT를 통해 독립적으로 변환되어, 시간 도메인(time-domain) 신호가 주파수 도메인(frequency-domain)으로 바뀝니다. 중복을 줄이기 위해, 중요하지 않은 계수들을 scale-and-round 연산을 통해 제거됩니다. 이때 하이퍼파라미터를 통해 압축률과 재구성 정확도 사이의 균형을 조절합니다. 이렇게 생성된 DCT 계수 행렬은 일반적으로 희소(sparse)하며, 이를 1차원 정수 시퀀스로 평탄화합니다. 이때 저주파 성분(low-frequency components)이 우선적으로 배치되어, 핵심 정보가 손실되지 않도록 합니다. -To further compress the sequence, Byte Pair Encoding (BPE) is applied. As usual, BPE merges frequently occurring patterns across dimensions while maintaining a fixed-size vocabulary. +시퀀스를 한층 더 압축하기 위해 Byte Pair Encoding (BPE)이 적용됩니다. 일반적인 방식과 마찬가지로, BPE는 여러 차원에 걸쳐 자주 등장하는 패턴들을 병합하면서도 고정된 크기의 vocabulary를 유지합니다. ![image/png](https://cdn-uploads.huggingface.co/production/uploads/640e21ef3c82bd463ee5a76d/w3p752hK9lyXH1HHYQfde.png)

- Figure 2: The FAST action tokenization pipeline -

+ Figure 2: FAST action 토크나이제이션 파이프라인 +

-Since all operations are invertible, actions can be reconstructed efficiently and losslessly from tokens. The tokenization pipeline has only two hyperparameters: the scaling coefficient applied before rounding and the BPE vocabulary size. Both parameters remain robust across different datasets. +모든 연산은 가역적(invertible)이기 때문에, 토큰으로부터 행동을 효율적이고 손실 없이 복원할 수 있습니다. FAST의 토크나이제이션 파이프라인은 단 두 개의 하이퍼파라미터만을 가집니다: 반올림 전에 적용되는 스케일링 계수와 BPE vocabulary 크기입니다. 이 두 파라미터는 서로 다른 데이터셋에서도 높은 안정성과 일관성을 유지합니다. -Additionally, a universal version of FAST, called **FAST+**, has been trained on one million action sequences from single-arm, bimanual, and mobile manipulation robots, making it applicable across diverse robotic setups. FAST+ is available as a **Hugging Face AutoProcessor**, allowing users to tokenize action sequences with just a few lines of code. +또한, FAST의 범용 버전인 **FAST+**는 단일 팔(single-arm), 양팔(bimanual), 모바일 매니퓰레이터(mobile manipulation) 로봇 등 다양한 형태의 로봇에서 수집된 100만 개의 행동 시퀀스로 학습되었습니다. 따라서 FAST+는 다양한 로봇 환경에 폭넓게 적용할 수 있습니다. FAST+는 **Hugging Face AutoProcessor** 형태로 제공되며, 단 몇 줄의 코드만으로 행동 시퀀스를 손쉽게 토크나이즈할 수 있습니다. -For optimal compression, input actions should be quantile-normalized to [-1,1] before tokenization. With the ``AutoProcessor`` module, the users can train a custom FAST tokenizer on their own datasets. +최적의 압축 성능을 얻기 위해서는, 토크나이제이션 전에 입력 행동을 [-1, 1] 범위로 분위수 정규화(quantile-normalization) 하는 것이 좋습니다. 또한, ``AutoProcessor`` 모듈을 사용하면 사용자 데이터셋에 맞춰 커스텀 FAST 토크나이저를 직접 학습시킬 수도 있습니다. --- -## How to use FAST tokenizer? +## FAST 토크나이저 사용 방법 -🔗 Code for the usage and training custom action tokenizers in the official [FAST Repo](https://huggingface.co/physical-intelligence/fast) +🔗 공식 Repo에서 FAST 토크나이저의 사용법 및 커스텀 action 토크나이저 학습 코드 예시를 확인하세요: +[FAST Repo](https://huggingface.co/physical-intelligence/fast) -FAST is integrated into **Hugging Face Transformers** and can be easily used for encoding and decoding robot action sequences. +FAST는 **Hugging Face Transformers**에 통합되어 있으며, 로봇 행동 시퀀스를 인코딩 및 디코딩하는 데 쉽게 사용할 수 있습니다. -## What’s Next for Generalist Robot Intelligence? +## 앞으로의 범용 로봇 지능 -With π0 and π0-FAST, we take a significant step towards generalist robot intelligence, bringing scalable, efficient, and versatile Vision-Language-Action (VLA) models to LeRobot. By leveraging **FAST tokenization**, we enhance action representation, enabling robots to perform a diverse range of tasks with higher efficiency and adaptability. These steps open the door for future multi-embodiment, real-time robotic policies, pushing the boundaries of what robots can achieve in the real world. 🚀 +π0와 π0-FAST는 범용 로봇 지능(Generalist Robot Intelligence)을 향한 중요한 발걸음입니다. 이 두 모델은 확장 가능하고, 효율적이며, 다재다능한 Vision-Language-Action (VLA) 모델을 LeRobot 생태계에 도입했습니다. 특히 **FAST 토크나이제이션**을 활용함으로써 행동 표현을 더욱 정교하게 만들고, 로봇이 다양한 작업을 더 높은 효율성과 적응력으로 수행할 수 있게 되었습니다. 이러한 발전은 앞으로 다중 로봇 형태(multi-embodiment), 실시간 로봇 정책의 기반을 마련하며, 로봇이 실제 세계에서 수행할 수 있는 일의 한계를 한층 더 확장할 것입니다. 🚀 -## Additional Resources +## 참고 자료 -- [LeRobot](https://huggingface.co/lerobot) -- [Paligemma Blogpost](https://huggingface.co/blog/paligemma) -- [Original Pi0 Blogpost](https://www.physicalintelligence.company/blog/pi0) +- [LeRobot](https://huggingface.co/lerobot) +- [Paligemma 블로그 포스트](https://huggingface.co/blog/paligemma) +- [원본 Pi0 블로그 포스트](https://www.physicalintelligence.company/blog/pi0) - [FAST: Efficient Robot Action Tokenization](https://www.physicalintelligence.company/research/fast) -## References +## 참고 문헌 ```bash @book{heinlein2021time, @@ -269,7 +290,7 @@ With π0 and π0-FAST, we take a significant step towards generalist robot intel @article{pertsch2025fast, title={FAST: Efficient Action Tokenization for Vision-Language-Action Models}, - author={Pertsch, Karl and Stachowicz, Kyle and Ichter, Brian and Driess, Danny and Nair, Suraj and Vuong, Quan and Mees, Oier and Finn, Chelse|a and Levine, Sergey}, + author={Pertsch, Karl and Stachowicz, Kyle and Ichter, Brian and Driess, Danny and Nair, Suraj and Vuong, Quan and Mees, Oier and Finn, Chelsea and Levine, Sergey}, journal={arXiv preprint arXiv:2501.09747}, year={2025} }