10 분 소요

0. Introduction

Paper link

Official repository

Project page

Model checkpoint

한 줄 요약: H3-World는 기존 영상 생성 모델의 언어 이해를 제어 인터페이스로 재사용하되, 행동 문장을 시간별 video latent에 연결하고 directed attention mask로 정보가 잘못된 시점에 직접 전달되는 경로를 제한한다.

영상 생성 모델에 “앞으로 걸어라”라는 문장을 넣는 것과, 사용자가 지정한 시점에만 앞으로 움직이게 하는 것은 다른 문제다. 전자는 장면 전체의 의미를 맞추는 조건 생성에 가깝다. 후자는 시간에 따라 바뀌는 행동을 정확한 구간에 연결해야 하는 제어 문제다.

H3-World의 흥미로운 지점은 제어를 위해 기존 언어 조건 경로를 버리지 않는다는 것이다. Keyboard action을 언어로 바꾸고, 이미 언어를 이해하는 MiniMax-H3에 전달한다. 대신 문장이 어느 video latent에 영향을 주는지는 attention routing으로 구조적으로 제한한다. 언어의 의미와 시간적 주소를 분리해서 다루는 셈이다. S1, S2

이 초안은 저자 초록과 공식 README, 행동 문장 생성 코드, attention patch, 학습 스크립트를 대조한 코드 중심 리뷰다. arXiv v1 PDF 전문은 직접 확보하지 못했다. 따라서 현재 공개 구현의 세부사항을 v1 본문의 모든 설정과 동일하다고 가정하지 않으며, 정량 평가표를 임의로 보충하지 않는다.

1. Problem Setting

1-1. 조건부 생성에서 시간별 제어로

초기 프레임을 $I_0$, 시간별 행동을 $a_{1:T}$, 생성할 영상을 $V_{1:T}$라고 하면, 목표는 다음과 같은 조건부 생성을 구현하는 것이다. 아래 표기는 문제를 설명하기 위한 것이며 논문의 손실함수를 전사한 것은 아니다.

$$ p(V_{1:T} \mid I_0, a_{1:T}, c) $$

여기서 $c$는 장면과 주체를 설명하는 정적인 문맥이다. H3-World에서는 행동도 언어 조건으로 바꾸지만, $c$와 행동 문장을 같은 종류의 전역 prompt로 취급하지 않는다. 장면 설명은 여러 시점에서 공유할 수 있지만, 특정 시점의 행동은 그 시점에 연결되어야 하기 때문이다.

한 prompt에 “처음에는 앞으로, 이후에는 오른쪽으로”라고 적는 것만으로는 각 문장이 어느 latent 구간에 연결되는지 강제하기 어렵다. 언어적 시간 표현을 이해하는 능력과 생성 과정에서 그 표현을 정확한 위치에 적용하는 능력은 분리해서 평가해야 한다.

1-2. 제어 신호가 우회해서 새는 문제

행동 문장을 해당 시점의 영상 token에만 직접 연결해도 충분하지 않을 수 있다. 다른 text token이나 다른 행동 문장이 그 정보를 먼저 읽고, 이후 다른 video latent에 전달할 수 있기 때문이다.

공개 patch는 이 우회 경로까지 고려한 directed mask를 구현한다. 따라서 핵심은 단순히 token을 추가하는 것이 아니라, 추가한 행동 token의 정보를 누가 읽을 수 있는지 제한하는 데 있다. S4

이것은 모든 시간 간 상호작용을 제거하자는 접근이 아니다. 영상의 연속성을 위해 video token 사이의 정보 교환은 남겨 두면서, 행동 정보가 영상에 처음 들어가는 위치를 제한한다.

2. Core Idea

2-1. 언어 의미는 재사용하고 시간 대응은 명시한다

공식 설명에 따르면 H3-World는 33B MiniMax-H3 backbone에 65.6M개의 LoRA 파라미터를 학습한다. 전체 backbone 대비 약 0.199%다. 기존 언어 조건 경로에 시간별 행동 문장을 넣고, 그 문장을 대응하는 video latent에 묶는 방식이다. S2

이 구조의 핵심은 세 부분으로 나눌 수 있다. 첫째, 행동을 모델이 이미 처리할 수 있는 언어 표현으로 변환한다. 둘째, 프레임 수준의 행동 기록을 latent 시간축에 맞춘다. 셋째, attention mask로 행동 정보의 출구를 제한한다.

