안녕하세요, 오늘은 따끈하게 나온 Meta의 논문 - Scaling Speech Technology to 1,000+ Languages를 리뷰해볼까 합니다.
프로젝트 이름은 Massively Multilingual Speech (MMS)라고 합니다. 이걸 모델 이름으로 불러도 될지...
아무튼 1,100개 이상의 언어에 대해 음성 전사(Speech-to-text (STT), Transcription)와 음성 생성(Text-to-speech), 그리고 언어 파파악(Identification)을 수행할 수 있는 엄청난 모델을 개발했다고 합니다.
(참고로 제가 이 분야에 대해 자세하게는 몰라 블로그의 내용을 위주로 다뤘습니다)
Introduction
이 세상에는 7,000개가 넘는 언어가 있음에도 여태 연구개발된 음성 모델은 많아봐야 고작 100개 정도의 언어를 커버할 수 있었습니다. 너무 안타깝지 않나요? 수많은 비주류 언어들이 다뤄지지 못하고 사라질 위기에 직면해있습니다. 그래서 이번 연구에서는 정말 많은 언어를 이해할 수 있는 모델을 만들고자 했습니다.
결론적으로 MMS 모델은 무려 4,017가지의 언어를 이해하도록 학습되었습니다.
- Languages: 총 4,017가지
- Labeled 데이터셋: 1,107가지 언어 (성경 낭독 데이터)
- Unlabeled 데이터셋: 3,809가지 언어
- Base model: wav2vec 2.0
Approach
그럼 이 논문에서는 어떤 방법을 채택했을까요?
Collecting Dataset
데이터셋이 가장 중요하기 때문에 Approach는 데이터셋 내용이 위주가 됩니다.
위에서 언급했듯이 정말 소수가 사용하는 언어에 대해서는 번역하기도, 자료를 구하는 것도 어렵습니다.
그래서 성경을 선택했는데요, 약 1,100가지의 각 언어를 사용하는 여러 사람들이 녹음을 하며 데이터셋을 구축했습니다. 그렇게 해서 언어당 평균 32시간 분량의 음원을 구할 수 있었습니다. (언어가 1100 * 32 = 약 35000시간)
그리고 두가지 우려했던 내용과 그 결과를 정리하면
- 남자 목소리가 많지만 막상 학습해보니 여자 목소리도 잘 이해했음
- 성경을 주로 학습해서 그쪽으로 bias가 심하게 되지 않을까 걱정했지만 기우였음
- 이것은 CTC(Connectionist Temporal Classification)를 사용했기 때문에 LLM이나 Seq2Seq에 비해 더 제약이 많아서 해결할 수 있었다고 추정하는데, 그 원리는 아직 모르겠습니다. (혹시 아는 분이 계신다면 댓글로 알려주시면 감사하겠습니다)
참고: CTC 설명
- 이것은 CTC(Connectionist Temporal Classification)를 사용했기 때문에 LLM이나 Seq2Seq에 비해 더 제약이 많아서 해결할 수 있었다고 추정하는데, 그 원리는 아직 모르겠습니다. (혹시 아는 분이 계신다면 댓글로 알려주시면 감사하겠습니다)
Preprocessing
음성은 전처리가 매우 중요합니다. 왜냐하면 텍스트와 음성 신호의 align이 정확히 이루어지기 어렵기 때문입니다. 그래서
- Preprocess: 음원은 16kHz 샘플링 / 텍스트는 NFKC Normalization (NFKC 참고 자료)
- Forced alignment: Scalable Alignment Algorithm을 통해 긴 길이의 오디오와 텍스트를 align
- Initial alignment: 127가지 언어 데이터로 Initial Alignment Model 학습 → 학습된 모델로 align 수행
- Improved alignment: 위의 과정으로 align된 데이터로 두번째 모델을 학습 → 이번엔 1,130개 언어를 커버
- Final data filtering: Cross validation 과정을 통해 퀄리티 낮은 데이터를 제거. 각 언어에 대해 절반의 데이터는 단일 언어 ASR을 학습하는데, 나머지 절반은 transcribe를 수행합니다.
- Partitioning: 이제 전처리는 다 끝났고 모든 데이터를 모아 학습 / 검증 / 테스트로 나눔
학습된 모델과 알고리즘은 PyTorch (TorchAudio)를 통해 공개했다고 합니다.
Results
모델 평가는 CMU Wilderness, ASR-2K, FLEURS와 같은 데이터셋을 통해 진행했습니다. 결과는 어떨까요?
논문에는 좀 더 자세한 내용과 고찰들이 있습니다. 하지만 제가 음성 분야는 자세하게 몰라 아마 관심 있으신 분들은 직접 읽어보시면 훨씬 좋을 것 같습니다.
아래는 몇십가지 언어에 대한 성능 테이블입니다. 보시면 Whisper 대비 성능이 올라간 언어도, 낮아진 언어도 있습니다. 각 언어의 특징을 이해하고 Whisper와 MMS가 어떤 점이 다르게 학습됐는지 파악하신다면 재미있을 것 같습니다.
Conclusions
그래서 이 연구는 우리에게 어떤 의의를 남겼을까요? 저자들의 의견과 제 개인적인 생각을 나열해보면,
- 처음으로 1,000가지 이상의 언어 음성을 학습한 모델이다
- Self-supervised Learning 덕이 정말 컸다 (wave2vec 2.0)
- 더 많은 언어와, 각 언어의 방언(사투리)까지 다루고 싶다
- 세상에는 7,000가지 이상의 언어가 있는데 우리는 아직 멀었다
- 사투리도 할 줄 알아야 진정한 언어 모델이 아닐까
- 아직 할 게 많이 남았다 - 번역, 키워드 찾기, 의도 파악 등이 있을 수 있다
- 아무래도 많은 언어를 다루다보니 Whisper보다 영어나 한국어 성능이 저조함을 알 수 있다
- 소중한 우리 한국말...
'기술 이야기 > 논문 리뷰' 카테고리의 다른 글
SwiGLU Activation Function 설명 (0) | 2023.07.21 |
---|---|
Self-Supervised Learning from Images with a Joint-Embedding Predictive Architecture (I-JEPA) 논문 리뷰 (3) | 2023.06.19 |
[논문 리뷰] IMAGEBIND: One Embedding Space To Bind Them All (2) | 2023.05.11 |
[논문 리뷰] Track Anything Models(TAM) 리뷰 (2) | 2023.05.05 |
[논문 리뷰] DINOv2: Learning Robust Visual Features without Supervision 설명 (5) | 2023.04.21 |
댓글