Transformers documentation
Bark
このモデルは2023年7月17日にHugging Face Transformersに貢献されました。
Bark
概要
Barkは、suno-ai/barkでSuno AIが提案した、Transformerベースのテキスト読み上げモデルです。
Barkは4つの主要なモデルで構成されています:
- BarkSemanticModel(「text」モデルとも呼ばれる): トークン化されたテキストを入力として受け取り、テキストの意味を捉えたセマンティックなテキストトークンを予測する、因果的な自己回帰型 Transformer モデルです。
- BarkCoarseModel(「coarse acoustics」モデルとも呼ばれる): BarkSemanticModelモデルの結果を入力として受け取る、因果的オートレグレッシブ・トランスフォーマーです。EnCodec に必要な最初の 2 つのオーディオ・コードブックを予測することを目的としています。
- BarkFineModel(「fine acoustics」モデル)は、今回非因果オートエンコーダ型トランスフォーマーであり、以前のコードブックの埋め込みの合計に基づいて最後のコードブックを反復的に予測します。
- EncodecModelによってすべてのコードブックチャネルを予測した後、Bark はそれを使用して出力オーディオ配列をデコードします。
最初の3つのモジュールはそれぞれ、条件付きのスピーカー埋め込みをサポートしており、特定の事前定義された声に基づいて出力音声を条件付けできます。
このモデルは、Yoach Lacombe (ylacombe) と Sanchit Gandhi (sanchit-gandhi) によって提供されました。 元のコードはこちらで確認できます。
Barkの最適化
Barkは、わずか数行のコードを追加するだけで最適化でき、メモリ使用量を大幅に削減し、推論を高速化できます。
半精度の使用
モデルを半精度で読み込むだけで、推論を高速化し、メモリ使用量を50%削減できます。
from transformers import BarkModel
model = BarkModel.from_pretrained("suno/bark-small", device_map="auto")CPU オフロードの使用
上記で述べたように、Bark は4つのサブモデルで構成されており、音声生成時にはこれらが順番に呼び出されます。つまり、あるサブモデルが使用中の間に、他のサブモデルは待機状態になります。
CUDA GPUまたはIntel XPUを使用している場合、アイドル状態のサブモデルをデバイスからCPUへオフロードすることで、メモリ使用量を80%削減できるシンプルなソリューションがあります。この操作はCPUオフローディングと呼ばれます。以下の1行のコードで利用できます。
model.enable_cpu_offload()
この機能を使用する前に、🤗 Accelerate をインストールしておく必要があります。インストール方法はこちら。
Flash Attention 2 の使用
Flash Attention 2 は、以前の最適化よりもさらに高速で最適化されたバージョンです。
インストール
まず、お使いのハードウェアが Flash Attention 2 と互換性があるかどうかを確認してください。互換性のあるハードウェアの最新リストは、公式ドキュメントで確認できます。 次に、Flash Attention 2 の最新バージョンをインストールします:
pip install -U flash-attn --no-build-isolation
使用方法
Flash Attention 2 を使用してモデルを読み込むには、from_pretrained() に attn_implementation="flash_attention_2" フラグを渡すことができます。また、音声品質への劣化はほぼないものの、メモリ使用量が大幅に低減され、推論が高速になるため、モデルは半精度(例: torch.float16)で読み込みます。
model = BarkModel.from_pretrained("suno/bark-small", attn_implementation="flash_attention_2", device_map="auto")パフォーマンス比較
次の図は、ネイティブなアテンション実装(最適化なし)と Flash Attention 2 のレイテンシーを示しています。いずれの場合も、PyTorch 2.1 を使用した 40GB の A100 GPU 上で 400 個のセマンティックトークンを生成しています。

