Transformers 文件

巴克

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

Bark

PyTorch FlashAttention

概述

Bark 是由 Suno AI 在 suno-ai/bark 中提出的基於 Transformer 的文字轉語音模型。

Bark 由 4 個主要模型組成

  • BarkSemanticModel(也稱為“文字”模型):一種因果自迴歸 Transformer 模型,它以分詞文字作為輸入,並預測捕獲文字含義的語義文字標記。
  • BarkCoarseModel(也稱為“粗聲學”模型):一種因果自迴歸 Transformer,它以 BarkSemanticModel 模型的結果作為輸入。它旨在預測 EnCodec 所需的前兩個音訊編碼本。
  • BarkFineModel(“精細聲學”模型),這次是一個非因果自編碼器 Transformer,它根據先前編碼本嵌入的總和迭代預測最後一個編碼本。
  • 在預測了 EncodecModel 的所有編碼本通道後,Bark 使用它來解碼輸出音訊陣列。

值得注意的是,前三個模組中的每一個都可以支援條件說話人嵌入,以根據特定預定義語音條件化輸出聲音。

此模型由 Yoach Lacombe (ylacombe)Sanchit Gandhi (sanchit-gandhi) 貢獻。原始程式碼可以在這裡找到。

最佳化 Bark

Bark 只需額外幾行程式碼即可最佳化,這可以**顯著減少其記憶體佔用**並**加速推理**。

使用半精度

您只需以半精度載入模型,即可將推理速度提高 50%,並將記憶體佔用減少 50%。

from transformers import BarkModel
import torch

device = "cuda" if torch.cuda.is_available() else "cpu"
model = BarkModel.from_pretrained("suno/bark-small", torch_dtype=torch.float16).to(device)

使用 CPU 解除安裝

如上所述,Bark 由 4 個子模型組成,它們在音訊生成過程中按順序呼叫。換句話說,當一個子模型在使用時,其他子模型處於空閒狀態。

如果您使用的是 CUDA 裝置,一種簡單的解決方案,可將記憶體佔用減少 80%,是在子模型空閒時將其從 GPU 解除安裝到 CPU。此操作稱為 *CPU 解除安裝*。您只需一行程式碼即可使用它,如下所示

model.enable_cpu_offload()

請注意,在使用此功能之前必須安裝 🤗 Accelerate。安裝方法在此處。

使用 Better Transformer

Better Transformer 是 🤗 Optimum 的一個功能,可在底層執行核心融合。您可以在不降低效能的情況下將速度提高 20% 到 30%。它只需要一行程式碼即可將模型匯出到 🤗 Better Transformer

model =  model.to_bettertransformer()

請注意,在使用此功能之前必須安裝 🤗 Optimum。安裝方法在此處。

使用 Flash Attention 2

Flash Attention 2 是前一個最佳化版本的更快、更最佳化的版本。

安裝

首先,檢查您的硬體是否與 Flash Attention 2 相容。相容硬體的最新列表可在官方文件中找到。如果您的硬體與 Flash Attention 2 不相容,您仍然可以透過上述Better Transformer 支援從注意力核心最佳化中受益。

接下來,安裝 最新版本的 Flash Attention 2

pip install -U flash-attn --no-build-isolation
用法

要使用 Flash Attention 2 載入模型,我們可以將 `attn_implementation="flash_attention_2"` 標誌傳遞給 `.from_pretrained`。我們還將以半精度(例如 `torch.float16`)載入模型,因為它幾乎不會降低音訊質量,但能顯著降低記憶體使用和加快推理速度

model = BarkModel.from_pretrained("suno/bark-small", torch_dtype=torch.float16, attn_implementation="flash_attention_2").to(device)
效能比較

以下圖表顯示了原生注意力實現(無最佳化)、Better Transformer 和 Flash Attention 2 的延遲。在所有情況下,我們都在 40GB A100 GPU 上使用 PyTorch 2.1 生成 400 個語義標記。Flash Attention 2 也始終比 Better Transformer 快,並且隨著批次大小的增加,其效能會進一步提高

從這個角度來看,在 NVIDIA A100 上,當以批次大小 16 生成 400 個語義標記時,您可以獲得 17 倍的吞吐量,並且仍然比使用原生模型實現逐個生成句子快 2 秒。換句話說,所有樣本的生成速度將提高 17 倍。

在批次大小為 8 時,在 NVIDIA A100 上,Flash Attention 2 也比 Better Transformer 快 10%,在批次大小為 16 時,快 25%。

結合最佳化技術

您可以結合最佳化技術,同時使用 CPU 解除安裝、半精度和 Flash Attention 2(或 🤗 Better Transformer)。

from transformers import BarkModel
import torch

device = "cuda" if torch.cuda.is_available() else "cpu"

# load in fp16 and use Flash Attention 2
model = BarkModel.from_pretrained("suno/bark-small", torch_dtype=torch.float16, attn_implementation="flash_attention_2").to(device)

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

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

要儲存音訊,只需從模型配置和一些 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

< >

( 語義配置: typing.Optional[dict] = None 粗聲學配置: typing.Optional[dict] = None 精細聲學配置: typing.Optional[dict] = None 編解碼器配置: typing.Optional[dict] = None 初始化範圍 = 0.02 **kwargs )

