일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- instruction tuning
- llm
- Lora
- Fine-tuning
- domain-adapted pre-training
- continued pre-train (cpt)
- instruct pre-training
- transformer
- langchain
- continual pre-training
- error: mkl-service + intel(r)
- backbone
- instruction tuning (it)
- prompt
- CPT
- Text-to-Image
- glibcxx
- PEFT
- full fine-tuning (fft)
- sfttrainer
- ViT
- lora+
- gemma2
- ubuntu
- Mac
- instruct-pt
- llm tuning
- diffusion
- cross-document attention
- continued pre-training
- Today
- Total
꾸준하게
[논문리뷰] Moûsai: Efficient Text-to-Music Diffusion Models 본문
arXiv 2023 [paper] [code] [sample]
Flavio Schneider, Ojasv Kamal, Zhijing Jin, Bernhard Schölkopf
ETH Zürich | IIT Kharagpur | MPI for Intelligent Systems & ETH Zürich | MPI for Intelligent Systems
submitted on 27 Jan 2023 (v1)
last revised 23 Oct 2023 (v3)
Abstract
최근 텍스트 분야의 거대 생성모델이 급격히 개발이 되었지만 텍스트와 음악을 연결 짓는 연구가 아직은 부족한 편이다. 저자는 텍스트를 입력으로 하여 긴 길이의 음악도 생성할 수 있는 text-to-music 생성 모델 Moûsai을 제안하였다. 이는 two-stage latent diffuson model(ldm)으로 구성되며, 프롬프트를 입력으로 48kHz의 고품질 음악 몇 분짜리를 생성할 수 있다. 게다가, 본 모델은 단일 소비자 GPU에서 실시간 추론이 가능할 정도로 높은 효율성을 갖는다.
Introduction
최근 몇년간 NLP는 large-scale pre-trained model을 이용하여 이해와 생성 부분에 엄청난 발전을 이루었다. NLP는 텍스트 데이터에 초점을 맞추고 있지만, 음악 또한 텍스트와 마찬가지로 풍부한 표현력을 가진 하나의 언어이다. 음악은 텍스트처럼 감정과 이야기, 아이디어를 전달할 수 있으며 고유한 구조와 구문을 갖고 있다. 본 연구에서는, 매우 강한 NLP 기술을 이용하여 텍스트 입력에 따라 음악을 생성함으로써 텍스트와 음악 사이의 격차를 해소한다.
기존 음악 생성 모델은 RNN, GAN, AE, Transformer를 사용하였다. 최근, Vision 분야에서 Diffusion 방식이 많은 성과를 보여 audio 분야에도 음성 생성 모델 등, 이를 활용하는 연구가 나타나고 있다. 한편, 음악 생성에 있어 다음 네 가지 챌린지 요소가 있다.
- 생성 길이 제한 : 대부분의 text-to-audio 모델은 짧은 몇 초 밖에 생성하지 못한다.
- 추론 시간 과다 : 1분의 audio를 생성하는데 GPU 환경에서 1시간의 추론이 필요하다.
- 부족한 다양성 : 단일 모달리티를 이용하여, 단일 장르만 생성가능하다.
- 텍스트 프롬프트에 의한 쉬운 제어 가능성 : 대부분은 latent 상태, 음악의 시작 부분 또는 텍스트에 의해서만 제어되지만 음악은 일상적인 소리에 대한 가사 또는 설명이다
위 이슈들을 해결하기 위해 저자는 새로운 text-conditional two-stage cascading diffusion model인 Moûsai을 제안하였다. 구체적으로, stage-1에서는 새로운 diffusion autoencoder를 통해 audio를 압축하는, diffusion magnitude-autoencoding(DMAE)를 이용해 music encoder를 학습한다. stage-2에서는 text-conditioned latent diffusion(TCLD)를 통해 텍스트 설명이 입력으로 주어질 때 reduced representation을 생성하는 방법을 학습한다.
저자는 새로운 text-to-music diffusion model을 제안하는 것 외에도 모델의 효율성을 높이기 위한 특별한 디자인을 함께 소개하였다. 먼저, DMAE는 64 배율로 오디오 신호를 압축할 수 있다. 이는 가벼우면서도 특별한 1D U-Net 아키텍처로 설계되었다. 이로 인해 본 모델은 단일 소비자 GPU에서도 몇 분 만에 추론 가능한 빠른 속도를 갖게 되었으며, A100*1 환경에서 한 stage당 약 1주일의 학습 시간을 갖는다.
저자는 학습을 위해 다양한 장르에 50K text-music 페어를 갖는 새로운 데이터 셋 TEXT2MUSIC을 구축하였다. 학습 결과, 이전 모델에 비해 높은 성능을 달성하였으며, 본 모델은 다양한 음악 장르에 대해 학습할 수 있으며 수 분(several minutes) 짜리의 긴(long-context) 음악을 48kHz stereo 수준의 고퀄리티로 단 몇 분만의 실시간 추론이 가능하다. 또한 이는 간단한 텍스트로 쉽게 컨트롤이 가능하다.
Contributions
- two-stage cascading latent diffusion 모델링 프로세스를 사용하는 text-to-music diffusion 모델을 제안하였다.
- 64배의 압축이 가능한 고효율을 달성하였으며 특별한 1D U-Net 구조를 사용하여 짧은 학습 시간과 실시간 추론이 가능하도록 하였다.
- text-music pair의 50K 규모, 총 2,500 시간의 TEXT2MUSIC 데이터셋을 구축하였다.
- 고효율, 텍스트-음악 관련성, 음악 퀄리티, long-context structure와 같은 metric에서 입증 가능한 11 가지의 평가 기준에서 현존 모델을 능가하였다.
Moûsai: Efficient Long-Context Music Generation from Text
Stage 1: Music Encoding by Diffusion Magnitude-Autoencoding (DMAE)
본 스테이지는 음악을 latent space로 잘 encoding할 수 있도록 학습하는 부분이다. 이러한 representation learning은 생성 모델에 치명적인데, 보다 효율적으로 고차원의 raw input data를 다룰 수 있게 한다.
Overview
학습을 위해, 우선 waveform 형태의 audio를 (오디오 모델에 더 좋은 표현인) magnitude spectrogram으로 변환한다. 그 후, 이를 Encoder에 입력한다. 그와 동시에, original audio에 임의의 noise를 더하고 이를 다시 제거하기 위한 1D U-Net을 학습시킨다. noise를 제거하는 removal(=reverse) 프로세스 중에, noise level과 압축된 latent에 따라 U-Net을 조정하여 noise가 없는 audio(reduced version)에 접근할 수 있다.
$v$-Objective Diffusion
$v$-objective가 포함된 diffusion process를 사용하게 된다. 수식 전개 이전에 몇 가지 가정을 먼저 살펴본다.
- $x_0$ : 분포 $p(x_0)$에서 추출된 샘플
- noise schedule $\sigma _t \in [0, 1]$
- noisy data point $x_{\sigma _t} = \alpha_{\sigma _t} x_0 + \beta _{\sigma _t} \epsilon$
위 가정 속에서 $v$-objective diffusion은 다음 objective를 최소화하여 모델 $\hat{v}_{\sigma _t} = f(x_{\sigma _t}, \sigma _t)$을 추정한다.
$$\mathbb{E}_{t \sim [0,1],\sigma _t, \mathbf{x}_{\sigma _t}} [\Vert f_{\theta}(\mathbf{x}_{\sigma _t}, \sigma _t) - \mathbf{v}_{\sigma _t} \Vert ^2_2] \tag{1}$$
- $v_{\sigma _t} = \frac{\partial x_{\sigma _t}}{\sigma _t} = \alpha _{\sigma _t} \epsilon - \beta _{\sigma _t}, x_0$
- $\phi _t := \frac{\pi}{2} \sigma _t$
- 삼각함수 $\alpha _{\sigma _t} := cos(\phi _t),$ and $\beta _{\alpha _t} := sin(\phi _t)$
DDIM Sampler for Denoising
denoising step에선 ODE sampler를 사용해 변화율을 추정하여 노이즈를 새로운 데이터 포인트로 전환한다. 저자는 DDIM sampler를 채택했으며 이것이 스텝 수와 오디오 품질과의 trade-off가 균형을 이룬다고 하였다. DDIM sampler는 아래 수식을 반복하며 signal을 denoise 한다.
0에서 1 사이의 값에 대해 균일한 간격을 갖는 t-step noise schedule $\sigma _T, \ldots , \sigma _0$을 기준으로, 초기 데이터 포인트와 step $\sigma _t$에서의 noise를 모두 추정한다.
Diffusion Autoencoder for Audio Input
저자는 magnitude(크기) spectrogram을 압축된 표현(compressed representation)으로 인코딩한 후, 나중에 디코딩 모듈의 중간 채널에 latent를 주입하는 새로운 diffusion autoencoder를 제안하였다. 이러한 방식은 image 분야의 diffusion에서 먼저 사용되었던 방식으로, diffusion은 강한 생성 능력을 가진 디코더 역할을 하므로, 입력은 더욱 압축된 latent space로 대체될 수 있다.
Efficient and Enriched 1D U-Net
- 노란색 : diffusion noise level as a feature vector conditioning
- 보라색 : external channels as conditioning
- 주황색 : external (text) embedding
- R : 1D conv ResNet
- M : modulation(변조) unit
- I : inject item
- A : attention item
- C : cross-attention item
1D U-Net은 본 모델의 주요 모듈 중 하나이다. 저자는, 원래 의료 영상 분할을 위해 도입된 vanilla U-Net 아키텍처가 skip connection이 있는 모래시계(hourglass) conv 전용 2D 구조를 사용하기 때문에 효율성과 속도가 상대적으로 제한적인 것을 확인하였다. 따라서 속도 측면에서 기존 2D 구조보다 효율적이며 각 주파수(frequency)를 다른 채널로 간주하는 경우, waveform 또는 spectrogram 모두에서 성공적으로 사용할 수 있는 1D conv kernel만 있는 새로운 U-Net을 제안하였다.
또한 Fig. 3과 같이 1D U-Net에 여러 개의 새로운 컴포넌트를 주입하였다. ResNet residual 1D conv unit은 diffusion noise level에서 주어진 채널을 변경하는 modulation(변조) unit, 외부 채널을 현재 깊이의 채널과 연결하는 주입(inject) 항목이다. 주입 항목은 음악의 latent representation을 condition으로 하기 위해 stage 1에서 디코더의 특정 깊이에서만 적용된다.
또한 Fig. 3에서 볼 수 있듯이 ResNet residual 1D conv unit, diffusion noise level에서 주어진 채널을 변경하는 변조(modulation) 유닛, 외부 채널을 현재 깊이에 있는 채널에 연결하는 인젝트 유닛 등 여러 가지 새로운 구성 요소를 1D U-Net에 주입합니다. 인젝트 항목은 음악의 잠재적 표현을 조절하기 위해 stage 1에서 디코더의 특정 깊이에서만 적용된다.
Overall Model Architecture
stage 1 DMAE는 다음과 같이 동작한다. $w$는 [$c$, $t$] 구조의 waveform ($c$ : channels, $t$ : timesteps)이고, $(m_w, p_w) = \text{stft}(w; n = 1024, h = 256)$는 window 크기가 1024이고 hop 길이가 256인 waveform의 short-time furier transform에서 얻은 크기(magnitude)와 위상(phase)이다. 그러면 spectrogram은 $[c \cdot n, \frac{t}{h}]$ 형태가 될 것이다. 여기서 위상(phase)은 버리고 크기(magnitude)는 1D conv 인코더를 통해 latent $z = \mathcal{E}_{\theta _e}(m_w)$로 인코딩한다. original waveform은 diffusion model $\hat{w} = \mathcal{D}_{\theta _d}(z, \epsilon, s)$을 이용하여 latent를 디코딩해 reconstruction 된다. ($\mathcal{D}_{\theta _d}$는 noise $\epsilon$과 sampling step 수 $s$에서의 diffusion sampling process이다.) 디코더는 latent $f_{\theta _d} (w_{\sigma _t}; \sigma _t ; , z)$를 condition으로 하는 동안 $v$-objective diffusion으로 학습된다. ($f_{\theta _d}$는 1D U-Net이며 디코딩 과정에서 반복적으로 호출된다.)
크기만 사용되고 위상은 폐기되므로 diffusion autoencoder는 동시에 autoencoder이자 vocoder이다. 크기 spectrogram을 사용하면 waveform을 직접 autoencoding 하는 것보다 더 높은 압축률을 얻을 수 있다. 저자는 waveform이 작업하기에 덜 압축되고 덜 효율적인 것을 발견했다고 한다. 마찬가지로 위상을 폐기하는 것은 동일한 품질 수준에서 더 높은 압축률을 얻는데 도움이 된다. diffusion 모델은 인코딩 된 크기에만 의존하더라도 현실적인 위상을 가진 waveform을 생성하는 방법을 쉽게 배울 수 있다.
이러한 방식으로 음악의 latent space는 다음에 소개할 text-to-music 생성기의 시작점이 된다. 이러한 표현 공간이 stage 2에서도 적합하도록 하기 위해 병목 현상에 tanh 함수를 적용하여 [-1, 1] 범위로 유지한다. 추가적인 정규화는 허용되는 압축성의 양을 줄이기 때문에 VAE의 병목 현상과 같이 더 얽힌 병목 현상을 사용하지 않는다.
Stage 2: Text-to-Music Generation by Text-Conditioned Latent Diffusion (TCLD)
본 stage는 앞서 학습된 music 표현 공간상에서 텍스트 설명(프롬프트)을 입력받아 music을 생성할 수 있도록 한다.
Overview
위 Fig. 4는 stage 2의 구조 TCLD를 설명한 그림이다. 먼저, latent space에 random noise를 더하고, 이것을 제거할 수 있는(정확히는 noise 양을 예측할 수 있는) U-Net을 학습한다. denoising 프로세스에서 텍스트 프롬프트는 trnasformer 모델로 인코딩 되어 사용된다. 이 방법을 통해 텍스트 프롬프트와 music latent space는 일치된다.
Text Conditioning
텍스트 임베딩을 위해 본 모델에서는 T5를 사용하였다. 추론 중 텍스트 임베딩의 강도를 향상하기 위해 0.1의 확률로 배치 요소에 학습된 mask를 적용한 classifier-free guidance (CFG)를 사용한다.
Adapting the U-Net for Text Conditioning
텍스트 임베딩을 활용하기 위해 U-Net 내 2개의 추가적인 block을 적용하였다. attention item은 long-context 구조 정보를 공유하기 위해 사용되고, cross-attention item은 텍스트 임베딩 condition을 적용하기 위해 사용된다. 이러한 attention block들은 전체 latent space에 정보 공유를 보장하며 장거리 오디오 구조(long-range audio structure)를 위해 필수적이다.
latent space의 압축된 크기를 고려할 때, 내부 U-Net의 크기를 stage 1보다 크게 늘린다. 그래도 효율적인 설계 때문에, 많은 parameter를 갖음에도 합리적인 학습 및 추론 속도를 유지한다.
Overall Model Architecture
위 Fig. 4에서 세부사항을 볼 수 있다. 이전 stage와 일관되게, $v$-objective diffusion과 1D U-Net 구조를 사용한다. text embedding $e$가 condition일 때, U-Net config $f_{\theta _g}(z_{\sigma _t}; \sigma _t , e)$는 압축된 latent $z = \mathcal{E}_{\theta _e}(m_w)$을 생성한다. 그러면, generator $\mathcal{G}_{\theta _g}(e, \epsilon , s)$는 DDIM 샘플링에 적용되며 텍스트 임베딩 $e$와 시작 노이즈 $e$로부터 latent 근사치 $\hat{z}$를 생성하기 위해 U-Net을 $s$번 호출한다. waceform을 얻기 위해 추론하는 동안 최종 생성 stack은 다음과 같다.
Experimental Setup
Collection of the TEXT2MUSIC Dataset
TEXT2MUSIC Dataset
- 전체 재생 시간 : 2,500 시간
- 전체 음악 개수 : 50,000 개
- 데이터 품질 : 48kHz stereo
- 데이터 특징 : 다양한 {장르, 아티스트, 악기, 출처}
- 저작권 이슈 : EU regulation in Article 3 of the EU Directive on Copyright in the Digital Single Market에 따라 연구 목적으로만 수집
- 수집 방법 : Spotify의 Top recommendations인 각 7,000개의 음악이 담긴 7개의 큰 플레이리스트에서 수집(총 4,900개)
- 메타데이터 : 유튜브에 각 음악 이름을 검색하여 음악 제목, 작가, 앨범 이름, 장르 및 발매 연도를 포함하는 해당 텍스트 설명을 수집
- 수집 소스코드 : github에 오픈하였음 (MiT license; 아무나 해당 코드를 사용하여 새로운 데이터 수집 가능)
Implementation Details
- diffusion-autoencoder 파라미터 수 : 185M
- text-conditional generator 파라미터 수 : 857M
- music autoencoder : $2^{18}$(~5.5s at 48kHz) 길이만큼 random crop 하여 학습
- text-conditional generator : 32-channels 및 64배로 압축된 latent 표현으로, $2^{21}$ (~44s at 48kHz) 길이의 fixed crop하여 학습
- optimizer : AdamW ($\beta _1$ : 0.95, $\beta _2$ : 0.999, $\epsilon$ : $10^{-6}$, weight decay : $10^{-3}$
- learning rate : $10^{-4}$
- EMA : $\beta = 0.995$ and power of 0.7
Evaluation
Long-Term Structure of the Music
동일한 프롬프트에 "1/2/3/4 of 4"라는 텍스트를 프롬프트 끝에 추가하여 다양한 segment/interval를 생성할 수 있다.
ex) "Italian Hip Hop 2022, 3 of 4." 위 Fig. 6은 이러한 방식으로 랜덤 하게 생성한 1,000개의 음악에 대한 amplitude를 시각화한 것으로, 1 segment에서는 점진적으로 amplitude의 평균과 분산이 증가하고 2, 3 segment는 높은 평균과 분산을 유지, 4 segment에서는 감소하는 것으로 나타난다.
Effect of Hyperparameters
우선, latent diffusion의 attention block 수를 (총 4-8개에서 32개 이상까지) 늘리면 long-context view 덕분에 음악의 일반적인 구조를 개선할 수 있다는 것을 발견하였다. 즉, attention block이 없다면 U-Net으로부터 생성된 context는 long-term 구조를 학습하기에 제한된다. 이외 하이퍼파라미터 및 디테일은 논문 Appendix에 잘 설명이 되어있으니 확인하길 추천한다.
Limitations and Future Work
Data Scale
저자는 데이터와 모델 규모를 키우면 생성 품질이 훨씬 나아질 것이라고 전망하며 본래 2,500시간이었던 학습 데이터를 50,000 ~ 100,000시간 규모로 늘릴 것을 제안하였다. 또한, 대규모 언어모델이 높은 성능을 보인 것을 언급하며 본 모델의 2-stage에 더 큰 규모의 텍스트 임베딩 모델을 사용하면 성능이 더 올라갈 것으로 기대된다.
Models
저자는 향후 모델 성능 향상을 위해 다음 방법들을 적용할 것을 암시하였다.
- waveform 학습 시 L2 loss 대신 perceptual loss를 사용.
이는 인지할 수 없는 소리의 크기를 처리할 필요가 없으므로, U-Net의 초기 사이즈를 감소할 것으로 기대된다. - magnitude spectrogram 입력 대신 mel-spectrogram을 사용하여 autoencoder의 성능 향상.
- 텍스트 기반이 아닌 다른 유형의 condition 사용.
말로 설명하기 어려운 경우에 유용할 것으로 기대된다. - 보다 정교한 diffusion sampler 사용.