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 텐서로 넣으면 돼요.

더 알아보기