Transformers documentation
Mimi
このモデルは2024年9月18日にHugging Face Transformersに貢献されました。
Mimi
Mimiは、事前学習済みおよび量子化済みバリアントを備えたニューラルオーディオコーデックモデルであり、効率的な音声表現と圧縮を目的として設計されています。このモデルは1.1 kbpsで動作し、フレームレートは12 Hzです。また、16個のコードブックを持つ残差ベクトル量子化器と組み合わせた畳み込み型エンコーダ・デコーダアーキテクチャを採用しています。Mimiは、言語的な豊かさと高忠実度の再構築のバランスを取るため、セマンティックとアコースティックという2つのトークンストリームを出力します。主な機能には、低レイテンシ用途向けの因果ストリーミングエンコーダ、柔軟な下流生成に対応するデュアルパスのトークン化、そしてMoshiのような大規模音声モデルとの統合対応が含まれます。
Kyutai組織の下で、元のMimiのチェックポイントを見つけることができます。
このモデルは ylacombe によって提供されました。
Mimi の適用方法のより多くの例については、右側のサイドバーにある Mimi モデルをクリックしてください。
以下の例では、AutoModel クラスを使用してオーディオをエンコードおよびデコードする方法を示しています。
from datasets import Audio, load_dataset
from transformers import AutoFeatureExtractor, MimiModel
librispeech_dummy = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
# load model and feature extractor
model = MimiModel.from_pretrained("kyutai/mimi", device_map="auto")
feature_extractor = AutoFeatureExtractor.from_pretrained("kyutai/mimi")
# load audio sample
librispeech_dummy = librispeech_dummy.cast_column("audio", Audio(sampling_rate=feature_extractor.sampling_rate))
audio_sample = librispeech_dummy[-1]["audio"]["array"]
inputs = feature_extractor(raw_audio=audio_sample, sampling_rate=feature_extractor.sampling_rate, return_tensors="pt").to(model.device)
encoder_outputs = model.encode(inputs["input_values"], inputs["padding_mask"])
audio_values = model.decode(encoder_outputs.audio_codes, inputs["padding_mask"])[0]
# or the equivalent with a forward pass
audio_values = model(inputs["input_values"], inputs["padding_mask"]).audio_valuesMimiConfig
クラス transformers.MimiConfig
< source >( 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 = Nonesampling_rate: int = 24000audio_channels: int = 1hidden_size: int = 512num_filters: int = 64num_residual_layers: int = 1upsampling_ratios: list[int] | None = Nonekernel_size: int = 7last_kernel_size: int = 3residual_kernel_size: int = 3dilation_growth_rate: int = 2use_causal_conv: bool = Truepad_mode: str = 'constant'compress: int = 2trim_right_ratio: float = 1.0codebook_size: int = 2048codebook_dim: int = 256num_quantizers: int = 32use_conv_shortcut: bool = Falsevector_quantization_hidden_dimension: int = 256num_semantic_quantizers: int = 1upsample_groups: int = 512num_hidden_layers: int = 8intermediate_size: int = 2048num_attention_heads: int = 8num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'gelu'max_position_embeddings: int = 8000initializer_range: float = 0.02norm_eps: float = 1e-05use_cache: bool = Falseuse_streaming: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 250attention_dropout: float | int = 0.0layer_scale_initial_scale: float = 0.01attention_bias: bool = Falsetie_word_embeddings: bool = True )
パラメータ
- sampling_rate (
int、任意、デフォルトは24000) — オーディオファイルをデジタル化するためのサンプリングレート(ヘルツ (Hz) 表記)。 - audio_channels (
int、任意、デフォルトは 1) — オーディオデータのチャンネル数。モノラルの場合は 1、ステレオの場合は 2 を指定します。 - hidden_size (
int、任意、デフォルトは512) — 隠れ表現の次元数。 - num_filters (
int, 任意、デフォルトは 64) — 最初のMimiConv1dダウンサンプリング層の畳み込みカーネルの数。 - num_residual_layers (
int, 省略可, デフォルト値は 1) — 残差層の数。 - upsampling_ratios (
Sequence[int]、省略可) — カーネルサイズとストライドの比率です。エンコーダーはアップサンプリング比率ではなくダウンサンプリング比率を使用するため、ここで指定した比率とは逆の順序で比率を使用します。この順序はデコーダーの順序と一致する必要があります。指定しない場合、デフォルトは[8, 6, 5, 4]です。 - kernel_size (
int、任意、デフォルトは7) — 畳み込みカーネルのサイズです。 - last_kernel_size (
int, 任意、デフォルトは 3) — 最後の畳み込み層のカーネルサイズ。 - residual_kernel_size (
int、任意、デフォルトは 3)— 残差層のカーネルサイズ。 - dilation_growth_rate (
int、任意、デフォルト値は 2)— 各レイヤーで dilation をどの程度増加させるかを指定します。 - use_causal_conv (
bool、任意、デフォルトはTrue) — 完全に因果的な畳み込みを使用するかどうか。 - pad_mode (
str、任意、デフォルトは"constant") — 畳み込みのパディングモードです。 - compress (
int、任意、デフォルトは 2) — 残差ブランチの次元削減数。 - trim_right_ratio (
float、任意、デフォルト値は 1.0)—use_causal_conv = Trueの設定下で、転置畳み込みの右側をトリムするための比率です。1.0 に等しい場合、すべてのトリムが右側で行われることを意味します。 - codebook_size (
int、任意、デフォルトは2048) — モデルが使用する並列コードブックの数です。 - codebook_dim (
int、任意、デフォルトは256) — 各コードブック埋め込みベクトルの次元数。 - num_quantizers (
int、任意、デフォルト値は 32)— 量子化器における量子化チャネル数、すなわちコードブックの数。 - use_conv_shortcut (
bool、任意、デフォルトはFalse) —MimiResnetBlockブロック内で、'skip' 接続として畳み込み層を使用するかどうかを指定します。False の場合、恒等関数が使用され、一般的な残差接続になります。 - vector_quantization_hidden_dimension (
int、任意、デフォルトは 256) — 残差ベクトル量子化空間における中間表現の次元です。 - num_semantic_quantizers (
int、任意、デフォルトは 1) — セマンティック量子化器におけるセマンティック量子化器チャネル、すなわちコードブックの数。num_quantizersより小さい値である必要があります。 - upsample_groups (
int、任意、デフォルトは 512) —frame_rate!=encodec_frame_rateの場合、1 つのレートから別のレートへの変換におけるアップサンプリング操作で使用するグループ数を示します。 - num_hidden_layers (
int、任意、デフォルトは8) — Transformer デコーダーの隠れ層の数。 - intermediate_size (
int、任意、デフォルトは2048) — MLP 表現の次元数。 - num_attention_heads (
int、任意、デフォルトは8) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。 - num_key_value_heads (
int、任意、デフォルトは8) — Grouped Query Attention の実装に使用する key_value ヘッドの数を指定します。num_key_value_heads=num_attention_headsの場合、モデルは Multi Head Attention (MHA) を使用し、num_key_value_heads=1の場合は Multi Query Attention (MQA) を使用し、それ以外の場合は GQA が使用されます。 マルチヘッドのチェックポイントを GQA のチェックポイントに変換する際は、各グループの key ヘッドと value ヘッドを、そのグループ内の元のすべてのヘッドの平均プーリングによって構築する必要があります。詳細については、この論文を参照してください。指定しない場合、デフォルトでnum_attention_headsが使用されます。 - head_dim (
int、省略可) — アテンションヘッドの次元です。None の場合、hidden_size // num_attention_heads がデフォルトとして使用されます。 - hidden_act (
str、任意、デフォルトはgelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu"など。 - max_position_embeddings (
int、任意、デフォルトは8000) — このモデルが使用される可能性のある最大シーケンス長です。 - initializer_range (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。 - norm_eps (
float、任意、デフォルトは1e-05) — レイヤーノーマライゼーション層で使用する epsilon です。 - use_cache (
bool、任意、デフォルトはFalse) — モデルが最後のキー/バリューの注意を返すかどうか(すべてのモデルで利用されるわけではありません)。config.is_decoder=Trueの場合、またはモデルがデコーダー専用の生成モデルである場合にのみ関連します。 - use_streaming (
bool、任意、デフォルトはFalse) — ストリーミングモードを使用するかどうか。Trueの場合、モデルのエンコードメソッドは、エンコードメソッドの次の呼び出しで使用できるパディングキャッシュを返します。 - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], 省略可) — RoPE 埋め込みの設定パラメータを含む辞書です。この辞書にはrope_thetaの値が含まれており、より長いmax_position_embeddingsで RoPE を使用する場合にスケーリングに使用されるパラメータが任意で含まれます。 - sliding_window (
int、任意、デフォルトは250) — スライディングウィンドウアテンションのウィンドウサイズ。Noneの場合、スライディングウィンドウは適用されません。 - attention_dropout (
Union[float, int]、任意、デフォルトは0.0) — アテンション確率のドロップアウト率です。 - layer_scale_initial_scale (
float、任意、デフォルトは0.01) — 自己アテンション層で使用するスケール値です。base モデルでは 0.1、large モデルでは 1e-6 を使用します。0 に設定すると、layer scale が無効になります。 - attention_bias (
bool、任意、デフォルトはFalse) — 自己注意機構において、クエリ、キー、バリュー、出力の投影層にバイアスを使用するかどうかを指定します。 - tie_word_embeddings (
bool、任意、デフォルトはTrue) — モデルのtied_weights_keysマッピングに従って重み埋め込みを共有するかどうかを指定します。
これは MimiModel の設定を保存するための設定クラスです。指定された引数に基づいて Mimi モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、kyutai/mimi と同様の設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
例:
>>> from transformers import MimiModel, MimiConfig
>>> # Initializing a "kyutai/mimi" style configuration
>>> configuration = MimiConfig()
>>> # Initializing a model (with random weights) from the "kyutai/mimi" style configuration
>>> model = MimiModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configMimiEncoderConfig
クラス transformers.MimiEncoderConfig
< source >( 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 = Nonesampling_rate: int = 24000audio_channels: int = 1hidden_size: int = 512num_filters: int = 64num_residual_layers: int = 1upsampling_ratios: list[int] | None = Nonekernel_size: int = 7last_kernel_size: int = 3residual_kernel_size: int = 3dilation_growth_rate: int = 2use_causal_conv: bool = Truepad_mode: str = 'constant'compress: int = 2trim_right_ratio: float = 1.0codebook_size: int = 2048codebook_dim: int = 256num_quantizers: int = 32use_conv_shortcut: bool = Falsevector_quantization_hidden_dimension: int = 256num_semantic_quantizers: int = 1upsample_groups: int = 512num_hidden_layers: int = 8intermediate_size: int = 2048num_attention_heads: int = 8num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'gelu'max_position_embeddings: int = 8000initializer_range: float = 0.02norm_eps: float = 1e-05use_cache: bool = Falseuse_streaming: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 250attention_dropout: float | int = 0.0layer_scale_initial_scale: float = 0.01attention_bias: bool = Falsetie_word_embeddings: bool = True )
Mimi のエンコーダー側(SEANet エンコーダー、エンコーダー Transformer、ダウンサンプリング)の構成です。MimiConfig とすべてのフィールドを共有しているため(引数についてはそのドキュメントを参照してください)、完全な Mimi チェックポイントから直接読み込むことができます。
MimiDecoderConfig
クラス transformers.MimiDecoderConfig
< source >( 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 = Nonesampling_rate: int = 24000audio_channels: int = 1hidden_size: int = 512num_filters: int = 64num_residual_layers: int = 1upsampling_ratios: list[int] | None = Nonekernel_size: int = 7last_kernel_size: int = 3residual_kernel_size: int = 3dilation_growth_rate: int = 2use_causal_conv: bool = Truepad_mode: str = 'constant'compress: int = 2trim_right_ratio: float = 1.0codebook_size: int = 2048codebook_dim: int = 256num_quantizers: int = 32use_conv_shortcut: bool = Falsevector_quantization_hidden_dimension: int = 256num_semantic_quantizers: int = 1upsample_groups: int = 512num_hidden_layers: int = 8intermediate_size: int = 2048num_attention_heads: int = 8num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'gelu'max_position_embeddings: int = 8000initializer_range: float = 0.02norm_eps: float = 1e-05use_cache: bool = Falseuse_streaming: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 250attention_dropout: float | int = 0.0layer_scale_initial_scale: float = 0.01attention_bias: bool = Falsetie_word_embeddings: bool = True )
Mimi のデコーダー部分(アップサンプリング、デコーダー Transformer、SEANet デコーダー)の設定です。MimiConfig とすべてのフィールドを共有しているため(引数についてはそのドキュメントを参照してください)、完全な Mimi チェックポイントから直接読み込むことができます。
MimiModel
クラス transformers.MimiModel
< source >( config: MimiConfig )
パラメータ
- config (MimiConfig) — モデルのすべてのパラメータを含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連付けられた重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Mimi ニューラルオーディオコーデックモデル。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
decode
< source >( audio_codes: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonedecoder_past_key_values: transformers.cache_utils.Cache | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
指定されたフレームを出力音声波形にデコードします。コードはMimiDecoderModel.forward()の潜在変数にデクォンタイズされます。
encode
< source >( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonenum_quantizers: float | None = Noneencoder_past_key_values: transformers.cache_utils.Cache | None = Nonepadding_cache: transformers.models.mimi.modeling_mimi.MimiConv1dPaddingCache | None = Noneuse_streaming: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
入力オーディオ波形を、(batch_size, num_quantizers, frames) の形状の離散コードにエンコードします。MimiEncoderModel.forward() の潜在変数を量子化したものです。
forward
< source >( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonenum_quantizers: int | None = Noneaudio_codes: typing.Optional[torch.Tensor] = Noneencoder_past_key_values: transformers.cache_utils.Cache | None = Nonedecoder_past_key_values: transformers.cache_utils.Cache | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MimiOutput or tuple(torch.FloatTensor)
パラメータ
- input_values (
torch.FloatTensor、形状(batch_size, channels, sequence_length)、任意) — Float に変換された生のオーディオ入力。 - padding_mask (
torch.Tensor、shape(batch_size, sequence_length)、任意) — パディングにより無視されるべき入力を示します。要素は、マスクされない場合は 1、マスクされる場合は 0 です。 - num_quantizers (
int, 任意) — 使用する量子化器(つまりコードブック)の数。デフォルトでは、すべての量子化器が使用されます。 - audio_codes (
torch.LongTensor、形状(batch_size, num_quantizers, codes_length)、任意) —model.encodeを使用して計算された離散コード埋め込み。 - encoder_past_key_values (
Cache, 省略可) — エンコーダのトランスフォーマーの逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己注意ブロックのキーとバリュー)です。past_key_valuesデコードの以前の段階でモデルが返すuse_cache=Trueまたはconfig.use_cache=True.モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
past_key_valuesを使用する場合、ユーザーは、このモデルに過去のキーバリュー状態が与えられていない最後のaudio_valuesまたは`audio_codes`のみを入力することもできます。 - decoder_past_key_values (
Cache, 省略可) — デコーダーの自己注意ブロックにおけるキーとバリューの事前計算済み隠れ状態。デコーダー Transformer の逐次デコーディングを高速化するために使用できます。 通常、デコーディングの以前の段階でモデルが返すpast_key_valuesであり、use_cache=Trueまたはconfig.use_cache=True.モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
past_key_valuesを使用する場合、ユーザーは、このモデルに過去のキーバリュー状態が与えられていない最後のaudio_valuesまたは`audio_codes`のみを入力することもできます。
戻り値
MimiOutput または tuple(torch.FloatTensor)
MimiOutput、またはtorch.FloatTensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(MimiConfig)と入力に応じて、さまざまな要素で構成されます。
MimiModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
audio_codes(
torch.LongTensor、形状(batch_size, num_quantizers, codes_length)、任意)—model.encodeを使用して計算された離散コード埋め込み。audio_values (
torch.FloatTensor、shape(batch_size, sequence_length)、任意) — Mimi のデコーダー部分を使用して取得したデコード済みオーディオ値。encoder_past_key_values (
Cache、任意) — エンコーダの Transformer の逐次デコーディングを高速化するために使用できる、事前計算された隠れ状態(自己注意ブロックのキーとバリュー)です。 通常、use_cache=Trueまたはconfig.use_cache=Trueの場合、モデルがデコーディングの以前の段階で返したpast_key_valuesで構成されます。モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
past_key_valuesを使用する場合、ユーザーは、このモデルに過去のキーバリュー状態が与えられていない最後のaudio_valuesまたは`audio_codes`のみを入力することもできます。decoder_past_key_values (
Cache、任意) — 自己注意ブロックのキーとバリューの事前計算済み隠れ状態です。デコーダの Transformer の逐次デコードを高速化するために使用できます。 通常、use_cache=Trueまたはconfig.use_cache=Trueの場合、モデルがデコードの以前の段階で返したpast_key_valuesで構成されます。モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
past_key_valuesを使用する場合、ユーザーは、このモデルに過去のキーバリュー状態が与えられていない最後のaudio_valuesまたは`audio_codes`のみを入力することもできます。
例:
>>> from datasets import load_dataset
>>> from transformers import AutoFeatureExtractor, MimiModel
>>> dataset = load_dataset("hf-internal-testing/ashraq-esc50-1-dog-example")
>>> audio_sample = dataset["train"]["audio"][0]["array"]
>>> model_id = "kyutai/mimi"
>>> model = MimiModel.from_pretrained(model_id)
>>> feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)
>>> inputs = feature_extractor(raw_audio=audio_sample, return_tensors="pt")
>>> outputs = model(**inputs)
>>> audio_codes = outputs.audio_codes
>>> audio_values = outputs.audio_valuesMimiEncoderModel
クラス transformers.MimiEncoderModel
< source >( config: MimiEncoderConfig )
パラメータ
- config (MimiEncoderConfig) — モデルのすべてのパラメータを含むモデル設定クラス。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Mimi のエンコーダー部分: SEANet エンコーダー、エンコーダー Transformer、およびダウンサンプリング。オーディオから連続的な潜在変数への変換を示しています。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonepadding_cache: transformers.models.mimi.modeling_mimi.MimiConv1dPaddingCache | None = Noneuse_streaming: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MimiEncoderModelOutput or tuple(torch.FloatTensor)
パラメータ
- input_values (
torch.Tensor、形状(batch_size, channels, sequence_length)) — 入力音声波形の浮動小数点値です。 - padding_mask (
torch.Tensor、形状(batch_size, channels, sequence_length)、任意) — パディングにより無視されるべき入力を示します。要素は、マスクされていない場合は 1、マスクされている場合は 0 です。 - past_key_values (
Cache, 任意) — エンコーダの Transformer において、セルフアテンションブロックのキーとバリューとして事前計算された隠れ状態。ストリーミングエンコーディングの高速化に使用されます。 - padding_cache (
MimiConv1dPaddingCache、任意) — ストリーミングエンコーディングに使用される、因果的畳み込みのpaddingキャッシュです。 - use_streaming (
bool, 省略可) — ストリーミングモードでエンコードし、次の呼び出しに渡すためのキャッシュを返すかどうかを指定します。 - Encodes は、入力オーディオ波形を
(batch_size, latent_dim, frames)の形状を持つ連続的な潜在変数にエンコードします。 —
戻り値
MimiEncoderModelOutput または tuple(torch.FloatTensor)
MimiEncoderModelOutput、またはtorch.FloatTensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(MimiConfig)や入力に応じて、さまざまな要素で構成されます。
MimiEncoderModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
- latents (
torch.FloatTensor、shape(batch_size, latent_dim, frames)) — 音声の連続的な潜在変数です。config.frame_size個の音声サンプルごとに 1 フレームです。 - past_key_values (
Cache、任意) — ストリーミング時に返される、エンコーダのtransformerにおける自己アテンションブロックの事前計算済みhidden-states(キーとバリュー)。 - padding_cache (
MimiConv1dPaddingCache、任意) — MimiConv1d の因果畳み込みにおいて、キャッシュのパディングによるストリーミング処理をサポートするためのパディングキャッシュ。 - hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueの場合のみ返されます)— エンコーダーの Transformer の各層の出力およびその入力の隠れ状態です。 - attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueの場合のみ返されます)— エンコーダの各 Transformer レイヤーの Attention 重み。
MimiDecoderModel
クラス transformers.MimiDecoderModel
< source >( config: MimiDecoderConfig )
パラメータ
- config (MimiDecoderConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Mimiのデコーダー部分: 連続的な潜在変数から音声への変換を行うアップサンプリング、デコーダーtransformer、およびSEANetデコーダー。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( latents: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MimiDecoderOutput or tuple(torch.FloatTensor)
パラメータ
- latents (
torch.FloatTensorの形状:(batch_size, hidden_size, frames)) — MimiModel.decode() によって計算される、デコード対象の連続的な潜在変数。 - padding_mask (
torch.Tensor、形状(batch_size, channels, sequence_length)、任意) — パディングにより無視されるべき入力を示します。要素は、マスクされていない場合は 1、マスクされている場合は 0 です。 - past_key_values (
Cache, 任意) — デコーダのtransformerにおける自己注意ブロックの事前計算済みhidden-states(キーとバリュー)。ストリーミングデコードの高速化に使用されます。 - Decodes は、与えられたフレームを出力音声波形にデコードします。なお、出力は少し大きくなる場合があります。
- input. その場合、末尾の余分なステップは切り捨てられます。—
戻り値
MimiDecoderOutput または tuple(torch.FloatTensor)
MimiDecoderOutput、またはtorch.FloatTensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(MimiConfig)や入力に応じて、さまざまな要素で構成されます。
MimiDecoderModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
audio_values (
torch.FloatTensor、形状(batch_size, audio_channels, num_samples)、任意) — Mimi のデコーダー部分を使用して取得したデコード済みオーディオ値。decoder_past_key_values (
Cache、任意) — 自己注意ブロックのキーとバリューの事前計算済み隠れ状態です。デコーダの Transformer の逐次デコードを高速化するために使用できます。 通常、use_cache=Trueまたはconfig.use_cache=Trueの場合、モデルがデコードの以前の段階で返したpast_key_valuesで構成されます。モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
past_key_valuesを使用する場合、ユーザーは、このモデルに過去のキーバリュー状態が与えられていない最後のaudio_valuesまたは`audio_codes`のみを入力することもできます。hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueの場合のみ返されます) — デコーダの Transformer の各層の出力およびその入力の隠れ状態です。attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueの場合のみ返されます) — 各デコーダ Transformer レイヤーの Attention 重み。