# ACT (Transformer를 사용한 액션 청킹)

ACT는 **경량화되고 효율적인 모방 학습 정책**으로, 특히 세밀한 조작 작업에 적합합니다. 학습 시간이 빠르고 계산 요구 사항이 낮으며 성능이 우수하여, LeRobot을 처음 시작할 때 **가장 먼저 권장하는 모델**입니다.

  <iframe width="100%" height="415" src="https://www.youtube.com/embed/ft73x0LfGpM" title="LeRobot ACT 튜토리얼" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen
  >

_LeRobot 팀의 이 튜토리얼을 시청하여 ACT가 어떻게 작동하는지 배워보세요: [LeRobot ACT Tutorial](https://www.youtube.com/watch?v=ft73x0LfGpM)_

## 모델 개요

Action Chunking with Transformers (ACT)는 Zhao et al.의 논문 [Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware](https://arxiv.org/abs/2304.13705)에서 소개되었습니다. 이 정책은 저렴한 하드웨어와 최소한의 데모 데이터만으로도 정밀하고 접촉이 많은 조작 작업을 수행할 수 있도록 설계되었습니다.

### 초보자에게 ACT가 좋은 이유

ACT는 다음과 같은 여러 가지 이유로 훌륭한 시작점으로 두각을 나타냅니다:

- **빠른 학습**: 단일 GPU에서 몇 시간 만에 학습
- **경량**: 약 80M개의 파라미터만 있어 효율적이고 다루기 쉽습니다
- **데이터 효율성**: 데모 50개만으로도 높은 성공률을 달성하는 경우가 많습니다

### 아키텍처

ACT는 세 가지 주요 구성 요소를 갖춘 transformer 기반 아키텍처를 사용합니다:

1. **비전 백본**: ResNet-18이 여러 카메라 관점의 이미지를 처리
2. **Transformer Encoder**: 카메라 특징, 관절 위치, 학습된 잠재 변수에서 정보를 종합
3. **Transformer Decoder**: cross-attention을 사용하여 일관된 동작 시퀀스를 생성

정책은 다음을 입력으로 받습니다:

- 여러 개의 RGB 이미지 (예: 손목 카메라, 전면/상단 카메라에서 가져온 것)
- 현재 로봇 관절 위치
- 잠재 스타일 변수 `z`(학습 중에 학습되며, 추론 중에 0으로 설정됨)

`k`개의 미래 동작 시퀀스 청크를 출력합니다.

## 설치 요구 사항

1. LeRobot은 [설치 가이드](./installation)를 참고하여 설치하세요.
2. ACT는 기본 LeRobot 설치에 포함되어 있어 추가적인 의존성이 필요하지 않습니다!

## ACT 학습

ACT는 표준 LeRobot 학습 파이프라인과 완벽하게 호환됩니다. 데이터셋에서 ACT를 학습하는 완전한 예제는 다음과 같습니다:

```bash
lerobot-train \
  --dataset.repo_id=${HF_USER}/your_dataset \
  --policy.type=act \
  --output_dir=outputs/train/act_your_dataset \
  --job_name=act_your_dataset \
  --policy.device=cuda \
  --trackio.enable=true \
  --policy.repo_id=${HF_USER}/act_policy
```

### 학습 팁

1. **기본값으로 시작**: ACT의 기본 하이퍼파라미터는 대부분의 작업에서 잘 작동합니다
2. **학습 시간**: 단일 GPU에서 100k 학습 스텝을 수행하는 데 몇 시간이 걸릴 것으로 예상됩니다
3. **배치 크기**: 배치 크기 8로 시작하여 GPU 메모리에 따라 조정하세요

### Google Colab을 사용하여 학습

로컬 컴퓨터에 고성능 GPU가 없다면 [ACT 학습 노트북](./notebooks#training-act)을 따라 Google Colab을 활용하여 모델을 학습할 수 있습니다.

## ACT 평가

학습이 완료되면 `lerobot-rollout`를 사용하여 로봇에서 ACT 정책을 평가할 수 있습니다. 아래 명령어는 아무것도 기록하지 않고 정책을 60초 동안 실행합니다 (ACT의 경우 `--task`는 생략할 수 있습니다). 평가 에피소드를 기록하는 전략에 대해서는 [정책 배포](./inference)를 참고하세요.

```bash
lerobot-rollout \
  --strategy.type=base \
  --policy.path=${HF_USER}/act_policy \
  --robot.type=so101_follower \
  --robot.port=/dev/ttyACM0 \
  --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \
  --display_data=true \
  --task="Your task description" \
  --duration=60
```