引數

  • semantic_config (BarkSemanticConfig, 可選) — 基礎語義子模型的配置。
  • coarse_acoustics_config (BarkCoarseConfig, 可選) — 基礎粗聲學子模型的配置。
  • fine_acoustics_config (BarkFineConfig, 可選) — 基礎精細聲學子模型的配置。
  • codec_config (AutoConfig, 可選) — 基礎編解碼器子模型的配置。
  • 示例
  • ```python

    從 transformers 匯入 (

  • … BarkSemanticConfig, —
  • … BarkCoarseConfig, —
  • … BarkFineConfig, —
  • … BarkModel, —
  • … BarkConfig, —
  • … AutoConfig, —
  • … ) —

這是用於儲存 BarkModel 配置的配置類。它用於根據指定的子模型配置例項化 Bark 模型,定義模型架構。

使用預設值例項化配置將產生與 Bark suno/bark 架構類似的配置。

配置物件繼承自 PretrainedConfig,可用於控制模型輸出。有關更多資訊,請閱讀 PretrainedConfig 的文件。

來自子模型配置

< >

( 語義配置: BarkSemanticConfig 粗聲學配置: BarkCoarseConfig 精細聲學配置: BarkFineConfig 編解碼器配置: PretrainedConfig **kwargs ) BarkConfig

返回

Bark配置

一個配置物件的例項

根據 Bark 子模型配置例項化 BarkConfig(或派生類)。

BarkProcessor

transformers.BarkProcessor

< >

( 分詞器 說話人嵌入 = None )

引數

  • 分詞器 (PreTrainedTokenizer) — PreTrainedTokenizer 的一個例項。
  • speaker_embeddings (dict[dict[str]], 可選) — 可選的巢狀說話人嵌入字典。第一層包含語音預設名稱(例如 "en_speaker_4")。第二層包含 "semantic_prompt""coarse_prompt""fine_prompt" 嵌入。值對應於相應 np.ndarray 的路徑。有關 voice_preset_names 列表,請參見此處

構建一個 Bark 處理器,它將文字分詞器和可選的 Bark 語音預設封裝在一個處理器中。

__call__

< >

( 文字 = None 語音預設 = None 返回張量 = 'pt' 最大長度 = 256 新增特殊標記 = False 返回注意力掩碼 = True 返回標記型別 ID = False **kwargs ) Tuple(BatchEncoding, BatchFeature)

引數

  • 文字 (str, list[str], list[list[str]]) — 要編碼的序列或序列批次。每個序列可以是字串或字串列表(預分詞字串)。如果序列以字串列表(預分詞)形式提供,則必須設定 is_split_into_words=True(以消除與序列批次的歧義)。
  • 語音預設 (str, dict[np.ndarray]) — 語音預設,即說話人嵌入。它可以是有效的語音預設名稱,例如 "en_speaker_1",也可以直接是 Bark 的每個子模型的 np.ndarray 嵌入字典。或者它可以是本地 .npz 單個語音預設的有效檔名。
  • return_tensors (strTensorType, 可選) — 如果設定,將返回特定框架的張量。可接受的值為:

    • 'pt': 返回 PyTorch torch.Tensor 物件。
    • 'np': 返回 NumPy np.ndarray 物件。

返回

元組(BatchEncoding, BatchFeature)

BatchEncoding(即 tokenizer 的輸出)和 BatchFeature(即具有正確張量型別的語音預設)組成的元組。

準備模型一個或多個序列的主要方法。此方法將 textkwargs 引數轉發到 AutoTokenizer 的 __call__() 以編碼文字。此方法還提供了一個語音預設,它是一個數組字典,用於條件化 Bark 的輸出。如果 voice_preset 是有效的檔名,則 kwargs 引數將轉發到分詞器和 cached_file 方法。

來自預訓練

< >

( 預訓練處理器名稱或路徑 說話人嵌入字典路徑 = 'speaker_embeddings_path.json' **kwargs )

引數

  • pretrained_model_name_or_path (stros.PathLike) — 這可以是:

    • 一個字串,即託管在 huggingface.co 上模型倉庫中的預訓練 BarkProcessor 的 *模型 ID*。
    • 包含使用 save_pretrained() 方法儲存的處理器的 *目錄* 路徑,例如 ./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 處理器。

儲存預訓練模型

< >

( 儲存目錄 揚聲器嵌入字典路徑 = 'speaker_embeddings_path.json' 揚聲器嵌入目錄 = 'speaker_embeddings' 推送到集線器: bool = False **kwargs )

引數

  • save_directory (stros.PathLike) — 儲存分詞器檔案和說話人嵌入的目錄(如果目錄不存在將建立)。
  • speaker_embeddings_dict_path (str, 可選, 預設為 "speaker_embeddings_path.json") — 將包含說話人嵌入巢狀路徑字典(如果存在)的 .json 檔案的名稱,該檔案將位於 pretrained_model_name_or_path/speaker_embeddings_directory 中。
  • speaker_embeddings_directory (str, 可選, 預設為 "speaker_embeddings/") — 儲存說話人嵌入陣列的資料夾名稱。
  • push_to_hub (bool, 可選, 預設為 False) — 是否在儲存模型後將其推送到 Hugging Face 模型中心。您可以使用 repo_id 指定要推送到的儲存庫(將預設為您名稱空間中 save_directory 的名稱)。
  • kwargs (可選) — 額外關鍵字引數,傳遞給 push_to_hub() 方法。

將此處理器(分詞器…)的屬性儲存在指定目錄中,以便可以使用 from_pretrained() 方法重新載入。

BarkModel

transformers.BarkModel

< >

( 配置 )

引數

  • 配置 (BarkModel) — 包含模型所有引數的模型配置類。使用配置檔案初始化不會載入與模型關聯的權重,只加載配置。請檢視 from_pretrained() 方法載入模型權重。

完整的 Bark 模型,一個由 4 個子模型組成的文字到語音模型

  • BarkSemanticModel(也稱為“文字”模型):一種因果自迴歸 Transformer 模型,它以分詞文字作為輸入,並預測捕獲文字含義的語義文字標記。
  • BarkCoarseModel(也稱為“粗糙聲學”模型),也是一個因果自迴歸轉換器,它將上一個模型的結果作為輸入。它旨在迴歸 encodec 所需的前兩個音訊編碼本。
  • BarkFineModel(“精細聲學”模型),這次是一個非因果自編碼器 Transformer,它根據先前編碼本嵌入的總和迭代預測最後一個編碼本。
  • 在預測了 EncodecModel 的所有編碼本通道後,Bark 使用它來解碼輸出音訊陣列。

值得注意的是,前三個模組中的每一個都可以支援條件說話人嵌入,以根據特定預定義語音條件化輸出聲音。

此模型繼承自 PreTrainedModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(如下載或儲存、調整輸入嵌入大小、修剪頭部等)。

此模型也是 PyTorch torch.nn.Module 子類。將其作為常規 PyTorch 模組使用,並參考 PyTorch 文件瞭解所有與一般用法和行為相關的事項。

生成

< >

( 輸入 ID: typing.Optional[torch.Tensor] = None 歷史提示: typing.Optional[dict[str, torch.Tensor]] = None 返回輸出長度: typing.Optional[bool] = None **kwargs ) 預設情況下

引數

  • input_ids (形狀為 (batch_size, seq_len) 的 Optional[torch.Tensor], 可選) — 輸入 ID。將被截斷至多 256 個標記。請注意,輸出音訊的長度將與批次中最長的生成長度相同。
  • history_prompt (Optional[dict[str,torch.Tensor]], 可選) — 可選的 Bark 說話人提示。請注意,目前此模型每個批次僅接受一個說話人提示。
  • kwargs (可選) — 剩餘的關鍵字引數字典。關鍵字引數有兩種型別:

    • 沒有字首的,將作為 **kwargs 輸入到每個子模型的 generate 方法中。
    • 帶有 semantic_coarse_fine_ 字首的,將分別輸入到語義、粗略和精細模型的 generate 方法中。它優先於沒有字首的關鍵字。

    這意味著您可以,例如,為除一個子模型以外的所有子模型指定生成策略。

  • return_output_lengths (bool, 可選) — 是否返回波形長度。在批處理時很有用。

返回

預設情況下

  • audio_waveform (形狀為 (batch_size, seq_len) 的 torch.Tensor):生成的音訊波形。當 return_output_lengths=True 時:返回一個元組,由以下組成
  • audio_waveform (形狀為 (batch_size, seq_len) 的 torch.Tensor):生成的音訊波形。
  • output_lengths (形狀為 (batch_size) 的 torch.Tensor):批次中每個波形的長度

從輸入提示和可選的額外 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()

啟用 CPU 解除安裝

< >

( 加速器 ID: typing.Optional[int] = 0 **kwargs )

引數

  • accelerator_id (int, 可選, 預設為 0) — 子模型載入和解除安裝的加速器 ID。此引數已棄用。
  • kwargs (dict, 可選) — 附加關鍵字引數:gpu_id:子模型載入和解除安裝的加速器 ID。

使用 accelerate 將所有子模型解除安裝到 CPU,以低效能影響減少記憶體使用。此方法一次將一個完整子模型移動到加速器並在使用時,子模型將保留在加速器中直到下一個子模型執行。

BarkSemanticModel

transformers.BarkSemanticModel

< >

( 配置 )

引數

  • 配置 (BarkCausalModel) — 包含模型所有引數的模型配置類。使用配置檔案初始化不會載入與模型關聯的權重,只加載配置。請檢視 from_pretrained() 方法載入模型權重。

Bark 語義(或文字)模型。它與粗略模型共享相同的架構。它是一個 GPT-2 樣式的自迴歸模型,頂部帶有一個語言建模頭。

此模型繼承自 PreTrainedModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(如下載或儲存、調整輸入嵌入大小、修剪頭部等)。

此模型也是 PyTorch torch.nn.Module 子類。將其作為常規 PyTorch 模組使用,並參考 PyTorch 文件瞭解所有與一般用法和行為相關的事項。

前向傳播

< >

( 輸入 ID: typing.Optional[torch.Tensor] = None 過去的鍵值: typing.Optional[tuple[torch.FloatTensor]] = None 注意力掩碼: typing.Optional[torch.Tensor] = None 位置 ID: typing.Optional[torch.Tensor] = None 頭部掩碼: typing.Optional[torch.Tensor] = None 標籤: typing.Optional[torch.LongTensor] = None 輸入嵌入: typing.Optional[torch.Tensor] = None 使用快取: typing.Optional[bool] = None 輸出注意力: typing.Optional[bool] = None 輸出隱藏狀態: typing.Optional[bool] = None 返回字典: typing.Optional[bool] = None ) transformers.modeling_outputs.CausalLMOutputWithPasttuple(torch.FloatTensor)

引數

  • input_ids (形狀為 (batch_size, sequence_length)torch.Tensor, 可選) — 詞彙表中輸入序列標記的索引。預設情況下將忽略填充。

    可以使用 AutoTokenizer 獲取索引。有關詳細資訊,請參閱 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什麼是輸入 ID?

  • past_key_values (tuple[torch.FloatTensor], 可選) — 預先計算的隱藏狀態(自注意力塊和交叉注意力塊中的鍵和值),可用於加速順序解碼。這通常包括模型在解碼上一階段返回的 past_key_values,當 use_cache=Trueconfig.use_cache=True 時。

    允許兩種格式:

    • 一個 Cache 例項,請參閱我們的 kv 快取指南
    • 長度為 config.n_layerstuple(torch.FloatTensor) 元組,每個元組包含 2 個形狀為 (batch_size, num_heads, sequence_length, embed_size_per_head) 的張量。這也被稱為傳統快取格式。

    模型將輸出與作為輸入提供的快取格式相同的快取格式。如果沒有傳遞 past_key_values,將返回傳統快取格式。

    如果使用 past_key_values,使用者可以選擇只輸入最後 input_ids(那些沒有將其過去鍵值狀態提供給此模型的)形狀為 (batch_size, 1) 而不是所有 input_ids 形狀為 (batch_size, sequence_length)

  • attention_mask (形狀為 (batch_size, sequence_length)torch.Tensor, 可選) — 避免對填充標記索引執行注意力的掩碼。掩碼值選擇範圍為 [0, 1]

    • 1 表示標記未被掩蓋
    • 0 表示標記被掩蓋

    什麼是注意力掩碼?

  • position_ids (形狀為 (batch_size, sequence_length)torch.Tensor, 可選) — 每個輸入序列標記在位置嵌入中的位置索引。選擇範圍為 [0, config.n_positions - 1]

    什麼是位置 ID?

  • head_mask (形狀為 (num_heads,)(num_layers, num_heads)torch.Tensor, 可選) — 用於使自注意力模組的選定頭部無效的掩碼。掩碼值選擇範圍為 [0, 1]

    • 1 表示頭部未被掩蓋
    • 0 表示頭部被掩蓋
  • labels (形狀為 (batch_size, sequence_length)torch.LongTensor, 可選) — 用於計算掩碼語言建模損失的標籤。索引應在 [0, ..., config.vocab_size] 或 -100 之間(請參閱 input_ids 文件字串)。索引設定為 -100 的標記將被忽略(掩蓋),損失僅針對標籤在 [0, ..., config.vocab_size] 中的標記計算。
  • input_embeds (形狀為 (batch_size, input_sequence_length, hidden_size)torch.FloatTensor, 可選) — 可選地,您可以選擇直接傳遞嵌入表示,而不是傳遞 input_ids。這裡,由於 Bark 的特殊性,如果使用 past_key_valuesinput_embeds 將被忽略,您必須使用 input_ids。如果未使用 past_key_values 並且 use_cache 設定為 Trueinput_embeds 優先於 input_ids 使用。
  • use_cache (bool, 可選) — 如果設定為 True,則返回 past_key_values 鍵值狀態,可用於加速解碼(請參閱 past_key_values)。
  • output_attentions (bool, 可選) — 是否返回所有注意力層的注意力張量。有關更多詳細資訊,請參閱返回張量下的 attentions
  • output_hidden_states (bool, 可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的 hidden_states
  • return_dict (bool, 可選) — 是否返回 ModelOutput 而不是普通元組。

返回

transformers.modeling_outputs.CausalLMOutputWithPasttuple(torch.FloatTensor)

一個 transformers.modeling_outputs.CausalLMOutputWithPast 或一個 torch.FloatTensor 元組(如果傳遞了 return_dict=False 或當 config.return_dict=False 時),包含根據配置 (BarkConfig) 和輸入的不同元素。

  • loss (torch.FloatTensor 形狀為 (1,)可選,當提供 labels 時返回) — 語言建模損失(用於下一個 token 預測)。

  • logits (形狀為 (batch_size, sequence_length, config.vocab_size)torch.FloatTensor) — 語言建模頭部的預測分數(SoftMax 之前的每個詞彙標記的分數)。

  • past_key_values (Cache, 可選, 當傳遞 use_cache=True 或當 config.use_cache=True 時返回) — 它是一個 Cache 例項。有關更多詳細資訊,請參閱我們的 kv 快取指南

    包含預計算的隱藏狀態(自注意力塊中的鍵和值),可用於(參見 past_key_values 輸入)加速順序解碼。

  • hidden_states (tuple(torch.FloatTensor), 可選, 當傳遞 output_hidden_states=True 或當 config.output_hidden_states=True 時返回) — torch.FloatTensor 的元組(一個用於嵌入層的輸出,如果模型有嵌入層,+ 一個用於每一層的輸出),形狀為 (batch_size, sequence_length, hidden_size)

    模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。

  • attentions (tuple(torch.FloatTensor), 可選, 當傳遞 output_attentions=True 或當 config.output_attentions=True 時返回) — torch.FloatTensor 的元組(每一層一個),形狀為 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 後的注意力權重,用於計算自注意力頭中的加權平均值。

BarkCausalModel 的 forward 方法,覆蓋了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但之後應呼叫 Module 例項而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

BarkCoarseModel

transformers.BarkCoarseModel

< >

( 配置 )

引數

  • 配置 ([[BarkCausalModel](/docs/transformers/v4.53.3/en/model_doc/bark#transformers.BarkCausalModel)]) — 包含模型所有引數的模型配置類。使用配置檔案初始化不會載入與模型關聯的權重,只加載配置。請檢視 from_pretrained() 方法載入模型權重。

Bark 粗略聲學模型。它與語義(或文字)模型共享相同的架構。它是一個類似 GPT-2 的自迴歸模型,頂部帶有一個語言建模頭。

此模型繼承自 PreTrainedModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(如下載或儲存、調整輸入嵌入大小、修剪頭部等)。

此模型也是 PyTorch torch.nn.Module 子類。將其作為常規 PyTorch 模組使用,並參考 PyTorch 文件瞭解所有與一般用法和行為相關的事項。

前向傳播

< >

( 輸入 ID: typing.Optional[torch.Tensor] = None 過去的鍵值: typing.Optional[tuple[torch.FloatTensor]] = None 注意力掩碼: typing.Optional[torch.Tensor] = None 位置 ID: typing.Optional[torch.Tensor] = None 頭部掩碼: typing.Optional[torch.Tensor] = None 標籤: typing.Optional[torch.LongTensor] = None 輸入嵌入: typing.Optional[torch.Tensor] = None 使用快取: typing.Optional[bool] = None 輸出注意力: typing.Optional[bool] = None 輸出隱藏狀態: typing.Optional[bool] = None 返回字典: typing.Optional[bool] = None ) transformers.modeling_outputs.CausalLMOutputWithPasttuple(torch.FloatTensor)

引數

  • input_ids (形狀為 (batch_size, sequence_length)torch.Tensor, 可選) — 詞彙表中輸入序列標記的索引。預設情況下將忽略填充。

    可以使用 AutoTokenizer 獲取索引。有關詳細資訊,請參閱 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什麼是輸入 ID?

  • past_key_values (tuple[torch.FloatTensor], 可選) — 預先計算的隱藏狀態(自注意力塊和交叉注意力塊中的鍵和值),可用於加速順序解碼。這通常包括模型在解碼上一階段返回的 past_key_values,當 use_cache=Trueconfig.use_cache=True 時。

    允許兩種格式:

    • 一個 Cache 例項,請參閱我們的 kv 快取指南
    • 長度為 config.n_layerstuple(torch.FloatTensor) 元組,每個元組包含 2 個形狀為 (batch_size, num_heads, sequence_length, embed_size_per_head) 的張量。這也被稱為傳統快取格式。

    模型將輸出與作為輸入提供的快取格式相同的快取格式。如果沒有傳遞 past_key_values,將返回傳統快取格式。

    如果使用 past_key_values,使用者可以選擇只輸入最後 input_ids(那些沒有將其過去鍵值狀態提供給此模型的)形狀為 (batch_size, 1) 而不是所有 input_ids 形狀為 (batch_size, sequence_length)

  • attention_mask (形狀為 (batch_size, sequence_length)torch.Tensor, 可選) — 避免對填充標記索引執行注意力的掩碼。掩碼值選擇範圍為 [0, 1]

    • 1 表示標記未被掩蓋
    • 0 表示標記被掩蓋

    什麼是注意力掩碼?

  • position_ids (形狀為 (batch_size, sequence_length)torch.Tensor, 可選) — 每個輸入序列標記在位置嵌入中的位置索引。選擇範圍為 [0, config.n_positions - 1]

    什麼是位置 ID?

  • head_mask (形狀為 (num_heads,)(num_layers, num_heads)torch.Tensor可選) — 用於使自注意力模組的選定頭部無效的掩碼。掩碼值選擇在 [0, 1] 之間:

    • 1 表示頭部未被掩碼
    • 0 表示頭部被掩碼
  • labels (形狀為 (batch_size, sequence_length)torch.LongTensor可選) — 用於計算掩碼語言模型損失的標籤。索引應在 [0, ..., config.vocab_size] 或 -100 (參見 input_ids 文件字串) 之間。索引設定為 -100 的標記將被忽略(掩碼),損失僅針對標籤在 [0, ..., config.vocab_size] 中的標記計算。
  • input_embeds (形狀為 (batch_size, input_sequence_length, hidden_size)torch.FloatTensor可選) — 可選地,您可以選擇直接傳入嵌入表示,而不是傳入 input_ids。在這裡,由於 Bark 的特殊性,如果使用了 past_key_values,則 input_embeds 將被忽略,您必須使用 input_ids。如果未使用 past_key_values 並且 use_cache 設定為 True,則 input_embeds 將優先於 input_ids 使用。
  • use_cache (bool, 可選) — 如果設定為 True,則返回 past_key_values 鍵值狀態,可用於加速解碼(參見 past_key_values)。
  • output_attentions (bool, 可選) — 是否返回所有注意力層的注意力張量。更多詳情請參見返回張量下的 attentions
  • output_hidden_states (bool, 可選) — 是否返回所有層的隱藏狀態。更多詳情請參見返回張量下的 hidden_states
  • return_dict (bool, 可選) — 是否返回 ModelOutput 而不是普通的元組。

返回

transformers.modeling_outputs.CausalLMOutputWithPasttuple(torch.FloatTensor)

一個 transformers.modeling_outputs.CausalLMOutputWithPast 或一個 torch.FloatTensor 元組(如果傳遞了 return_dict=False 或當 config.return_dict=False 時),包含根據配置 (BarkConfig) 和輸入的不同元素。

  • loss (torch.FloatTensor 形狀為 (1,)可選,當提供 labels 時返回) — 語言建模損失(用於下一個 token 預測)。

  • logits (形狀為 (batch_size, sequence_length, config.vocab_size)torch.FloatTensor) — 語言建模頭部的預測分數(SoftMax 之前的每個詞彙標記的分數)。

  • past_key_values (Cache, 可選, 當傳遞 use_cache=True 或當 config.use_cache=True 時返回) — 它是一個 Cache 例項。有關更多詳細資訊,請參閱我們的 kv 快取指南

    包含預計算的隱藏狀態(自注意力塊中的鍵和值),可用於(參見 past_key_values 輸入)加速順序解碼。

  • hidden_states (tuple(torch.FloatTensor), 可選, 當傳遞 output_hidden_states=True 或當 config.output_hidden_states=True 時返回) — torch.FloatTensor 的元組(一個用於嵌入層的輸出,如果模型有嵌入層,+ 一個用於每一層的輸出),形狀為 (batch_size, sequence_length, hidden_size)

    模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。

  • attentions (tuple(torch.FloatTensor), 可選, 當傳遞 output_attentions=True 或當 config.output_attentions=True 時返回) — torch.FloatTensor 的元組(每一層一個),形狀為 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 後的注意力權重,用於計算自注意力頭中的加權平均值。

BarkCausalModel 的 forward 方法,覆蓋了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但之後應呼叫 Module 例項而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

BarkFineModel

class transformers.BarkFineModel

< >

( 配置 )

引數

  • config (BarkFineModel) — 模型的配置類,包含模型的所有引數。使用配置檔案初始化不會載入與模型相關的權重,只加載配置。請檢視 from_pretrained() 方法來載入模型權重。

Bark 精細聲學模型。它是一個非因果的類 GPT 模型,具有 config.n_codes_total 個嵌入層和語言模型頭,每個碼本一個。

此模型繼承自 PreTrainedModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(如下載或儲存、調整輸入嵌入大小、修剪頭部等)。

此模型也是 PyTorch torch.nn.Module 子類。將其作為常規 PyTorch 模組使用,並參考 PyTorch 文件瞭解所有與一般用法和行為相關的事項。

前向傳播

< >

( codebook_idx: int input_ids: typing.Optional[torch.Tensor] = None attention_mask: typing.Optional[torch.Tensor] = None position_ids: typing.Optional[torch.Tensor] = None head_mask: typing.Optional[torch.Tensor] = None labels: typing.Optional[torch.LongTensor] = None input_embeds: typing.Optional[torch.Tensor] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None ) transformers.modeling_outputs.MaskedLMOutputtuple(torch.FloatTensor)

引數

  • codebook_idx (int) — 將要預測的碼本的索引。
  • input_ids (形狀為 (batch_size, sequence_length)torch.Tensor可選) — 詞彙表中輸入序列標記的索引。預設情況下將忽略填充。

    索引可以使用 AutoTokenizer 獲取。有關詳細資訊,請參見 PreTrainedTokenizer.encode()PreTrainedTokenizer.__call__()

    什麼是輸入 ID?

  • attention_mask (形狀為 (batch_size, sequence_length)torch.Tensor可選) — 避免在填充標記索引上執行注意力的掩碼。掩碼值選擇在 [0, 1] 之間:

    • 1 表示標記未被掩碼
    • 0 表示標記被掩碼

    什麼是注意力掩碼?

  • position_ids (形狀為 (batch_size, sequence_length)torch.Tensor可選) — 每個輸入序列標記在位置嵌入中的位置索引。選擇範圍為 [0, config.n_positions - 1]

    什麼是位置 ID?

  • head_mask (形狀為 (num_heads,)(num_layers, num_heads)torch.Tensor可選) — 用於使自注意力模組的選定頭部無效的掩碼。掩碼值選擇在 [0, 1] 之間:

    • 1 表示頭部未被掩碼
    • 0 表示頭部被掩碼
  • labels (形狀為 (batch_size, sequence_length)torch.LongTensor可選) — 尚未實現。
  • input_embeds (形狀為 (batch_size, input_sequence_length, hidden_size)torch.FloatTensor可選) — 可選地,您可以選擇直接傳入嵌入表示,而不是傳入 input_ids。如果使用 past_key_values,可選地只需要輸入最後一個 input_embeds(那些沒有將其過去的鍵值狀態提供給此模型的)形狀為 (batch_size, 1)(參見 past_key_values)。如果您希望對如何將 input_ids 索引轉換為相關向量具有比模型內部嵌入查詢矩陣更多的控制權,這將非常有用。
  • output_attentions (bool, 可選) — 是否返回所有注意力層的注意力張量。更多詳情請參見返回張量下的 attentions
  • output_hidden_states (bool, 可選) — 是否返回所有層的隱藏狀態。更多詳情請參見返回張量下的 hidden_states
  • return_dict (bool, 可選) — 是否返回 ModelOutput 而不是普通的元組。

返回

transformers.modeling_outputs.MaskedLMOutputtuple(torch.FloatTensor)

一個 transformers.modeling_outputs.MaskedLMOutput 或一個 torch.FloatTensor 的元組(如果傳入 return_dict=False 或當 config.return_dict=False 時),包含根據配置 (BarkConfig) 和輸入的不同元素。

  • loss (形狀為 (1,)torch.FloatTensor可選,當提供 labels 時返回) — 掩碼語言建模 (MLM) 損失。

  • logits (形狀為 (batch_size, sequence_length, config.vocab_size)torch.FloatTensor) — 語言建模頭部的預測分數(SoftMax 之前的每個詞彙標記的分數)。

  • hidden_states (tuple(torch.FloatTensor), 可選, 當傳遞 output_hidden_states=True 或當 config.output_hidden_states=True 時返回) — torch.FloatTensor 的元組(一個用於嵌入層的輸出,如果模型有嵌入層,+ 一個用於每一層的輸出),形狀為 (batch_size, sequence_length, hidden_size)

    模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。

  • attentions (tuple(torch.FloatTensor), 可選, 當傳遞 output_attentions=True 或當 config.output_attentions=True 時返回) — torch.FloatTensor 的元組(每一層一個),形狀為 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 後的注意力權重,用於計算自注意力頭中的加權平均值。

BarkFineModel 的 forward 方法,覆蓋了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但之後應呼叫 Module 例項而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

BarkCausalModel

class transformers.BarkCausalModel

< >

( config )

前向傳播

< >

( 輸入 ID: typing.Optional[torch.Tensor] = None 過去的鍵值: typing.Optional[tuple[torch.FloatTensor]] = None 注意力掩碼: typing.Optional[torch.Tensor] = None 位置 ID: typing.Optional[torch.Tensor] = None 頭部掩碼: typing.Optional[torch.Tensor] = None 標籤: typing.Optional[torch.LongTensor] = None 輸入嵌入: typing.Optional[torch.Tensor] = None 使用快取: typing.Optional[bool] = None 輸出注意力: typing.Optional[bool] = None 輸出隱藏狀態: typing.Optional[bool] = None 返回字典: typing.Optional[bool] = None ) transformers.modeling_outputs.CausalLMOutputWithPasttuple(torch.FloatTensor)

引數

  • input_ids (形狀為 (batch_size, sequence_length)torch.Tensor可選) — 詞彙表中輸入序列標記的索引。預設情況下將忽略填充。

    索引可以使用 AutoTokenizer 獲取。有關詳細資訊,請參見 PreTrainedTokenizer.encode()PreTrainedTokenizer.__call__()

    什麼是輸入 ID?

  • past_key_values (tuple[torch.FloatTensor]可選) — 預先計算的隱藏狀態(自注意力塊和交叉注意力塊中的鍵和值),可用於加速順序解碼。這通常包括模型在解碼上一階段返回的 past_key_values,當 use_cache=Trueconfig.use_cache=True 時。

    允許兩種格式:

    • 一個 Cache 例項,請參見我們的 kv 快取指南
    • 一個長度為 config.n_layerstuple(torch.FloatTensor) 元組,每個元組包含 2 個形狀為 (batch_size, num_heads, sequence_length, embed_size_per_head) 的張量)。這也被稱為傳統快取格式。

    模型將輸出與輸入時相同的快取格式。如果沒有傳入 past_key_values,則將返回傳統快取格式。

    如果使用了 past_key_values,使用者可以選擇只輸入形狀為 (batch_size, 1) 的最後一個 input_ids(那些沒有將其過去的鍵值狀態提供給此模型的)而不是所有形狀為 (batch_size, sequence_length)input_ids

  • attention_mask (形狀為 (batch_size, sequence_length)torch.Tensor可選) — 避免在填充標記索引上執行注意力的掩碼。掩碼值選擇在 [0, 1] 之間:

    • 1 表示標記未被掩碼
    • 0 表示標記被掩碼

    什麼是注意力掩碼?

  • position_ids (形狀為 (batch_size, sequence_length)torch.Tensor可選) — 每個輸入序列標記在位置嵌入中的位置索引。選擇範圍為 [0, config.n_positions - 1]

    什麼是位置 ID?

  • head_mask (形狀為 (num_heads,)(num_layers, num_heads)torch.Tensor可選) — 用於使自注意力模組的選定頭部無效的掩碼。掩碼值選擇在 [0, 1] 之間:

    • 1 表示頭部未被掩碼
    • 0 表示頭部被掩碼
  • labels (形狀為 (batch_size, sequence_length)torch.LongTensor可選) — 用於計算掩碼語言模型損失的標籤。索引應在 [0, ..., config.vocab_size] 或 -100 (參見 input_ids 文件字串) 之間。索引設定為 -100 的標記將被忽略(掩碼),損失僅針對標籤在 [0, ..., config.vocab_size] 中的標記計算。
  • input_embeds (形狀為 (batch_size, input_sequence_length, hidden_size)torch.FloatTensor可選) — 可選地,您可以選擇直接傳入嵌入表示,而不是傳入 input_ids。在這裡,由於 Bark 的特殊性,如果使用了 past_key_values,則 input_embeds 將被忽略,您必須使用 input_ids。如果未使用 past_key_values 並且 use_cache 設定為 True,則 input_embeds 將優先於 input_ids 使用。
  • use_cache (bool, 可選) — 如果設定為 True,則返回 past_key_values 鍵值狀態,可用於加速解碼(參見 past_key_values)。
  • output_attentions (bool, 可選) — 是否返回所有注意力層的注意力張量。更多詳情請參見返回張量下的 attentions
  • output_hidden_states (bool, 可選) — 是否返回所有層的隱藏狀態。更多詳情請參見返回張量下的 hidden_states
  • return_dict (bool, 可選) — 是否返回 ModelOutput 而不是普通的元組。

返回

transformers.modeling_outputs.CausalLMOutputWithPasttuple(torch.FloatTensor)

一個 transformers.modeling_outputs.CausalLMOutputWithPast 或一個 torch.FloatTensor 元組(如果傳遞了 return_dict=False 或當 config.return_dict=False 時),包含根據配置 (BarkConfig) 和輸入的不同元素。

  • loss (torch.FloatTensor 形狀為 (1,)可選,當提供 labels 時返回) — 語言建模損失(用於下一個 token 預測)。

  • logits (形狀為 (batch_size, sequence_length, config.vocab_size)torch.FloatTensor) — 語言建模頭部的預測分數(SoftMax 之前的每個詞彙標記的分數)。

  • past_key_values (Cache, 可選, 當傳遞 use_cache=True 或當 config.use_cache=True 時返回) — 它是一個 Cache 例項。有關更多詳細資訊,請參閱我們的 kv 快取指南

    包含預計算的隱藏狀態(自注意力塊中的鍵和值),可用於(參見 past_key_values 輸入)加速順序解碼。

  • hidden_states (tuple(torch.FloatTensor), 可選, 當傳遞 output_hidden_states=True 或當 config.output_hidden_states=True 時返回) — torch.FloatTensor 的元組(一個用於嵌入層的輸出,如果模型有嵌入層,+ 一個用於每一層的輸出),形狀為 (batch_size, sequence_length, hidden_size)

    模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。

  • attentions (tuple(torch.FloatTensor), 可選, 當傳遞 output_attentions=True 或當 config.output_attentions=True 時返回) — torch.FloatTensor 的元組(每一層一個),形狀為 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 後的注意力權重,用於計算自注意力頭中的加權平均值。

BarkCausalModel 的 forward 方法,覆蓋了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但之後應呼叫 Module 例項而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

BarkCoarseConfig

class transformers.BarkCoarseConfig

< >

( block_size = 1024 input_vocab_size = 10048 output_vocab_size = 10048 num_layers = 12 num_heads = 12 hidden_size = 768 dropout = 0.0 bias = True initializer_range = 0.02 use_cache = True **kwargs )

引數

  • block_size (int可選,預設為 1024) — 此模型可能使用的最大序列長度。通常為了以防萬一設定為較大值(例如 512、1024 或 2048)。
  • input_vocab_size (int可選,預設為 10_048) — Bark 子模型的詞彙表大小。定義了呼叫 BarkCoarseModel 時傳入的 inputs_ids 可以表示的不同標記的數量。預設為 10_048,但應根據所選子模型仔細考慮。
  • output_vocab_size (int可選,預設為 10_048) — Bark 子模型的輸出詞彙表大小。定義了當 BarkCoarseModel 向前傳遞時,output_ids 可以表示的不同標記的數量。預設為 10_048,但應根據所選子模型仔細考慮。
  • num_layers (int可選,預設為 12) — 給定子模型中的隱藏層數量。
  • num_heads (int可選,預設為 12) — Transformer 架構中每個注意力層的注意力頭數量。
  • hidden_size (int可選,預設為 768) — 架構中“中間”(通常稱為前饋)層的維度。
  • dropout (float可選,預設為 0.0) — 嵌入、編碼器和池化器中所有全連線層的 dropout 機率。
  • bias (bool可選,預設為 True) — 是否線上性層和層歸一化層中使用偏差。
  • initializer_range (float可選,預設為 0.02) — 用於初始化所有權重矩陣的截斷正態初始化器的標準差。
  • use_cache (bool可選,預設為 True) — 模型是否應返回最後一個鍵/值注意力(並非所有模型都使用)。

這是用於儲存 BarkCoarseModel 配置的配置類。它用於根據指定的引數例項化模型,定義模型架構。使用預設值例項化配置將產生與 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.config

BarkFineConfig

class transformers.BarkFineConfig

< >

( tie_word_embeddings = True n_codes_total = 8 n_codes_given = 1 **kwargs )

引數

  • block_size (int, optional, defaults to 1024) — 此模型可能使用的最大序列長度。通常將其設定為一個較大的值以備不時之需(例如,512、1024 或 2048)。
  • input_vocab_size (int, optional, defaults to 10_048) — Bark 子模型的詞彙表大小。定義了呼叫 BarkFineModel 時傳入的 inputs_ids 可以表示的不同 token 的數量。預設為 10_048,但應根據所選的子模型仔細考慮。
  • output_vocab_size (int, optional, defaults to 10_048) — Bark 子模型的輸出詞彙表大小。定義了當向前傳遞 BarkFineModel 時,output_ids 可以表示的不同 token 的數量。預設為 10_048,但應根據所選的子模型仔細考慮。
  • num_layers (int, optional, defaults to 12) — 給定子模型中的隱藏層數。
  • num_heads (int, optional, defaults to 12) — Transformer 架構中每個注意力層的注意力頭數量。
  • hidden_size (int, optional, defaults to 768) — 架構中“中間”(通常稱為前饋)層的維度。
  • dropout (float, optional, defaults to 0.0) — 嵌入、編碼器和池化器中所有全連線層的 dropout 機率。
  • bias (bool, optional, defaults to True) — 是否線上性層和層歸一化層中使用偏置。
  • initializer_range (float, optional, defaults to 0.02) — 用於初始化所有權重矩陣的 truncated_normal_initializer 的標準差。
  • use_cache (bool, optional, defaults to True) — 模型是否應返回最後一個 key/values 注意力(並非所有模型都使用)。
  • n_codes_total (int, optional, defaults to 8) — 預測的音訊碼本總數。用於精細聲學子模型。
  • n_codes_given (int, optional, defaults to 1) — 粗略聲學子模型中預測的音訊碼本數量。用於聲學子模型。

這是用於儲存 BarkFineModel 配置的配置類。它用於根據指定引數例項化模型,定義模型架構。使用預設值例項化配置將生成與 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.config

BarkSemanticConfig

class transformers.BarkSemanticConfig

< >

( block_size = 1024 input_vocab_size = 10048 output_vocab_size = 10048 num_layers = 12 num_heads = 12 hidden_size = 768 dropout = 0.0 bias = True initializer_range = 0.02 use_cache = True **kwargs )

引數

  • block_size (int, optional, defaults to 1024) — 此模型可能使用的最大序列長度。通常將其設定為一個較大的值以備不時之需(例如,512、1024 或 2048)。
  • input_vocab_size (int, optional, defaults to 10_048) — Bark 子模型的詞彙表大小。定義了呼叫 BarkSemanticModel 時傳入的 inputs_ids 可以表示的不同 token 的數量。預設為 10_048,但應根據所選的子模型仔細考慮。
  • output_vocab_size (int, optional, defaults to 10_048) — Bark 子模型的輸出詞彙表大小。定義了當向前傳遞 BarkSemanticModel 時,output_ids 可以表示的不同 token 的數量。預設為 10_048,但應根據所選的子模型仔細考慮。
  • num_layers (int, optional, defaults to 12) — 給定子模型中的隱藏層數。
  • num_heads (int, optional, defaults to 12) — Transformer 架構中每個注意力層的注意力頭數量。
  • hidden_size (int, optional, defaults to 768) — 架構中“中間”(通常稱為前饋)層的維度。
  • dropout (float, optional, defaults to 0.0) — 嵌入、編碼器和池化器中所有全連線層的 dropout 機率。
  • bias (bool, optional, defaults to True) — 是否線上性層和層歸一化層中使用偏置。
  • initializer_range (float, optional, defaults to 0.02) — 用於初始化所有權重矩陣的 truncated_normal_initializer 的標準差。
  • use_cache (bool, optional, defaults to True) — 模型是否應返回最後一個 key/values 注意力(並非所有模型都使用)。

這是用於儲存 BarkSemanticModel 配置的配置類。它用於根據指定引數例項化模型,定義模型架構。使用預設值例項化配置將生成與 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
< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.