Wav2Vec2 실전 사용 — 파이프라인과 파인튜닝
Wav2Vec2 실전 사용
Wav2Vec2를 바로 써보려면 Hugging Face Transformers의 모델을 from_pretrained로 불러오면 돼요. facebook/wav2vec2-base는 16kHz로 샘플링된 음성으로 사전학습된 기본 모델이에요. 입력 음성도 반드시 16kHz로 맞춰야 해요.
모델 바로 로드
facebook/wav2vec2-base는 오디오만으로 사전학습됐기 때문에 토크나이저가 없어요. 음성 인식에 쓰려면 토크나이저를 만들고 라벨 텍스트로 파인튜닝해야 해요.
from transformers import AutoProcessor, AutoModelForPreTraining
processor = AutoProcessor.from_pretrained("facebook/wav2vec2-base")
model = AutoModelForPreTraining.from_pretrained("facebook/wav2vec2-base", device_map="auto")
Flash Attention 2로 로드
반정밀(torch.float16)과 함께 사용하면 메모리를 줄이고 추론을 빠르게 해요.
from transformers import Wav2Vec2Model
model = Wav2Vec2Model.from_pretrained(
"facebook/wav2vec2-large-960h-lv60-self",
attn_implementation="flash_attention_2",
device_map="auto",
)
파인튜닝 방향
파인튜닝은 Hugging Face 블로그에 잘 정리돼 있어요. 전사된 라벨 데이터를 준비하고 Wav2Vec2ForCTC에 CTC 손실로 학습하는 방식이에요. 다중 언어 파인튜닝을 원하면 XLS-R 계열을 쓰는 것도 방법이에요.
평가 지표
Librispeech clean/other 테스트 기준으로, 오디오만 사전학습한 facebook/wav2vec2-large-960h-lv60-self 계열은 파인튜닝으로 1.8/3.3 WER을 달성해요.