Wav2Vec2 아키텍처와 설정
Wav2Vec2 아키텍처와 설정
Wav2Vec2를 실제로 다루려면 Wav2Vec2Config가 어떤 구조를 정의하는지 아는 게 도움이 돼요. 음성 파형을 받아들이는 모델답게, conv 피처 인코더와 Transformer 컨텍스트 네트워크가 함께 구성돼요.
출처: https://huggingface.co/docs/transformers/model_doc/wav2vec2
주요 설정값 (기본)
- vocab_size:
32 - hidden_size:
768 - num_hidden_layers:
12 - num_attention_heads:
12 - intermediate_size:
3072 - hidden_act:
'gelu' - hidden_dropout / attention_dropout:
0.1 - conv_dim:
(512, 512, 512, 512, 512, 512, 512) - conv_stride:
(5, 2, 2, 2, 2, 2, 2) - conv_kernel:
(10, 3, 3, 3, 3, 2, 2) - num_conv_pos_embeddings:
128 - num_codevectors_per_group:
320 - num_codevector_groups:
2 - mask_time_prob:
0.05 - mask_time_length:
10 - contrastive_logits_temperature:
0.1 - num_negatives:
100
사용 팁
- Wav2Vec2는 음성 신호의 **원시 파형(로우 파형, float 배열)**을 받아요.
- CTC(connectionist temporal classification)로 학습됐기 때문에, 모델 출력은 **
Wav2Vec2CTCTokenizer**로 디코딩해야 해요. - Flash Attention 2를 쓰려면
pip install -U flash-attn --no-build-isolation로 설치하고,from_pretrained(..., attn_implementation="flash_attention_2")를 넘기면 돼요.
프로세서
Wav2Vec2Processor는 피처 추출기(Wav2Vec2FeatureExtractor)와 토크나이저(Wav2Vec2CTCTokenizer)를 하나로 묶어줘요. processor(audio=..., text=...)처럼 호출하고, 오디오는 (C, T) 모양의 NumPy 배열이나 PyTorch 텐서로 넣으면 돼요.