https://arxiv.org/abs/2102.12092
Zero-Shot Text-to-Image Generation
Text-to-image generation has traditionally focused on finding better modeling assumptions for training on a fixed dataset. These assumptions might involve complex architectures, auxiliary losses, or side information such as object part labels or segmentati
arxiv.org
연구 목적
기존의 작은 데이터셋에서 벗어나, 대규모 데이터 & 파라미터를 활용한 → 고품질 이미지 생성
Background
훈련되지 않은 새로운 클래스의 데이터를 분류 및 이해할 수 있도록 학습
Autoregressive Transformer : 현재까지 생성된 모든 토큰을 고려하여, 다음 토큰을 예측. 순차적으로 출력 생성.
dVAE (Discrete Variational Autoencoder) : 이미지를 코드로 변환하여 저장하고, 필요시, 원래 이미지로 다시 변환하는 압축 과정.
ELB 최적화 : 이미지와 같은 입력 데이터 x와 설명 데이터 y의 결합 확률 분포를 가장 잘 표현하는 (매개변수) 값 계산.
PowerSGD : 분산 학습에서 사용되는, 효율적인 통신 비용 절감 기법 (Low-rank approximation ; G를 작은 행렬 P,Q로 근사) ; 전송 시
BPE-인코딩 : 텍스트 데이터를 압축적으로 표현 ; 텍스트
KL 다이버전스 : 두 확률 분포 간 차이 측정 방법. 모델 학습에서, 실제 데이터 분포와 예측 분포 차이를 최소화하는데 사용됨 ; 모델 최소화하는 손실함수 역할
Method
1단계 학습 Learning the Visual Codebook ; 이미지 압축/복원, 학습 안정성 향상
- 이미지를 코드 형태(코드북 벡터)로 변환하여 압축한다.
- Codebook이란? : 학습된 8192개 이산적인 코드북 벡터 존재. 가장 적절한 코드북 벡터에 매핑. 변환할 때는 양자화 사용.
- Codebook 학습 이유? : 전체적인 이미지 구조 파악이 어렵기에, 이미지를 픽셀 단위가 아닌 32*32 코드로 압축하자.
- dVAE : 연속적이지 않고, 이산적인 코드북을 학습
- Autoencoder : 압축 후 복원
- VAE : 데이터를 잠재 공간으로 표현(연속적인 공간이라 코드북을 만들기 어려움)
- ELB (Evidence Lower Bound)
- Gumbel-Softmax Relaxation : 코드북은 이산 값이라 미분 안 되기에, 연속 확률로 변환
2단계 학습 Learnin the Prior ; 텍스트 + 이미지 토큰 결합 분포 학습
- Transformer가 텍스트 및 이미지 토큰을 입력으로 받아 Autoregressive 방식으로 학습
- 텍스트 처리 : 텍스트를 BPE(Byte Pair Encoding)로 인코딩
- 이미지 처리 : 32*32개의 이미지 토큰으로 변환. logit의 argmax로 확률 값이 가장 높은 값을 선택.
- 텍스트와 이미지 결합 : 토큰 시퀀스로 결합하여 Autoregressive 방식으로 모델링. 이전 기반으로 다음 예측하는 Transformer 모델 학습
- Sparse Transformer : 연산 갯수를 줄이고 속도를 개선.
- Self-Attention Mask :
- Text - to - Text Mask : 표준 Causal Mask ; 다음 토큰 예측
- image - to - image Mask 이미지의 공간적 구조를 고려하여 예측
- …
- 특수 패딩 토큰 함수 : 256토큰보다 짧은 경우 패딩
3 Data Collection : 1억 5천만개 이상의 텍스트 이미지 쌍 데이터로 학습함
- 대규모 텍스트-이미지 데이터셋 구축 : 인터넷에서 2억 5천만 개의 텍스트-이미지 쌍 수집 ; MS-COCO 데이터셋
4 Mixed-Precision Training : 학습 속도 향상. (Per-Resblock Gradient Scaling 으로 언더 플로우 방지)
- 혼합 정밀도 학습 : GPU 메모리 절약 및 학습 속도 개선을 위해 16-bit 연산 사용
- 해결 방법 1 : Activation Chekpointing ; Activation 값을 저장하면, 메모리가 많이 사용 되기에, backward시 다시 계산하여 메모리 사용량 절약
- 해결방법 2 : Resblock 깊이에 따라 그래디언트 기울기 스케일 조정
- Per-Resblock Gradient Scaling : 대부분 16bit 연산. 안정성이 필요한 경우 32bit 연산.
- Forward
- Backward
5 Distributed Optimization : GPU간 분산 처리 최적화, 파라미터 분할, 그래디언트 압축
- 분산 최적화 : 120억개 파라미터를 GPU 메모리에 저장 풀가능하므로 → parameter sharding 사용해서 해결
- parameter sharding : 파라미터를 8개의 GPU에 나누어 저장 및 개산
- PowerSGD : 그래디언트를 low-rank approximation로 압축. 통신량을 약 85% 감소시키면서 성능 유지.
6 Sample Generation : 생성된 샘플 평가/최적 샘플 선택
- 샘플 생성 : 텍스트 설명으로부터 여러 개의 이미지 생성. Contrastive 모델 활용한 성능 평가
Experiments
- Quantitative Results (정량적 결과)
- DF-GAN과 인간 평가에서 해당 모델이 약 90% 이상 우세함.
- Data Overlap Analysis (데이터 중복 분석)
- Qualitative Findings (정성적 결과) 모델이 고자원적 개념을 넘어, 추상적 수준에서 조합할 능력을 가짐.
Conclusion
- Autogressive Transformer 모델을 사용하여 대규모 학습이 일반화 성능을 개선할 수 있음
- 규모의 함수로 일반화 성능을 향상시키는 것이 학습을 진전시키는 것에 있어 유용한 도구가 될 수 있음을 제한함
- 도메인 특화된 데이터셋에 대해서는 품질이 떨어지나 fine-tuning을 하면 성능이 좋아질 것이라 주장함
원문 논문 :
한국어 번역 논문 :