각 부분의 역할이 다르다. 좋은 문장만 만들어도 시간 정렬이 틀리면 제어가 어긋난다. 정렬만 맞춰도 문장이 다른 경로로 확산되면 구간별 행동이 섞일 수 있다. LoRA는 이 조건 체계에 맞춰 기존 생성 능력을 조정한다.

2-2. 학습 파라미터가 적다는 것의 정확한 의미

LoRA 비율이 작다는 것은 새로 학습하는 파라미터 수가 작다는 뜻이다. Backbone의 forward가 사라진다는 의미도, 33B 모델을 적은 GPU 메모리로 항상 실행할 수 있다는 의미도 아니다.

이 구분은 특히 world model에서 중요하다. 영상의 해상도, 프레임 수, denoising step, attention 구현은 여전히 계산 비용에 영향을 준다. H3-World의 강점은 큰 생성 모델을 처음부터 다시 학습하지 않고 제어 인터페이스를 적응시키는 데 있으며, 여기서 곧바로 실시간성을 결론 내릴 수는 없다.

3. Architecture / Method

3-1. 전체 흐름

단계 입력 처리 및 출력
장면 조건 초기 프레임과 정적 장면 설명 생성할 주체와 장면의 기준을 제공한다.
행동 변환 키 상태와 제어 정보 주체 이동과 카메라 동작을 담은 짧은 문장을 만든다.
시간 정렬 프레임별 행동 기록 Video latent의 시간 구간별로 행동을 대응시킨다.
Directed routing 행동 token과 video token의 구간 정보 각 행동 정보가 대응 latent를 통해 영상에 들어가게 한다.
LoRA 적응 기존 MiniMax-H3와 정렬된 조건 조건에 반응하는 생성 경로를 학습한다.

이 표는 공식 README공개 구현을 바탕으로 역할을 나눈 것이다. 별도의 행동 encoder가 새 의미 체계를 처음부터 학습하는 구조로 설명하지 않는 것이 중요하다.

3-2. 행동 문장은 생성형 모델이 아니라 규칙으로 만든다

action_script.py의 실제 annotation 경로는 규칙 기반이다. 현재 공개 구현은 원래의 키 상태에 빠른 pan을 표현하는 F bit를 더한 9-bit 표현을 사용한다. 이 표현에서 주체의 이동과 카메라의 움직임을 결정적으로 문장으로 변환한다. 매 구간마다 VLM을 호출해 행동 문장을 생성하는 방식이 아니다. S3

문장의 형태도 고정되어 있다. 주체가 어떻게 움직이는지와 카메라가 어떻게 움직이는지를 두 부분으로 나눈다. 이 구조는 임의의 자연어 표현을 늘리는 것보다 동일한 행동을 동일한 조건으로 대응시키기 쉽다.

중요한 구현상의 차이가 하나 있다. 학습 데이터에서 F bit는 COLMAP으로 측정한 pan rate를 이용해 구성하지만, 추론에서는 사용자가 직접 지정한다. 최종 annotation 함수는 같은 9-bit 입력에 대해 같은 문장을 만드는 공통 경로를 사용한다. 따라서 학습 중 측정된 움직임과 추론 중 요청하는 움직임의 의미를 일치시키는 것이 재현의 핵심이다. S3

3-3. 반대 방향 키와 불균일한 시간 구간 처리

시간 구간 안에서 키 상태를 pooling하면 서로 반대인 키가 동시에 켜진 것처럼 보일 수 있다. 예를 들어 한 구간의 앞부분에는 전진, 뒷부분에는 후진이 기록되었는데 max pooling을 적용하면 둘 다 활성화된다. 공개 구현은 이런 조합을 그대로 모순된 행동 문장으로 만들지 않고, 서로 배타적인 키 쌍을 정리한다. S3

카메라 동작의 속도도 단순한 구간 합으로 판단하지 않는다. 코드에서 다루는 latent 구간의 프레임 수가 동일하지 않기 때문에, 합이 작다는 이유만으로 카메라가 느려졌다고 판단하면 짧은 구간에 체계적인 오류가 생긴다. 공개 함수는 프레임 수로 나눈 rate를 사용하고, 좁은 구간의 threshold 판단에는 이웃 구간의 정보를 함께 사용한다. S3

