Skip to content

필사 모드: Diffusion Policy와 π0 — 부드러운 로봇 행동의 비밀

한국어
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.
원문 렌더가 준비되기 전까지 텍스트 가이드로 표시합니다.

들어가며: 토큰의 끝에서 시작하는 이야기

앞선 글에서 VLA 모델이 로봇 행동을 이산 토큰으로 바꾸어 언어 모델처럼 다음 토큰을 예측한다고 했습니다. 이 방식은 우아하지만 두 가지 부담을 안고 있습니다. 첫째, 연속값을 구간으로 잘라 토큰화하면 양자화 오차가 생깁니다. 둘째, 토큰을 한 개씩 자기회귀로 뽑으면 추론이 느려 빠른 제어가 어렵습니다.

로봇의 손이 컵을 향해 부드럽게 다가가 정확히 쥐려면, 행동이 매끄럽고 일관되며 충분히 빠르게 갱신되어야 합니다. 그래서 행동을 "다음 토큰"이 아니라 "연속적인 궤적 자체"로 생성하려는 흐름이 등장합니다. 이 글에서는 그 두 대표 주자인 Diffusion Policy와 π0(파이-제로)를 살펴봅니다.

핵심 메시지는 이렇습니다. 행동을 분류(어떤 토큰인가) 문제가 아니라 생성(어떤 연속 궤적인가) 문제로 보면, 다중 모드(여러 가지 올바른 방법)와 부드러움을 자연스럽게 다룰 수 있다는 것입니다.

Diffusion Policy: 행동을 디노이징으로 생성하다

핵심 직관

Diffusion Policy는 이미지 생성에서 큰 성공을 거둔 확산(diffusion) 모델의 아이디어를 행동 생성에 가져옵니다. 이미지 확산 모델은 순수한 노이즈에서 출발해 조금씩 노이즈를 제거(denoising)하여 그럴듯한 이미지를 만들어냅니다. Diffusion Policy는 같은 절차를 "이미지" 대신 "미래 행동 시퀀스"에 적용합니다.

┌──────────────────────────────────────────────────────────┐

│ Diffusion Policy의 행동 생성 절차 │

└──────────────────────────────────────────────────────────┘

관찰(이미지·상태) o_t ──┐ (조건)

순수 노이즈 ▼

A_K ──▶ A_{K-1} ──▶ ... ──▶ A_1 ──▶ A_0

(랜덤) 디노이징 디노이징 깨끗한 행동 시퀀스

스텝 스텝

(o_t로 조건화된 신경망이 노이즈를 예측)

A_0 = [a_t, a_{t+1}, ..., a_{t+H-1}] ← 미래 H스텝 행동(청크)

여기서 중요한 점이 두 가지입니다.

- **조건부 생성**: 디노이징 신경망은 현재 관찰 o_t를 조건으로 받아, "이 상황에서 그럴듯한 행동 궤적"으로 노이즈를 정제합니다.

- **행동 청크(action chunk)**: 한 스텝의 행동이 아니라 미래 H스텝의 행동 시퀀스를 한꺼번에 생성합니다. 이렇게 하면 시간적으로 일관된 매끄러운 궤적을 얻고, 매 스텝 재계획하는 부담을 줄일 수 있습니다.

왜 확산이 유리한가: 다중 모드성

모방 학습의 고질적 난점은 다중 모드성(multimodality)입니다. 같은 상황에서 사람은 컵을 왼쪽으로 돌아 집을 수도, 오른쪽으로 돌아 집을 수도 있습니다. 두 시연 모두 올바릅니다. 단순 회귀(평균을 출력)는 두 모드의 평균인 "가운데로 직진"이라는 잘못된 행동을 내놓기 쉽습니다.

다중 모드 상황에서의 출력 비교

가능한 올바른 궤적: ╲ ╱

╲ (왼쪽) ╱ (오른쪽)

╲ ╱

●─────● 목표

회귀(평균) 출력: ↓ (가운데로 직진 → 충돌/실패)

확산 출력: 분포에서 샘플 → 왼쪽 또는 오른쪽 중 하나를

일관되게 따라감 (모드를 평균내지 않음)

