Transformers documentation

UniSpeech-SAT

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

このモデルは2021年10月12日にHF papersで公開され、2021年10月26日にHugging Face Transformersに貢献されました。

UniSpeech-SAT

FlashAttention SDPA

概要

UniSpeech-SATモデルは、Sanyuan Chen、Yu Wu、Chengyi Wang、Zhengyang Chen、Zhuo Chen、Shujie Liu、Jian Wu、Yao Qian、Furu Wei、Jinyu Li、Xiangzhan Yu による UniSpeech-SAT: Universal Speech Representation Learning with Speaker Aware Pre-Training で提案されました。

論文の抄録は以下の通りです。

自己教師あり学習(SSL)は、大規模なラベルなしデータを活用し、膨大な人手によるラベリングを回避できるため、音声処理における長年の目標です。近年、音声認識への自己教師あり学習の適用において大きな成功が報告されていますが、話者特性のモデリングへのSSLの適用については、試みは限定的でした。本論文では、話者表現学習のための既存のSSLフレームワークの改善を目的とします。教師なし話者情報の抽出を強化するために2つの手法を導入します。第一に、現在のSSLフレームワークにマルチタスク学習を適用し、発話単位の対比損失をSSLの目的関数に統合します。第二に、より良い話者識別のために、データ拡張としての発話混合戦略を提案します。この戦略では、追加の重なり合う発話を教師なしで生成し、学習中に組み込みます。提案した手法をHuBERTフレームワークに統合しました。SUPERBベンチマークでの実験結果により、提案したシステムは汎用表現学習において最先端の性能を達成することが示され、特に話者識別に焦点を当てたタスクでその優位性が確認されました。各提案手法の有効性を検証するアブレーションスタディも実施しました。最後に、学習データセットを94,000時間の公開音声データに拡大し、SUPERBのすべてのタスクでさらなる性能向上を達成しました。

このモデルは patrickvonplaten によって提供されました。著者のコードは こちら で確認できます。

使用のコツ

  • UniSpeechSatは、音声信号の生波形に対応するfloat配列を受け取る音声モデルです。 特徴量抽出にはWav2Vec2Processorを使用してください。
  • UniSpeechSatモデルは、connectionist temporal classification (CTC)を用いてファインチューニングできます。そのため、モデルの出力はWav2Vec2CTCTokenizerを使用してデコードする必要があります。
  • UniSpeechSatは、話者認証、話者識別、話者分離のタスクにおいて特に優れた性能を発揮します。

リソース

UniSpeechSatConfig

class transformers.UniSpeechSatConfig

< >

( 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 = 32hidden_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 = 16do_stable_layer_norm: bool = Falseapply_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 = 'mean'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 = 0bos_token_id: int = 1eos_token_id: int = 2num_clusters: int = 504 )