이 처리는 자잘한 전처리처럼 보이지만, 제어 label의 의미를 정하는 부분이다. 생성 모델이 문장을 잘 이해해도 label 자체가 시간축을 잘못 반영하면 학습 목표가 어긋난다. 따라서 데이터 전처리를 아키텍처와 별개의 부수 작업으로 보면 안 된다.

3-4. Directed attention mask가 허용하는 경로

공개 patch의 실제 mask 조건을 읽으면, 행동 annotation을 key로 사용할 수 있는 query는 크게 두 종류다. 같은 annotation 내부의 token과, 그 annotation에 대응하는 video latent다. 다른 annotation, 정적인 text, 초기 프레임 조건, audio 경로가 해당 행동 정보를 직접 읽는 경로는 차단한다. S4

반대 방향도 일부 제한한다. 행동 annotation이 다른 시간의 video latent를 읽는 경로는 막는다. 반면 정적 조건이나 자기 시점의 영상에서 장면 정보를 받아오는 경로는 유지할 수 있다.

이 연결 관계를 설명하기 위한 표기는 다음과 같다. $A_k$는 $k$번째 행동 annotation, $V_k$는 대응하는 video latent를 뜻한다.

$$ A_k \rightarrow V_k \rightarrow V_j $$

의도한 것은 다른 시점 $j$로 행동 정보가 전달되더라도 먼저 대응 latent $V_k$를 거치게 만드는 것이다. 행동이 다른 text 경로를 통해 곧바로 엉뚱한 시점에 들어가는 우회를 줄인다.

여기서 “행동 정보가 다른 시간에 절대 영향을 주지 않는다”고 쓰면 틀린 해석이다. Video 간 attention은 유지되므로, 현재 행동의 결과가 다른 시점의 영상에 영향을 주는 것은 가능하다. 시간별 주입 위치의 제약과 전체 영상의 인과성 보장은 같은 것이 아니다.

3-5. Padding과 compilation도 mask 의미에 영향을 준다

공개 patch는 packed sequence의 각 구간에 맞춰 mask를 만들고, padding row가 유효한 softmax에 참여하지 않도록 처리한다. 또한 padding row가 아무 key도 볼 수 없는 상태가 되지 않도록 자기 자신을 보는 경로를 남긴다. S4

동적으로 만든 mask가 compilation 및 cache와 잘못 상호작용하면, 코드가 실행되어도 기대한 연결 관계가 적용되지 않을 수 있다. 공개 구현은 mask에 쓰는 buffer를 재사용하고 내용을 갱신하는 처리를 포함한다. 이것을 모든 환경에서 같은 버그가 발생한다는 일반론으로 읽을 필요는 없지만, 재현에서는 결과 영상만 보지 말고 mask 자체를 검사해야 한다는 교훈은 분명하다.

특히 행동 순서를 바꾸었을 때 대응 구간의 연결이 실제로 바뀌는지, 서로 다른 sample이 첫 sample의 mask를 재사용하지 않는지, annotation을 제거했을 때 기본 모델 경로가 복원되는지를 단위 테스트로 확인할 가치가 있다. 마지막 테스트 목록은 구현을 바탕으로 한 검토 제안이다.

4. Training / Data / Recipe

4-1. 8,000개 clip과 학습 split을 구분한다

공식 README는 ABot-World-Explorer-500h에서 8,000개의 gameplay clip을 구성하고, 공개 workflow에서 7,872개를 학습용, 128개를 test split으로 나눈다. 따라서 “8,000개를 전부 학습했다”고 간단히 적는 것보다 전체 수집량과 실제 학습 split을 구분하는 것이 정확하다. S2

공개 준비 과정은 clip 구성, split 생성, video/audio/text latent cache 생성, 행동 text 주입, LoRA 학습 순서다. Cache가 어느 원본 sample에 대응하는지 보존하는 일도 중요하다. 분산 처리에서 rank별 index와 원본 row id가 어긋나면 영상과 행동을 잘못 짝지을 수 있기 때문이다. 관련 보완이 공개 patch에 포함되어 있다. S4

4-2. 공개 학습 스크립트의 설정

