이렇게 큰 사이즈의 연구/구현 technical report는 꼭 novel한 개념을 제시하진 않을 수도 있지만 이전의 다른 여러 novel한 연구들을 취사선택해서 산업단에서 모델을 구현할 때 사용하면 좋은 개념들을 모아준다는 점에서 읽을 가치가 있는 것 같다.
하지만 그렇게 꼭 해석하기에는, 모든 랩실/회사에서 새로운 연구를 제시할 때 기반이 되는 연구로 본인들의 이전 연구에서 출발하는 경우가 많다. 당연히 그 연구의 장단점에 대해서 잘 알고 있기 때문일 것인데 이를 감안해야한다. 뭔가 중국연구에 이런게 특히 더 많은 기분.. 기분탓인가
Ex. 여기서도 HyperSD, RayFlow의 방법을 써서 inference steps를 낮췄다. 그럼 이게 모든 방법들 중에 가장 좋나? 그렇다고 하기엔 HyperSD, RayFlow가 애초에 같은 ByteDance에서 연구한 내용. 그걸 쓰면 좋다는걸 내부적으로 같은 연구자가 주장했거나 사용하기 익숙해서일 수 있을 것 같다.
또한 이런 산업단의 technical report의 경우에 성능 뿐만 아니라 inference/training 최적화를 적극적으로 한다는 점에서 참고할 부분들이 있는 것 같다. 여기서도 어떤 CUDA Kernel 을 직접 설계했는지 까지 적어뒀다. 그리고 그렇게 하면 얼마나 개선이 되는지도
Abstract
Diffusion modeling의 발전으로 비디오 생성도 많이 발전했지만 여전히 prompt following, 자연스러운 움직임, 비주얼 퀄리티에서 부족한 부분이 많다.
여기서 모델을 구축하는데 사용한 기술적 개선들
- 여러 곳에서 데이터를 수집하고, 자세하고 좋은 captioning 적용
- 효율적인 아키텍처 디자인과 학습 방법 제안 - multi shot generation을 지원하고 text-to, image-to를 동시에 학습한다.
공간과 시간적 레이어를 분리 with interleaved Positional Encoding → 이게 text to, image to를 한 모델로 가능하게 했다?
- 디테일한 SFT와 비디오에 최적화된 방식의 RLHF를 적용한 post-training 사용
motion naturalness, structural coherence, and visual fidelity 개선
- 시스템 레벨의 최적화와 multi-stage distillation 방법을 적용해서 10배의 inference speed-up
NFE(steps 수)를 줄였다.
41.4초만에 1080p 5초 생성.
native multi-shot narrative coherence가 잘된다는걸 약간 강조한다. - 한 장면의 영상이 아니라 장면이 바뀌면서도 자연스럽고 지속적인 영상 생성.
2. Model Design3. Data4. Model training5. Inference Optimizations6. Training insrastructure7. Result (Model performance)
2. Model Design
- VAE
- 구조
- 압축 정도
- 학습
MAGVIT를 따라, 시간축으로 causal한 convolution 구조를 적용했다(이전 프레임들의 정보만 이용해서 encoding, decoding) → 이미지와 비디오를 동일한 latent space로 보내게 된다. 다음 프레임도 보게 설계하면 latent space에서 비디오의 첫 프레임 ≠ 이미지가 되기 때문에 차이가 생김
압축은 Time=4, Height=16, Width=16
channel은 RGB 3 → 48
(Goku는 t=4, h/w=8, MovieGen은 t=h=w=8) - dim은 모르겠지만 이 압축률이 효율측면에서 더 중요하다고보면 압축률 높다.
DC-AE도 차용했네 DiT 쪽에 patchify파트를 없앴다. 압축은 VAE에서만!
L1 recon, KL loss, LPIPS perceptual loss, adversarial loss
Discriminator는 패치 단위로 잘라서 검사하게했다.
- Diffusion Transformer
- Text encoder - Decoder only LLM 사용
- MMDiT 구조이기 때문에 visual, textual token이 conact되어서 들어간다.
- Attention
- 한 프레임 안에서 spatial attention - 이 때만 textual token 사용
- 여러 프레임끼리 temporal attention. 특정 window안에서 각기 다른 프레임끼리 참고하도록 해서 연산량을 줄이면서 모든 프레임이 서로 참고할 수 있게 했다.
- MMDiT - SD3의 구조. spatial attention에서 프롬프트를 반영하기 위해. 그럼 움직임을 잘 반영하나?
- RoPE