확산 모델은 행동의 확률 분포를 학습하고 거기서 샘플링하므로, 여러 모드 중 하나를 일관되게 선택할 수 있습니다. 이것이 Diffusion Policy가 정밀 매니퓰레이션에서 안정적으로 동작하는 핵심 이유입니다.

학습 목표

학습은 보통 노이즈 예측 형태로 이루어집니다. 깨끗한 행동 시퀀스에 알려진 노이즈를 더한 뒤, 신경망이 그 노이즈를 맞히도록 훈련합니다.

개념적 의사코드: Diffusion Policy 학습 한 스텝

(실제 구현은 확산 스케줄러·U-Net/Transformer 백본을 사용)

def training_step(obs, action_chunk):

action_chunk: [H, action_dim] 미래 H스텝의 깨끗한 행동

k = sample_diffusion_step() # 디노이징 단계 k 무작위 선택

noise = gaussian_like(action_chunk) # 표준정규 노이즈

noisy = add_noise(action_chunk, noise, k) # 스케줄에 따라 노이즈 주입

신경망이 obs와 단계 k로 조건화되어 노이즈를 예측

pred_noise = denoiser(noisy, k, cond=obs)

loss = mse(pred_noise, noise) # 예측 노이즈와 실제 노이즈 차이

return loss

추론 시에는 순수 노이즈에서 시작해 위 신경망으로 여러 번 디노이징하여 행동 청크를 얻습니다. 디노이징 스텝 수는 품질과 속도의 균형을 정하며, 적은 스텝으로 빠르게 만드는 기법(예: DDIM류 샘플러)도 함께 쓰입니다.

제어 루프와 행동 청크

Diffusion Policy는 보통 다음과 같이 운영됩니다.

┌──────────────────────────────────────────────────────┐

│ 행동 청크 기반 제어 루프(개략) │

└──────────────────────────────────────────────────────┘

1) 관찰 o_t 수집

2) 확산으로 미래 H스텝 행동 청크 A_0 생성

3) 그중 앞쪽 일부(예: 처음 몇 스텝)를 실제 실행

4) 일정 주기마다 다시 관찰하고 (1)로 돌아가 재계획

receding horizon: 길게 계획하되 짧게 실행하고 자주 갱신

→ 일관성(긴 계획)과 반응성(잦은 갱신)의 균형

청크를 길게 만들수록 매끄럽지만 환경 변화에 둔감해지고, 짧게 자주 갱신할수록 반응적이지만 계획의 일관성이 줄어듭니다. 이 절충은 작업 성격에 맞춰 조정합니다.

π0: flow-matching으로 고주파 연속 액션

배경과 위치

π0(Physical Intelligence)는 VLA의 일반화 능력과 연속 행동 생성의 매끄러움을 결합하려는 모델입니다. 큰 그림에서 보면, 웹에서 학습한 비전-언어 백본(의미 이해)에 연속 행동을 빠르게 생성하는 "액션 전문가(action expert)"를 결합한 구조입니다. 행동은 이산 토큰이 아니라 연속값으로, 그것도 고주파로 생성하는 것을 목표로 합니다.

┌────────────────────────────────────────────────────────────┐

│ π0 구조 (개략적 이해) │

└────────────────────────────────────────────────────────────┘

이미지·언어 지시

┌───────────────────┐

│ VLM 백본 │ ← 웹 사전학습된 의미 이해

│ (비전-언어 표현) │

└─────────┬─────────┘

│ 조건(컨텍스트) 표현

┌───────────────────┐

│ 액션 전문가 │ ← flow-matching으로 연속 행동 생성

│ (action expert) │ 고주파 연속 청크 출력

└─────────┬─────────┘

연속 행동 청크 a_{t..t+H} ──▶ 고주파 제어로 실행

flow-matching이란

flow-matching은 확산과 친척 관계인 생성 기법입니다. 직관적으로, 단순한 분포(예: 가우시안 노이즈)에서 목표 분포(올바른 행동 궤적)로 "흘러가는" 연속적인 벡터장(velocity field)을 학습합니다. 추론 시에는 노이즈 샘플을 이 벡터장을 따라 적분(통합)하여 목표 분포의 샘플로 옮깁니다.

flow-matching의 직관