아래는 현재 공개된 code/train.sh의 설정이다. 이를 v1 논문 본문의 전체 hyperparameter 표와 동일하다고 가정하지 않는다. S5

항목 공개 설정
학습 대상 MiniMax-H3 DiT의 LoRA
LoRA rank 32
대상 projection qkv_proj, out_proj
Learning rate 1e-4
Epochs 20
해상도 832 x 480
프레임 수 124
기본 GPU 수 4
Checkpoint 저장 주기 2,000 steps
공개 checkpoint step-10000.safetensors

20 epochs라는 스크립트 설정과 공개 checkpoint의 10,000 steps를 같은 단위의 정보로 섞으면 안 된다. 실제 step 수의 대응에는 batch 구성과 저장 및 선택 기준이 필요하다.

4-3. 재현에서 먼저 고정할 것

공식 README는 원래의 FL2VA checkpoint layout과 지정된 DiffSynth revision, H3-World attention patch를 사용하도록 안내한다. 단순히 같은 모델 가중치를 받았다는 이유만으로 동일한 실험이 되는 것은 아니다. Mask를 적용하는 framework 경로가 달라지면 제어 구조가 바뀔 수 있다. S2, S5

이 작업을 재현한다면 모델 revision, patch 내용, 행동 변환 함수, latent 시간 구간 정의를 함께 고정하는 편이 좋다. 가중치 하나의 checksum만 기록해서는 데이터 조건과 attention 연결의 차이를 설명하기 어렵다.

또한 추론 예제의 124프레임, 약 5.2초 길이는 생성된 영상의 재생 길이다. 5.2초 만에 생성된다는 측정값이 아니다. 50 denoising steps를 사용하는 공개 예제를 곧바로 실시간 스트리밍 제어의 증거로 쓰지 않는다. S2

5. Evaluation

5-1. 확인 가능한 결과와 확인하지 못한 결과

저자 초록은 적은 수의 gameplay clip과 LoRA 적응으로 행동 제어를 학습하고, 기존 생성 품질 및 보지 못한 장면에 대한 일반화를 유지한다고 보고한다. 공식 저장소는 실행 가능한 checkpoint와 held-out test frame을 제공한다. S1, S2

하지만 공개 README의 예제와 정성적 주장은 전체 정량 평가를 대신하지 않는다. 이번 초안에서는 논문의 세부 제어 정확도, 시각 품질 점수, 비교 방법의 수치와 평가자 구성을 직접 대조하지 못했다. 확인되지 않은 수치를 채워 넣은 성능표는 만들지 않았다.

그 대신 무엇이 실제로 검증되어야 하는지 구조별로 나눠 보는 것이 유용하다.

5-2. 제어 성공을 한 점수로 합치지 않는다

다음은 이 구현을 평가하기 위한 분석적 구분이며, 저자가 사용한 benchmark 명세를 그대로 옮긴 것은 아니다.

첫째는 행동 의미의 일치다. 전진, 후진, 좌우 이동, 카메라 회전이 요청한 방향과 일치하는지 본다. 둘째는 시간의 일치다. 행동을 바꾸었을 때 영상에서 변화가 나타나는 위치가 대응 구간과 일치하는지 본다. 셋째는 시각적 일관성이다. 제어에 반응하더라도 주체나 장면이 무너진다면 좋은 제어라고 보기 어렵다.

이 세 축은 서로를 대신하지 않는다. 계속 앞으로만 움직이는 영상은 이동 자체는 자연스러워도 행동 전환을 따르지 못할 수 있다. 반대로 행동 방향은 맞아도 카메라가 급격히 바뀌어 장면이 일관되지 않을 수 있다.

5-3. Mask의 효과는 우회 경로 ablation으로 읽어야 한다

제안 구조의 효과를 분리하려면 행동 text 추가만 한 조건, 직접적인 시간 대응만 제한한 조건, 우회 경로까지 제한한 directed mask 조건을 비교할 가치가 있다. 같은 초기 프레임과 행동 sequence, 같은 seed 및 sampling 조건을 유지해야 한다.

특히 행동 전환 지점 전후의 반응을 비교하면 전체 영상 평균 점수가 가리는 오류를 볼 수 있다. 다만 이것은 후속 검증 제안이다. 해당 ablation이 원문에서 어떤 이름과 수치로 보고되었는지는 PDF에서 추가 확인해야 한다.