이 적용되도록 분리했다.
두 종류의 토큰은 QKV matrix, MLP layer, RoPE도 서로 다른걸 사용한다. + QK-norm 사용
Visual token에는 3D RoPE 사용, 텍스트 토큰에는 추가적인 1D RoPE 사용
→ 여러 장면(shot)을 텍스트로 입력했을 때 반영할 수 있게 한다. 맞나?
- Diffusion Refiner
학습/추론 효율성을 고려해서, High resolution을 위한 diffusion 네트워크도 이후 추가로 사용했다.
베이스 모델은 480p 영상을 만들고, HR model이 70이나 1080으로 올린다.
diffusion refiner model은 베이스 모델의 가중치에서 시작한다. 480p 영상이 컨디션으로 들어가는 방식은 channel wise concat
- Prompt Engineering
시간대별로 디테일하게 작성된 유저의 입력 프롬프트를, DiT가 잘 반영하는 형태의 프롬프트로 변환하는 모델이 따로 있는 듯하다?(Qwen-2.5-14B를 학습)
DPO도 쓰고 SFT로는 LoRA를 쓴다.
3. Data
데이터셋을 구축하는 방법 매우매우 중요하다 - 어떤 영상을 쓰고 어떻게 prompt를 만들지.
이미지 데이터도 모으고 처리하지만 Seedream 논문과 같은 방식을 쓰기때문에 여기서는 비디오 데이터 관련 얘기만

- Data 전처리
- 다양한 비디오 모으기
- 장면이 전환되는 단위로 비디오를 자른다.
- 모델/룰베이스로 로고, 워터마크, 자막 등을 감지하고 없앤다.
- 1) 흐림, 흔들림, 미학적으로 낮은 퀄리티, 정적 장면 등은 제거 2) 유해 컨텐츠 강력 필터링
- 비디오 임베딩 모델을 태워서 나온 값이 지나치게 비슷한 것들은 필터링해서 하나만 남긴다. 오버피팅 방지
- 각 영상의 class를 분류한다음 어떤건 under sampling, over sampling한다.
전처리란 어떤 종류의 영상을 사용할지, 어떻게 noisy하지 않고 고퀄리티의 데이터셋으로 만들지
길이, 화질, 객체(인간, 동물, 기타), scene 종류(자연, 도시 등), 객체의 액션, 장르(리얼, 애니메이션 등), style, 카메라 움직임 등
원본 비디오는 너무 길고 학습에 부적절하다.
최대 12초 길이의 영상으로 자르되, 장면이 달라질 때를 기준으로 자른다. 한 영상에 한 장면만 들어간다는 뜻은 아님.
- Captioning
열심히 비디오-caption pair를 모으고 만든 뒤 Tarsier2라는 Video Language model을 finetuning한다.(visual encoder는 freeze)
다양하게 caption을 만들었다는 이야기만 나오고 구체적인건 없다(moviegen처럼 임의로 캡션뒤에 뭘 만들어서 붙였다거나)
4. Model training

- Pre training
- logit-normal timestep sampling (SD3)
- 낮은 화질-12 fps → 높은 화질 → 24fps로 학습, text-to-image 조금, image-to-video 20%
- Continue Training
왜 굳이 Continue training이라는 새로운 이름을 붙였는지 모르겠다 좀 더 고퀄리티의 데이터, caption들만 엄선해서 추가로 학습한다. GPU를 1보다 훨씬 적게 사용하고, LR은 사전학습 단계에서의 lr scheduler에 이이서 그대로 사용.
aesthetic quality, motion dynamics를 위한 evaluation 모델을 따로 만들어서 필터링했다.
- SFT
- 카테고리별로 데이터셋을 나눠서 따로 학습함
- 각각 작은 학습률로, GPU 적게 사용하며, early stopping으로 오버피팅 방지
- 그리고 따로 학습한 모델은 merge한다. 어떻게 한다는건지 자세히 나와있지 않은데 원래 일반적인 방식이 맞나? 처음보는 개념이긴 함.
During this phase, the model trains on a carefully curated set of high-quality video-text pairs with manually verified captions, allowing it to generate videos with improved aesthetics and more consistent motion dynamics.
- RLHF
- Reward model
- 총 3개의 특화된 보상 모델로 구성된 정교한 보상 시스템을 설계:
- Foundational Reward Model (기본 능력: 텍스트 정렬, 구조 안정성)
- Motion Reward Model (모션 생동감, 아티팩트 완화)
- Aesthetic Reward Model (미적 품질)
- 각각 영상 특화된 강화학습 방식과 결합되어, 모델 성능을 다방면에서 향상시킨다.
- Foundational RM은 Vision-Language Model 구조로 설계됨.
- Aesthetic RM은 Seedream 방식을 참고해 비디오의 keyframe을 이미지처럼 분석하는 구조를 사용.
- Feedback learning