노이즈 x_0 ──── 학습된 속도장 v(x, τ)를 따라 적분 ────▶ x_1

(간단한 분포) τ: 0 → 1 (행동 분포)

v(x, τ): 시간 τ에서 점 x가 어디로 흘러가야 하는지(속도)를 알려줌

ODE 적분: dx/dτ = v(x, τ) 를 τ=0에서 1까지 풀면 샘플 완성

확산이 노이즈를 단계적으로 제거하는 마르코프 사슬이라면, flow-matching은 연속 시간의 ODE 흐름으로 같은 일을 합니다. 적절히 설계하면 적은 적분 스텝으로도 매끄러운 연속 출력을 빠르게 생성할 수 있어, 고주파 제어에 유리합니다.

고주파 제어와 행동 전문가

π0가 강조하는 지점은 "고주파 연속 액션"입니다. 정밀하고 빠른 매니퓰레이션(예: 옷 개기, 물건을 부드럽게 끼우기)에는 초당 수십 회 수준의 부드러운 행동 갱신이 도움이 됩니다. 이산 토큰을 한 개씩 자기회귀로 뽑는 방식으로는 이런 주파수를 내기 어렵습니다. flow-matching 기반 액션 전문가는 연속 행동 청크를 한 번에 생성하므로, VLM 백본의 의미 이해를 유지하면서도 빠른 제어 루프를 돌릴 수 있습니다.

제어 주파수 직관 (개념적)

이산 토큰 자기회귀: 토큰 → 토큰 → 토큰 ... (한 차원씩, 느림)

빠른 반응 어려움

연속 청크 생성: [a_t, a_{t+1}, ..., a_{t+H}] 한 번에

매끄럽고 빠른 갱신 가능

※ 정확한 제어 주파수는 하드웨어·구현·작업에 따라 다를 수 있습니다.

이산 토큰 vs 연속 액션 비교

| 항목 | 이산 액션 토큰 (RT-2, OpenVLA) | 연속 액션 생성 (Diffusion Policy, π0) |

| --- | --- | --- |

| 행동 표현 | 양자화된 정수 토큰 | 연속값 궤적/청크 |

| 생성 방식 | 자기회귀 다음 토큰 예측 | 디노이징 / flow-matching |

| 다중 모드 | 분포를 토큰 확률로 표현 | 분포에서 직접 샘플 |

| 부드러움 | 양자화 오차 가능 | 매끄러운 연속 출력에 유리 |

| 제어 주파수 | 토큰 순차 생성으로 느려질 수 있음 | 청크 일괄 생성으로 고주파 유리 |

| 언어 모델 재사용 | 어휘에 통합해 그대로 재사용 | 별도 액션 헤드/전문가 설계 |

| 대표 강점 | 단순·의미적 일반화 | 정밀·부드러움·반응성 |

표의 세부는 구현과 버전에 따라 다를 수 있습니다. 두 접근은 배타적이지 않으며, VLM의 의미 이해 위에 연속 행동 생성을 얹는 절충(π0의 방향)이 활발히 탐구되고 있습니다.

더 깊이: 노이즈 스케줄과 샘플링

노이즈 스케줄이란

확산 모델에서 "디노이징 스텝"은 막연한 단계가 아니라, 노이즈를 얼마나 더하고 빼는지 정하는 스케줄에 따라 정밀하게 정의됩니다. 스케줄은 각 단계 k에서 신호와 노이즈의 비율을 정합니다. 초기 단계(k가 큼)는 거의 순수한 노이즈이고, 끝 단계(k가 0에 가까움)는 거의 깨끗한 행동입니다.

노이즈 스케줄의 직관

k: K(노이즈 많음) ───────────────▶ 0(노이즈 없음)

│ │

신호 비율: 낮음 ──────────────────▶ 높음

노이즈 비율: 높음 ──────────────────▶ 낮음

각 디노이징 스텝에서 신경망은 "이 단계의 노이즈"를 예측해 제거

→ 여러 스텝을 거쳐 순수 노이즈가 깨끗한 행동으로 수렴

스케줄의 모양(선형, 코사인 등)은 학습 안정성과 샘플 품질에 영향을 줍니다. 행동 생성에서는 차원이 작고(7차원 정도) 시퀀스가 짧아, 이미지 생성보다 적은 스텝으로도 충분한 경우가 많습니다.