パラメータ

  • vocab_size (int、任意、デフォルトは 32) — モデルの語彙サイズ。input_ids で表現できるトークンの種類数を定義します。
  • hidden_size (int、任意、デフォルトは 768) — 隠れ表現の次元数。
  • num_hidden_layers (int、任意、デフォルトは 12) — Transformer デコーダーの隠れ層の数。
  • num_attention_heads (int、任意、デフォルトは12) — Transformerデコーダーの各アテンション層におけるアテンションヘッドの数。
  • intermediate_size (int、任意、デフォルトは3072) — MLP 表現の次元数。
  • hidden_act (str、任意、デフォルトは gelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、 "relu"、"silu" など。
  • hidden_dropout (Union[float, int]、省略可、デフォルトは 0.1) — embeddings、encoder、pooler 内のすべての全結合層における dropout 確率です。
  • activation_dropout (Union[float, int]、任意、デフォルトは 0.1) — 全結合層内の活性化の dropout 率です。
  • attention_dropout (Union[float, int]、任意、デフォルトは 0.1) — アテンション確率のドロップアウト率です。
  • feat_proj_dropout (float、任意、デフォルト値は 0.0) — 特徴量エンコーダーの出力に対する dropout 確率です。
  • feat_quantizer_dropout (float、任意、デフォルト値は 0.0) — 量子化器によって使用される特徴量エンコーダーの出力に対する dropout 確率です。
  • final_dropout (float、任意、デフォルト値は 0.1) — UniSpeechSatForCTCの最終投影層における 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") — 特徴量エンコーダー内の1次元畳み込み層に適用される正規化の種類。"group" は最初の1次元畳み込み層のみに対する group normalization、"layer" はすべての1次元畳み込み層に対する layer normalization を指定します。
  • 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)) — 特徴量エンコーダー内の各 1 次元畳み込み層の入力および出力チャネル数を定義する整数のタプルです。conv_dim の長さが、1 次元畳み込み層の数を定義します。
  • conv_stride (tuple[int] または list[int]、省略可能、デフォルトは (5, 2, 2, 2, 2, 2, 2)) — 特徴量エンコーダー内の各1次元畳み込み層のストライドを定義する整数のタプルです。conv_stride の長さが畳み込み層の数を定義し、conv_dim の長さと一致する必要があります。
  • conv_kernel (tuple[int] または list[int]、任意、デフォルトは (10, 3, 3, 3, 3, 2, 2)) — 特徴量エンコーダー内の各1次元畳み込み層のカーネルサイズを定義する整数のタプルです。conv_kernel の長さが畳み込み層の数を定義し、conv_dim の長さと一致する必要があります。
  • conv_bias (bool、任意、デフォルトはFalse) — 1次元畳み込み層にバイアスがあるかどうか。
  • num_conv_pos_embeddings (int、任意、デフォルト値は 128) — 畳み込み位置埋め込みの数。1 次元畳み込み位置埋め込みレイヤーのカーネルサイズを定義します。
  • num_conv_pos_embedding_groups (int、任意、デフォルト値は 16) — 1 次元畳み込み位置埋め込み層のグループ数。
  • do_stable_layer_norm (bool、省略可能、デフォルトはFalse) — Transformerエンコーダーにstableレイヤーノームアーキテクチャを適用するかどうか。do_stable_layer_norm is Trueはアテンション層の前にレイヤーノームを適用する場合に対応し、do_stable_layer_norm is Falseはアテンション層の後にレイヤーノームを適用する場合に対応します。
  • apply_spec_augment (bool、任意、デフォルトは True) — 特徴量エンコーダーの出力に 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_length のマスクの最小数です。各タイムステップにおいて、mask_feature_prob を問わず適用されます。”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_length (int、任意、デフォルト値は 10)— 特徴量軸に沿ったベクトル範囲の長さ。
  • mask_feature_min_masks (int、任意、デフォルト値は 0) — mask_feature_prob に関係なく、各タイムステップにおいて、特徴量軸に沿って生成される長さ mask_feature_length のマスクの最小数を指定します。”mask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks” の場合にのみ関連します。
  • num_codevectors_per_group (int、任意、デフォルト値は 320)— 各量子化コードブック(グループ)のエントリ数。
  • num_codevector_groups (int、任意、デフォルトは 2) — Product codevector quantization に使用する codevector グループの数。
  • contrastive_logits_temperature (float、任意、デフォルト値は 0.1) — 対比損失における温度パラメータ kappa です。
  • num_negatives (int、任意、デフォルト値は 100) — 対比損失に使用するネガティブサンプルの数。
  • codevector_dim (int、任意、デフォルトは 256) — 量子化された特徴量ベクトルの次元数です。
  • proj_codevector_dim (int、省略可、デフォルトは 256) — 量子化特徴量と Transformer 特徴量の両方の最終的な射影の次元数。
  • diversity_loss_weight (int、任意、デフォルトは 0.1)— コードブック多様性損失の重みです。
  • ctc_loss_reduction (str、省略可、デフォルトは mean) — torch.nn.CTCLoss の出力に適用する集約方法を指定します。学習時のみ関連します。
  • ctc_zero_infinity (bool、任意、デフォルトは False) — torch.nn.CTCLoss の無限損失および関連する勾配をゼロにするかどうか。無限損失は、入力がターゲットにアラインされるほど短すぎない場合に主に発生します。UniSpeechSatForCTC のインスタンスをトレーニングする場合にのみ関連します。
  • use_weighted_layer_sum (bool、任意、デフォルトはFalse) — 学習された重みを用いた層出力の加重平均を使用するかどうか。UniSpeechSatForSequenceClassificationのインスタンスを使用する場合にのみ関連します。
  • classifier_proj_size (int、任意、デフォルトは 256) — 分類のためのトークン平均プーリング前の射影の次元数。
  • tdnn_dim (tuple[int] または list[int]、任意、デフォルトは (512, 512, 512, 512, 1500)) — XVector モデルの TDNN モジュールにおける、各 1 次元畳み込み層の出力チャネル数を定義する整数のタプルです。tdnn_dim の長さが TDNN 層の数を定義します。
  • tdnn_kernel (tuple[int] または list[int]、省略可、デフォルトは (5, 3, 3, 1, 1)) — XVector モジュールの TDNN における、各 1 次元畳み込み層のカーネルサイズを定義する整数のタプルです。tdnn_kernel の長さは、tdnn_dim の長さと一致する必要があります。
  • tdnn_dilation (tuple[int] または list[int]、省略可能、デフォルトは (1, 2, 3, 1, 1)) — XVector モデルの TDNN モジュール内の各 1 次元畳み込み層のディレイション係数を定義する整数のタプルです。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 (int、任意、デフォルトは 2) — 語彙内でストリーム終了に使用されるトークン ID。
  • num_clusters (int、任意、デフォルト値は 504) — 弱ラベリングに使用するクラスタの数。UniSpeechSatForPreTraining のインスタンスを使用する場合にのみ関連します。

