Transformers documentation

Wav2Vec2-Conformer

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

이 모델은 2020-10-11에 HF papers에 게시되었으며, 2022-05-17에 Hugging Face Transformers에 기여되었습니다.

SDPA

Wav2Vec2-Conformer

개요

Wav2Vec2-Conformer는 Changhan Wang, Yun Tang, Xutai Ma, Anne Wu, Sravya Popuri, Dmytro Okhonko, Juan Pino가 작성한 fairseq S2T: Fast Speech-to-Text Modeling with fairseq의 업데이트된 버전에 추가되었습니다.

모델의 공식 결과는 논문의 Table 3과 Table 4에서 확인할 수 있습니다.

Wav2Vec2-Conformer 가중치는 Meta AI 팀이 Fairseq 라이브러리 내에서 공개했습니다.

이 모델은 patrickvonplaten이(가) 기여했습니다. 원본 코드는 여기에서 찾을 수 있습니다.

참고: Meta(FAIR)는 Wav2Vec2-BERT 2.0의 새로운 버전을 출시했습니다. 450만 시간의 오디오로 사전 학습되었습니다. 이 가이드와 같은 fine-tuning 작업에 사용하시는 것을 특히 권장합니다.

사용 팁

  • Wav2Vec2-Conformer는 Wav2Vec2와 동일한 아키텍처를 따르지만, Conformer: Convolution-augmented Transformer for Speech Recognition에서 소개된 Conformer 블록으로 Attention 블록을 대체합니다.
  • 레이어 수가 동일한 경우, Wav2Vec2-Conformer는 Wav2Vec2보다 더 많은 매개변수를 필요로 하지만, 동시에 단어 오류율(word error rate)이 개선됩니다.
  • Wav2Vec2-Conformer는 Wav2Vec2와 동일한 tokenizer와 feature extractor를 사용합니다.
  • Wav2Vec2-Conformer는 config.position_embeddings_type를 올바르게 설정하여 상대 위치 임베딩을 사용하지 않거나, Transformer-XL 스타일의 위치 임베딩, 또는 회전 위치 임베딩을 사용할 수 있습니다.

리소스

Wav2Vec2ConformerConfig

클래스 transformers.Wav2Vec2ConformerConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int | None = Nonehidden_size: int = 768num_hidden_layers: int = 12num_attention_heads: int = 12intermediate_size: int = 3072hidden_act: str = 'gelu'hidden_dropout: float | int = 0.1activation_dropout: float | int = 0.1attention_dropout: float | int = 0.1feat_proj_dropout: float | int = 0.0feat_quantizer_dropout: float | int = 0.0final_dropout: float | int = 0.1layerdrop: float | int = 0.1initializer_range: float = 0.02layer_norm_eps: float = 1e-05feat_extract_norm: str = 'group'feat_extract_activation: str = 'gelu'conv_dim: list[int] | tuple[int, ...] = (512, 512, 512, 512, 512, 512, 512)conv_stride: list[int] | tuple[int, ...] = (5, 2, 2, 2, 2, 2, 2)conv_kernel: list[int] | tuple[int, ...] = (10, 3, 3, 3, 3, 2, 2)conv_bias: bool = Falsenum_conv_pos_embeddings: int = 128num_conv_pos_embedding_groups: int = 16apply_spec_augment: bool = Truemask_time_prob: float | int = 0.05mask_time_length: int = 10mask_time_min_masks: int = 2mask_feature_prob: float | int = 0.0mask_feature_length: int = 10mask_feature_min_masks: int = 0num_codevectors_per_group: int = 320num_codevector_groups: int = 2contrastive_logits_temperature: float = 0.1num_negatives: int = 100codevector_dim: int = 256proj_codevector_dim: int = 256diversity_loss_weight: float = 0.1ctc_loss_reduction: str = 'sum'ctc_zero_infinity: bool = Falseuse_weighted_layer_sum: bool = Falseclassifier_proj_size: int = 256tdnn_dim: list[int] | tuple[int, ...] = (512, 512, 512, 512, 1500)tdnn_kernel: list[int] | tuple[int, ...] = (5, 3, 3, 1, 1)tdnn_dilation: list[int] | tuple[int, ...] = (1, 2, 3, 1, 1)xvector_output_dim: int = 512pad_token_id: int | None = 0bos_token_id: int | None = 1eos_token_id: int | list[int] | None = 2add_adapter: bool = Falseadapter_kernel_size: int = 3adapter_stride: int = 2num_adapter_layers: int = 3output_hidden_size: int | None = Noneposition_embeddings_type: str | None = 'relative'rotary_embedding_base: int = 10000max_source_positions: int = 5000conv_depthwise_kernel_size: int = 31conformer_conv_dropout: float | int = 0.1 )