추론 스텝과 속도-품질 절충

추론 시 디노이징 스텝 수는 속도와 품질을 가르는 핵심 손잡이입니다.

스텝 수에 따른 절충 (개념)

많은 스텝 (예: 수십~수백)

+ 더 정확한 행동 분포

- 추론 느림 → 제어 주파수 낮아짐

적은 스텝 (예: 한 자리수)

+ 빠른 추론 → 고주파 제어 가능

- 분포 근사가 거칠어질 수 있음

DDIM류 결정론적 샘플러나 증류(distillation)로

적은 스텝에서도 품질을 유지하는 기법이 활발히 연구됨

로봇 제어에서는 빠른 갱신이 중요하므로, 적은 스텝으로도 좋은 행동을 내는 샘플러 선택이 실용성을 좌우합니다. 이 지점이 바로 flow-matching이 강조되는 이유와 닿아 있습니다. flow-matching은 적절히 설계하면 적은 적분 스텝으로 매끄러운 연속 출력을 낼 수 있어, 고주파 제어에 유리합니다.

확산과 flow-matching의 관계

확산과 flow-matching은 깊은 수준에서 연결되어 있습니다. 둘 다 단순한 분포에서 복잡한 목표 분포로의 변환을 학습합니다. 확산은 이산적인 디노이징 사슬로, flow-matching은 연속 시간 ODE의 속도장으로 같은 목표에 접근합니다.

두 생성 패러다임의 대응 (개념)

확산(DDPM): 이산 마르코프 사슬, 단계별 노이즈 제거

결정론 샘플(DDIM): 확산을 ODE로 보는 결정론적 적분

flow-matching: 처음부터 ODE 속도장을 직접 학습

공통점: 노이즈 → 목표 분포로 "흐름"을 학습

차이: 사슬 길이·결정론성·학습 목표의 형식

실무적으로는 "어떤 방식이 적은 스텝에서 부드럽고 정확한 행동을 빠르게 내는가"가 선택 기준이 됩니다. Diffusion Policy는 정밀 매니퓰레이션에서 검증된 안정성을, π0 계열은 고주파 연속 제어와 VLM 결합을 강점으로 내세웁니다.

실무 관점: 언제 무엇을 쓰나

작업 성격에 따른 선택

의사결정 가이드 (개념, 절대 규칙 아님)

┌─ 정밀·다중모드 매니퓰레이션, 데이터 풍부

│ → Diffusion Policy 계열이 안정적

├─ 고주파 연속 제어 필요(빠른 손놀림, 부드러움)

│ → flow-matching 기반(π0 방향)

├─ 강한 의미적 일반화·새 지시 대응이 최우선

│ → VLM 백본 기반 VLA(이산 토큰 또는 연속 결합)

└─ 단순·반복 작업, 빠른 프로토타이핑

→ 가벼운 정책으로 시작해 필요시 확장

이 가이드는 절대적인 규칙이 아니라 출발점입니다. 실제로는 데이터 양, 하드웨어 제약, 제어 주파수 요구, 안전 요건을 함께 고려해 결정합니다.

학습 시 흔한 실수

- **데이터 다양성 부족**: 한정된 시연만 쓰면 모델이 특정 배치·조명에 과적합합니다. 다양한 초기 조건과 방해 요소를 포함해야 합니다.

- **행동 청크 길이 오설정**: 너무 길면 환경 변화에 둔감, 너무 짧으면 일관성 부족. 작업 특성에 맞춰 조정합니다.

- **관찰 동기화 오류**: 관찰과 행동의 타임스탬프가 어긋나면 인과가 깨져 학습이 무너집니다.

- **샘플러 미튜닝**: 추론 스텝 수와 샘플러를 조정하지 않으면 느리거나 거친 행동이 나옵니다.

학습-추론 체크리스트 (개념)

[ ] 시연 데이터의 초기 조건·물체·배경이 충분히 다양한가

[ ] 관찰 ↔ 행동 타임스탬프 정렬이 정확한가

[ ] 행동 청크 길이가 작업 주기와 맞는가

