Transformers documentation

CLVP

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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

CLVP

概要

CLVP(Contrastive Language-Voice Pretrained Transformer)モデルは、James Betker 氏による論文 Better speech synthesis through scaling で提案されました。

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

近年、自己回帰型TransformerやDDPMの応用により、画像生成の分野は大きく変革されました。これらのアプローチは、画像生成のプロセスを段階的な確率過程としてモデル化し、大量の計算リソースとデータを活用して画像分布を学習します。このパフォーマンス向上の手法は、画像に限定される必要はありません。本論文では、画像生成分野での進歩を音声合成に応用する方法を説明します。その結果として生まれたのが、表現力豊かで複数ボイスに対応するテキストトゥスピーチシステムTorToiseです。

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

使用のコツ

  1. CLVPはTortoise TTSモデルの不可欠な一部です。
  2. CLVPは、提供されたテキストと異なる生成音声候補を比較するために使用でき、最適な音声トークンは拡散モデルに転送されます。
  3. tortoise の使用には、ClvpModelForConditionalGeneration.generate() メソッドの利用を強く推奨します。
  4. CLVPモデルは、16 kHzを想定する他の音声モデルとは異なり、22.05 kHzでサンプリングされた音声を想定している点にご注意ください。

簡単な説明

  • ClvpTokenizer はテキスト入力をトークン化し、ClvpFeatureExtractor は対象の音声からログメルスペクトログラムを抽出します。
  • ClvpConditioningEncoder は、これらのテキストトークンと音声表現を受け取り、テキストと音声中の条件付きエンベディングに変換します。
  • ClvpForCausalLM は、これらの埋め込みを使用して複数の音声候補を生成します。
  • 各音声候補は音声エンコーダー(ClvpEncoder)に渡され、ベクトル表現に変換されます。また、テキストエンコーダー(ClvpEncoder)は、テキストトークンを同じ潜在空間に変換します。
  • 最後に、各音声ベクトルをテキストベクトルと比較し、テキストベクトルに最も類似した音声ベクトルを特定します。
  • ClvpModelForConditionalGeneration.generate() は、上記で説明したすべてのロジックを単一のメソッドに集約しています。

例:

import datasets

from transformers import ClvpModelForConditionalGeneration, ClvpProcessor


# Define the Text and Load the Audio (We are taking an audio example from HuggingFace Hub using `datasets` library).
text = "This is an example text."

ds = datasets.load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", datasets.Audio(sampling_rate=22050))
sample = ds[0]["audio"]

# Define processor and model.
processor = ClvpProcessor.from_pretrained("susnato/clvp_dev")
model = ClvpModelForConditionalGeneration.from_pretrained("susnato/clvp_dev", device_map="auto")

# Generate processor output and model output.
processor_output = processor(raw_speech=sample["array"], sampling_rate=sample["sampling_rate"], text=text, return_tensors="pt").to(model.device)
generated_output = model.generate(**processor_output)

ClvpConfig

クラス transformers.ClvpConfig

< >

( 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 = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonespeech_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonedecoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneprojection_dim: int = 768logit_scale_init_value: float = 2.6592initializer_factor: float = 1.0 )

パラメータ

  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig]、省略可) — テキストバックボーンの設定オブジェクトまたは辞書。
  • speech_config (dict, 任意) — CLVP音声エンコーダーの初期化に使用される設定オプションの辞書。
  • decoder_config (dict, 任意) — ClvpDecoderConfig を初期化するために使用される設定オプションの辞書。
  • projection_dim (int、任意、デフォルトは 768) — テキストおよびビジョンの投影層の次元数。
  • logit_scale_init_value (float、任意、デフォルトは 2.6592) — logit_scale パラメータの初期値です。
  • initializer_factor (float、任意、デフォルトは 1.0) — すべての重み行列を初期化する際に用いる係数です(1 に保つ必要があります。初期化のテスト用に内部で使用されます)。

これは ClvpModelForConditionalGeneration の設定を保存するための設定クラスです。指定された引数に基づいて Clvp モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、susnato/clvp_dev と同様の設定が得られます。

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

例:

>>> from transformers import ClvpConfig, ClvpModelForConditionalGeneration

>>> # Initializing a ClvpConfig with susnato/clvp_dev style configuration
>>> configuration = ClvpConfig()

>>> # Initializing a ClvpModelForConditionalGeneration (with random weights) from the susnato/clvp_dev style configuration
>>> model = ClvpModelForConditionalGeneration(configuration)

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

>>> # We can also initialize a CLVPConfig from a CLVPTextConfig, CLVPSpeechConfig and a CLVPAutoRegressiveConfig
>>> from transformers import ClvpEncoderConfig, ClvpDecoderConfig

>>> # Initializing a CLVP text, CLVP speech and CLVP decoder configuration
>>> config_text = ClvpEncoderConfig()
>>> config_speech = ClvpEncoderConfig()
>>> decoder_config = ClvpDecoderConfig()

>>> config = ClvpConfig(config_text, config_speech, decoder_config)

ClvpEncoderConfig

クラス transformers.ClvpEncoderConfig

< >

( 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 = 256hidden_size: int = 768intermediate_size: int = 1536projection_dim: int = 768num_hidden_layers: int = 20num_attention_heads: int = 12hidden_act: str = 'gelu'layer_norm_eps: float = 1e-05attention_dropout: float | int = 0.1dropout: float | int = 0.1use_rotary_embedding: bool = Trueuse_attention_bias: bool = Falsesummary_type: str = 'mean'initializer_factor: float = 1.0bos_token_id: int | None = 255eos_token_id: int | list[int] | None = 0pad_token_id: int | None = None )

