Spoken-LM : SALMONN
안녕하십니까! 이번에 살펴 볼 논문은 SALMONN: TOWARDS GENERIC HEARING ABILI- TIES FOR LARGE LANGUAGE MODELS 입니다. 지난번의 QWEN Audio와 공통점과 차이점에 대해서 확인해보시면 더욱 재미있을 것 같습니다. 1. 모델 아키텍처 SALMONN은 오디오와 텍스트 토큰을 입력으로 받아 텍스트 토큰을 생성해내는 모델입니다. 구조는 크게 오디오 인코더들, 오디오 인코더의 아웃풋을 오디오 토큰으로 변환해주는 Q-Former, 토큰 시퀀스를 입력으로 받아, 텍스트 토큰을 출력해주는 Sequence model (vicuna 사용) 이를 효율적으로 학습할 수 있게 해주는 LoRA 어댑터 입니다. 학습 과정에서 다른 부분들은 학습하지 않고 Q-Former, LoRA 만 학습하기 때문에 전체 모델 파라미터의 0.24%정도만 학습을 하면 됩니다. 1-1. 오디오 인코더 음성인식기로 학습된 Whisper V2 모델의 encoder와 소리(음성 뿐 아니라 사운드에 대한 전반적인)를 토큰으로 변환해주는 Beats를 합쳐서 오디오를 인코딩해줍니다. whisper가 음성인식 task에 대하여 포커싱을 두어 학습되었기 때문에 비음성에 대한 모델링은 미흡할것이라는 점을 Beats의 인코더로 보완을 하여 동일한 크기로 sub-sampling 되기 때문에 각 인코더의 아웃풋을 이어붙여서 사용할 수 있었습니다. 1-2. Q-Former 이렇게 추출된 오디오 임베딩을 Q-Former를 통해 오디오 토큰으로 변환되게 됩니다. Q-former는 트랜스포머 구조를 하고 있는데, Query Vector의 후보를 만들어두고, 이를 인풋 Key,Value 벡터들과 cross-attention을 하여 인풋을 효율적으로 압축할 수 있도록 하는 모델입니다. 1-3. Vicuna, LoRA SALMONN에서 백으로 사용한 Vicuna는 Meta의 LLAMA를 멀티턴 대화를 더 잘 처리할 수 있도록 finetuning한 모델입니다. SALMONN에서는 13B, 7B의 vicuna 모델을 사용합니다. LoRA는 이미 학습된 모델을 특정 태스크에 대해 빠르게 파인튜닝을 할 수 있도록 하는 기법입니다. 왼쪽 그림과 같이 dk 크기의 행렬에 대한 파라미터를 학습하는 대신 dr, r*k 두개 행렬의 파라미터를 학습하도록 합니다. 2. 학습 방법 학습은 Pre-training Stage, Instruction Tuning Stage, Activation Tuning Stage의 3단계를 거칩니다. 위에서 언급된 것 처럼 3 단계 모두 Q-former와 LoRA만 학습됩니다. 2.1 Pre-training pre-training stage에서는 Q-former, LoRA가 학습이 되어 기초적인 멀티모달 정렬 능력을 안정적으로 학습시키는 단계입니다. 음성인식, 오디오 캡셔닝 데이터셋을 이용 해당 태스크를 수행하도록 합니다. 이 task들은 복잡한 추론 능력이 필요 없는 단순한 작업입니다. 2.2 Instruction Tuning 다양한 12종의 task에 대해서 prompt를 넣어 prompt에 반응할 수 있도록 학습하는 단계입니다. 즉, "오디오 + 프롬프트 → 적절한 답" 형태의 범용 멀티모달 LLM 로 만들기 위한 훈련입니다. 2.3 Activation Tuning 위의 두 학습만으로는 LLM이 ASR등 결정론적인 응답에 강하게 정렬되어 일반화 능력이 감소하는 문제가 발생합니다. 즉, LLM 이 알고있는것과 말하는 것 사이의 간극이 발생하는데, 이를 해소하는 작업을 Activation Tuning으로 해결하려 합니다. 3. 실험
- NeN