[ ] 추론 스텝·샘플러가 속도-품질 균형을 만족하는가

[ ] 안전 제한(속도·토크·작업공간)이 저수준에 있는가

이런 점검은 모델 구조 선택만큼이나 실제 성공률에 큰 영향을 줍니다. 연속 행동 생성의 이점은 데이터·파이프라인이 탄탄할 때 비로소 발휘됩니다.

강점과 한계

Diffusion Policy

- 강점: 다중 모드 행동을 자연스럽게 다루고, 정밀 매니퓰레이션에서 안정적입니다. 행동 청크로 시간적 일관성을 확보합니다.

- 한계: 디노이징 스텝이 많으면 추론이 느려질 수 있고(샘플러 선택으로 완화), 시연 데이터의 질·다양성에 성능이 크게 좌우됩니다.

π0 / flow-matching 계열

- 강점: VLM의 일반화와 연속 행동의 부드러움·고주파를 결합하려 합니다. 빠른 제어가 필요한 정밀 작업에 적합한 방향입니다.

- 한계: 시스템이 복잡하고 학습·튜닝 난도가 높습니다. 성능과 정확한 사양은 구현·데이터·하드웨어에 따라 달라질 수 있으므로, 보고된 수치는 환경에 따라 다르게 재현될 수 있습니다.

공통 유의점

- 실제 로봇 평가는 재현이 어렵고 환경에 민감합니다.

- 안전성(분포 밖 상황, 충돌 회피)은 여전히 핵심 과제입니다.

- 데이터 수집 비용은 모든 접근의 공통 병목입니다.

한 작업의 생애주기로 보기

추상적인 이야기를 구체화하기 위해, "테이블 위 컵을 집어 옆 접시에 올려놓기"라는 작업이 연속 행동 생성 정책에서 어떻게 흘러가는지 따라가 봅니다.

┌──────────────────────────────────────────────────────────┐

│ 컵 옮기기 작업의 제어 루프 (개념적 타임라인) │

└──────────────────────────────────────────────────────────┘

t0 관찰: 카메라로 컵·접시·손 위치 파악

t0 생성: 미래 H스텝 행동 청크 A_0 = [a_t .. a_{t+H-1}]

│ (디노이징 또는 flow-matching으로 연속 궤적)

t0~ 실행: 청크 앞부분(몇 스텝)을 로봇에 보냄

│ 손이 컵을 향해 부드럽게 접근

t1 재관찰: 컵이 약간 미끄러짐을 감지

t1 재생성: 새 관찰로 청크 갱신 → 경로 보정

... 반복: 쥐기 → 들어올리기 → 옮기기 → 내려놓기

종료: 그리퍼 열고 작업 완료 판정

여기서 연속 행동 생성의 이점이 드러납니다. 컵이 미끄러지는 예상 밖 변화가 생겨도, 정책은 다음 관찰에서 청크를 다시 만들어 부드럽게 보정합니다. 이산 토큰을 한 개씩 뽑는 방식보다 갱신이 빠르고 궤적이 매끄럽습니다.

실시간 시스템으로서의 로봇 정책

지연 예산

로봇 제어는 실시간 시스템입니다. 관찰부터 행동 실행까지의 전체 지연(latency)이 작업 안정성을 좌우합니다. 지연을 항목별로 나누면 다음과 같습니다.

지연 예산의 분해 (개념)

센서 캡처 ──▶ 전처리(이미지 리사이즈 등)

│ │

▼ ▼

모델 추론(생성) ──▶ 후처리(역변환·안전 필터)

│ │

▼ ▼

제어기 전송 ──▶ 관절 작동

총 지연 = 위 단계들의 합

→ 어느 한 단계가 느리면 전체 제어 주파수가 떨어짐

연속 행동 청크를 한 번에 생성하면, 매 스텝 새로 추론할 필요 없이 청크를 소비하는 동안 다음 청크를 준비할 수 있어 지연 부담을 분산할 수 있습니다. 이것이 고주파 제어를 가능하게 하는 실용적 비결 중 하나입니다.

비동기 추론과 청크 소비

비동기 파이프라인 (개념)

생성 스레드: [청크 A 생성] [청크 B 생성]