この規模感を示すために、NVIDIA A100 上でバッチサイズ 16 により 400 個のセマンティックトークンを生成する場合、ネイティブなモデル実装で文を 1 つずつ生成するよりも 17 倍のスループットを達成でき、さらに 2 秒速くなります。つまり、すべてのサンプルが 17 倍速く生成されるということです。
最適化技術の組み合わせ
最適化技術の組み合わせが可能であり、CPU オフロード、半精度、Flash Attention 2 をすべて同時に使用できます。
from transformers import BarkModel
# load in fp16 and use Flash Attention 2
model = BarkModel.from_pretrained("suno/bark-small", attn_implementation="flash_attention_2", device_map="auto")
# enable CPU offload
model.enable_cpu_offload()推論最適化技術の詳細については、こちらをご覧ください。
使用のコツ
Suno は、こちらで複数の言語に対応した音声プリセットのライブラリを提供しています。 これらのプリセットは、こちらまたはこちらのハブにもアップロードされています。
from transformers import AutoProcessor, BarkModel
processor = AutoProcessor.from_pretrained("suno/bark")
model = BarkModel.from_pretrained("suno/bark", device_map="auto")
voice_preset = "v2/en_speaker_6"
inputs = processor("Hello, my dog is cute", voice_preset=voice_preset)
audio_array = model.generate(**inputs)
audio_array = audio_array.cpu().numpy().squeeze()Barkは、非常にリアルな多言語音声だけでなく、音楽、背景音、単純な効果音などの他の音声も生成できます。
# Multilingual speech - simplified Chinese
inputs = processor("惊人的!我会说中文")
# Multilingual speech - French - let's use a voice_preset as well
inputs = processor("Incroyable! Je peux générer du son.", voice_preset="fr_speaker_5")
# Bark can also generate music. You can help it out by adding music notes around your lyrics.
inputs = processor("♪ Hello, my dog is cute ♪")
audio_array = model.generate(**inputs)
audio_array = audio_array.cpu().numpy().squeeze()モデルは、笑い、ため息、泣き声などの非言語コミュニケーションも生成できます。
# Adding non-speech cues to the input text
inputs = processor("Hello uh [clears throat], my dog is cute [laughter]")
audio_array = model.generate(**inputs)
audio_array = audio_array.cpu().numpy().squeeze()オーディオを保存するには、モデルのconfigからサンプリングレートを取得し、scipyのユーティリティを使用するだけです。
from scipy.io.wavfile import write as write_wav
# save audio to disk, but first take the sample rate from the model config
sample_rate = model.generation_config.sample_rate
write_wav("bark_generation.wav", sample_rate, audio_array)BarkConfig
クラス transformers.BarkConfig
< 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 = Nonesemantic_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonecoarse_acoustics_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonefine_acoustics_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonecodec_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneinitializer_range: float = 0.02 )
パラメータ
- semantic_config (BarkSemanticConfig、任意) — 下層のセマンティックサブモデルの設定です。
- coarse_acoustics_config (BarkCoarseConfig、任意) — 下層の粗い音響サブモデルの設定です。
- fine_acoustics_config (BarkFineConfig、任意) — 下層のファインアコースティクスサブモデルの設定です。
- codec_config (AutoConfig、任意) — 基盤となるコーデックサブモデルの設定です。
- initializer_range (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
これはBarkModelの設定を保存するための設定クラスです。指定された引数に基づいてBarkモデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、suno/barkと類似した設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
例:
>>> from transformers import (
... BarkSemanticConfig,
... BarkCoarseConfig,
... BarkFineConfig,
... BarkModel,
... BarkConfig,
... AutoConfig,
... )
>>> # Initializing Bark sub-modules configurations.
>>> semantic_config = BarkSemanticConfig()
>>> coarse_acoustics_config = BarkCoarseConfig()
>>> fine_acoustics_config = BarkFineConfig()
>>> codec_config = AutoConfig.from_pretrained("facebook/encodec_24khz")
>>> # Initializing a Bark module style configuration
>>> configuration = BarkConfig(
... semantic_config, coarse_acoustics_config, fine_acoustics_config, codec_config
... )
>>> # Initializing a model (with random weights)
>>> model = BarkModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configBarkProcessor
class transformers.BarkProcessor
< source >( tokenizerspeaker_embeddings = None )
パラメータ
- tokenizer (
BertTokenizer) — トークナイザーは必須の入力です。 - speaker_embeddings (
dict[dict[str]]、任意) — 任意のネストされたスピーカー埋め込み辞書です。第1階層には音声プリセット名(例:"en_speaker_4")が含まれます。第2階層には、"semantic_prompt"、"coarse_prompt"、"fine_prompt"の埋め込みが含まれます。各値は、対応するnp.ndarrayのパスに対応します。voice_preset_namesのリストについては、こちらを参照してください。
BarkProcessor を構築し、トークナイザーを単一のプロセッサーにラップします。
BarkProcessor は BertTokenizer のすべての機能を提供します。詳細については、~BertTokenizer を参照してください。
__call__
< source >( text = Nonevoice_preset = Nonereturn_tensors = 'pt'max_length = 256add_special_tokens = Falsereturn_attention_mask = Truereturn_token_type_ids = False**kwargs ) → BatchEncoding
パラメータ
- 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, setis_split_into_words=True` to avoid ambiguity with batched inputs. - voice_preset (
str,dict[np.ndarray]) — ボイスポリセット、すなわちスピーカー埋め込みです。有効な voice_preset 名(例:"en_speaker_1")を指定するか、Barkの各サブモデルに対するnp.ndarray埋め込みの辞書を直接指定できます。また、キー"semantic_prompt"、"coarse_prompt"、"fine_prompt"を含むローカルの.npz単一ボイスポリセットファイル名を指定することもできます。 - return_tensors (`
, defaults topt`) — 設定すると、特定のフレームワークのテンソルを返します。受け入れられる値は以下の通りです:'pt': PyTorchのtorch.Tensorオブジェクトを返します。'np': NumPyのnp.ndarrayオブジェクトを返します。
- max_length (
int, デフォルト値は256) — truncation/padding パラメータのいずれかによって使用される最大長を制御します。未設定のまま、または
Noneに設定されている場合、truncation/padding パラメータのいずれかが最大長を必要とする場合、事前に定義されたモデルの最大長が使用されます。モデルに特定の最大入力長がない場合(XLNet など)、最大長への truncation/padding は無効になります。 - add_special_tokens (
bool、デフォルトはFalse) — シーケンスをエンコードする際に特殊トークンを追加するかどうか。これは、入力 ID に自動的に追加されるトークンを定義するPretrainedTokenizerBase.build_inputs_with_special_tokens関数を使用します。bosやeosトークンを自動的に追加したい場合に便利です。 - return_attention_mask (
bool, デフォルトはTrue) — attention mask を返すかどうか。デフォルトのままにすると、return_outputs属性で定義される特定の tokenizer のデフォルトに従って attention mask を返します。 - return_token_type_ids (
bool, デフォルトはFalse) — トークンタイプIDを返すかどうか。デフォルトのままにすると、特定のトークナイザーのデフォルトに従ってトークンタイプIDを返します。これはreturn_outputs属性で定義されます。
戻り値
tokenizer の出力を含む BatchEncoding オブジェクト。
音声プリセットが指定されている場合、返されるオブジェクトには、適切なテンソル型を持つ音声プリセット、すなわち BatchFeature を含む "history_prompt" キーが含まれます。
from_pretrained
< source >( pretrained_processor_name_or_pathspeaker_embeddings_dict_path = 'speaker_embeddings_path.json'**kwargs )
パラメータ
- pretrained_model_name_or_path (
strまたはos.PathLike) — 次のいずれかです:- 文字列、huggingface.co上のモデルリポジトリにホストされている事前学習済みBarkProcessorのmodel id。
- a path to a directory containing a processor saved using the save_pretrained()
method, e.g.,
./my_model_directory/.
- speaker_embeddings_dict_path (
str、任意、デフォルトは"speaker_embeddings_path.json") —pretrained_model_name_or_pathに配置されている speaker_embeddings ディクショナリを含む.jsonファイルの名前です。Noneの場合、speaker_embeddings は読み込まれません。 - **kwargs —
~tokenization_utils_base.PreTrainedTokenizer.from_pretrainedに渡される追加のキーワード引数。
事前学習済みモデルに関連付けられた Bark プロセッサをインスタンス化します。
save_pretrained
< source >( save_directoryspeaker_embeddings_dict_path = 'speaker_embeddings_path.json'speaker_embeddings_directory = 'speaker_embeddings'push_to_hub: bool = False**kwargs )
パラメータ
- save_directory (
strまたはos.PathLike) — トークナイザーファイルとスピーカー埋め込みを保存するディレクトリです(存在しない場合は作成されます)。 - speaker_embeddings_dict_path (
str、任意、デフォルトは"speaker_embeddings_path.json") — 存在する場合、speaker_embeddings のネストされたパス辞書を含む.jsonファイルの名前です。このファイルはpretrained_model_name_or_path/speaker_embeddings_directoryに配置されます。 - speaker_embeddings_directory (
str、任意、デフォルトは"speaker_embeddings/") — speaker_embeddings 配列を保存するフォルダの名前です。 - push_to_hub (
bool、省略可、デフォルトはFalse) — モデルを保存した後、Hugging Face モデルハブにプッシュするかどうかを指定します。プッシュ先のリポジトリはrepo_idで指定できます(指定しない場合、save_directoryの名前があなたのネームスペース内でデフォルトとして使用されます)。 - kwargs — push_to_hub() メソッドに渡される追加のキーワード引数。
このプロセッサ(トークナイザーなど)の属性を指定されたディレクトリに保存し、from_pretrained()メソッドを使って再読み込みできるようにします。
BarkModel
class transformers.BarkModel
< source >( config: BarkConfig )
パラメータ
- config (BarkConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
4つのサブモデルで構成されるテキストから音声への変換モデルである、完全なBarkモデル:
- BarkSemanticModel(「text」モデルとも呼ばれる): トークン化されたテキストを入力として受け取り、テキストの意味を捉えたセマンティックなテキストトークンを予測する、因果的な自己回帰型 Transformer モデルです。
- BarkCoarseModel(「coarse acoustics」モデルとも呼ばれる)もまた因果的自己回帰型 transformer であり、直前のモデルの結果を入力として受け取ります。
encodecに必要な最初の 2 つのオーディオコードブックを回帰することを目的としています。 - BarkFineModel(「fine acoustics」モデル)は、今回は非因果オートエンコーダ型トランスフォーマーであり、以前のコードブックの埋め込みの合計に基づいて、最後のコードブックを反復的に予測します。
- EncodecModelからすべてのコードブックチャネルを予測した後、Bark はそれを使用して出力音声配列をデコードします。
最初の3つのモジュールのそれぞれが、条件付きのスピーカー埋め込みをサポートできる点に注意してください。これにより、特定の事前定義された声に基づいて出力音声を条件付けできます。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
generate
< source >( input_ids: typing.Optional[torch.Tensor] = Nonehistory_prompt: dict[str, torch.Tensor] | None = Nonereturn_output_lengths: bool | None = None**kwargs ) → By default
パラメータ
- input_ids (
Optional[torch.Tensor]、shape (batch_size, seq_len)、任意) — 入力 ID です。256 トークンまで切り詰められます。なお、出力される音声の長さは、バッチ内で最も長い生成結果の長さに等しくなります。 - history_prompt (
Optional[dict[str,torch.Tensor]], 省略可) — 任意のBarkスピーカープロンプトです。なお、現時点ではこのモデルはバッチごとに 1 つのスピーカープロンプトのみを受け取ります。 - kwargs (省略可能) — 残りのキーワード引数の辞書です。キーワード引数は以下の2種類があります:
- プレフィックスがない場合、各サブモデルの
generateメソッドに対して**kwargsとして入力されます。 - semantic_、coarse_、fine_ というプレフィックスが付与された場合、それぞれ semantic、coarse、fine の
generateメソッドの入力として使用されます。プレフィックスなしのキーワードよりも優先されます。
つまり、例えば、ある1つのサブモデルを除くすべてのサブモデルに対して生成戦略を指定できます。
- プレフィックスがない場合、各サブモデルの
- return_output_lengths (
bool, 任意) — 波形の長さを返すかどうか。バッチ処理を行う場合に便利です。
戻り値
デフォルトでは
- audio_waveform (shape (batch_size, seq_len) の
torch.Tensor): 生成されたオーディオ波形。return_output_lengths=Trueの場合: 以下の要素からなるタプルを返します: - audio_waveform(
torch.Tensor、shape: (batch_size, seq_len)): 生成されたオーディオ波形。 - output_lengths (
torch.Tensor、shape: (batch_size)): バッチ内の各波形の長さ
入力プロンプトと、任意の追加のBarkスピーカープロンプトからオーディオを生成します。
例:
>>> from transformers import AutoProcessor, BarkModel
>>> processor = AutoProcessor.from_pretrained("suno/bark-small")
>>> model = BarkModel.from_pretrained("suno/bark-small")
>>> # To add a voice preset, you can pass `voice_preset` to `BarkProcessor.__call__(...)`
>>> voice_preset = "v2/en_speaker_6"
>>> inputs = processor("Hello, my dog is cute, I need him in my life", voice_preset=voice_preset)
>>> audio_array = model.generate(**inputs, semantic_max_new_tokens=100)
>>> audio_array = audio_array.cpu().numpy().squeeze()enable_cpu_offload
< source >( accelerator_id: int | None = 0**kwargs )
accelerate を使用してすべてのサブモデルを CPU にオフロードし、パフォーマンスへの影響を最小限に抑えながらメモリ使用量を削減します。このメソッドでは、サブモデルが使用されるたびに、1 つのサブモデル全体をアクセラレーターに移動し、次のサブモデルが実行されるまでそのサブモデルはアクセラレーター上に保持されます。
BarkSemanticModel
class transformers.BarkSemanticModel
< source >( config: BarkSubModelConfig )
パラメータ
- config (
BarkSubModelConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Barkのセマンティック(またはテキスト)モデルです。粗いモデルと同じアーキテクチャを共有しています。 言語モデリングヘッドを備えた、GPT-2のような自己回帰モデルです。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → CausalLMOutputWithPast or tuple(torch.Tensor)
パラメータ
- input_ids (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — 語彙における入力シーケンスのトークンインデックスです。デフォルトでは、パディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- 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 です。
- position_ids (
torch.Tensorの形状(batch_size, sequence_length), 、省略可) — 位置埋め込みにおける各入力シーケンスのトークンの位置のインデックス。範囲[0, config.n_positions - 1]. - labels (
torch.LongTensor、shape(batch_size, sequence_length)、任意) — マスク言語モデリング損失を計算するためのラベルです。インデックスは[0, ..., config.vocab_size]の範囲内であるか、-100 である必要があります(input_idsの docstring を参照)。インデックスが-100に設定されたトークンは無視(マスク)され、損失は[0, ..., config.vocab_size]の範囲内のラベルを持つトークンに対してのみ計算されます。 - inputs_embeds (
torch.Tensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - use_cache (
bool、任意) —Trueに設定すると、past_key_valuesのキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_valuesを参照)。 - output_attentions (
bool, 省略可) — すべてのアテンション層のアテンションテンソルを返すかどうかを指定します。詳細は、返されるテンソルのattentionsを参照してください。 - output_hidden_states (
bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルのhidden_statesを参照してください。 - return_dict (
bool, 任意) — プレーンなタプルではなく ModelOutput を返すかどうか。
戻り値
CausalLMOutputWithPast または tuple(torch.Tensor)
torch.Tensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または CausalLMOutputWithPast。設定(BarkConfig)と入力に応じて、さまざまな要素で構成されます。
BarkCausalModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
torch.Tensor、形状(1,)、任意、labelsが指定された場合に返されます) — 言語モデリングの損失(次のトークンの予測用)。logits (
torch.Tensor、形状(batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。past_key_values (
Cache、任意、use_cache=Trueが渡された場合またはconfig.use_cache=Trueの場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。逐次デコーディングを高速化するために使用できる(
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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
BarkCoarseModel
class transformers.BarkCoarseModel
< source >( config: BarkSubModelConfig )
パラメータ
- config (
BarkSubModelConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Bark coarse acoustics model。 セマンティック(またはテキスト)モデルと同じアーキテクチャを共有しています。上部に言語モデリングヘッドを備えた、GPT-2 風の自己回帰モデルです。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → CausalLMOutputWithPast or tuple(torch.Tensor)
パラメータ
- input_ids (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — 語彙における入力シーケンスのトークンインデックスです。デフォルトでは、パディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- 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 です。
- position_ids (
torch.Tensorの形状(batch_size, sequence_length), 、省略可) — 位置埋め込みにおける各入力シーケンスのトークンの位置のインデックス。範囲[0, config.n_positions - 1]. - labels (
torch.LongTensor、shape(batch_size, sequence_length)、任意) — マスク言語モデリング損失を計算するためのラベルです。インデックスは[0, ..., config.vocab_size]の範囲内であるか、-100 である必要があります(input_idsの docstring を参照)。インデックスが-100に設定されたトークンは無視(マスク)され、損失は[0, ..., config.vocab_size]の範囲内のラベルを持つトークンに対してのみ計算されます。 - inputs_embeds (
torch.Tensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - use_cache (
bool、任意) —Trueに設定すると、past_key_valuesのキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_valuesを参照)。 - output_attentions (
bool, 省略可) — すべてのアテンション層のアテンションテンソルを返すかどうかを指定します。詳細は、返されるテンソルのattentionsを参照してください。 - output_hidden_states (
bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルのhidden_statesを参照してください。 - return_dict (
bool, 任意) — プレーンなタプルではなく ModelOutput を返すかどうか。
戻り値
CausalLMOutputWithPast または tuple(torch.Tensor)
torch.Tensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または CausalLMOutputWithPast。設定(BarkConfig)と入力に応じて、さまざまな要素で構成されます。
BarkCausalModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
torch.Tensor、形状(1,)、任意、labelsが指定された場合に返されます) — 言語モデリングの損失(次のトークンの予測用)。logits (
torch.Tensor、形状(batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。past_key_values (
Cache、任意、use_cache=Trueが渡された場合またはconfig.use_cache=Trueの場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。逐次デコーディングを高速化するために使用できる(
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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
BarkFineModel
class transformers.BarkFineModel
< source >( config: BarkFineConfig )
パラメータ
- config (BarkFineConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Barkのファインアコースティクスモデルです。config.n_codes_total個の埋め込み層と、各コードブックに対応する言語モデリングヘッドを持つ、非因果的なGPT類似のモデルです。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( codebook_idx: intinput_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → MaskedLMOutput or tuple(torch.Tensor)
パラメータ
- codebook_idx (
int) — 予測されるコードブックのインデックス。 - input_ids (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — 語彙における入力シーケンスのトークンインデックスです。デフォルトでは、パディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- attention_mask (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。[0, 1]:- マスクされていないトークンに対して1
- マスクされたトークンに対しては 0 です。
- position_ids (
torch.Tensorの形状(batch_size, sequence_length), 、省略可) — 位置埋め込みにおける各入力シーケンスのトークンの位置のインデックス。範囲[0, config.n_positions - 1]. - labels (
torch.LongTensor、形状(batch_size, sequence_length)、任意) — 未実装です。 - inputs_embeds (
torch.Tensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - output_attentions (
bool, 省略可) — すべてのアテンション層のアテンションテンソルを返すかどうかを指定します。詳細は、返されるテンソルのattentionsを参照してください。 - output_hidden_states (
bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルのhidden_statesを参照してください。 - return_dict (
bool, 任意) — プレーンなタプルではなく ModelOutput を返すかどうか。
戻り値
MaskedLMOutput または tuple(torch.Tensor)
torch.Tensor のタプル、または MaskedLMOutput(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(BarkConfig)と入力に応じて、さまざまな要素で構成されます。
BarkFineModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
torch.Tensor、形状(1,)、任意、labelsが指定された場合に返されます) — マスクド言語モデリング (MLM) の損失。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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
BarkCausalModel
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → CausalLMOutputWithPast or tuple(torch.Tensor)
パラメータ
- input_ids (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — 語彙における入力シーケンスのトークンインデックスです。デフォルトでは、パディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- 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 です。
- position_ids (
torch.Tensorの形状(batch_size, sequence_length), 、省略可) — 位置埋め込みにおける各入力シーケンスのトークンの位置のインデックス。範囲[0, config.n_positions - 1]. - labels (
torch.LongTensor、shape(batch_size, sequence_length)、任意) — マスク言語モデリング損失を計算するためのラベルです。インデックスは[0, ..., config.vocab_size]の範囲内であるか、-100 である必要があります(input_idsの docstring を参照)。インデックスが-100に設定されたトークンは無視(マスク)され、損失は[0, ..., config.vocab_size]の範囲内のラベルを持つトークンに対してのみ計算されます。 - inputs_embeds (
torch.Tensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - use_cache (
bool、任意) —Trueに設定すると、past_key_valuesのキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_valuesを参照)。 - output_attentions (
bool, 省略可) — すべてのアテンション層のアテンションテンソルを返すかどうかを指定します。詳細は、返されるテンソルのattentionsを参照してください。 - output_hidden_states (
bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルのhidden_statesを参照してください。 - return_dict (
bool, 任意) — プレーンなタプルではなく ModelOutput を返すかどうか。
戻り値
CausalLMOutputWithPast または tuple(torch.Tensor)
torch.Tensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または CausalLMOutputWithPast。設定(BarkConfig)と入力に応じて、さまざまな要素で構成されます。
BarkCausalModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
torch.Tensor、形状(1,)、任意、labelsが指定された場合に返されます) — 言語モデリングの損失(次のトークンの予測用)。logits (
torch.Tensor、形状(batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。past_key_values (
Cache、任意、use_cache=Trueが渡された場合またはconfig.use_cache=Trueの場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。逐次デコーディングを高速化するために使用できる(
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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
BarkCoarseConfig
class transformers.BarkCoarseConfig
< 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 = Noneblock_size: int = 1024input_vocab_size: int = 10048output_vocab_size: int = 10048num_layers: int = 12num_heads: int = 12hidden_size: int = 768dropout: float | int = 0.0bias: bool = Trueinitializer_range: float = 0.02use_cache: bool = True )
パラメータ
- block_size (
int, 任意、デフォルトは 1024) — このモデルが使用される可能性のある最大シーケンス長です。念のため、大きめの値(例: 512、1024、2048 など)に設定するのが一般的です。 - input_vocab_size (
int、任意、デフォルト値は 10_048) — Bark のサブモデルの語彙サイズです。{model}を呼び出す際に渡すinputs_idsで表現できるトークンの種類数を定義します。デフォルト値は 10_048 ですが、選択したサブモデルに応じて慎重に検討する必要があります。 - output_vocab_size (
int、任意、デフォルト値は 10_048) — Bark のサブモデルの出力語彙サイズです。{model}をフォワードパスで渡す際に、output_idsで表現できるトークンの種類数を定義します。デフォルト値は 10_048 ですが、選択したサブモデルに応じて慎重に検討する必要があります。 - num_layers (
int、任意、デフォルトは12) — Transformer デコーダーにおける隠れ層の数。 - num_heads (
int、任意、デフォルトは12) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。 - hidden_size (
int、任意、デフォルトは768) — 隠れ表現の次元数。 - dropout (
Union[float, int]、省略可、デフォルト値は0.0) — すべての dropout レイヤーの比率です。 - bias (
bool、省略可、デフォルトはTrue) — 線形層と層正規化層でバイアスを使用するかどうか - initializer_range (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。 - use_cache (
bool、任意、デフォルトはTrue) — モデルが最後のキー/バリューの注意を返すかどうか(すべてのモデルで利用されるわけではありません)。config.is_decoder=Trueの場合、またはモデルがデコーダー専用の生成モデルである場合にのみ関連します。
これはBarkModelの設定を保存するための設定クラスです。指定された引数に基づいてBarkモデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、suno/barkと類似した設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
例:
>>> from transformers import BarkCoarseConfig, BarkCoarseModel
>>> # Initializing a Bark sub-module style configuration
>>> configuration = BarkCoarseConfig()
>>> # Initializing a model (with random weights) from the suno/bark style configuration
>>> model = BarkCoarseModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configBarkFineConfig
クラス transformers.BarkFineConfig
< 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 = Noneblock_size: int = 1024input_vocab_size: int = 10048output_vocab_size: int = 10048num_layers: int = 12num_heads: int = 12hidden_size: int = 768dropout: float | int = 0.0bias: bool = Trueinitializer_range: float = 0.02use_cache: bool = Truetie_word_embeddings: bool = Truen_codes_total: int = 8n_codes_given: int = 1 )
パラメータ
- block_size (
int, 任意、デフォルトは 1024) — このモデルが使用される可能性のある最大シーケンス長です。念のため、大きめの値(例: 512、1024、2048 など)に設定するのが一般的です。 - input_vocab_size (
int、任意、デフォルト値は 10_048) — Bark のサブモデルの語彙サイズです。{model}を呼び出す際に渡すinputs_idsで表現できるトークンの種類数を定義します。デフォルト値は 10_048 ですが、選択したサブモデルに応じて慎重に検討する必要があります。 - output_vocab_size (
int、任意、デフォルト値は 10_048) — Bark のサブモデルの出力語彙サイズです。{model}をフォワードパスで渡す際に、output_idsで表現できるトークンの種類数を定義します。デフォルト値は 10_048 ですが、選択したサブモデルに応じて慎重に検討する必要があります。 - num_layers (
int、任意、デフォルトは12) — Transformer デコーダーにおける隠れ層の数。 - num_heads (
int、任意、デフォルトは12) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。 - hidden_size (
int、任意、デフォルトは768) — 隠れ表現の次元数。 - dropout (
Union[float, int]、省略可、デフォルト値は0.0) — すべての dropout レイヤーの比率です。 - bias (
bool、省略可、デフォルトはTrue) — 線形層と層正規化層でバイアスを使用するかどうか - initializer_range (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。 - use_cache (
bool、任意、デフォルトはTrue) — モデルが最後のキー/バリューの注意を返すかどうか(すべてのモデルで利用されるわけではありません)。config.is_decoder=Trueの場合、またはモデルがデコーダー専用の生成モデルである場合にのみ関連します。 - tie_word_embeddings (
bool、任意、デフォルトはTrue) — モデルのtied_weights_keysマッピングに従って重み埋め込みを共有するかどうかを指定します。 - n_codes_total (
int、任意、デフォルトは 8) — 予測されるオーディオコードブックの総数です。ファインアコースティクスサブモデルで使用されます。 - n_codes_given (
int、任意、デフォルトは 1) — 粗い音響サブモデルで予測されるオーディオコードブックの数。音響サブモデルで使用されます。
これはBarkModelの設定を保存するための設定クラスです。指定された引数に基づいてBarkモデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、suno/barkと類似した設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
例:
>>> from transformers import BarkFineConfig, BarkFineModel
>>> # Initializing a Bark sub-module style configuration
>>> configuration = BarkFineConfig()
>>> # Initializing a model (with random weights) from the suno/bark style configuration
>>> model = BarkFineModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configBarkSemanticConfig
クラス transformers.BarkSemanticConfig
< 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 = Noneblock_size: int = 1024input_vocab_size: int = 10048output_vocab_size: int = 10048num_layers: int = 12num_heads: int = 12hidden_size: int = 768dropout: float | int = 0.0bias: bool = Trueinitializer_range: float = 0.02use_cache: bool = True )
パラメータ
- block_size (
int, 任意、デフォルトは 1024) — このモデルが使用される可能性のある最大シーケンス長です。念のため、大きめの値(例: 512、1024、2048 など)に設定するのが一般的です。 - input_vocab_size (
int、任意、デフォルト値は 10_048) — Bark のサブモデルの語彙サイズです。{model}を呼び出す際に渡すinputs_idsで表現できるトークンの種類数を定義します。デフォルト値は 10_048 ですが、選択したサブモデルに応じて慎重に検討する必要があります。 - output_vocab_size (
int、任意、デフォルト値は 10_048) — Bark のサブモデルの出力語彙サイズです。{model}をフォワードパスで渡す際に、output_idsで表現できるトークンの種類数を定義します。デフォルト値は 10_048 ですが、選択したサブモデルに応じて慎重に検討する必要があります。 - num_layers (
int、任意、デフォルトは12) — Transformer デコーダーにおける隠れ層の数。 - num_heads (
int、任意、デフォルトは12) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。 - hidden_size (
int、任意、デフォルトは768) — 隠れ表現の次元数。 - dropout (
Union[float, int]、省略可、デフォルト値は0.0) — すべての dropout レイヤーの比率です。 - bias (
bool、省略可、デフォルトはTrue) — 線形層と層正規化層でバイアスを使用するかどうか - initializer_range (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。 - use_cache (
bool、任意、デフォルトはTrue) — モデルが最後のキー/バリューの注意を返すかどうか(すべてのモデルで利用されるわけではありません)。config.is_decoder=Trueの場合、またはモデルがデコーダー専用の生成モデルである場合にのみ関連します。
これはBarkModelの設定を保存するための設定クラスです。指定された引数に基づいてBarkモデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、suno/barkと類似した設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
例:
>>> from transformers import BarkSemanticConfig, BarkSemanticModel
>>> # Initializing a Bark sub-module style configuration
>>> configuration = BarkSemanticConfig()
>>> # Initializing a model (with random weights) from the suno/bark style configuration
>>> model = BarkSemanticModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config