보상 모델 설계
학습 과정에서 inference 하고 그 결과에 reward 계산해서 업데이트하는 online RL 방식이다.
여기서는 DPO/PPO/GRPO와 같은 방식을 쓰지 않고 직접 reward를 maximiz하도록 학습한다(reward = 세가지 리워드 모델의 합)
최근 Diffusion model 쪽에서 많이 쓰였다는데 이것도 여기서 처음 본다.
base model의 training objective로 reward를 loss로 계산한 gradient를 그대로 써서 최적화했다는 것 같다. (negative 리워드 = Loss?)
back propagation이 되나..? 미분가능한 ODE solver를 쓴다면 안될이유 없다. 대신 64 tiemsteps라고 치면 가지고있어야하는 메모리가 너무 클 것 같긴한데
참고했다는 논문
[17] Jie Liu, Gongye Liu, Jiajun Liang, Yangguang Li, Jiaheng Liu, Xintao Wang, Pengfei Wan, Di Zhang, and Wanli
Ouyang. Flow-grpo: Training flow matching models via online rl. arXiv preprint arXiv:2505.05470, 2025.
[18] Jie Liu, Gongye Liu, Jiajun Liang, Ziyang Yuan, Xiaokun Liu, Mingwu Zheng, Xiele Wu, Qiulin Wang, Wenyu
Qin, Menghan Xia, et al. Improving video generation with human feedback. arXiv preprint arXiv:2501.13918,
2025.
33] Jiacheng Zhang, Jie Wu, Weifeng Chen, Yatai Ji, Xuefeng Xiao, Weilin Huang, and Kai Han. Onlinevpo: Align
video diffusion model with online video-centric preference optimization. arXiv preprint arXiv:2412.15159, 2024.
[28] Zeyue Xue, Jie Wu, Yu Gao, Fangyuan Kong, Lingting Zhu, Mengzhao Chen, Zhiheng Liu, Wei Liu, Qiushan Guo,
Weilin Huang, et al. Dancegrpo: Unleashing grpo on visual generation. arXiv preprint arXiv:2505.07818, 2025.
직전에 DanceGRPO라는 논문을 bytedance seed팀에서 냈다. 당연히 핵심 저자가 많이 겹친다. 근데 결국 강화학습을 쓰는 핵심 이유 중 하나는 미분이 불가능한 상황에서도 업데이트를 하기 때문에 → Seedance에서는 논문만 보면 미분 되니까 그대로 업데이트 하겠다는거 같은데 이 방법을 쓴게 맞는건지 헷갈림. 테크니컬 리포트여서 자세히 공개를 안한건지
예전부터 이런 시도는 당연히 있었던 것 같다. (DIRECTLY FINE-TUNING DIFFUSION MODELS ON DIFFERENTIABLE REWARDS - https://arxiv.org/pdf/2309.17400)
RLHF 적용 후 시각적인 차이가 크게 나는데, 더 궁금하다.

5. Inference Optimizations
- Model 단 개선
- DiT
- Trajectory Segmented Consistency Distillation (TSCD) technique, originally introduced in HyperSD → 속도 4배 개선
- Score Distillation from RayFlow로 더 적은 스텝의 Student model 학습
- APT 연구에서 사용한 adversarial training 전략을 사용해서 추가로 최적화
- VAE - 인코더를 그대로 두고 Decoder를 더 얇게 추가로 학습 → with no loss, 2배 더 빨라졌다.
consistency distillation을 세그먼트 단위로 진행
셋 다 bytedance 연구.
- Inference Infrastructure
Kernel 최적화, Quantization, 정교한 여러 Parallelism 방법 적용, continuous batching, prefix caching, 비디오 인코딩 가속화 솔루션까지 구형해서 적용했다.
실제 내용은 더 디테일하게 많다.
6. Training insrastructure
To support efficient large-scale pre-training of long-context video models on thousands of GPUs, we have designed a highly optimized training infrastructure.
Our system focuses on maximizing hardware efficiency, scalability, and robustness.
It integrates high-performance kernel fusion, a hybrid parallelism strategy, multilevel activation checkpointing (MLAC), runtime-aware workload balancing, and multi-level fault tolerance.
내용이 많은데 이해하지 못하는 부분이 많아 하나만 적음
- High Performance Kernel
GPU 하드웨어 자원을 최대한 활용하기 위해,
torch.compile
과 성능에 민감한 연산자들에 대해 수작업으로 작성한 CUDA 커널을 결합하였습니다.메모리 병목(memory-bound) 연산들을 식별하고(ex. RoPE(Rotary Position Encoding) 및 normalization) 단일 CUDA 커널로 퓨전(fusion)하여 불필요한 메모리 접근을 최소화했다.
이렇게 퓨전된 커널은 중간 결과를 레지스터 또는 shared memory에 저장하여, 산술 집약도(arithmetic intensity)를 크게 향상시키고, global memory 접근량을 90% 이상 줄이는 데 성공했다.
7. Result (Model performance)


얼마나 과장되었는지는 알 수 없지만 확실히 좋은 것 같다. Kling2.1이 꽤 좋구나
Multi-shot, scene 생성을 특히 잘한다. 좀 더 영화스럽고, 좋은 장면 전환?의 느낌

영상으로 직접 보는게 베스트. 진짜 잘만든다.
디테일한 일관성의 영역에서 Diffusion이 가지는 한계가 있지 않을까 예전에는 생각했는데, 이 부분에서 3D VAE decoder가 얼마나 역할을 하는지도 궁금하다. 보정을 잘 해주는가?
Share article
Subscribe to our newsletter