5-4. 일반화의 범위를 좁게 정의할 필요가 있다

새 초기 프레임에서 영상을 생성할 수 있다는 것과, 새로운 게임의 동역학이나 새로운 embodiment를 정확히 모델링한다는 것은 다르다. 공개된 gameplay 기반 적응 결과를 모든 물리 환경의 제어로 확대하면 주장이 과도해진다.

일반화는 장면 외관, 주체의 모양, 행동 조합, 시간 길이, 환경 동역학으로 나눠 평가하는 편이 명확하다. 어떤 축의 변화에 대해 결과를 보였는지 원문 실험과 함께 확인해야 한다.

6. Limitations

언어 제어 인터페이스는 자유로운 자연어 명령 전체와 동일하지 않다. 현재 공개 구현은 정해진 행동 표현을 규칙으로 구성한다. 따라서 장문의 임의 지시, 미세한 연속 제어량, 새로운 행동 의미를 모두 학습했다고 말할 수 없다. S3

또한 directed mask는 행동 정보의 주입 경로를 제한하지만, 전체 video generator를 인과적인 물리 simulator로 바꾸었다는 증거는 아니다. 영상의 자연스러움과 환경 transition의 정확성은 별도의 검증 대상이다.

학습 가능한 파라미터 비율이 작아도 큰 backbone과 영상 생성 비용은 남는다. LoRA의 경량성과 end-to-end inference 지연을 분리해야 한다.

마지막으로 현재 코드의 전처리와 routing 세부사항을 v1 논문 결과에 소급해 적용하지 않아야 한다. 이 초안의 코드 분석은 2026-09-21에 확인한 공개 파일을 기준으로 하며, 논문 v1과 release revision 사이의 대응은 추가 확인이 필요하다.

7. My Take

7-1. 의미와 주소를 분리하는 조건 설계

이 작업의 재사용 가능성은 “행동을 영어 문장으로 바꾼다”는 표면적인 선택보다, 의미 해석과 시간적 주소를 분리한다는 데 있다. 언어 조건 경로는 무엇을 할지 표현하고, attention routing은 그 정보가 어디에 들어갈지 정한다.

기존 foundation model의 강한 의미 표현을 재사용하면서 새 제어 구조를 붙이는 방식은 매력적이다. 다만 의미를 재사용했다는 이유만으로 정렬을 학습에 전부 맡겨서는 안 된다. H3-World는 바로 이 부분에 구조적인 제약을 둔다.

7-2. Mask는 생성 품질을 위한 학습 조건이자 시스템 계약이다

행동 token의 출구를 제한하는 mask는 모델 내부 구현이면서 데이터와 모델 사이의 계약이다. Annotation의 시간 index가 틀리거나 cache가 다른 clip과 연결되면, 모델은 잘못된 계약을 학습한다.

이 관점에서는 action serialization, temporal pooling, padding, compilation cache가 모두 method의 일부다. 논문의 요약만 읽으면 빠뜨리기 쉬운 부분이지만, 재현 실패를 설명하는 데에는 핵심일 수 있다.

7-3. 후속 확인 순서

실제 실험을 준비한다면 행동 변환 코드mask patch를 먼저 함께 읽고, 학습 스크립트와 공개 checkpoint를 연결하는 편이 좋다. 이후 원문 평가를 통해 어떤 제어 및 일반화 범위가 입증되었는지 확인해야 한다. 구현이 존재한다는 사실과 주장 전체가 검증되었다는 사실을 구분하는 순서다.

8. Summary

  • H3-World는 기존 영상 모델의 언어 조건 경로를 행동 제어에 재사용한다.
  • 규칙 기반 행동 문장과 latent 시간축의 정렬이 제어 label의 의미를 결정한다.
  • Directed mask는 행동 정보가 대응 video latent를 통해 들어가도록 우회 경로를 제한한다.
  • 공개 학습은 7,872개 clip과 rank-32 LoRA를 사용하며, 큰 backbone의 계산 비용은 남는다.
  • 행동 방향, 반응 시점, 시각 품질, 일반화 범위와 실행 지연은 각각 검증해야 한다.

댓글남기기