오늘은 Whisper 논문 리뷰를 가져왔습니다.
Robust Speech Recognition via Large-Scale Weak Supervision
저자 : Alec Radford, Jong Wook Kim, Tao Xu, Greg Brockman, Christine McLeavey, Ilya Sutskever
[1] Introduction
1) 기술적 배경
음성 인식, STT 분야의 발전은 Wav2Vec 2.0과 같은 비지도 사전 훈련 기술의 발전에 크게 기인합니다.
보통 좋은 성능의 딥러닝 모델을 구현하기 위해서는 많은 양의 라벨링 데이터가 필요합니다. 그리고 전통적인 음성인식 모델들은 이러한 라벨링 오디오, 텍스트 데이터에 대해 주로 훈련되었는데, 이는 몇몇 특정 언어에 대해서만 가능하다는 문제가 있습니다. 이를 해결하기 위해 Facebook에서는 라벨링되어있지 않은 대량의 데이터로 음성표현을 학습하게 한 후 소량의 라벨링 데이터로 Fine Tuning시키는 모델인 Wav2Vec 2.0을 개발하였습니다.
2) Wav2Vec 2.0의 한계
Wav2Vec 2.0은 비지도 사전 훈련을 통해 음성 데이터의 효과적인 표현을 학습할 수 있는 강력한 모델이지만, 몇 가지 한계점이 존재합니다.
첫째, Wav2Vec 2.0은 소량의 라벨링 데이터로 미세 조정(fine-tuning)을 수행해야만 최종적으로 높은 성능의 음성 인식 결과를 얻을 수 있습니다.적은 데이터로 파인튜닝하게되면 특정 데이터셋에 과적합될 위험이 있으며, 결과적으로 모델의 일반화 능력이 저하될 수 있습니다.
둘째, Wav2Vec 2.0은 주로 영어 등 특정 언어에 초점을 맞추어 개발되었습니다. 따라서 다양한 언어와 방언에 적용되기는 힘듭니다.
셋째, Wav2Vec 2.0은 주로 정제된 오디오 데이터에서 높은 성능을 보이는 경향이 있습니다. 그러나 실제 Inference 단계에서는 노이즈, 방언, 발음 등 다양한 변수가 존재하며, 이러한 변수에 취약하다는 단점도 있습니다.
3) 새로운 접근법
이러한 한계를 극복하기 위해, OpenAI에서는 Large-Scale Weak Supervision을 통한 음성 인식 모델의 스케일링과 다양성 향상에 중점을 두고 다음의 3가지 전략에 집중했습니다.
- 다양한 언어와 다중 작업 학습
- 본 논문에서 영어뿐만 아니라 여러 언어에 대한 데이터를 포함하여 다양한 언어 환경에서 Robust한 모델을 만드는 것을 목표로 합니다. 또한, 음성 인식뿐만 아니라 번역, 음성 합성 등 다중 작업을 동시에 수행할 수 있도록 설계되어 모델의 유연성과 활용 범위를 넓힙니다.
- 대규모 Weak Supervision 데이터 활용
- 인간의 검증이 필요 없는 Large-Scale Weak Supervision Dataset을 사용함으로써 데이터의 양을 대폭 늘리고 파인튜닝 없이도 높은 성능을 유지할 수 있습니다. 이는 모델의 일반화 능력을 크게 향상시키며, 다양한 데이터셋과 환경에서의 강건한 성능을 보장합니다.
- 지속적인 학습과 Self Supervised Learning
- 모델은 자체적으로 성능을 개선할 수 있는 Self Supervised Learning 방법을 적용합니다. 이는 특정 데이터셋에 대한 의존성을 줄이고, 시간이 지남에 따라 다양한 일상 음성 데이터에 대해 더욱 효과적으로 적응할 수 있게 합니다.
[2] Approach
1) Data Processing
최근 딥러닝 모델 연구 동향에 따라 Whisper에서는 Weak Supervision 데이터셋을 준비했습니다. 텍스트 데이터의 표준화 없이 대화 내용과 그에 해당하는 텍스트 사이의 mapping을 자연스럽게 학습하도록 해 음성인식 파이프라인을 단순화시켰습니다.
- 데이터셋 구성
- 웹에서 수집한 오디오, 텍스트 데이터쌍을 수집하는데 환경, 녹음 설정, 화자, 언어 등 매우 다양한 데이터셋을 구성합니다.
- 하지만 여기서 오디오 데이터의 이러한 다양성은 모델을 Robust하게 학습시키는데 도움이 되지만 텍스트 데이터 측면에서 이러한 다양성은 그닥 도움이 되지 않는다는 문제를 발견했습니다.
- 그리고 Raw 데이터셋에서는 낮은 수준의 텍스트 데이터가 포함되어 있었죠.
- 품질 향상을 위한 전처리
- 복잡한 구두점, 공백, 대소문자 등의 요소를 단순화, 정규화하여 텍스트 데이터 사용
- 오디오와 텍스트 데이터가 같은 언어로 mapping 되어 있지 않은 경우에 해당 데이터 제거
- 중복 데이터 제거 및 일부 수작업으로 전처리
- 훈련 데이터셋과 평가 데이터셋 간의 중복 방지
2) Model
음성인식 분야의 딥러닝 모델 연구에서는 Off the Shelf 아키텍쳐를 주로 사용합니다. 정말 쉽게 얘기해서 Transformer나 VGG16 등 2-Step으로 학습시킬 수 있는 모델을 얘기하고 이러한 모델을 사용했을 때 바닥부터 모델을 학습시키지 않아도 되어 모델 학습을 더 용이하게 해준다는 장점이 있다고 합니다. 그리고 Whisper에서는 Encoder - Decoder 구조의 Transformer 구조를 선택했구요.
오디오 데이터를 16,000 Hz로 리샘플링하고 25 밀리초 Window와 10 밀리초 Stride를 사용해 80개 채널의 Log Mel Spectrum으로 표현해서 사용했다고 합니다. (사실 이 부분은 그냥 그렇구나.. 하고 넘겼습니다 ㅎㅎ)
토크나이저는 BFE Text Tokenizer를 사용했다고 합니다. 이는 GPT-2 모델에도 사용되었고, BFE Tokenizer가 영어 전용이기 때문에 다양한 언어에 대해서 이해를 잘 하지 못할 수 있으니 어휘를 재구성해서 재학습시켰다고 합니다.
3) Multitask Format
Whisper에서는 단일 S2S Transformer Model을 사용해 다양한 STT 작업을 수행합니다. 다양한 언어에 대한 음성인식, 음성 번역, 음성활동 감지, 언어 식별 등 여러 기능을 하나의 모델로 통합해 전통적인 STT 모델들의 복잡한 단계를 대체합니다. 이를 가능하게 하기 위해서 특정 토큰을 사용해 입력된 오디오 데이터에 대해 수행해야 할 다양한 작업들을 구분한다고 합니다. 예를 들어 오디오에서 발화된 언어를 식별하고 해당 언어에 해당하는 토큰을 사용해 시작을 나타낸 후 번역 혹은 음성인식 등을 알려주는 토큰이 따라오게 만들어 Task를 지정하는 방식으로 모델링했다고 합니다.
특히 오디오 데이터는 텍스트 데이터와 구조가 달라서 오디오 데이터를 텍스트로 변환할 때 텍스트 Context를 더 길게 범위를 설정해서 해석을 할 수 있도록 했다고 합니다. 이 과정에서 타임스탬프를 활용해 발화를 예측하기도 했는데 타임스탬프의 시간은 Whisper 모델 기본 시간에 맞추어 20밀리초 단위로 정규화되고 타임스탬프로 예측하는 동안 각 캡션의 텍스트 전후로 시작시간과 종료시간 토큰이 등장할 것이라고 예측하면서 학습한다고 합니다.
4) Training Details
모델 규모에 따른 특성을 파악하기 위해 다음의 표와 같이 다양한 크기의 Whisper 모델을 학습시켰습니다. 과적합 방지를 위해서 데이터 증강이나 전처리 등의 방법에 신경을 많이 쓰기보다는 대규모 데이터를 사용해 일반화 능력과 강건함을 좀 더 신경썼습니다.
특이하게도 모델 초기 개발 단계에서 발화자의 이름을 예측하려고 하는 현상을 발견했다고 합니다. 초기 데이터에서 발화 중 이름이 포함된 경우가 많았던 영향이겠죠. 그래서 파인튜닝 단계를 거쳐 이름을 예측하려는 현상을 제거했다고 합니다.
[3] Experiments
1) Data Processing
Whisper의 주요 목표는 특정 데이터셋에 대한 Fine Tuning 단계가 없이도 높은 품질의 성능을 보장하는 Robust한 STT 모델을 개발하는 것입니다. 이를 위해 다양한 STT 데이터셋을 사용해 Zero Shot 성능을 평가했습니다. 위 그래프는 Zero Shot Whisper 모델이 인간의 강건성에 얼마나 근접하는지 혹은 능가하는지에 대한 성능을 보여줍니다. 특히 Supervised LibriSpeech Dataset에서 인간을 월등히 앞서는 성능을 보여주었고 나머지 Dataset에서는 인간과 비슷한 퍼포먼스를 보여주는 결과가 도출되었습니다.
2) Evaluation Metric의 발전
전통적인 STT 모델에서의 음성인식 평가는 단어 오류율(WER)을 사용하여 수행됩니다. 그러나 WER은 문자열 간 거리를 기반으로 해 모델이 출력한 텍스트와 기존 텍스트 사이의 모든 차이에 대해서 평가합니다. 따라서 인간이 판단했을 때 잘 된 음성인식 결과도 WER 수치는 높을 수 있는 것이죠.
이러한 문제를 해결하기 위해 WER을 계산하기 전 따로 개발한 텍스트 정규화 도구를 사용한다고 합니다. 그래서 이 텍스트 정규화 도구를 Github에 업로드했다고 해서 봤는데 사실 어떤 부분을 얘기하는 건지 모르겠어서.. 일단 Github 사이트를 첨부하도록 하겠습니다.
3) Translation
Whisper 모델의 번역 능력을 평가하기 위해 CoVoST2 데이터셋의 X→en 부분을 사용하여 성능을 측정했습니다. Maestro, mSLAM, XLS-R과 같은 이전의 가장 높은 성능을 보인 작업들과 비교했을 때, Whisper 모델은 29.1 BLEU 점수로 새로운 최고 기록을 달성했습니다. 이는 CoVoST2 훈련 데이터를 전혀 사용하지 않은 제로샷 상태에서 이루어진 것입니다. 이러한 성과는 사전 훈련 데이터셋에서의 68,000시간의 X→en 번역 데이터 덕분인데, 이는 비록 잡음이 많지만 CoVoST2의 861시간보다 훨씬 많은 양입니다.
특히, Whisper는 자원이 가장 적은 언어 그룹에서 뛰어난 성능을 보여, mSLAM을 6.7 BLEU 점수로 앞질렀습니다. 그러나 가장 자원이 풍부한 언어에서는 평균적으로 Maestro 및 mSLAM의 성능을 개선하지 못했습니다.
[4] Analysis and Ablations
- 모델 크기 확장
- Whisper 모델은 다양한 크기로 훈련되어, 모델 크기가 커질수록 성능이 향상되는 경향을 보였습니다. 다만, 영어 음성 인식에서는 모델 크기가 커짐에 따라 성능 향상이 둔화되는 현상이 관찰되었습니다. 이는 인간 수준의 성능에 가까워짐에 따라 나타나는 포화 효과일 수 있습니다.
- 데이터셋 크기와 성능의 관계
- Whisper 모델은 680,000시간 이상의 라벨이 있는 오디오 데이터로 훈련되었습니다. 실험 결과, 데이터셋 크기가 클수록 성능이 크게 향상되었으나, 54,000시간 이상의 데이터셋에서는 성능 향상이 다소 둔화되는 경향이 있었습니다. 특히 영어 음성 인식에서 이와 같은 포화 현상이 두드러졌으며, 이는 데이터셋 크기와 성능의 관계에 있어 일정 수준 이상의 데이터셋 크기에서 추가적인 성능 향상에 한계가 있을 수 있음을 시사합니다.
- 다중 작업 및 다국어 학습
- Whisper 모델은 영어뿐만 아니라 다수의 언어와 작업에 대해 훈련되었습니다. 초반에는 여러 작업과 언어를 동시에 학습하는 것이 음성 인식 성능에 부정적인 영향을 미쳤으나, 모델 크기와 학습량이 증가함에 따라 긍정적인 전이 효과가 나타나면서 단일 작업 모델을 능가하는 성능을 보였습니다. 이는 다중 작업 및 다국어 학습이 모델의 확장성과 일반화 능력을 향상시킬 수 있음을 보여줍니다.
- 텍스트 정규화
- Whisper 모델은 텍스트 정규화 없이 원시 텍스트를 예측하도록 훈련되었습니다. 이로 인해 별도의 텍스트 정규화 단계 없이 자연스러운 전사(transcription)를 생성할 수 있습니다. 텍스트 정규화 절차는 훈련 데이터의 텍스트를 단순화하고, 예측된 텍스트와 실제 텍스트 간의 차이를 최소화하여 Word Error Rate(WER)를 줄이는 데 중점을 두었습니다.
- 장문 음성인식 전략
- Whisper 모델은 30초의 오디오 청크로 훈련되었으며, 장문의 오디오를 연속적으로 전사하기 위한 전략을 개발했습니다. 이를 위해 빔 서치와 온도 조절, 음성 활동 감지를 기반으로 예측 정확도를 높였습니다. 특히, 장문 전사에서 중요한 것은 각 오디오 청크 간의 타임스탬프 예측 정확도이며, 이를 통해 모델의 30초 오디오 컨텍스트 윈도우를 정확하게 이동시키는 것이 중요합니다. 장문 전사에서 발생할 수 있는 오류를 최소화하기 위해 다양한 휴리스틱 기법이 도입되었습니다.
[5] Limitations
- 디코딩 전략의 개선 필요성
- Whisper 모델이 확장됨에 따라 유사한 발음을 혼동하는 등의 인식 관련 오류는 꾸준히 줄어들었습니다. 그러나 특히 장기적인 전사에서 발생하는 많은 오류는 고질적이며 비인간적인 특성을 보입니다. 이러한 오류는 시퀀스 투 시퀀스 모델, 언어 모델, 그리고 텍스트-오디오 정렬 문제의 결합으로 인해 발생하며, 반복 루프에 빠지거나 오디오 세그먼트의 처음이나 마지막 몇 단어를 전사하지 못하거나, 실제 오디오와 전혀 관련 없는 내용을 출력하는 경우가 있습니다. 이러한 오류를 줄이기 위해서는 고품질의 지도 학습 데이터셋을 사용한 파인 튜닝 또는 강화 학습을 통한 디코딩 성능 최적화가 필요할 것으로 보입니다.
- 저자원 언어에 대한 훈련 데이터 증가 필요성
- Whisper의 음성 인식 성능은 많은 언어에서 여전히 부족합니다. 분석 결과, 특정 언어의 성능은 해당 언어의 훈련 데이터 양에 의해 잘 예측된다는 점에서, 저자원 언어에 대한 데이터 양을 증가시키는 것이 평균적인 음성 인식 성능을 크게 향상시킬 수 있는 방법임을 시사합니다.
- 파인 튜닝 연구 필요성
- 본 연구에서는 음성 처리 시스템의 견고성을 중점으로 연구하여 Whisper의 제로샷 전이 성능만을 분석했습니다. 그러나 고품질의 지도 학습 데이터가 존재하는 도메인에서는 파인 튜닝을 통해 성능을 더욱 향상시킬 수 있을 것입니다. 또한 파인 튜닝을 연구하면 이전 연구와의 직접적인 비교가 가능해집니다.
- 언어 모델이 견고성에 미치는 영향 연구 필요성
- Whisper의 견고성이 강력한 디코더(오디오 조건부 언어 모델) 덕분이라고 추측됩니다. Whisper의 성능 향상이 인코더, 디코더, 또는 둘 모두의 훈련으로부터 비롯된 것인지에 대한 명확한 이해가 필요합니다.
- 보조 훈련 목표 추가 필요성
- Whisper는 최근의 최첨단 음성 인식 시스템들과 달리 비지도 학습이나 자기 학습 방법을 사용하지 않았습니다. 이러한 방법을 도입하면 결과를 더욱 개선할 수 있을 가능성이 있습니다.
[6] Conclusions
- 연구의 주요 발견
- Whisper 연구는 대규모 약지도 사전 학습(weakly supervised pre-training)이 음성 인식 연구에서 아직 충분히 주목받지 못했음을 강조합니다. Whisper 모델은 기존의 음성 인식 연구에서 주로 사용되던 자기 지도(self-supervision)와 자기 훈련(self-training) 기법 없이도 탁월한 성과를 달성할 수 있음을 입증했습니다.
- 대규모 감독 학습의 중요성
- 본 연구에서는 단순히 대규모의 다양한 감독 학습 데이터셋을 사용하여 훈련함으로써, 음성 인식 시스템의 강건성을 크게 향상시킬 수 있음을 보여주었습니다.
- 제로샷 전이(Zero-shot Transfer)의 효과
- Whisper는 특정 데이터셋에 대한 미세 조정(fine-tuning) 없이도 높은 품질의 결과를 달성할 수 있는 제로샷 전이 성능을 통해, 음성 인식 시스템이 다양한 환경에서 신뢰성 있게 작동할 수 있음을 보여주었습니다.
- 기존 방법론과의 차별성
- 기존의 대규모 음성 인식 작업에서 주요 방법론으로 사용되던 기술들 없이도, 단순히 대규모 감독 학습과 제로샷 전이 방식을 통해 더 강력한 음성 인식 시스템을 구축할 수 있음을 입증함으로써, Whisper 연구는 기존 접근법에 대한 대안적인 방법론을 제시했습니다.
[7] References
Chat GPT
https://arxiv.org/abs/2212.04356
https://github.com/openai/whisper
https://velog.io/@nothh/openAI-Whisper-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0
https://nongnongai.tistory.com/34
'논문리뷰' 카테고리의 다른 글
[논문리뷰] Flamingo 논문 리뷰 (0) | 2024.08.22 |
---|---|
[논문리뷰] mPLUG 논문 리뷰 (0) | 2024.08.18 |
[논문리뷰] CoCa 논문 리뷰 (0) | 2024.08.06 |
[논문리뷰] SimVLM 논문 리뷰 (0) | 2024.08.01 |
[논문리뷰] FILIP 논문 리뷰 (5) | 2024.07.23 |
[논문리뷰] ALBEF 논문 리뷰 (2) | 2024.07.17 |
[논문리뷰] T5 논문 리뷰 (0) | 2024.07.15 |
[논문리뷰] CLIP 논문 리뷰 (0) | 2024.07.10 |