lucidrains/rectified-flow-pytorch
Implementation of rectified flow and some of its followup research / improvements in Pytorch
rectified-flow-pytorch – Rectified Flow의 PyTorch 구현
개요 – Rectified Flow 생성 모델 기법(Liu et al., 2022)과 여러 후속 개선 사항을 재현하는, pip 설치 가능한 작은 라이브러리입니다. 즉시 사용 가능한 RectifiedFlow 클래스, 간단한 UNet 백본, 이미지 데이터셋 로딩 유틸리티, 그리고 🤗 Accelerate 기반 트레이너를 제공합니다.
중요성 – Rectified Flow는 노이즈에서 데이터로의 직선 매핑을 단일 단계로 학습하는 플로우 매칭/확산류 방법으로, 빠른 샘플링과 경쟁력 있는 이미지 품질을 제공합니다. 이 저장소를 통해 연구자와 취미 개발자는 수학을 처음부터 작성하지 않고도 이 방법을 실험할 수 있습니다.
빠른 시작
pip install rectified-flow-pytorch # 핵심 라이브러리
pip install .[examples] # 선택적 예제 종속성
import torch
from rectified_flow_pytorch import RectifiedFlow, Unet
# 작은 UNet 백본 (어떤 torch.nn.Module로도 교체 가능)
model = Unet(dim=64)
# RectifiedFlow 래퍼로 감싸기
flow = RectifiedFlow(model)
# 더미 데이터 – 형태 (배치, 3, 256, 256)
imgs = torch.randn(1, 3, 256, 256)
# 순전파는 역전파 가능한 손실을 반환
loss = flow(imgs)
loss.backward()
# 샘플 생성 (입력 이미지와 동일한 형태)
sample = flow.sample()
assert sample.shape[1:] == imgs.shape[1:]
리플로우(반복적 정제)
라이브러리에는 원본 논문에 설명된 대로 학습된 플로우를 반복적으로 적용할 수 있는 Reflow 래퍼도 포함되어 있습니다.
from rectified_flow_pytorch import Reflow
reflow = Reflow(flow)
reflow_loss = reflow()
reflow_loss.backward()
sample = reflow.sample()
자체 이미지로 훈련
from rectified_flow_pytorch import ImageDataset, Trainer
train_set = ImageDataset(folder='./my_images', image_size=256)
trainer = Trainer(
flow,
dataset=train_set,
num_train_steps=70_000,
results_folder='./results' # 주기적으로 샘플 저장
)
trainer() # 훈련 루프 시작 (내부적으로 accelerate 사용)
내부 구성 요소
| 구성 요소 | 역할 |
|---|---|
RectifiedFlow |
직선 플로우 목적 함수를 구현하는 핵심 손실 및 샘플러. |
Reflow |
플로우를 여러 번 적용하기 위한 편의 래퍼(“리플로우” 절차). |
Unet |
기본 백본으로 사용되는 최소한의 UNet 아키텍처. dim 인자로 완전히 설정 가능. |
ImageDataset |
폴더에서 모든 이미지를 로드하고 정사각형 크기로 크기를 조정하는 간단한 torch.utils.data.Dataset. |
Trainer |
🤗 Accelerate 기반 훈련 루프. 옵티마이저, 학습률 스케줄, 체크포인트, 주기적인 이미지 저장 처리. |
예제 스크립트
저장소에는 Oxford-Flowers 데이터셋(배치 32, 11,000 스텝)에서 모델을 훈련하는 train_oxford.py가 포함되어 있습니다. 선택적 examples 종속성을 설치한 후 다음을 실행할 수 있습니다:
python train_oxford.py
이 스크립트는 데이터셋 로딩, 트레이너 설정, 생성된 샘플 시각화 방법을 보여줍니다.
참고 문헌 및 관련 연구
README에는 원본 Rectified Flow 논문과 플로우 매칭 방법을 확장하거나 분석하는 최신 arXiv 작업(예: Improving the Training of Rectified Flows, Scaling Rectified Flow Transformers, Consistency Flow Matching)이 나열되어 있습니다. 이러한 인용은 사용자가 학술적 맥락을 찾고 고급 변형을 탐구하는 데 도움이 됩니다.
누가 사용할까요?
- 연구자 – 플로우 매칭, 확산 대안 또는 단일 단계 생성 모델을 실험하는 분.
- 실무자 – 빠른 샘플링 이미지 생성기가 필요하고 경량 PyTorch 구현을 원하는 분.
- 학생 – Rectified Flow의 수학을 공부하기 위한 간결한 코드베이스를 찾는 분.
결론
rectified-flow-pytorch는 최첨단 생성 모델 기법의 집중적이고 잘 문서화된 구현입니다. 단일 pip install로 사용 가능한 모델, 훈련 유틸리티, 예제 스크립트를 얻을 수 있어 자체 이미지 데이터로 Rectified Flow를 쉽게 프로토타입하고 벤치마킹할 수 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트