Audio-021, Voxtlm: unified decoder-only models for consolidating speech recognition/synthesis and speech/text continuation tasks, ICASSP 2024

 아래 답변은 업로드된 VoxtLM: Unified Decoder-only Models for Consolidating Speech Recognition, Synthesis and Speech, Text Continuation Tasks 기준이다.

1. 텍스트와 오디오가 동시에 되는 모델을 학습한 게 맞나?

맞다. VoxtLM은 텍스트와 오디오를 하나의 decoder-only LM 안에서 함께 다루는 unified speech-text model이다. 다만 “raw waveform을 그대로 넣고 바로 텍스트/오디오를 출력한다”기보다는, 오디오는 먼저 discrete speech token으로 변환해서 텍스트 토큰과 같은 LM vocabulary 안에서 처리한다.

모델이 지원하는 입력과 출력은 네 가지 태스크로 정리된다.

태스크입력 condition출력 prediction
TextLM텍스트이어지는 텍스트
SpeechLMspeech token이어지는 speech token
ASRspeech token텍스트
TTS텍스트speech token → waveform 복원

즉, 모델 입장에서는 입력과 출력이 모두 Voxt vocabulary 안의 token sequence이고, 이 vocabulary 안에 text token과 speech token이 같이 들어간다. 생성된 speech token은 별도의 speech token decoder, 즉 HiFi-GAN 기반 decoder를 통해 다시 waveform으로 변환된다.


2. 텍스트와 오디오 모두 discrete token으로 변환해서 next token prediction 한 게 맞나?

거의 맞다. 정확히는 텍스트는 원래 discrete text token, 오디오는 HuBERT 기반 semantic speech token으로 변환한 뒤, 둘을 합친 vocabulary에서 autoregressive next-token prediction으로 학습한다.

오디오 토크나이저는 다음과 같다.

  • pretrained HuBERT feature를 사용한다.

  • HuBERT feature에 k-means clustering을 적용해서 discrete speech token을 만든다.

  • 논문에서는 speech token vocabulary size로 k = 50, 200, 1000을 실험한다.

  • 이후 speech token sequence가 너무 길어지는 문제를 줄이기 위해 subword/BPE modeling도 적용한다.

  • 생성된 speech token을 waveform으로 되돌릴 때는 HiFi-GAN 기반 speech token decoder와 x-vector speaker embedding을 사용한다.

중요한 점은 이 논문에서 사용하는 speech token은 codec 기반 acoustic token이 아니라, HuBERT에서 나온 semantic token에 가깝다는 것이다. 논문도 acoustic token은 고품질 합성에는 유리하지만 여러 code stream 때문에 모델링이 어렵고, 자신들은 GSLM을 따라 HuBERT 기반 semantic token을 사용한다고 설명한다.


3. 모델 학습 순서

VoxtLM의 기본 학습은 하나의 decoder-only LM을 여러 태스크 데이터로 multitask autoregressive training하는 방식이다.

학습 방식

각 태스크는 special token으로 구분된다.

예를 들어,

  • TextLM: <generate-text>, Y

  • SpeechLM: <generate-speech>, D

  • ASR: <start-speech>, D, <generate-text>, Y

  • TTS: <start-text>, Y, <generate-speech>, D

처럼 sequence를 구성하고, 전체를 next-token prediction으로 학습한다. 즉 ASR이나 TTS도 encoder-decoder가 아니라, 하나의 decoder-only LM에서 조건부 생성 문제로 바꾼다.

텍스트 백본에서 이어서 학습했나?

두 경우를 비교한다.

첫째, w/o PT는 pretrained text LM 없이 VoxtLM을 학습한 경우다.
둘째, w/ PT는 pretrained text LM인 OPT의 weight로 초기화한 뒤 VoxtLM을 학습한 경우다.

다만 OPT를 그대로 쓰는 것은 아니고, VoxtLM은 text token과 speech token을 합친 새로운 vocabulary를 쓰기 때문에 embedding table은 새로 학습한다. Transformer decoder weight는 OPT로 초기화한다.

처음부터 텍스트&오디오 데이터를 학습했나?

네. w/o PT 조건에서는 모델을 pretrained text backbone 없이 시작해서 text-only, speech-only, ASR, TTS 데이터를 섞어 학습한다. w/ PT 조건에서는 OPT text backbone에서 시작하지만, 그 이후의 VoxtLM 학습 자체는 역시 text-only, speech-only, paired speech-text 데이터를 섞어서 진행한다.

데이터 비율과 양

논문 Table 2에서 학습 데이터 구성을 네 가지로 제시한다.

설정Speech-onlyText-onlyASR pairedTTS paired
DBal300K300K281K404K
D3M3M3M281K404K
DSet12M40M281K404K
DSet+12M40M11M404K

데이터 출처는 다음과 같다.

  • Speech-only: LibriLight, 60K hours, 12M utterances

  • Text-only: LibriSpeech external textLM dataset, 40M text utterances

  • ASR paired: LibriSpeech 960h, 281K utterances

  • 추가 ASR supervised data: MLS English 44K hours, 11M utterances

  • TTS paired: LibriTTS 580h + VCTK 44h, 총 404K utterances

즉 기본적으로는 text-only와 speech-only 데이터가 훨씬 많고, ASR/TTS paired data는 상대적으로 작다. 특히 DSet에서는 text-only 40M, speech-only 12M에 비해 ASR 281K, TTS 404K라서 ASR/TTS 비율이 매우 작다. 논문은 이 불균형 때문에 ASR 성능이 unbalanced setting에서 악화된다고 해석한다.