パラメータ

  • vocab_size (int、任意、デフォルトは 256) — モデルの語彙サイズ。input_ids で表現できるトークンの種類数を定義します。
  • hidden_size (int、任意、デフォルトは 768) — 隠れ表現の次元数。
  • intermediate_size (int、任意、デフォルトは 1536) — MLP 表現の次元数。
  • projection_dim (int、任意、デフォルトは 768) — テキストおよびビジョンの投影層の次元数。
  • num_hidden_layers (int、任意、デフォルトは20) — Transformerデコーダーの隠れ層の数。
  • num_attention_heads (int、任意、デフォルトは12) — Transformerデコーダーの各アテンション層におけるアテンションヘッドの数。
  • hidden_act (str、任意、デフォルトは gelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、 "relu"、"silu" など。
  • layer_norm_eps (float、任意、デフォルトは 1e-05) — レイヤーノーマル層で使用する epsilon です。
  • attention_dropout (Union[float, int]、任意、デフォルトは 0.1) — アテンション確率のドロップアウト率です。
  • dropout (Union[float, int]、任意、デフォルト値は0.1) — すべての dropout レイヤーの比率です。
  • use_rotary_embedding (bool、任意、デフォルトは True) — rotary_embedding を使用するかどうかを指定します。
  • use_attention_bias (bool、任意、デフォルトはFalse) — 自己注意機構において、Query、Key、Value 層にバイアスを使用するかどうかを指定します。
  • summary_type (str、任意、デフォルトは "mean") — "last"、"first"、"mean"、"cls_index" がサポートされています。
  • initializer_factor (float、任意、デフォルトは 1.0) — すべての重み行列を初期化する際に用いる係数です(1 に保つ必要があります。初期化のテスト用に内部で使用されます)。
  • bos_token_id (int、任意、デフォルトは255) — 語彙におけるストリーム開始に使用されるトークン ID。
  • eos_token_id (Union[int, list[int]]、任意、デフォルトは 0) — 語彙内でストリーム終了に使用されるトークン ID。
  • pad_token_id (int, 任意) — 語彙内でパディングに使用されるトークン ID。

これは ClvpModelForConditionalGeneration の設定を保存するための設定クラスです。指定された引数に基づいて Clvp モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、susnato/clvp_dev と同様の設定が得られます。

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

例:

>>> from transformers import ClvpEncoderConfig, ClvpEncoder

>>> # Initializing a ClvpEncoderConfig with susnato/clvp_dev style configuration
>>> encoder_configuration = ClvpEncoderConfig()

>>> # Initializing a ClvpEncoder (with random weights) from the susnato/clvp_dev style configuration
>>> model = ClvpEncoder(encoder_configuration)

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

ClvpDecoderConfig

クラス transformers.ClvpDecoderConfig

< >

( 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 = 8194max_position_embeddings: int = 608max_text_tokens: int = 404hidden_size: int = 1024num_hidden_layers: int = 30num_attention_heads: int = 16n_inner: int | None = Nonenum_mel_attn_blocks: int = 6activation_function: str = 'gelu_new'resid_pdrop: float | int = 0.1embd_pdrop: float | int = 0.1attention_dropout: float | int = 0.1layer_norm_epsilon: float = 1e-05initializer_range: float = 0.02summary_type: str = 'cls_index'summary_use_proj: bool = Truesummary_activation: str | None = Nonesummary_proj_to_labels: bool = Truesummary_first_dropout: float | int = 0.1use_cache: bool = Truebos_token_id: int | None = 8192eos_token_id: int | list[int] | None = 8193pad_token_id: int | None = Nonefeature_size: int = 80use_attention_bias: bool = Trueinitializer_factor: float = 1.0decoder_fixing_codes: list[int] | tuple[int, ...] = (83, 45, 45, 248)add_cross_attention: bool = False )

パラメータ

  • vocab_size (int、任意、デフォルトは 8194) — モデルの語彙サイズ。input_ids で表現できるトークンの種類数を定義します。
  • max_position_embeddings (int、任意、デフォルトは 608) — このモデルが使用される可能性のある最大シーケンス長です。
  • max_text_tokens (int、任意、デフォルト値は 404)— このモデルが使用される際に想定されるテキストトークンの最大シーケンス長です。GPT2Config の n_positions と同様のものです。
  • hidden_size (int、任意、デフォルトは 1024) — 隠れ表現の次元数。
  • num_hidden_layers (int、任意、デフォルトは 30) — Transformer デコーダーの隠れ層の数。
  • num_attention_heads (int、任意、デフォルトは 16) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。
  • n_inner (int、省略可) — 内部フィードフォワード層の次元数。Noneの場合、hidden_sizeの4倍に設定されます。
  • num_mel_attn_blocks (int、任意、デフォルトは 6)— ClvpConditioningEncoder における自己アテンション層の数を示します。
  • activation_function (str、任意、デフォルトは gelu_new) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu" など。
  • resid_pdrop (Union[float, int]、任意、デフォルト値は 0.1) — embeddings、encoder、pooler 内のすべての全結合層における dropout 確率です。
  • embd_pdrop (Union[float, int]、任意、デフォルトは 0.1) — 埋め込みのドロップアウト率です。
  • attention_dropout (Union[float, int]、任意、デフォルトは 0.1) — アテンション確率のドロップアウト率です。
  • layer_norm_epsilon (float、任意、デフォルトは 1e-05) — レイヤーノーマル層で使用する epsilon です。
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
  • summary_type (string, 省略可, デフォルトは "cls_index") — シーケンスの要約を行う際に使用する引数。以下のいずれかのオプションを指定する必要があります:
    • "last": 最後のトークンの隠れ状態を取得します(XLNetと同様)。
    • "first": 最初のトークンの隠れ状態を取得します(BERTと同様)。
    • "mean": 全トークンの隠れ状態の平均を計算します。
    • "cls_index": 分類トークンの位置を示す Tensor を指定します(GPT/GPT-2 のように)。
    • "attn": 現在未実装です。マルチヘッドアテンションを使用してください。
  • summary_use_proj (bool、任意、デフォルトは True) — ベクトル抽出後に投影を追加するかどうか。
  • summary_activation (str, 省略可) — 出力に tanh 活性化を適用するには "tanh" を指定します。それ以外の値を指定すると、活性化は適用されません。
  • summary_proj_to_labels (bool、省略可、デフォルトは True) — プロジェクションの出力が config.num_labels クラスか config.hidden_size クラスを持つかを指定します。
  • summary_first_dropout (float、省略可、デフォルト値は 0.1) — 投影と活性化の後に適用する dropout の比率です。
  • use_cache (bool、任意、デフォルトは True) — モデルが最後のキー/バリューの注意を返すかどうか(すべてのモデルで利用されるわけではありません)。config.is_decoder=True の場合、またはモデルがデコーダー専用の生成モデルである場合にのみ関連します。
  • bos_token_id (int、任意、デフォルトは 8192) — 語彙におけるストリーム開始に使用されるトークン ID。
  • eos_token_id (Union[int, list[int]]、任意、デフォルトは 8193) — 語彙内でストリーム終了に使用されるトークン ID。
  • pad_token_id (int, 任意) — 語彙内でパディングに使用されるトークン ID。
  • feature_size (int、任意、デフォルトは 80) — 抽出された mel 特徴量の次元です。この値は ClvpConditioningEncoder で使用されます。
  • use_attention_bias (bool、任意、デフォルトは True) — 自己注意機構において、Query、Key、Value レイヤーにバイアスを使用するかどうか。
  • initializer_factor (float、任意、デフォルトは 1.0) — すべての重み行列を初期化する際に用いる係数です(1 に保つ必要があります。初期化のテスト用に内部で使用されます)。
  • decoder_fixing_codes (list、任意、デフォルトは [83, 45, 45, 248]) — これらの値は、fix_speech_decoder_output メソッド内で、デコーダーが生成した出力を修正するために使用されます。
  • add_cross_attention (bool、任意、デフォルトはFalse) — モデルにクロスアテンション層を追加するかどうか。

これは ClvpModelForConditionalGeneration の設定を保存するための設定クラスです。指定された引数に基づいて Clvp モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、susnato/clvp_dev と同様の設定が得られます。

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

例:

>>> from transformers import ClvpDecoderConfig, ClvpDecoder

>>> # Initializing a ClvpDecoderConfig with susnato/clvp_dev style configuration
>>> decoder_configuration = ClvpDecoderConfig()

>>> # Initializing a ClvpDecoder (with random weights) from the susnato/clvp_dev style configuration
>>> model = ClvpDecoder(decoder_configuration)

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

ClvpTokenizer

class transformers.ClvpTokenizer

< >

( vocab_filemerges_fileerrors = 'replace'unk_token = '[UNK]'bos_token = '<|endoftext|>'eos_token = '[STOP]'pad_token = '[STOP]'add_prefix_space = False**kwargs )

パラメータ

  • vocab_file (str) — 語彙ファイルへのパス。
  • merges_file (str) — マージファイルへのパス。
  • errors (str、省略可能、デフォルトは "replace") — バイト列を UTF-8 にデコードする際に従うパラダイム。詳細は bytes.decode を参照してください。
  • unk_token (str、任意、デフォルトは "[UNK]") — 不明トークンです。語彙に存在しないトークンは ID に変換できず、代わりにこのトークンが設定されます。
  • bos_token (str, 任意、デフォルトは "<|endoftext|>") — シーケンスの開始トークンです。
  • eos_token (str、任意、デフォルトは "[STOP]") — シーケンスの終了トークンです。
  • pad_token (str、任意、デフォルトは "[STOP]") — シーケンスのパッドトークンです。
  • add_prefix_space (bool、任意、デフォルトはFalse) — 入力に先頭スペースを追加するかどうか。これにより、先頭の単語を他の単語と同様に扱うことができます。(CLVP トークナイザーは、先行するスペースによって単語の開始を検出します)。

CLVPトークナイザーを構築します。バイトレベルのByte-Pair-Encodingに基づいています。

このトークナイザーは、スペースをトークンの一部として扱うように学習されています(sentencepieceに少し似ています)。そのため、単語は

文の先頭(スペースなし)にある場合と、そうでない場合とで、エンコードの仕方が異なります。

>>> from transformers import ClvpTokenizer

>>> tokenizer = ClvpTokenizer.from_pretrained("susnato/clvp_dev")
>>> tokenizer("Hello world")["input_ids"]
[62, 84, 28, 2, 179, 79]

>>> tokenizer(" Hello world")["input_ids"]
[2, 62, 84, 28, 2, 179, 79]

この動作を回避するには、このトークナイザーをインスタンス化する際、またはテキストに対して呼び出す際にadd_prefix_space=Trueを渡すことができます。ただし、モデルはこの方式で事前学習されていないため、パフォーマンスが低下する可能性があります。

is_split_into_words=True を使用する場合、このトークナイザーは各単語の前にスペースを追加します(最初の単語も含みます)。

このトークナイザーは、PreTrainedTokenizer を継承しており、主要なメソッドのほとんどが含まれています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]