これは、Unispeech SatModel の設定を保存するための設定クラスです。指定された引数に基づいて Unispeech Sat モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、microsoft/unispeech-sat-base-100h-libri-ft と同様の設定が得られます。

設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。

例:

>>> from transformers import UniSpeechSatModel, UniSpeechSatConfig

>>> # Initializing a UniSpeechSat microsoft/unispeech-sat-base-100h-libri-ft style configuration
>>> configuration = UniSpeechSatConfig()

>>> # Initializing a model from the microsoft/unispeech-sat-base-100h-libri-ft style configuration
>>> model = UniSpeechSatModel(configuration)

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

UniSpeechSat固有の出力

class transformers.models.unispeech_sat.modeling_unispeech_sat.UniSpeechSatForPreTrainingOutput

< >

( loss: typing.Optional[torch.FloatTensor] = Nonelogits: typing.Optional[torch.FloatTensor] = Noneprojected_states: typing.Optional[torch.FloatTensor] = Noneprojected_quantized_states: typing.Optional[torch.FloatTensor] = Nonecodevector_perplexity: typing.Optional[torch.FloatTensor] = Nonehidden_states: tuple[torch.FloatTensor] | None = Noneattentions: tuple[torch.FloatTensor] | None = None )

パラメータ

  • loss (*optional*、モデルが train モードの場合に返されます、torch.FloatTensor、shape (1,)) — 公式論文に記載されている通り、対比損失 (L_m) と多様性損失 (L_d) の合計として計算される総損失です。
  • logits (torch.FloatTensor、形状 (batch_size, sequence_length, config.proj_codevector_dim)、任意) — 対比損失モデルの予測スコア、すなわち最終的な softmax 前のモデル出力です。
  • projected_states (torch.FloatTensor、shape (batch_size, sequence_length, config.proj_codevector_dim)) — (batch_size, sequence_length, config.proj_codevector_dim) の shape を持つ torch.FloatTensor 型。モデルの隠れ状態を config.proj_codevector_dim に射影したもので、マスクされた射影量子化状態の予測に使用できます。
  • projected_quantized_states (torch.FloatTensor、shape (batch_size, sequence_length, config.proj_codevector_dim)) — 対比損失における正のターゲットベクトルを表す、config.proj_codevector_dim に射影された量子化抽出特徴量ベクトルです。
  • codevector_perplexity (torch.FloatTensor、shape (1,)) — コードベクトル分布のパープレキシティ。コードブックの多様性を測定するために使用されます。
  • hidden_states (tuple[torch.FloatTensor], 省略可能, が返されるのは output_hidden_states=True が渡された場合、または config.output_hidden_states=True) — のタプル torch.FloatTensor ((埋め込み層を持つモデルの場合は埋め込みの出力用 1 つ + 各層の出力用 1 つ)で、形状は (batch_size, sequence_length, hidden_size).

    各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。

  • attentions (tuple[torch.FloatTensor], 省略可能, が返されるのは output_attentions=True が渡された場合、または config.output_attentions=True) — のタプル torch.FloatTensor (の形状を持つ、各レイヤーごとに1つの (batch_size, num_heads, sequence_length, sequence_length).

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

UniSpeechSatForPreTrainingOutput の出力型。潜在的な隠れ状態とアテンションを含む場合があります。

UniSpeechSatModel

class transformers.UniSpeechSatModel

< >

( config: UniSpeechSatConfig )

パラメータ

  • config (UniSpeechSatConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。

特定のヘッドを付加せず、生のhidden-statesを出力する、素のUnispeech Sat 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.FloatTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Wav2Vec2BaseModelOutput or tuple(torch.FloatTensor)

パラメータ

  • input_values (torch.Tensor、shape (batch_size, sequence_length)、任意) — 入力生の音声波形の浮動小数点数値。値は、.flac または .wav 形式のオーディオファイルを list[float]、numpy.ndarray、または torch.Tensor 型の配列として読み込むことで取得できます。例えば、torchcodec ライブラリ(pip install torchcodec)や soundfile ライブラリ(pip install soundfile)を通じて取得できます。 配列を input_values に整えるには、パディングと torch.FloatTensor 型への変換のために AutoProcessor を使用してください。詳細は Wav2Vec2Processor.call() を参照してください。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

    アテンションマスクとは?

  • mask_time_indices (torch.BoolTensor、shape (batch_size, sequence_length)、任意) — 対比損失のために抽出特徴をマスクするインデックスです。学習モードの場合、モデルは config.proj_codevector_dim 空間におけるマスクされた抽出特徴を予測するように学習します。

戻り値

Wav2Vec2BaseModelOutput または tuple(torch.FloatTensor)

torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)、または Wav2Vec2BaseModelOutput。設定(UniSpeechSatConfig)や入力に応じて、さまざまな要素で構成されます。

UniSpeechSatModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなくModuleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。

  • last_hidden_state (torch.FloatTensor、shape (batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。

  • extract_features (torch.FloatTensor、形状 (batch_size, sequence_length, conv_dim[-1])) — モデルの最後の畳み込み層から抽出された特徴ベクトルのシーケンス。

  • hidden_states (tuple(torch.FloatTensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返される) — torch.FloatTensor のタプル(embeddings の出力用 1 つ + 各レイヤーの出力用 1 つ)、shape は (batch_size, sequence_length, hidden_size)。

    各層の出力および初期埋め込み出力におけるモデルの隠れ状態。

  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

UniSpeechSatForCTC

class transformers.UniSpeechSatForCTC

< >

( config: UniSpeechSatConfigtarget_lang: str | None = None )

パラメータ

  • config (UniSpeechSatConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
  • target_lang (str, 任意) — アダプター重みの言語 ID。アダプター重みは adapter..safetensors または adapter..bin の形式で保存されます。UniSpeechSatForCTC のインスタンスをアダプターと併用する場合にのみ関連します。デフォルトでは ‘eng’ が使用されます。

Connectionist Temporal Classification (CTC) 用の language modeling ヘッドを上部に備えた UniSpeechSat モデル。

このモデルは 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.FloatTensor)

パラメータ

  • input_values (torch.Tensor、shape (batch_size, sequence_length)、任意) — 入力生の音声波形の浮動小数点数値。値は、.flac または .wav 形式のオーディオファイルを list[float]、numpy.ndarray、または torch.Tensor 型の配列として読み込むことで取得できます。例えば、torchcodec ライブラリ(pip install torchcodec)や soundfile ライブラリ(pip install soundfile)を通じて取得できます。 配列を input_values に整えるには、パディングと torch.FloatTensor 型への変換のために AutoProcessor を使用してください。詳細は Wav2Vec2Processor.call() を参照してください。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [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.FloatTensor)

torch.FloatTensor のタプル、または CausalLMOutput(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(UniSpeechSatConfig)や入力に応じて、さまざまな要素で構成されます。

UniSpeechSatForCTCのforwardメソッドは、__call__特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなくModuleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。

  • loss (torch.FloatTensor、shape (1,)、optional、labels が指定された場合に返されます) — 言語モデリングの損失(次のトークン予測用)。

  • logits (torch.FloatTensor、shape (batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。

  • hidden_states (tuple(torch.FloatTensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます)— torch.FloatTensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。

  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

例:

>>> from transformers import AutoProcessor, UniSpeechSatForCTC
>>> 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("microsoft/unispeech-sat-base-100h-libri-ft")
>>> model = UniSpeechSatForCTC.from_pretrained("microsoft/unispeech-sat-base-100h-libri-ft")

>>> # 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)
...

UniSpeechSatForSequenceClassification

class transformers.UniSpeechSatForSequenceClassification

< >

( config: UniSpeechSatConfig )

パラメータ

  • config (UniSpeechSatConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。

UniSpeechSat モデルは、プーリングされた出力の上にシーケンス分類ヘッド(線形層)を備えており、SUPERB Keyword Spotting のようなタスクに対応します。

このモデルは 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.FloatTensor)

パラメータ

  • input_values (torch.FloatTensor、shape (batch_size, sequence_length)) — 入力生の音声波形の浮動小数点値。値は、.flac または .wav 形式のオーディオファイルを読み込み、list[float]、numpy.ndarray、または torch.Tensor 型の配列に変換することで取得できます。例えば、torchcodec ライブラリ(pip install torchcodec)や soundfile ライブラリ(pip install soundfile)を通じて行います。 配列を input_values に整えるには、パディングと torch.FloatTensor 型への変換のために AutoProcessor を使用してください。詳細は UniSpeechSatProcessor.__call__ を参照してください。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

    アテンションマスクとは?

  • labels (torch.LongTensor、shape (batch_size,)、任意) — シーケンス分類/回帰の損失を計算するためのラベル。インデックスは [0, ..., config.num_labels - 1] の範囲である必要があります。config.num_labels == 1 の場合は回帰損失(平均二乗誤差)が計算され、config.num_labels > 1 の場合は分類損失(クロスエントロピー)が計算されます。

戻り値

SequenceClassifierOutput または tuple(torch.FloatTensor)

torch.FloatTensor のタプル、または SequenceClassifierOutput(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(UniSpeechSatConfig)や入力に応じて、さまざまな要素で構成されます。

UniSpeechSatForSequenceClassificationのforwardメソッドは、__call__特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなくModuleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。

  • loss (torch.FloatTensor、shape (1,)、optional、labels が指定された場合に返されます) — 分類損失(config.num_labels==1 の場合は回帰損失)。

  • logits (torch.FloatTensor、shape (batch_size, config.num_labels)) — SoftMax 適用前の分類スコア(config.num_labels==1 の場合は回帰スコア)。

  • hidden_states (tuple(torch.FloatTensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます)— torch.FloatTensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。

  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

単一ラベル分類の例:

>>> import torch
>>> from transformers import AutoTokenizer, UniSpeechSatForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("microsoft/unispeech-sat-base-100h-libri-ft")
>>> model = UniSpeechSatForSequenceClassification.from_pretrained("microsoft/unispeech-sat-base-100h-libri-ft")

>>> 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 = UniSpeechSatForSequenceClassification.from_pretrained("microsoft/unispeech-sat-base-100h-libri-ft", num_labels=num_labels)

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

マルチラベル分類の例:

>>> import torch
>>> from transformers import AutoTokenizer, UniSpeechSatForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("microsoft/unispeech-sat-base-100h-libri-ft")
>>> model = UniSpeechSatForSequenceClassification.from_pretrained("microsoft/unispeech-sat-base-100h-libri-ft", 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 = UniSpeechSatForSequenceClassification.from_pretrained(
...     "microsoft/unispeech-sat-base-100h-libri-ft", 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

UniSpeechSatForAudioFrameClassification

class transformers.UniSpeechSatForAudioFrameClassification

< >

( config: UniSpeechSatConfig )

パラメータ

  • config (UniSpeechSatConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。

話者分離などのタスクに対応するため、フレーム分類ヘッドを上部に備えたUnispeech Satモデル。

このモデルは 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.FloatTensor)

パラメータ

  • input_values (torch.FloatTensor、shape (batch_size, sequence_length)) — 入力生の音声波形の浮動小数点値。値は、.flac または .wav 形式のオーディオファイルを読み込み、list[float]、numpy.ndarray、または torch.Tensor 型の配列に変換することで取得できます。例えば、torchcodec ライブラリ(pip install torchcodec)や soundfile ライブラリ(pip install soundfile)を通じて行います。 配列を input_values に整えるには、パディングと torch.FloatTensor 型への変換のために AutoProcessor を使用してください。詳細は UniSpeechSatProcessor.__call__ を参照してください。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

    アテンションマスクとは?

  • labels (torch.LongTensor、shape (batch_size,)、任意) — シーケンス分類/回帰の損失を計算するためのラベル。インデックスは [0, ..., config.num_labels - 1] の範囲である必要があります。config.num_labels == 1 の場合は回帰損失(平均二乗誤差)が計算され、config.num_labels > 1 の場合は分類損失(クロスエントロピー)が計算されます。

戻り値

TokenClassifierOutput または tuple(torch.FloatTensor)

torch.FloatTensor のタプル、または TokenClassifierOutput(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(UniSpeechSatConfig)や入力に応じて、さまざまな要素で構成されます。

UniSpeechSatForAudioFrameClassificationのforwardメソッドは、__call__特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなくModuleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。

  • loss (torch.FloatTensor、shape (1,)、optional、labels が指定された場合に返されます) — 分類損失。

  • logits (torch.FloatTensor、shape (batch_size, sequence_length, config.num_labels)) — SoftMax 適用前の分類スコア。

  • hidden_states (tuple(torch.FloatTensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます)— torch.FloatTensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。

  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

例:

>>> from transformers import AutoFeatureExtractor, UniSpeechSatForAudioFrameClassification
>>> 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("microsoft/unispeech-sat-base-100h-libri-ft")
>>> model = UniSpeechSatForAudioFrameClassification.from_pretrained("microsoft/unispeech-sat-base-100h-libri-ft")

>>> # 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()
...

UniSpeechSatForXVector

class transformers.UniSpeechSatForXVector

< >

( config: UniSpeechSatConfig )

パラメータ

  • config (UniSpeechSatConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。

話者認証などのタスクに対応するため、XVector特徴抽出ヘッドを上部に備えたUniSpeechSatモデル。

このモデルは 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.FloatTensor)

パラメータ

  • input_values (torch.FloatTensor、shape (batch_size, sequence_length)) — 入力生の音声波形の浮動小数点値。値は、.flac または .wav 形式のオーディオファイルを読み込み、list[float]、numpy.ndarray、または torch.Tensor 型の配列に変換することで取得できます。例えば、torchcodec ライブラリ(pip install torchcodec)や soundfile ライブラリ(pip install soundfile)を通じて行います。 配列を input_values に整えるには、パディングと torch.FloatTensor 型への変換のために AutoProcessor を使用してください。詳細は UniSpeechSatProcessor.__call__ を参照してください。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

    アテンションマスクとは?

  • labels (torch.LongTensor、shape (batch_size,)、任意) — シーケンス分類/回帰の損失を計算するためのラベル。インデックスは [0, ..., config.num_labels - 1] の範囲である必要があります。config.num_labels == 1 の場合は回帰損失(平均二乗誤差)が計算され、config.num_labels > 1 の場合は分類損失(クロスエントロピー)が計算されます。

戻り値

XVectorOutput または tuple(torch.FloatTensor)

torch.FloatTensor のタプル、または XVectorOutput(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(UniSpeechSatConfig)と入力に応じて、さまざまな要素で構成されます。

UniSpeechSatForXVectorのforwardメソッドは、__call__特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなくModuleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。

  • loss (torch.FloatTensor、shape (1,)、optional、labels が指定された場合に返されます) — 分類損失。

  • logits (torch.FloatTensor、shape (batch_size, config.xvector_output_dim)) — AMSoftmax 適用前の分類用隠れ状態。

  • embeddings (torch.FloatTensor、shape (batch_size, config.xvector_output_dim)) — ベクトル類似度ベースの検索に使用される発話の埋め込みです。

  • hidden_states (tuple(torch.FloatTensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返される) — torch.FloatTensor のタプル(embeddings の出力用 1 つ + 各レイヤーの出力用 1 つ)、shape は (batch_size, sequence_length, hidden_size)。

    各層の出力および初期埋め込み出力におけるモデルの隠れ状態。

  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

例:

>>> from transformers import AutoFeatureExtractor, UniSpeechSatForXVector
>>> 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("microsoft/unispeech-sat-base-100h-libri-ft")
>>> model = UniSpeechSatForXVector.from_pretrained("microsoft/unispeech-sat-base-100h-libri-ft")

>>> # 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)
...

UniSpeechSatForPreTraining

class transformers.UniSpeechSatForPreTraining

< >

( config: UniSpeechSatConfig )

パラメータ

  • config (UniSpeechSatConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。

ベクトル量子化モジュールとCTC損失を備えた、事前学習用のUniSpeechSatモデル。

このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

forward

< >

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

パラメータ

  • input_values (torch.Tensor、shape (batch_size, sequence_length)、任意) — 入力生の音声波形の浮動小数点数値。値は、.flac または .wav 形式のオーディオファイルを list[float]、numpy.ndarray、または torch.Tensor 型の配列として読み込むことで取得できます。例えば、torchcodec ライブラリ(pip install torchcodec)や soundfile ライブラリ(pip install soundfile)を通じて取得できます。 配列を input_values に整えるには、パディングと torch.FloatTensor 型への変換のために AutoProcessor を使用してください。詳細は Wav2Vec2Processor.call() を参照してください。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

    アテンションマスクとは?

戻り値

UniSpeechSatForPreTrainingOutput または tuple(torch.FloatTensor)

torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)、または UniSpeechSatOutput。設定(UniSpeechSatConfig)と入力に応じて、さまざまな要素で構成されます。

UniSpeechSatForPreTrainingのforwardメソッドは、__call__特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなくModuleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。

  • loss (*optional*、モデルが train モードのときに返されます、torch.FloatTensor、shape (1,)) — 公式論文に記載されている通り、対比損失 (L_m) と多様性損失 (L_d) の和として計算される総損失。

  • logits (torch.FloatTensor、shape (batch_size, sequence_length, config.proj_codevector_dim)、optional) — 対比損失モデルの予測スコア、すなわち最終的な softmax 前のモデル出力。

  • projected_states (torch.FloatTensor、shape (batch_size, sequence_length, config.proj_codevector_dim)) — マスクされた投影量子化状態を予測するために使用できる、config.proj_codevector_dim に投影されたモデルの隠れ状態です。

  • projected_quantized_states (torch.FloatTensor、shape (batch_size, sequence_length, config.proj_codevector_dim)) — 対比損失の正のターゲットベクトルを表す、config.proj_codevector_dim に射影された量子化抽出特徴量ベクトル。

  • codevector_perplexity (torch.FloatTensor、shape (1,)) — コードベクトル分布のパープレキシティ。コードブックの多様性を測定するために使用されます。

  • hidden_states (tuple[torch.FloatTensor]、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返される) — torch.FloatTensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力用が 1 つ、各層の出力用が 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。

  • attentions (tuple[torch.FloatTensor]、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

例:

>>> import torch
>>> from transformers import AutoFeatureExtractor, UniSpeechSatForPreTraining
>>> from transformers.models.unispeech_sat.modeling_unispeech_sat import _compute_mask_indices

>>> feature_extractor = AutoFeatureExtractor.from_pretrained("microsoft/unispeech-sat-base")
>>> model = UniSpeechSatForPreTraining.from_pretrained("microsoft/unispeech-sat-base")
>>> # TODO: Add full pretraining example
Update on GitHub