매개변수

  • vocab_size (int, 선택 사항) — 모델의 어휘 크기입니다. input_ids로 표현할 수 있는 서로 다른 토큰의 수를 정의합니다.
  • hidden_size (int, 선택 사항, 기본값 768) — 숨겨진 표현의 차원입니다.
  • num_hidden_layers (int, 선택 사항, 기본값 12) — Transformer 디코더의 숨겨진 레이어 수.
  • num_attention_heads (int, 선택 사항, 기본값 12) — Transformer decoder의 각 attention layer에 사용할 attention head의 수입니다.
  • intermediate_size (int, 선택 사항, 기본값 3072) — MLP 표현의 차원입니다.
  • hidden_act (str, 선택 사항, 기본값 gelu) — 디코더에서 사용되는 비선형 활성화 함수(함수 또는 문자열)입니다. 예를 들어, "gelu", "relu", "silu" 등이 있습니다.
  • hidden_dropout (Union[float, int], 선택 사항, 기본값 0.1) — 임베딩, 인코더, 풀러의 모든 완전 연결 계층에 적용되는 dropout 확률입니다.
  • activation_dropout (Union[float, int], 선택 사항, 기본값 0.1) — 완전 연결 레이어 내부 활성화에 적용할 dropout 비율입니다.
  • attention_dropout (Union[float, int], 선택 사항, 기본값 0.1) — Attention 확률에 적용할 dropout 비율입니다.
  • feat_proj_dropout (float, 선택 사항, 기본값 0.0) — 피처 인코더 출력의 dropout 확률입니다.
  • feat_quantizer_dropout (float, 선택 사항, 기본값 0.0) — quantizer에서 사용하는 feature encoder 출력의 dropout 확률입니다.
  • final_dropout (float, 선택 사항, 기본값 0.1) — Wav2Vec2ConformerForCTC의 최종 투영 레이어에 적용할 dropout 확률입니다.
  • layerdrop (Union[float, int], 선택 사항, 기본값 0.1) — LayerDrop 확률입니다. 자세한 내용은 [LayerDrop 논문](https://huggingface.co/papers/1909.11556 참조)을 참고하세요.
  • initializer_range (float, 선택 사항, 기본값 0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다.
  • layer_norm_eps (float, 선택 사항, 기본값 1e-05) — 레이어 정규화 레이어에서 사용되는 epsilon 값입니다.
  • feat_extract_norm (str, 선택 사항, 기본값 "group") — feature encoder의 1D convolutional layer에 적용할 norm입니다. 첫 번째 1D convolutional layer에만 group normalization을 적용하려면 "group", 모든 1D convolutional layer에 layer normalization을 적용하려면 "layer"를 사용합니다.
  • feat_extract_activation (str, optional, defaults to “gelu”) -- The non-linear activation function (function or string) in the 1D convolutional layers of the feature extractor. If string, “gelu”, “relu”, “selu”and“gelu_new”` are supported.
  • conv_dim (tuple[int] 또는 list[int], 선택 사항, 기본값 (512, 512, 512, 512, 512, 512, 512)) — feature encoder의 각 1D convolutional layer의 입력 및 출력 채널 수를 정의하는 정수 튜플입니다. conv_dim의 길이는 1D convolutional layer의 개수를 정의합니다.
  • conv_stride (tuple[int] 또는 list[int], 선택 사항, 기본값 (5, 2, 2, 2, 2, 2, 2)) — 피처 인코더의 각 1D 컨볼루션 레이어의 스트라이드를 정의하는 정수 튜플입니다. conv_stride의 길이는 컨볼루션 레이어의 수를 정의하며, conv_dim의 길이와 일치해야 합니다.
  • conv_kernel (tuple[int] 또는 list[int], 선택 사항, 기본값 (10, 3, 3, 3, 3, 3, 3)) — 피처 인코더의 각 1D 컨볼루션 레이어의 커널 크기를 정의하는 정수 튜플입니다. conv_kernel의 길이는 컨볼루션 레이어의 수를 정의하며, conv_dim의 길이와 일치해야 합니다.
  • conv_bias (bool, 선택 사항, 기본값 False) — 1D 컨볼루션 레이어에 bias가 있는지 여부.
  • num_conv_pos_embeddings (int, 선택 사항, 기본값 128) — 컨볼루션 위치 임베딩의 개수입니다. 1차원 컨볼루션 위치 임베딩 레이어의 커널 크기를 정의합니다.
  • num_conv_pos_embedding_groups (int, 선택 사항, 기본값 16) — 1D 합성곱 위치 임베딩 레이어의 그룹 수.
  • apply_spec_augment (bool, 선택 사항, 기본값 True) — feature encoder의 출력에 SpecAugment 데이터 증강을 적용할지 여부. 참고로 SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition를 확인하세요.
  • mask_time_prob (float, optional, defaults to 0.05) — Percentage (between 0 and 1) of all feature vectors along the time axis which will be masked. The masking procedure generates ”mask_time_problen(time_axis)/mask_time_length” independent masks over the axis. If reasoning from the probability of each feature vector to be chosen as the start of the vector span to be masked, mask_time_prob should be `prob_vector_startmask_time_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant if apply_spec_augment is True`.
  • mask_time_length (int, 선택 사항, 기본값 10) — 시간 축을 따라 벡터가 확장되는 길이.
  • mask_time_min_masks (int, 선택 사항, 기본값 2), — mask_feature_prob와 무관하게, 시간축의 각 시간 단계에서 mask_feature_length 길이의 최소 마스크 수입니다. "mask_time_prob*len(time_axis)/mask_time_length < mask_time_min_masks"인 경우에만 관련이 있습니다.
  • mask_feature_prob (float, optional, defaults to 0.0) — Percentage (between 0 and 1) of all feature vectors along the feature axis which will be masked. The masking procedure generates ”mask_feature_problen(feature_axis)/mask_time_length” independent masks over the axis. If reasoning from the probability of each feature vector to be chosen as the start of the vector span to be masked, mask_feature_prob should be `prob_vector_startmask_feature_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant if apply_spec_augment is True`.
  • mask_feature_prob (Union[float, int], 선택 사항, 기본값 0.0) — feature 축을 따라 마스킹될 모든 feature 벡터의 비율(0에서 1 사이). 마스킹 절차는 해당 축에 대해 mask_feature_prob*len(feature_axis)/mask_time_length개의 독립적인 마스크를 생성합니다. 각 feature 벡터가 마스킹될 벡터 스팬의 시작점으로 선택될 확률로부터 추론한다면, mask_feature_prob는 prob_vector_start*mask_feature_length여야 합니다. 겹침(overlap)으로 인해 실제 마스킹된 벡터의 비율이 감소할 수 있습니다. 이는 apply_spec_augment가 True인 경우에만 관련이 있습니다.
  • mask_feature_length (int, 선택 사항, 기본값 10) — feature 축을 따라 벡터가 확장되는 길이입니다.
  • mask_feature_min_masks (int, 선택 사항, 기본값 0), — mask_feature_prob와 무관하게, 각 시간 단계마다 feature 축을 따라 생성되는 mask_feature_length 길이의 mask의 최소 개수입니다. “mask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks”인 경우에만 관련이 있습니다.
  • num_codevectors_per_group (int, 선택 사항, 기본값 320) — 각 양자화 코드북(그룹)의 항목 수입니다.
  • num_codevectors_per_group (int, 선택 사항, 기본값 320) — 각 양자화 코드북(그룹)의 항목 수입니다.
  • num_codevector_groups (int, 선택 사항, 기본값 2) — product codevector quantization에 사용할 codevector 그룹의 수입니다.
  • contrastive_logits_temperature (float, 선택 사항, 기본값 0.1) — contrastive loss에서 사용되는 temperature kappa입니다.
  • num_negatives (int, 선택 사항, 기본값 100) — 대조적 손실(contrastive loss)에 사용할 음의 샘플(negative sample) 수입니다.
  • codevector_dim (int, 선택 사항, 기본값 256) — 양자화된 특징 벡터의 차원입니다.
  • proj_codevector_dim (int, 선택 사항, 기본값 256) — 양자화된 특징과 transformer 특징 모두의 최종 투영 차원입니다.
  • diversity_loss_weight (int, 선택 사항, 기본값 0.1) — 코드북 다양성 손실 구성 요소의 가중치입니다.
  • ctc_loss_reduction (str, 선택 사항, 기본값 sum) — torch.nn.CTCLoss의 출력에 적용할 reduction 방식을 지정합니다. 학습 시에만 관련이 있습니다.
  • ctc_zero_infinity (bool, 선택 사항, 기본값 False) — torch.nn.CTCLoss의 무한 손실과 관련 그래디언트를 0으로 설정할지 여부입니다. 무한 손실은 주로 입력이 대상과 정렬될 수 없을 정도로 너무 짧을 때 발생합니다. Wav2Vec2ConformerForCTC 인스턴스를 학습하는 경우에만 관련이 있습니다.
  • use_weighted_layer_sum (bool, 선택 사항, 기본값 False) — 학습된 가중치를 사용하여 레이어 출력의 가중 평균을 사용할지 여부입니다. Wav2Vec2ConformerForSequenceClassification 인스턴스를 사용할 때만 관련이 있습니다.
  • classifier_proj_size (int, 선택 사항, 기본값 256) — 분류를 위한 토큰 평균 풀링 전에 투영되는 차원.
  • tdnn_dim (tuple[int] 또는 list[int], 선택 사항, 기본값 (512, 512, 512, 512, 1500)) — XVector 모델의 TDNN 모듈에서 각 1D 컨볼루션 레이어의 출력 채널 수를 정의하는 정수 튜플입니다. tdnn_dim의 길이는 TDNN 레이어의 수를 정의합니다.
  • tdnn_kernel (tuple[int] 또는 list[int], 선택 사항, 기본값 (5, 3, 3, 1, 1)) — XVector 모델의 TDNN 모듈에서 각 1D 합성곱 레이어의 커널 크기를 정의하는 정수 튜플입니다. tdnn_kernel의 길이는 tdnn_dim의 길이와 일치해야 합니다.
  • tdnn_dilation (tuple[int] 또는 list[int], 선택 사항, 기본값 (1, 2, 3, 1, 1)) — XVector 모델의 TDNN 모듈에서 각 1D 합성곱 계층의 dilation factor를 정의하는 정수 튜플입니다. tdnn_dilation의 길이는 tdnn_dim의 길이와 일치해야 합니다.
  • xvector_output_dim (int, 선택 사항, 기본값 512) — XVector 임베딩 벡터의 차원.
  • pad_token_id (int, 선택 사항, 기본값 0) — 어휘에서 패딩에 사용되는 토큰 ID입니다.
  • bos_token_id (int, 선택 사항, 기본값 1) — 어휘에서 스트림 시작에 사용되는 토큰 ID입니다.
  • eos_token_id (Union[int, list[int]], 선택 사항, 기본값 2) — 어휘에서 스트림 종료에 사용되는 토큰 ID입니다.
  • add_adapter (bool, 선택 사항, 기본값 False) — Wav2Vec2Conformer Encoder 위에 합성곱 신경망을 쌓을지 여부입니다. SpeechEncoderDecoder 모델에서 Wav2Vec2Conformer를 워밍 스타트할 때 매우 유용할 수 있습니다.
  • adapter_kernel_size (int, 선택 사항, 기본값 3) — 어댑터 네트워크의 합성곱 계층의 커널 크기입니다. add_adapter is True인 경우에만 관련이 있습니다.
  • adapter_stride (int, 선택 사항, 기본값 2) — 어댑터 네트워크의 합성곱 계층 스트라이드입니다. add_adapter is True인 경우에만 관련이 있습니다.
  • num_adapter_layers (int, 선택, 기본값 3) — 어댑터 네트워크에서 사용할 컨볼루션 레이어의 수입니다. add_adapter is True인 경우에만 관련이 있습니다.
  • output_hidden_size (int, 선택) — 인코더 출력 레이어의 차원입니다. 정의되지 않은 경우 기본값은 hidden-size입니다. add_adapter is True일 때만 관련이 있습니다.
  • position_embeddings_type (str, 선택 사항, 기본값 "relative") — 상대 위치 임베딩과 로터리 위치 임베딩을 각각 지정하려면 relative 또는 rotary로 설정할 수 있습니다. None으로 두면 상대 위치 임베딩이 적용되지 않습니다.
  • rotary_embedding_base (int, 선택 사항, 기본값 10000) — "rotary" 위치 임베딩을 사용하는 경우, 임베딩 베이스의 크기를 정의합니다.
  • max_source_positions (int, 선택 사항, 기본값 5000) — "relative" 위치 임베딩을 사용하는 경우, 최대 소스 입력 위치를 정의합니다.
  • conv_depthwise_kernel_size (int, 선택 사항, 기본값 31) — Conformer 블록의 convolutional depthwise 1D 레이어의 kernel size입니다.
  • conformer_conv_dropout (float, 선택 사항, 기본값 0.1) — Conformer 블록의 모든 합성곱 계층에 적용할 dropout 확률입니다.

이것은 Wav2Vec2 ConformerModel의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Wav2Vec2 Conformer 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 facebook/wav2vec2-conformer-rel-pos-large와 유사한 설정이 생성됩니다.

Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.

예:

>>> from transformers import Wav2Vec2ConformerConfig, Wav2Vec2ConformerModel

>>> # Initializing a Wav2Vec2Conformer facebook/wav2vec2-conformer-rel-pos-large style configuration
>>> configuration = Wav2Vec2ConformerConfig()

>>> # Initializing a model (with random weights) from the facebook/wav2vec2-conformer-rel-pos-large style configuration
>>> model = Wav2Vec2ConformerModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

Wav2Vec2Conformer 고유 출력

class transformers.models.wav2vec2_conformer.modeling_wav2vec2_conformer.Wav2Vec2ConformerForPreTrainingOutput

< >

( loss: typing.Optional[torch.Tensor] = Noneprojected_states: typing.Optional[torch.Tensor] = Noneprojected_quantized_states: typing.Optional[torch.Tensor] = Nonecodevector_perplexity: typing.Optional[torch.Tensor] = Nonehidden_states: tuple[torch.Tensor] | None = Noneattentions: tuple[torch.Tensor] | None = Nonecontrastive_loss: typing.Optional[torch.Tensor] = Nonediversity_loss: typing.Optional[torch.Tensor] = None )

매개변수

  • loss (*optional*, sample_negative_indices가 전달될 때 반환됨, (1,) 형태의 torch.Tensor) — 공식 논문에 명시된 대비 손실(L_m)과 다양성 손실(L_d)의 합으로 계산된 총 손실.
  • projected_states (torch.Tensor, shape (batch_size, sequence_length, config.proj_codevector_dim)) — 마스크된 projected quantized states를 예측하는 데 사용할 수 있는, config.proj_codevector_dim으로 투영된 모델의 hidden-states입니다.
  • projected_quantized_states (torch.Tensor, shape (batch_size, sequence_length, config.proj_codevector_dim)) — 대조적 손실(contrastive loss)의 양(positive) 대상 벡터를 나타내는, 추출된 특징 벡터를 양자화한 뒤 config.proj_codevector_dim 차원으로 투영한 값입니다.
  • codevector_perplexity (torch.Tensor, shape (1,)) — 코드북의 다양성을 측정하는 데 사용되는 코드벡터 분포의 퍼플렉시티입니다.
  • hidden_states (tuple[torch.Tensor], 선택 사항, 다음 조건에서 반환됩니다: output_hidden_states=True 이 전달되거나 config.output_hidden_states=True) — 다음 형태의 튜플: torch.Tensor (임베딩이 있는 경우 임베딩 레이어의 출력 1개 + 각 레이어의 출력 1개)로, 형태는 (batch_size, sequence_length, hidden_size).

    각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.

  • attentions (tuple[torch.Tensor], 선택 사항, 다음 조건에서 반환됩니다: output_attentions=True 이 전달되거나 config.output_attentions=True) — 다음의 튜플입니다: torch.Tensor (각 레이어당 하나씩, 모양이 (batch_size, num_heads, sequence_length, sequence_length).

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

  • contrastive_loss (*optional*, sample_negative_indices가 전달된 경우 반환됨, shape가 (1,)인 torch.Tensor) — 공식 논문에 명시된 contrastive loss(L_m)입니다.
  • diversity_loss (*optional*, returned when sample_negative_indices are passed, torch.Tensor of shape (1,)) — The diversity loss (L_d) as stated in the official paper.

Wav2Vec2ConformerForPreTraining의 출력 유형으로, 잠재적으로 hidden states와 attentions를 포함합니다.

Wav2Vec2ConformerModel

class transformers.Wav2Vec2ConformerModel

< >

( config: Wav2Vec2ConformerConfig )

매개변수

  • config (Wav2Vec2ConformerConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

특정 헤드가 위에 없는 상태에서 원시 hidden-states를 출력하는 기본 Wav2Vec2 Conformer Model입니다.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonemask_time_indices: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Wav2Vec2BaseModelOutput or tuple(torch.Tensor)

매개변수

  • input_values (torch.Tensor of shape (batch_size, sequence_length), optional) — 입력 원시 음성 파형의 부동 소수점 값. .flac 또는 .wav 오디오 파일을 list[float], numpy.ndarray 또는 torch.Tensor 타입의 배열로 로드하여 값을 얻을 수 있습니다. 예를 들어 torchcodec 라이브러리(pip install torchcodec) 또는 soundfile 라이브러리(pip install soundfile)를 통해 수행할 수 있습니다. input_values 배열을 준비하려면 패딩 및 torch.Tensor 타입의 텐서 변환을 위해 AutoProcessor를 사용해야 합니다. 자세한 내용은 Wav2Vec2Processor.call()를 참조하세요.
  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • mask_time_indices (torch.BoolTensor, shape (batch_size, sequence_length), 선택 사항) — contrastive loss를 위해 추출된 features를 mask할 인덱스입니다. training mode일 때, 모델은 config.proj_codevector_dim 공간에서 mask된 추출 features를 예측하도록 학습합니다.

반환값

Wav2Vec2BaseModelOutput 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 Wav2Vec2BaseModelOutput (return_dict=False가 전달되었거나 config.return_dict=False인 경우). 구성(Wav2Vec2ConformerConfig)과 입력에 따라 다양한 요소를 포함합니다.

Wav2Vec2ConformerModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • last_hidden_state (torch.Tensor, shape (batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.

  • extract_features (torch.Tensor, shape (batch_size, sequence_length, conv_dim[-1])) — 모델의 마지막 컨볼루션 계층에서 추출된 특징 벡터의 시퀀스.

  • hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True가 전달되거나 config.output_hidden_states=True인 경우 반환됨) — 임베딩의 출력 하나와 각 레이어의 출력 하나씩을 포함하는 torch.Tensor의 튜플로, shape는 (batch_size, sequence_length, hidden_size)입니다.

    각 레이어의 출력에서 모델의 Hidden-states와 초기 임베딩 출력을 더한 값.

  • attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

Wav2Vec2ConformerForCTC

class transformers.Wav2Vec2ConformerForCTC

< >

( config: Wav2Vec2ConformerConfigtarget_lang: str | None = None )

매개변수

  • config (Wav2Vec2ConformerConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
  • target_lang (str, 선택 사항) — 어댑터 가중치의 언어 ID입니다. 어댑터 가중치는 adapter..safetensors 또는 adapter..bin 형식으로 저장됩니다. 어댑터를 사용하는 UniSpeechSatForCTC 인스턴스를 사용할 때만 관련이 있습니다. 기본값은 ‘eng’입니다.

Connectionist Temporal Classification(CTC)을 위해 language modeling 헤드를 최상단에 갖춘 Wav2Vec2Conformer 모델입니다.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutput or tuple(torch.Tensor)

매개변수

  • input_values (torch.Tensor of shape (batch_size, sequence_length), optional) — 입력 원시 음성 파형의 부동 소수점 값. .flac 또는 .wav 오디오 파일을 list[float], numpy.ndarray 또는 torch.Tensor 타입의 배열로 로드하여 값을 얻을 수 있습니다. 예를 들어 torchcodec 라이브러리(pip install torchcodec) 또는 soundfile 라이브러리(pip install soundfile)를 통해 수행할 수 있습니다. input_values 배열을 준비하려면 패딩 및 torch.Tensor 타입의 텐서 변환을 위해 AutoProcessor를 사용해야 합니다. 자세한 내용은 Wav2Vec2Processor.call()를 참조하세요.
  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • labels (torch.LongTensor, shape (batch_size, target_length), 선택 사항) — Connectionist temporal classification에 사용할 라벨입니다. target_length은 출력 logits의 시퀀스 길이보다 작거나 같아야 합니다. 인덱스는 [-100, 0, ..., config.vocab_size - 1] 범위에서 선택됩니다. -100으로 설정된 모든 라벨은 무시(마스크)되며, 손실은 [0, ..., config.vocab_size - 1] 범위의 라벨에 대해서만 계산됩니다.

반환값

CausalLMOutput 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 CausalLMOutput입니다. return_dict=False가 전달되었거나 config.return_dict=False인 경우에도 동일합니다. 구성(Wav2Vec2ConformerConfig)과 입력에 따라 다양한 요소를 포함합니다.

Wav2Vec2ConformerForCTC의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (torch.Tensor, shape (1,), 선택 사항, labels이 제공될 때 반환됨) — 언어 모델링 손실(다음 토큰 예측용).

  • logits (torch.Tensor, shape (batch_size, sequence_length, config.vocab_size)) — 언어 모델링 헤드에서 생성된 예측 점수(SoftMax 적용 전 각 어휘 토큰에 대한 점수).

  • hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True가 전달되거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은 (batch_size, sequence_length, hidden_size)입니다.

    각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.

  • attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

예:

>>> from transformers import AutoProcessor, Wav2Vec2ConformerForCTC
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> processor = AutoProcessor.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")
>>> model = Wav2Vec2ConformerForCTC.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")

>>> # audio file is decoded on the fly
>>> inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> with torch.no_grad():
...     logits = model(**inputs).logits
>>> predicted_ids = torch.argmax(logits, dim=-1)

>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids)
>>> transcription[0]
...

>>> inputs["labels"] = processor(text=dataset[0]["text"], return_tensors="pt").input_ids

>>> # compute loss
>>> loss = model(**inputs).loss
>>> round(loss.item(), 2)
...

Wav2Vec2ConformerForSequenceClassification

class transformers.Wav2Vec2ConformerForSequenceClassification

< >

( config: Wav2Vec2ConformerConfig )

매개변수

  • config (Wav2Vec2ConformerConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

SUPERB Keyword Spotting와 같은 작업을 위해, 풀링된 출력 위에 선형 레이어를 적용한 시퀀스 분류 헤드를 갖춘 Wav2Vec2Conformer 모델

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SequenceClassifierOutput or tuple(torch.Tensor)

매개변수

  • input_values (torch.Tensor, shape (batch_size, sequence_length)) — 입력 원시 음성 파형의 Float 값입니다. .flac 또는 .wav 오디오 파일을 list[float] 타입의 배열, numpy.ndarray 또는 torch.Tensor로 로드하여 값을 얻을 수 있습니다. 예를 들어 torchcodec 라이브러리(pip install torchcodec) 또는 soundfile 라이브러리(pip install soundfile)를 사용할 수 있습니다. 배열을 input_values로 준비하려면 패딩 및 torch.Tensor 타입의 텐서 변환을 위해 AutoProcessor를 사용해야 합니다. 자세한 내용은 Wav2Vec2ConformerProcessor.__call__를 참조하세요.
  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • labels (torch.LongTensor, shape (batch_size,), 선택 사항) — 시퀀스 분류/회귀 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [0, ..., config.num_labels - 1] 범위에 있어야 합니다. config.num_labels == 1인 경우 회귀 손실(Mean-Square loss)이 계산되고, config.num_labels > 1인 경우 분류 손실(Cross-Entropy)이 계산됩니다.

반환값

SequenceClassifierOutput 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 SequenceClassifierOutput입니다. return_dict=False가 전달되거나 config.return_dict=False인 경우, 구성(Wav2Vec2ConformerConfig)과 입력에 따라 다양한 요소를 포함합니다.

Wav2Vec2ConformerForSequenceClassification의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (torch.Tensor, shape (1,), 선택 사항, labels이 제공될 때 반환됨) — 분류 (또는 config.num_labels==1인 경우 회귀) 손실.

  • logits (torch.Tensor, shape (batch_size, config.num_labels)) — SoftMax 적용 전 분류(또는 config.num_labels==1인 경우 회귀) 점수.

  • hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True가 전달되거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은 (batch_size, sequence_length, hidden_size)입니다.

    각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.

  • attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

단일 레이블 분류의 예시:

>>> import torch
>>> from transformers import AutoTokenizer, Wav2Vec2ConformerForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")
>>> model = Wav2Vec2ConformerForSequenceClassification.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_id = logits.argmax().item()
>>> model.config.id2label[predicted_class_id]
...

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = Wav2Vec2ConformerForSequenceClassification.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large", num_labels=num_labels)

>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...

다중 레이블 분류의 예시:

>>> import torch
>>> from transformers import AutoTokenizer, Wav2Vec2ConformerForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")
>>> model = Wav2Vec2ConformerForSequenceClassification.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large", problem_type="multi_label_classification")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_ids = torch.arange(0, logits.shape[-1])[torch.sigmoid(logits).squeeze(dim=0) > 0.5]

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = Wav2Vec2ConformerForSequenceClassification.from_pretrained(
...     "facebook/wav2vec2-conformer-rel-pos-large", num_labels=num_labels, problem_type="multi_label_classification"
... )

>>> labels = torch.sum(
...     torch.nn.functional.one_hot(predicted_class_ids[None, :].clone(), num_classes=num_labels), dim=1
... ).to(torch.float)
>>> loss = model(**inputs, labels=labels).loss

Wav2Vec2ConformerForAudioFrameClassification

class transformers.Wav2Vec2ConformerForAudioFrameClassification

< >

( config: Wav2Vec2ConformerConfig )

매개변수

  • config (Wav2Vec2ConformerConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

Speaker Diarization과 같은 작업을 위해 프레임 분류 헤드가 위에 있는 Wav2Vec2 Conformer 모델입니다.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → TokenClassifierOutput or tuple(torch.Tensor)

매개변수

  • input_values (torch.Tensor, shape (batch_size, sequence_length)) — 입력 원시 음성 파형의 Float 값. .flac 또는 .wav 오디오 파일을 list[float] 타입의 배열, numpy.ndarray 또는 torch.Tensor로 로드하여 값을 얻을 수 있습니다. 예를 들어 torchcodec 라이브러리(pip install torchcodec) 또는 soundfile 라이브러리(pip install soundfile)를 사용할 수 있습니다. 배열을 input_values로 준비하려면 패딩 및 torch.Tensor 타입의 텐서 변환을 위해 AutoProcessor를 사용해야 합니다. 자세한 내용은 Wav2Vec2ConformerProcessor.__call__를 참조하세요.
  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • labels (torch.LongTensor, shape (batch_size,), 선택 사항) — 시퀀스 분류/회귀 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [0, ..., config.num_labels - 1] 범위에 있어야 합니다. config.num_labels == 1인 경우 회귀 손실(Mean-Square loss)이 계산되고, config.num_labels > 1인 경우 분류 손실(Cross-Entropy)이 계산됩니다.

반환값

TokenClassifierOutput 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 TokenClassifierOutput입니다. return_dict=False가 전달되었거나 config.return_dict=False인 경우, 구성(Wav2Vec2ConformerConfig)과 입력에 따라 다양한 요소를 포함합니다.

Wav2Vec2ConformerForAudioFrameClassification의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (torch.Tensor, shape (1,), 선택 사항, labels이 제공될 때 반환됨) — 분류 손실.

  • logits (torch.Tensor, shape (batch_size, sequence_length, config.num_labels)) — SoftMax 적용 전 분류 점수.

  • hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True가 전달되거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은 (batch_size, sequence_length, hidden_size)입니다.

    각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.

  • attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

예:

>>> from transformers import AutoFeatureExtractor, Wav2Vec2ConformerForAudioFrameClassification
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")
>>> model = Wav2Vec2ConformerForAudioFrameClassification.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")

>>> # audio file is decoded on the fly
>>> inputs = feature_extractor(dataset[0]["audio"]["array"], return_tensors="pt", sampling_rate=sampling_rate)
>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> probabilities = torch.sigmoid(logits[0])
>>> # labels is a one-hot array of shape (num_frames, num_speakers)
>>> labels = (probabilities > 0.5).long()
>>> labels[0].tolist()
...

Wav2Vec2ConformerForXVector

class transformers.Wav2Vec2ConformerForXVector

< >

( config: Wav2Vec2ConformerConfig )

매개변수

  • config (Wav2Vec2ConformerConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

Wav2Vec2Conformer 모델은 Speaker Verification와 같은 작업을 위해 상단에 XVector 특징 추출 헤드를 갖춘 모델입니다.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → XVectorOutput or tuple(torch.Tensor)

매개변수

  • input_values (torch.Tensor, shape (batch_size, sequence_length)) — 입력 원시 음성 파형의 Float 값. .flac 또는 .wav 오디오 파일을 list[float] 타입의 배열, numpy.ndarray 또는 torch.Tensor로 로드하여 값을 얻을 수 있습니다. 예를 들어 torchcodec 라이브러리(pip install torchcodec) 또는 soundfile 라이브러리(pip install soundfile)를 사용할 수 있습니다. 배열을 input_values로 준비하려면 패딩 및 torch.Tensor 타입의 텐서 변환을 위해 AutoProcessor를 사용해야 합니다. 자세한 내용은 Wav2Vec2ConformerProcessor.__call__를 참조하세요.
  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • labels (torch.LongTensor, shape (batch_size,), 선택 사항) — 시퀀스 분류/회귀 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [0, ..., config.num_labels - 1] 범위에 있어야 합니다. config.num_labels == 1인 경우 회귀 손실(Mean-Square loss)이 계산되고, config.num_labels > 1인 경우 분류 손실(Cross-Entropy)이 계산됩니다.

반환값

XVectorOutput 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 XVectorOutput입니다. return_dict=False가 전달되었거나 config.return_dict=False인 경우, 구성(Wav2Vec2ConformerConfig)과 입력에 따라 다양한 요소로 구성됩니다.

Wav2Vec2ConformerForXVector의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (torch.Tensor, shape (1,), 선택 사항, labels이 제공될 때 반환됨) — 분류 손실.

  • logits (torch.Tensor, shape (batch_size, config.xvector_output_dim)) — AMSoftmax 적용 전 분류 hidden states.

  • 임베딩 (torch.Tensor, shape (batch_size, config.xvector_output_dim)) — 벡터 유사도 기반 검색에 사용되는 발화 임베딩입니다.

  • hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True가 전달되거나 config.output_hidden_states=True인 경우 반환됨) — 임베딩의 출력 하나와 각 레이어의 출력 하나씩을 포함하는 torch.Tensor의 튜플로, shape는 (batch_size, sequence_length, hidden_size)입니다.

    각 레이어의 출력에서 모델의 Hidden-states와 초기 임베딩 출력을 더한 값.

  • attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

예:

>>> from transformers import AutoFeatureExtractor, Wav2Vec2ConformerForXVector
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")
>>> model = Wav2Vec2ConformerForXVector.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")

>>> # audio file is decoded on the fly
>>> inputs = feature_extractor(
...     [d["array"] for d in dataset[:2]["audio"]], sampling_rate=sampling_rate, return_tensors="pt", padding=True
... )
>>> with torch.no_grad():
...     embeddings = model(**inputs).embeddings

>>> embeddings = torch.nn.functional.normalize(embeddings, dim=-1).cpu()

>>> # the resulting embeddings can be used for cosine similarity-based retrieval
>>> cosine_sim = torch.nn.CosineSimilarity(dim=-1)
>>> similarity = cosine_sim(embeddings[0], embeddings[1])
>>> threshold = 0.7  # the optimal threshold is dataset-dependent
>>> if similarity < threshold:
...     print("Speakers are not the same!")
>>> round(similarity.item(), 2)
...

Wav2Vec2ConformerForPreTraining

class transformers.Wav2Vec2ConformerForPreTraining

< >

( config: Wav2Vec2ConformerConfig )

매개변수

  • config (Wav2Vec2ConformerConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

양자화기와 VQ 헤드가 위에 있는 Wav2Vec2Conformer 모델입니다.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonemask_time_indices: typing.Optional[torch.BoolTensor] = Nonesampled_negative_indices: typing.Optional[torch.BoolTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Wav2Vec2ConformerForPreTrainingOutput or tuple(torch.Tensor)

매개변수

  • input_values (torch.Tensor of shape (batch_size, sequence_length), optional) — 입력 원시 음성 파형의 부동 소수점 값. .flac 또는 .wav 오디오 파일을 list[float], numpy.ndarray 또는 torch.Tensor 타입의 배열로 로드하여 값을 얻을 수 있습니다. 예를 들어 torchcodec 라이브러리(pip install torchcodec) 또는 soundfile 라이브러리(pip install soundfile)를 통해 수행할 수 있습니다. input_values 배열을 준비하려면 패딩 및 torch.Tensor 타입의 텐서 변환을 위해 AutoProcessor를 사용해야 합니다. 자세한 내용은 Wav2Vec2Processor.call()를 참조하세요.
  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • mask_time_indices (torch.BoolTensor, shape (batch_size, sequence_length), 선택 사항) — contrastive loss를 위해 추출된 features를 mask할 인덱스입니다. training mode일 때, 모델은 config.proj_codevector_dim 공간에서 mask된 추출 features를 예측하도록 학습합니다.
  • sampled_negative_indices (torch.BoolTensor, shape (batch_size, sequence_length, num_negatives), 선택 사항) — contrastive loss에서 negative sampled vector로 사용되는 양자화 대상 벡터를 나타내는 인덱스입니다. pre-training에 필요한 입력입니다.

반환값

Wav2Vec2ConformerForPreTrainingOutput 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 Wav2Vec2ConformerForPreTrainingOutput입니다. return_dict=False가 전달되거나 config.return_dict=False인 경우, 구성(Wav2Vec2ConformerConfig)과 입력에 따라 다양한 요소를 포함합니다.

Wav2Vec2ConformerForPreTraining의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (*optional*, sample_negative_indices가 전달될 때 반환됨, (1,) 형태의 torch.Tensor) — 공식 논문에 명시된 대로, 대조적 손실(L_m)과 다양성 손실(L_d)의 합으로 계산된 총 손실.

  • projected_states (torch.Tensor, shape (batch_size, sequence_length, config.proj_codevector_dim)) — config.proj_codevector_dim 차원으로 투영된 모델의 hidden-states. 이를 사용하여 masked projected quantized states를 예측할 수 있습니다.

  • projected_quantized_states (torch.Tensor, shape (batch_size, sequence_length, config.proj_codevector_dim)) — contrastive loss의 양(positive) 대상 벡터를 나타내는, 추출된 특징 벡터를 양자화한 뒤 config.proj_codevector_dim으로 투영한 값.

  • codevector_perplexity (torch.Tensor, shape (1,)) — codevector 분포의 perplexity로, codebook의 다양성을 측정하는 데 사용됩니다.

  • hidden_states (tuple[torch.Tensor], 선택 사항, output_hidden_states=True가 전달되거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은 (batch_size, sequence_length, hidden_size)입니다.

    각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.

  • attentions (tuple[torch.Tensor], 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

  • contrastive_loss (*optional*, sample_negative_indices가 전달될 때 반환됨, (1,) 형태의 torch.Tensor) — 공식 논문에 명시된 대비 손실(L_m).

  • diversity_loss (*optional*, sample_negative_indices가 전달될 때 반환됨, (1,) 형태의 torch.Tensor) — 공식 논문에 명시된 다양성 손실(L_d).

예:

>>> import torch
>>> from transformers import AutoFeatureExtractor, Wav2Vec2ConformerForPreTraining
>>> from transformers.models.wav2vec2_conformer.modeling_wav2vec2_conformer import _compute_mask_indices, _sample_negative_indices
>>> from datasets import load_dataset

>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2_conformer-base")
>>> model = Wav2Vec2ConformerForPreTraining.from_pretrained("facebook/wav2vec2_conformer-base")

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> input_values = feature_extractor(ds[0]["audio"]["array"], return_tensors="pt").input_values  # Batch size 1

>>> # compute masked indices
>>> batch_size, raw_sequence_length = input_values.shape
>>> sequence_length = model._get_feat_extract_output_lengths(raw_sequence_length).item()
>>> mask_time_indices = _compute_mask_indices(
...     shape=(batch_size, sequence_length), mask_prob=0.2, mask_length=2
... )
>>> sampled_negative_indices = _sample_negative_indices(
...     features_shape=(batch_size, sequence_length),
...     num_negatives=model.config.num_negatives,
...     mask_time_indices=mask_time_indices,
... )
>>> mask_time_indices = torch.tensor(data=mask_time_indices, device=input_values.device, dtype=torch.long)
>>> sampled_negative_indices = torch.tensor(
...     data=sampled_negative_indices, device=input_values.device, dtype=torch.long
... )

>>> with torch.no_grad():
...     outputs = model(input_values, mask_time_indices=mask_time_indices)

>>> # compute cosine similarity between predicted (=projected_states) and target (=projected_quantized_states)
>>> cosine_sim = torch.cosine_similarity(outputs.projected_states, outputs.projected_quantized_states, dim=-1)

>>> # show that cosine similarity is much higher than random
>>> cosine_sim[mask_time_indices.to(torch.bool)].mean() > 0.5
tensor(True)

>>> # for contrastive loss training model should be put into train mode
>>> model = model.train()
>>> loss = model(
...     input_values, mask_time_indices=mask_time_indices, sampled_negative_indices=sampled_negative_indices
... ).loss
Update on GitHub