パラメータ

  • save_directory (str) — 語彙を保存するディレクトリ。
  • filename_prefix (str, 任意) — 保存するファイル名に付加する任意のプレフィックスです。

戻り値

tuple[str, ...]

保存されたファイルへのパス。ファイルが保存されていない場合は空のタプル。

一般的な語彙保存パターン用のデフォルト実装です。 <self.encoder>/<self.vocab>をJSONとして保存し、必要に応じて<self.bpe_ranks>をmergesとして保存します。 語彙が存在しない場合は空のタプルを返します。

トークナイザーにカスタムの保存ロジック(SentencePieceモデル、複数の語彙ファイル、特殊なファイル形式など)が必要な場合は、このメソッドをオーバーライドしてください。

ClvpFeatureExtractor

class transformers.ClvpFeatureExtractor

< >

( feature_size = 80sampling_rate = 22050default_audio_length = 6hop_length = 256chunk_length = 30n_fft = 1024padding_value = 0.0mel_norms = Nonereturn_attention_mask = False**kwargs )

パラメータ

  • feature_size (int、任意、デフォルトは 80) — 抽出された特徴量の次元数。
  • sampling_rate (int, 任意、デフォルトは 22050) — オーディオファイルをデジタル化するためのサンプリングレート (Hz)。
  • default_audio_length (int、任意、デフォルトは 6) — 生オーディオのデフォルトの長さ(秒)です。__call__ の呼び出し時に max_length が設定されていない場合、自動的に default_audio_length * self.sampling_rate に設定されます。
  • hop_length (int、任意、デフォルトは 256) — Mel 周波数係数を取得するために使用される STFT の、重なり合うウィンドウの長さ。
  • chunk_length (int、任意、デフォルトは 30) — sampling_rate サンプルのチャンクとして使用される最大数。長いまたは短い音声シーケンスをトリムおよびパディングするために使用されます。
  • n_fft (int、任意、デフォルトは 1024)— フーリエ変換のサイズ。
  • padding_value (float、任意、デフォルトは 0.0) — オーディオをパディングするために使用される値です。無音に対応する値である必要があります。
  • mel_norms(長さ feature_size の list、任意) — mel_norms が指定されている場合、各 mel フィルターに沿って log-mel スペクトログラムを正規化するために使用されます。
  • return_attention_mask (bool, 省略可, デフォルトは False) — アテンションマスクを返すかどうか。デフォルトのままにすると、アテンションマスクが返されます。

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

