Transformers 文件
巴克
並獲得增強的文件體驗
開始使用
Bark
概述
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 子模型配置例項化 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 (
str
或 TensorType, 可選) — 如果設定,將返回特定框架的張量。可接受的值為:'pt'
: 返回 PyTorchtorch.Tensor
物件。'np'
: 返回 NumPynp.ndarray
物件。
返回
由 BatchEncoding(即 tokenizer
的輸出)和 BatchFeature(即具有正確張量型別的語音預設)組成的元組。
準備模型一個或多個序列的主要方法。此方法將 text
和 kwargs
引數轉發到 AutoTokenizer 的 __call__()
以編碼文字。此方法還提供了一個語音預設,它是一個數組字典,用於條件化 Bark
的輸出。如果 voice_preset
是有效的檔名,則 kwargs
引數將轉發到分詞器和 cached_file
方法。
來自預訓練
< 源 >( 預訓練處理器名稱或路徑 說話人嵌入字典路徑 = 'speaker_embeddings_path.json' **kwargs )
引數
- pretrained_model_name_or_path (
str
或os.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 (
str
或os.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 )
使用 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.CausalLMOutputWithPast 或 tuple(torch.FloatTensor)
引數
- input_ids (形狀為
(batch_size, sequence_length)
的torch.Tensor
, 可選) — 詞彙表中輸入序列標記的索引。預設情況下將忽略填充。可以使用 AutoTokenizer 獲取索引。有關詳細資訊,請參閱 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.call()。
- past_key_values (
tuple[torch.FloatTensor]
, 可選) — 預先計算的隱藏狀態(自注意力塊和交叉注意力塊中的鍵和值),可用於加速順序解碼。這通常包括模型在解碼上一階段返回的past_key_values
,當use_cache=True
或config.use_cache=True
時。允許兩種格式:
- 一個 Cache 例項,請參閱我們的 kv 快取指南;
- 長度為
config.n_layers
的tuple(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]
。 - 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.CausalLMOutputWithPast 或 tuple(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.CausalLMOutputWithPast 或 tuple(torch.FloatTensor)
引數
- input_ids (形狀為
(batch_size, sequence_length)
的torch.Tensor
, 可選) — 詞彙表中輸入序列標記的索引。預設情況下將忽略填充。可以使用 AutoTokenizer 獲取索引。有關詳細資訊,請參閱 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.call()。
- past_key_values (
tuple[torch.FloatTensor]
, 可選) — 預先計算的隱藏狀態(自注意力塊和交叉注意力塊中的鍵和值),可用於加速順序解碼。這通常包括模型在解碼上一階段返回的past_key_values
,當use_cache=True
或config.use_cache=True
時。允許兩種格式:
- 一個 Cache 例項,請參閱我們的 kv 快取指南;
- 長度為
config.n_layers
的tuple(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]
。 - 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.CausalLMOutputWithPast 或 tuple(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
< source >( 配置 )
引數
- config (BarkFineModel) — 模型的配置類,包含模型的所有引數。使用配置檔案初始化不會載入與模型相關的權重,只加載配置。請檢視 from_pretrained() 方法來載入模型權重。
Bark 精細聲學模型。它是一個非因果的類 GPT 模型,具有 config.n_codes_total
個嵌入層和語言模型頭,每個碼本一個。
此模型繼承自 PreTrainedModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(如下載或儲存、調整輸入嵌入大小、修剪頭部等)。
此模型也是 PyTorch torch.nn.Module 子類。將其作為常規 PyTorch 模組使用,並參考 PyTorch 文件瞭解所有與一般用法和行為相關的事項。
前向傳播
< source >( 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.MaskedLMOutput 或 tuple(torch.FloatTensor)
引數
- codebook_idx (
int
) — 將要預測的碼本的索引。 - input_ids (形狀為
(batch_size, sequence_length)
的torch.Tensor
,可選) — 詞彙表中輸入序列標記的索引。預設情況下將忽略填充。索引可以使用 AutoTokenizer 獲取。有關詳細資訊,請參見 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.__call__()。
- 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]
。 - 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.MaskedLMOutput 或 tuple(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
前向傳播
< source >( 輸入 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.CausalLMOutputWithPast 或 tuple(torch.FloatTensor)
引數
- input_ids (形狀為
(batch_size, sequence_length)
的torch.Tensor
,可選) — 詞彙表中輸入序列標記的索引。預設情況下將忽略填充。索引可以使用 AutoTokenizer 獲取。有關詳細資訊,請參見 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.__call__()。
- past_key_values (
tuple[torch.FloatTensor]
,可選) — 預先計算的隱藏狀態(自注意力塊和交叉注意力塊中的鍵和值),可用於加速順序解碼。這通常包括模型在解碼上一階段返回的past_key_values
,當use_cache=True
或config.use_cache=True
時。允許兩種格式:
- 一個 Cache 例項,請參見我們的 kv 快取指南;
- 一個長度為
config.n_layers
的tuple(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]
。 - 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.CausalLMOutputWithPast 或 tuple(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
< source >( 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
< source >( 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 toTrue
) — 是否線上性層和層歸一化層中使用偏置。 - initializer_range (
float
, optional, defaults to 0.02) — 用於初始化所有權重矩陣的 truncated_normal_initializer 的標準差。 - use_cache (
bool
, optional, defaults toTrue
) — 模型是否應返回最後一個 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
< source >( 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 toTrue
) — 是否線上性層和層歸一化層中使用偏置。 - initializer_range (
float
, optional, defaults to 0.02) — 用於初始化所有權重矩陣的 truncated_normal_initializer 的標準差。 - use_cache (
bool
, optional, defaults toTrue
) — 模型是否應返回最後一個 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