│ │

▼ ▼

실행 스레드: ▮▮▮▮▮▮▮▮ (A 소비) ▮▮▮▮▮▮▮▮ (B 소비)

→ A를 실행하는 동안 B를 미리 생성 → 끊김 없는 제어

※ 정확한 타이밍은 하드웨어·구현에 따라 다를 수 있습니다.

이런 비동기 구조는 무거운 생성 모델을 쓰면서도 제어 루프를 매끄럽게 유지하는 데 도움이 됩니다. 다만 생성이 너무 느리면 실행이 청크를 다 소비하고도 다음 청크를 기다리게 되어 끊김이 생기므로, 생성 속도와 청크 길이의 균형이 중요합니다.

샘플 효율과 데이터 다양성

연속 행동 생성 모델은 표현력이 크지만, 그만큼 충분한 시연이 있어야 분포를 제대로 학습합니다. 샘플 효율을 높이는 실무적 방법은 여러 가지입니다.

샘플 효율을 높이는 전략 (개념)

┌─ 사전학습 활용: VLM 백본의 의미 표현을 재사용

├─ 데이터 증강: 색상·자르기·시점 변화로 시연을 확장

├─ 다중 작업 학습: 여러 작업을 함께 학습해 전이 유도

└─ 효율적 파인튜닝: LoRA 등으로 적은 자원에 적응

→ 비싼 실제 시연의 한계를 보완하는 방향

특히 VLM 백본의 사전학습된 표현을 재사용하면, 적은 로봇 데이터로도 의미적 일반화를 유지하면서 행동을 배울 수 있습니다. 이는 앞 글에서 본 공동 파인튜닝의 직관과 일맥상통합니다. 결국 연속 행동 생성의 성공은 좋은 생성 기법뿐 아니라, 다양하고 잘 정렬된 데이터, 그리고 효율적 적응 전략의 결합에 달려 있습니다.

마치며

이산 액션 토큰화는 언어 모델의 강력함을 로봇으로 곧장 가져오는 우아한 방법이지만, 양자화와 제어 주파수라는 대가를 치릅니다. Diffusion Policy는 행동을 디노이징으로 생성해 다중 모드와 부드러움을 해결했고, π0는 flow-matching으로 연속 행동을 빠르게 만들어 VLM의 의미 이해와 결합하려 합니다.

큰 흐름은 "행동을 분류가 아니라 생성으로 다룬다"는 것입니다. 정밀하고 부드럽고 빠른 손놀림이 필요한 실세계 작업일수록 연속 행동 생성의 이점이 분명해집니다. 다음 단계는 이러한 행동 생성기를 더 큰 백본·더 다양한 데이터·더 복잡한 기종(휴머노이드)으로 확장하는 일입니다.

참고 자료

- Diffusion Policy: Visuomotor Policy Learning via Action Diffusion, arXiv: [2303.04137](https://arxiv.org/abs/2303.04137)

- π0: A Vision-Language-Action Flow Model for General Robot Control, arXiv: [2410.24164](https://arxiv.org/abs/2410.24164)

- Flow Matching for Generative Modeling, arXiv: [2210.02747](https://arxiv.org/abs/2210.02747)

- Denoising Diffusion Probabilistic Models (DDPM), arXiv: [2006.11239](https://arxiv.org/abs/2006.11239)

- Denoising Diffusion Implicit Models (DDIM), arXiv: [2010.02502](https://arxiv.org/abs/2010.02502)

- OpenVLA: An Open-Source Vision-Language-Action Model, arXiv: [2406.09246](https://arxiv.org/abs/2406.09246)

- RT-2: Vision-Language-Action Models, arXiv: [2307.15818](https://arxiv.org/abs/2307.15818)

- Physical Intelligence 블로그: [physicalintelligence.company](https://www.physicalintelligence.company/)

현재 단락 (1/212)

앞선 글에서 VLA 모델이 로봇 행동을 이산 토큰으로 바꾸어 언어 모델처럼 다음 토큰을 예측한다고 했습니다. 이 방식은 우아하지만 두 가지 부담을 안고 있습니다. 첫째, 연속값을 ...

작성 글자: 0원문 글자: 8,660작성 단락: 0/212