CLVPのフィーチャーエクストラクターを構築します。

このフィーチャーエクストラクターは、主要なメソッドの大部分を含む SequenceFeatureExtractor を継承しています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。

このクラスは、Short Time Fourier Transformのカスタムなnumpy実装を使用して、生の音声からlog-melスペクトログラム特徴量を抽出します。この実装は、pytorchのtorch.stftと同等の結果を出力するようになっています。

__call__

< >

( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]sampling_rate: int | None = Nonetruncation: bool = Truepad_to_multiple_of: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_attention_mask: bool | None = Truepadding: str | None = 'max_length'max_length: int | None = None**kwargs )

パラメータ

  • raw_speech (np.ndarray、list[float]、list[np.ndarray]、list[list[float]]) — パディング対象のシーケンスまたはシーケンスのバッチです。各シーケンスは、NumPy 配列、浮動小数点数の値のリスト、NumPy 配列のリスト、または浮動小数点数の値のリストのリストであることができます。モノラル音声(ステレオではなく、タイムステップごとに単一の浮動小数点数)である必要があります。
  • sampling_rate (int, 任意) — raw_speech 入力がサンプリングされたレートです。サイレントエラーを防ぎ、自動音声認識パイプラインを有効にするため、forward 呼び出し時に sampling_rate を渡すことを強く推奨します。
  • truncation (bool、任意、デフォルトは True) — 入力シーケンスが max_length を超える場合、max_length まで切り詰めるための切り詰め処理を有効にします。
  • pad_to_multiple_of (int, 省略可能) — 設定すると、シーケンスを指定された値の倍数にパディングします。

    これは、計算能力が>= 7.5(Volta)のNVIDIAハードウェアでTensor Coresの利用を有効にするために、また、シーケンス長が128の倍数であることで恩恵を受けるTPUにおいて、特に有用です。

  • return_attention_mask (bool, 省略可, デフォルトは True) — アテンションマスクを返すかどうか。デフォルトのままにすると、アテンションマスクが返されます。

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

  • return_tensors (str または TensorType, 省略可) — 設定すると、Python の整数のリストではなくテンソルを返します。指定可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': Numpy の np.ndarray オブジェクトを返します。
  • padding_value (float、任意、デフォルトは 0.0) — パディングの値やベクトルを埋めるために使用される値です。
  • max_length (int, 任意) — 入力データの最大長です。