post-training이 있나?

논문에서 말하는 별도의 instruction tuning, RLHF, supervised post-training 같은 단계는 없다. 실험상으로는 multitask autoregressive LM training이 핵심이고, 추가로 비교하는 것은 OPT 초기화 여부, speech token size k, model size scaling, ASR supervised data 추가 정도다. 따라서 “pretraining → post-training” 식의 명확한 다단계 학습 파이프라인은 제시되지 않는다.


4. 오디오 데이터는 어떤 형태인가?

논문에서 오디오 데이터는 두 종류로 쓰인다.

첫째, speech-only data는 paired transcript 없이 speech만 있는 데이터다. 여기서는 LibriLight의 audiobook speech를 사용하고, 이 speech를 HuBERT+k-means tokenizer로 discrete speech token으로 바꿔 SpeechLM 학습에 사용한다.

둘째, paired speech-text data는 ASR 또는 TTS에 쓰이는 speech-text pair다. ASR에는 LibriSpeech, 추가 실험에는 MLS를 사용하고, TTS에는 LibriTTS와 VCTK를 사용한다.

즉 “오디오 데이터”가 전부 ASR처럼 텍스트-오디오 쌍인 것은 아니다. 논문은 speech-only, text-only, paired speech-text를 모두 사용한다.


5. 모델 평가는 어떻게 하나?

평가는 최종 학습된 VoxtLM에 대해 네 가지 태스크 모두에서 수행한다. 논문은 각 학습 스테이지마다 따로 평가한다기보다는, 서로 다른 설정으로 학습된 모델들을 비교한다. 예를 들어 single-task vs multitask, w/o PT vs w/ PT, k=50/200/1000, 125M/350M/1.3B, DSet vs DSet+ 등을 비교한다.

평가 태스크와 metric은 다음과 같다.

평가 대상Metric
TextLMPPL, sWUGGY, sBLIMP
SpeechLMPPL, sWUGGY, sBLIMP
ASRWER
TTSCER, MOSNet

텍스트와 오디오 벤치마크를 모두 평가한다. TextLM은 text continuation, SpeechLM은 speech continuation, ASR은 speech-to-text, TTS는 text-to-speech로 평가된다. ASR은 LibriSpeech test-clean/test-other에서 WER을 보고, TTS는 LibriTTS test-clean에서 일부 utterance를 뽑아 CER과 MOSNet을 측정한다.

중요한 결과는 다음과 같다.

  • Multitask VoxtLM은 single-task 모델 대비 특히 TTS 성능이 크게 향상된다.

  • TTS CER은 single-task 28.9에서 multitask DBal 기준 5.6까지 개선된다.

  • MOSNet도 2.68에서 3.76 또는 3.90 수준으로 오른다.

  • OPT 초기화는 TextLM, SpeechLM, ASR에 도움을 준다.

  • ASR에서는 pretrained textLM 초기화가 DSet 조건에서 WER 21.0/37.4를 13.1/28.8로 개선한다.

  • 큰 모델과 더 많은 ASR paired data를 쓰면 ASR 성능이 더 좋아진다.


6. 논문의 동기 및 기여점

동기

기존 ASR과 TTS는 보통 encoder-decoder 구조를 사용한다. ASR은 speech encoder + text decoder, TTS는 text encoder + speech decoder처럼 task와 modality마다 별도 구성 요소가 필요하다. 이런 방식은 여러 speech/text task를 하나의 모델에 통합하기 어렵다.

논문의 문제의식은 다음이다.

ASR, TTS, text generation, speech generation을 모두 language modeling 문제로 바꾸고, 하나의 decoder-only model에서 처리할 수 있는가?

즉 이 논문의 핵심 동기는 speech와 text를 하나의 vocabulary와 하나의 autoregressive decoder 안에 넣어서, 다양한 speech-text task를 통합하려는 것이다.

기여점

첫째, VoxtLM이라는 unified decoder-only speech-text LM을 제안한다. 이 모델은 ASR, TTS, text continuation, speech continuation 네 가지 태스크를 하나의 decoder-only LM으로 처리한다.

둘째, text vocabulary와 HuBERT 기반 discrete speech token을 합쳐 Voxt vocabulary를 만들고, special token을 통해 태스크를 구분하는 형식을 제안한다.

셋째, ASR과 TTS를 encoder-decoder가 아니라 conditioned language modeling으로 구성할 수 있음을 보인다.

넷째, single-task 모델보다 multitask VoxtLM이 여러 태스크에서 경쟁력 있거나 더 좋은 결과를 내며, 특히 TTS에서 큰 향상을 보인다.

다섯째, pretrained textLM인 OPT로 초기화하는 것이 speech-text multitask LM에서도 도움이 된다는 것을 보인다. 특히 ASR에서 효과가 크다.

여섯째, 데이터 구성, token vocabulary size, model size, 추가 supervised ASR data가 성능에 미치는 영향을 실험적으로 분석한다.

일곱째, 공개 데이터와 ESPnet recipe, checkpoint를 제공해 재현 가능성을 강조한다.

정리하면, VoxtLM은 텍스트와 speech token을 하나의 vocabulary로 통합하고, ASR/TTS/SpeechLM/TextLM을 하나의 decoder-only LM에서 next-token prediction으로 학습한 논문이다. 단, 오디오는 raw audio 그대로 LM에 들어가는 것이 아니라 HuBERT+k-means semantic token으로 이산화되어 들어가며, 별도의 post-training 단계는 논문에 명확히 제시되어 있지 않다.

Reference

댓글