ClvpFeatureExtractor は、サンプル音声や raw_speech から、音の高さや音色、話し速度、さらには早口や吃音といった発話上の欠陥など、音声固有のさまざまな特性を抽出するために使用されます。

まず、音声はself.default_audio_length秒の長さの波形になるようにパディングまたは切り詰められ、その後、そこからログメルスペクトログラムが抽出されます。

ClvpProcessor

class transformers.ClvpProcessor

< >

( feature_extractortokenizer )

パラメータ

  • feature_extractor (ClvpFeatureExtractor) — フィーチャーエクストラクターは必須の入力です。
  • tokenizer (ClvpTokenizer) — トークナイザーは必須の入力です。

ClvpProcessorを構築し、フィーチャーエクストラクターとトークナイザーを単一のプロセッサーにラップします。

ClvpProcessor は、ClvpFeatureExtractor と ClvpTokenizer のすべての機能を提供します。詳細については、~ClvpFeatureExtractor および ~ClvpTokenizer を参照してください。

__call__

< >

( *argstext = Noneaudio = None**kwargs )

パラメータ

  • text (`) -- The sequence or batch of sequences to be encoded. Each sequence can be a string or a list of strings (pretokenized string). If you pass a pretokenized input, set is_split_into_words=True` to avoid ambiguity with batched inputs.
  • audio (“”) — 準備対象のオーディオまたはオーディオのバッチです。各オーディオは NumPy 配列または PyTorch テンソルであることができます。 NumPy 配列/PyTorch テンソルの場合、各オーディオの形状は (C, T) である必要があります。ここで C はチャネル数、T はオーディオのサンプル長です。
  • return_tensors (str または TensorType, 省略可) — 設定すると、特定のフレームワークのテンソルを返します。使用可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': NumPyのnp.ndarrayオブジェクトを返します。

decode

< >

( *args**kwargs )

このメソッドは、すべての引数を PreTrainedTokenizer の decode() に転送します。詳細については、このメソッドのドキュメント文字列を参照してください。

batch_decode

< >

( *args**kwargs )

このメソッドは、すべての引数を PreTrainedTokenizer の batch_decode() に転送します。詳細については、このメソッドのドキュメント文字列を参照してください。

ClvpModelForConditionalGeneration

クラス transformers.ClvpModelForConditionalGeneration

< >

( config: ClvpConfig )

パラメータ

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

テキストエンコーダー、音声エンコーダー、音声デコーダーモデルを備えた複合CLVPモデル。

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneconditioning_encoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonetext_encoder_inputs_embeds: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonereturn_loss: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ClvpOutput or tuple(torch.Tensor)

パラメータ

  • input_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。

    インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。

    入力IDとは何ですか?

  • input_features (torch.Tensor、形状 (batch_size, sequence_length, feature_dim)、任意) — 入力音声特徴に対応するテンソルです。音声特徴は ClvpFeatureExtractor を使用して取得できます。詳細は ClvpFeatureExtractor.call() を参照してください(ClvpProcessor は音声の処理に ClvpFeatureExtractor を使用します)。
  • conditioning_encoder_inputs_embeds (torch.Tensor, 任意) — ClvpConditioningEncoder の inputs_embeds です。input_ids の代わりに使用できます。
  • text_encoder_inputs_embeds (torch.Tensor, 任意) — input_ids の代わりにテキストエンコーダーモデルに渡す inputs_embeds。
  • attention_mask (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

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

  • return_loss (bool、任意) — 対比損失を返すかどうかを指定します。

戻り値

ClvpOutput または tuple(torch.Tensor)

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

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

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

  • loss (torch.Tensor、shape (1,)、optional、return_loss が True の場合のみ返されます) — 音声とテキストの類似度に対する対比損失。
  • speech_ids (torch.LongTensor、任意) — ClvpForCausalLM モデルによって生成された speech_ids(または speech の候補)。
  • logits_per_speech (torch.Tensor、形状 (speech_batch_size, text_batch_size)) — speech_embeds と text_embeds 間のスケーリング済みドット積スコアです。これは音声とテキストの類似度スコアを表します。
  • logits_per_text (torch.Tensor、形状 (text_batch_size, speech_batch_size)) — text_embeds と speech_embeds 間のスケーリングされたドット積スコアです。これはテキストと音声の類似度スコアを表します。
  • text_embeds (torch.Tensor、形状 (batch_size, output_dim) — テキストエンコーダーのプーリング済み出力に投影層を適用して得られたテキスト埋め込み
  • speech_embeds (torch.Tensor、形状 (batch_size, output_dim) — 音声エンコーダーのプーリング済み出力に射影層を適用して得られた音声埋め込み
  • text_model_output (~modeling_outputs.BaseModelOutputWithPooling、任意) — テキストエンコーダーモデルの last_hidden_state のプーリング済み出力です。
  • speech_model_output (~modeling_outputs.BaseModelOutputWithPooling、任意) — 音声エンコーダモデルのlast_hidden_stateのプーリング済み出力です。
  • decoder_hidden_states (torch.Tensor、任意) — デコーダーモデルの隠れ状態です。
  • text_encoder_hidden_states (torch.Tensor、任意) — テキストエンコーダーモデルの隠れ状態です。
  • speech_encoder_hidden_states (torch.Tensor、任意) — 音声エンコーダーモデルの隠れ状態です。

例:

>>> import datasets
>>> from transformers import ClvpProcessor, ClvpModelForConditionalGeneration

>>> # Define the Text and Load the Audio (We are taking an audio example from HuggingFace Hub using `datasets` library)
>>> text = "This is an example text."

>>> ds = datasets.load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", datasets.Audio(sampling_rate=22050))
>>> audio = ds.sort("id")["audio"][0]
>>> audio_sample, sr = audio["array"], audio["sampling_rate"]

>>> # Define processor and model
>>> processor = ClvpProcessor.from_pretrained("susnato/clvp_dev")
>>> model = ClvpModelForConditionalGeneration.from_pretrained("susnato/clvp_dev")

>>> # processor outputs and model outputs
>>> processor_output = processor(raw_speech=audio_sample, sampling_rate=sr, text=text, return_tensors="pt")
>>> outputs = model(
...     input_ids=processor_output["input_ids"],
...     input_features=processor_output["input_features"],
...     return_dict=True,
... )

generate

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonegeneration_config: transformers.generation.configuration_utils.GenerationConfig | None = Nonepad_to_max_mel_tokens: int | None = Noneoutput_hidden_states: bool | None = None**kwargs ) → ClvpOutput or tuple

パラメータ

  • input_ids (torch.Tensor、形状 (batch_size, sequence_length)、任意) — 入力テキストのトークン。ClvpTokenizer によって処理されます。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングのテキストトークンインデックスに対するアテンションを回避するためのマスク。マスクの値は [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

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

  • generation_config (~generation.GenerationConfig, 任意) — 生成呼び出しのベースパラメータ化として使用される生成設定です。**kwargs で generation_config の属性に一致するものが generate に渡された場合、それらは上書きされます。 generation_config が指定されない場合、デフォルトが使用されます。その読み込み優先順位は以下の通りです: 1) 存在する場合、generation_config.json モデルファイルから; 2) モデル設定から。未指定のパラメータは GenerationConfig のデフォルト値を継承することに注意してください。生成をパラメータ化するには、そのドキュメントを確認する必要があります。
  • pad_to_max_mel_tokens (int, 任意) — 生成された speech_ids を指定された値までパディングします。これは、公式リポジトリのロジック、リンク: https://github.com/neonbjb/tortoise-tts/blob/80f89987a5abda5e2b082618cd74f9c7411141dc/tortoise/api.py#L430 と同じ処理を実装し、logits が一致することを保証するためにあります。 生成品質には影響しないため、効率が悪いので使用を検討しないでください。
  • output_hidden_states (bool, 任意) — デコーダーモデル、テキストエンコーダー、および音声エンコーダーの隠れ状態を返すかどうかを指定します。

戻り値

ClvpOutput またはタプル

ClvpOutput(return_dict_in_generate=True の場合、または config.return_dict_in_generate=True の場合)または、タプル。

ClvpModelForConditionalGeneration の generate メソッドです。このメソッドは ClvpForCausalLM の generate メソッドを呼び出し、生成された speech_ids を用いて ClvpEncoder で text_embeds と speech_embeds を処理します。

get_text_features

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonetext_encoder_inputs_embeds: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ClvpEncoderOutput or tuple(torch.Tensor)

パラメータ

  • input_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。

    インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。

    入力IDとは何ですか?

  • text_encoder_inputs_embeds (torch.Tensor, 任意) — input_ids の代わりにテキストエンコーダーモデルに渡す inputs_embeds。
  • attention_mask (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

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

戻り値

ClvpEncoderOutput または tuple(torch.Tensor)

ClvpEncoderOutput または、return_dict=False が渡された場合、または config.return_dict=False の場合、torch.Tensor のタプル。構成は、設定(ClvpConfig)と入力に応じて、さまざまな要素からなります。

このメソッドは、テキストからtext_embedsを抽出するために使用できます。CLVPテキストエンコーダーモデルのプーリング済み出力に投影層を適用して得られるテキスト埋め込みです。

  • embeds (torch.Tensor、形状 (batch_size, output_dim)、任意、モデルが with_projection=True で初期化された場合に返されます)— pooler_output に投影層を適用して得られる埋め込みです。

  • last_hidden_state (torch.Tensor、形状 (batch_size, sequence_length, hidden_size)) — モデルの最終層の隠れ状態です。

  • pooler_output (torch.Tensor、形状 (batch_size, hidden_size)) — last_hidden_stateのプーリング済み出力。

  • hidden_states (tuple[torch.Tensor]、optional、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]、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

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

例:

>>> from transformers import ClvpProcessor, ClvpModelForConditionalGeneration

>>> # Define the Text
>>> text = "This is an example text."

>>> # Define processor and model
>>> processor = ClvpProcessor.from_pretrained("susnato/clvp_dev")
>>> model = ClvpModelForConditionalGeneration.from_pretrained("susnato/clvp_dev")

>>> # Generate processor output and text embeds
>>> processor_output = processor(text=text, return_tensors="pt")
>>> text_embeds = model.get_text_features(input_ids=processor_output["input_ids"])

get_speech_features

< >

( speech_ids: typing.Optional[torch.LongTensor] = Noneinput_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneconditioning_encoder_inputs_embeds: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonegeneration_config: transformers.generation.configuration_utils.GenerationConfig | None = None**kwargs ) → torch.Tensor of shape (batch_size, output_dim)

パラメータ

  • speech_ids (torch.LongTensor、形状 (batch_size, num_speech_ids)、任意) — Speech Tokens。指定された場合、デフォルトでは Padding は無視されます。speech_ids が指定されると、input_ids と input_features は自動的に無視されます。
  • input_ids (torch.LongTensor、形状 (batch_size, sequence_length)、任意) — 入力テキストのトークン。ClvpTokenizer によって処理されます。speech_ids が指定されていない場合、input_ids と input_features が使用されます。
  • conditioning_encoder_inputs_embeds (torch.Tensor, 任意) — ClvpConditioningEncoder の inputs_embeds です。input_ids の代わりに使用できます。
  • attention_mask (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — パディングされた音声トークンインデックスに対するアテンションを回避するためのマスク。マスクの値は [0, 1] から選択します: マスクされていないトークンは 1、マスクされているトークンは 0。アテンションマスクとは何ですか? [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

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

  • generation_config (GenerationConfig, 任意) — speech_ids が指定されていない場合に、その生成を制御するための generation config。

戻り値

torch.Tensor、形状 (batch_size, output_dim)

CLVP Speech Modelのプーリング済み出力に投影層を適用して得られる音声埋め込み。

このメソッドは、speech_embeds を抽出するために使用できます。音声埋め込みは、speech_ids に音声モデルを適用することで取得されます。speech_ids が存在せず、input_ids と input_features の両方が与えられている場合、デコーダーモデルがまず speech_ids を生成し、その後音声モデルが適用されます。

例:

>>> import datasets
>>> from transformers import ClvpProcessor, ClvpModelForConditionalGeneration

>>> # Define the Text and Load the Audio (We are taking an audio example from HuggingFace Hub using `datasets` library)
>>> text = "This is an example text."
>>> ds = datasets.load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", datasets.Audio(sampling_rate=22050))
>>> audio = ds.sort("id")["audio"][0]
>>> audio_sample, sr = audio["array"], audio["sampling_rate"]

>>> # Define processor and model
>>> processor = ClvpProcessor.from_pretrained("susnato/clvp_dev")
>>> model = ClvpModelForConditionalGeneration.from_pretrained("susnato/clvp_dev")

>>> # Generate processor output and model output
>>> processor_output = processor(raw_speech=audio_sample, sampling_rate=sr, text=text, return_tensors="pt")
>>> speech_embeds = model.get_speech_features(
...     input_ids=processor_output["input_ids"], input_features=processor_output["input_features"]
... )

ClvpForCausalLM

クラス transformers.ClvpForCausalLM

< >

( config: ClvpDecoderConfig )

パラメータ

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

言語モデリングヘッドを上部に備えたCLVPデコーダーモデル。

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutputWithCrossAttentions or tuple(torch.Tensor)

パラメータ

  • input_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。

    インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。

    入力IDとは何ですか?

  • past_key_values (~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返した past_key_values であり、 use_cache=True または config.use_cache=True.

    入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。 past_key_values が渡されない場合、デフォルトで DynamicCache が初期化されます。

    モデルは、入力として与えられたのと同じキャッシュ形式を出力します。

    past_key_values を使用する場合、すべての input_ids(形状 (batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理の input_ids(形状 (batch_size, unprocessed_length))のみを入力することになります。

  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

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

  • token_type_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 入力テキストの第1部分と第2部分を区別するためのセグメントトークンインデックス。インデックスは [0, 1]:
    • 0 は sentence A トークンに対応します。
    • 1 は sentence B トークンに対応します。

    トークンタイプIDとは?

  • position_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲 [0, config.n_positions - 1].

    ポジションIDとは?

  • inputs_embeds (torch.Tensor、形状 (batch_size, sequence_length, hidden_size)、任意) — input_ids を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、input_ids のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • labels (torch.LongTensor、形状 (batch_size, sequence_length)、任意) — 言語モデリング用のラベルです。モデル内部ではラベルがシフトされるため、labels = input_ids と設定できます。インデックスは [-100, 0, ..., config.vocab_size] から選択されます。-100 に設定されたすべてのラベルは無視(マスク)され、損失は [0, ..., config.vocab_size] 内のラベルに対してのみ計算されます。
  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。

戻り値

CausalLMOutputWithCrossAttentions または tuple(torch.Tensor)

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

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

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

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

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

  • hidden_states (tuple(torch.Tensor)、optional、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)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

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

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

    アテンションのsoftmax後のクロスアテンションの重み。クロスアテンションヘッドにおける加重平均の計算に使用されます。

  • past_key_values (Cache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    シーケンシャルなデコーディングを高速化するために使用できる(past_key_values 入力参照)、事前計算済みの hidden-states(アテンションブロック内のキーとバリュー)が含まれます。

ClvpModel

class transformers.ClvpModel

< >

( config: ClvpDecoderConfig )

パラメータ

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

特定のヘッドを付加せず、生のhidden-statesを出力する素のClvp Model。

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPastAndCrossAttentions or tuple(torch.Tensor)

パラメータ

  • input_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。

    インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。

    入力IDとは何ですか?

  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

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

  • token_type_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 入力テキストの第1部分と第2部分を区別するためのセグメントトークンインデックス。インデックスは [0, 1]:
    • 0 は sentence A トークンに対応します。
    • 1 は sentence B トークンに対応します。

    トークンタイプIDとは?

  • position_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲 [0, config.n_positions - 1].

    ポジションIDとは?

  • past_key_values (~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返した past_key_values であり、 use_cache=True または config.use_cache=True.

    入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。 past_key_values が渡されない場合、デフォルトで DynamicCache が初期化されます。

    モデルは、入力として与えられたのと同じキャッシュ形式を出力します。

    past_key_values を使用する場合、すべての input_ids(形状 (batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理の input_ids(形状 (batch_size, unprocessed_length))のみを入力することになります。

  • inputs_embeds (torch.Tensor、形状 (batch_size, sequence_length, hidden_size)、任意) — input_ids を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、input_ids のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。

戻り値

BaseModelOutputWithPastAndCrossAttentions または tuple(torch.Tensor)

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

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

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

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

    past_key_valuesが使用されている場合、出力されるのは、形状(batch_size, 1, hidden_size)のシーケンスの最後の隠れ状態のみです。

  • past_key_values (Cache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    自己アテンションブロック(および config.is_encoder_decoder=True の場合、クロスカレンションブロック)の事前計算済みヒドゥンステート(キーとバリュー)を保持します。これらは逐次デコーディングを高速化するために使用できます(past_key_values 入力参照)。

  • hidden_states (tuple(torch.Tensor)、optional、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)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

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

  • cross_attentions (tuple(torch.Tensor)、optional、output_attentions=True と config.add_cross_attention=True が渡された場合、または config.output_attentions=True の場合に返されます) — 各層に対応する torch.Tensor のタプルで、形状は (batch_size, num_heads, sequence_length, sequence_length) です。

    クロスアテンション層のアテンション重みは、アテンションのsoftmax適用後に計算され、クロスアテンションヘッドにおける加重平均の計算に使用されます。

ClvpEncoder

class transformers.ClvpEncoder

< >

( config: ClvpEncoderConfig )

パラメータ

  • config — ClvpConfig

config.num_hidden_layers 個の自己アテンション層で構成される Transformer エンコーダーです。各層は ClvpEncoderLayer です。

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ClvpEncoderOutput or tuple(torch.Tensor)

パラメータ

  • input_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。

    インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。

    入力IDとは何ですか?

  • inputs_embeds (torch.LongTensor、shape (batch_size, sequence_length, hidden_size)、任意) — input_ids を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_ids のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • attention_mask (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

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

  • position_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲 [0, config.n_positions - 1].

    ポジションIDとは?

戻り値

ClvpEncoderOutput または tuple(torch.Tensor)

ClvpEncoderOutput または、return_dict=False が渡された場合、または config.return_dict=False の場合、torch.Tensor のタプル。構成は、設定(ClvpConfig)と入力に応じて、さまざまな要素からなります。

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

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

  • embeds (torch.Tensor、形状 (batch_size, output_dim)、任意、モデルが with_projection=True で初期化された場合に返されます)— pooler_output に投影層を適用して得られる埋め込みです。

  • last_hidden_state (torch.Tensor、形状 (batch_size, sequence_length, hidden_size)) — モデルの最終層の隠れ状態です。

  • pooler_output (torch.Tensor、形状 (batch_size, hidden_size)) — last_hidden_stateのプーリング済み出力。

  • hidden_states (tuple[torch.Tensor]、optional、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]、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

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

ClvpDecoder

class transformers.ClvpDecoder

< >

( config: ClvpDecoderConfig )

config.num_hidden_layers 層で構成される Transformer デコーダーです。各層は ClvpDecoderLayer です。

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPastAndCrossAttentions or tuple(torch.Tensor)

パラメータ

  • input_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。

    インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。

    入力IDとは何ですか?

  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

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

  • token_type_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 入力テキストの第1部分と第2部分を区別するためのセグメントトークンインデックス。インデックスは [0, 1]:
    • 0 は sentence A トークンに対応します。
    • 1 は sentence B トークンに対応します。

    トークンタイプIDとは?

  • position_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲 [0, config.n_positions - 1].

    ポジションIDとは?

  • past_key_values (~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返した past_key_values であり、 use_cache=True または config.use_cache=True.

    入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。 past_key_values が渡されない場合、デフォルトで DynamicCache が初期化されます。

    モデルは、入力として与えられたのと同じキャッシュ形式を出力します。

    past_key_values を使用する場合、すべての input_ids(形状 (batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理の input_ids(形状 (batch_size, unprocessed_length))のみを入力することになります。

  • inputs_embeds (torch.Tensor、形状 (batch_size, sequence_length, hidden_size)、任意) — input_ids を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、input_ids のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。

戻り値

BaseModelOutputWithPastAndCrossAttentions または tuple(torch.Tensor)

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

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

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

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

    past_key_valuesが使用されている場合、出力されるのは、形状(batch_size, 1, hidden_size)のシーケンスの最後の隠れ状態のみです。

  • past_key_values (Cache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    自己アテンションブロック(および config.is_encoder_decoder=True の場合、クロスカレンションブロック)の事前計算済みヒドゥンステート(キーとバリュー)を保持します。これらは逐次デコーディングを高速化するために使用できます(past_key_values 入力参照)。

  • hidden_states (tuple(torch.Tensor)、optional、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)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

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

  • cross_attentions (tuple(torch.Tensor)、optional、output_attentions=True と config.add_cross_attention=True が渡された場合、または config.output_attentions=True の場合に返されます) — 各層に対応する torch.Tensor のタプルで、形状は (batch_size, num_heads, sequence_length, sequence_length) です。

    クロスアテンション層のアテンション重みは、アテンションのsoftmax適用後に計算され、クロスアテンションヘッドにおける加重平均の計算に使用されます。

Update on GitHub