Transformers documentation
Bark
Mô hình này đã được đóng góp cho Hugging Face Transformers vào ngày 2023-07-17.
Bark
Tổng quan
Bark là mô hình chuyển văn bản thành giọng nói dựa trên transformer do Suno AI đề xuất trong suno-ai/bark.
Bark được tạo thành từ 4 mô hình chính:
- BarkSemanticModel (còn được gọi là mô hình ‘text’): một mô hình transformer tự hồi quy nhân quả, nhận vào văn bản đã được token hóa và dự đoán các token văn bản ngữ nghĩa nắm bắt ý nghĩa của văn bản.
- BarkCoarseModel (còn được gọi là mô hình ‘âm học thô’): một transformer tự hồi quy nhân quả, nhận đầu vào là kết quả của mô hình BarkSemanticModel. Nó nhằm mục đích dự đoán hai codebook âm thanh đầu tiên cần thiết cho EnCodec.
- BarkFineModel (mô hình ‘âm thanh tinh chỉnh’), lần này là một transformer autoencoder phi nhân quả, dự đoán lặp lại các codebook cuối cùng dựa trên tổng các embeddings của các codebook trước đó.
- sau khi dự đoán tất cả các kênh codebook từ EncodecModel, Bark sử dụng nó để giải mã mảng âm thanh đầu ra.
Cần lưu ý rằng mỗi trong ba module đầu tiên đều có thể hỗ trợ các embedding người nói có điều kiện để điều kiện hóa âm thanh đầu ra theo một giọng nói cụ thể đã được định nghĩa trước.
Mô hình này được đóng góp bởi Yoach Lacombe (ylacombe) và Sanchit Gandhi (sanchit-gandhi). Mã nguồn gốc có thể được tìm thấy tại đây.
Tối ưu hóa Bark
Bark có thể được tối ưu hóa chỉ với vài dòng code bổ sung, giúp giảm đáng kể lượng bộ nhớ sử dụng và tăng tốc suy luận.
Sử dụng độ chính xác nửa
Bạn có thể tăng tốc suy luận và giảm 50% bộ nhớ sử dụng chỉ bằng cách tải mô hình ở độ chính xác nửa (half-precision).
from transformers import BarkModel
model = BarkModel.from_pretrained("suno/bark-small", device_map="auto")Sử dụng CPU offload
Như đã đề cập ở trên, Bark bao gồm 4 mô hình con, được gọi theo thứ tự trong quá trình tạo âm thanh. Nói cách khác, trong khi một mô hình con đang được sử dụng, các mô hình con khác sẽ ở trạng thái chờ.
Nếu bạn đang sử dụng GPU CUDA hoặc Intel XPU, một giải pháp đơn giản để giảm 80% dung lượng bộ nhớ là chuyển các mô hình con từ thiết bị sang CPU khi chúng không hoạt động. Thao tác này được gọi là CPU offloading. Bạn có thể sử dụng nó bằng một dòng mã như sau:
model.enable_cpu_offload()
Lưu ý rằng 🤗 Accelerate phải được cài đặt trước khi sử dụng tính năng này. Đây là cách để cài đặt nó.
Sử dụng Flash Attention 2
Flash Attention 2 là phiên bản tối ưu hơn, nhanh hơn của bản tối ưu trước đó.
Cài đặt
Đầu tiên, kiểm tra xem phần cứng của bạn có tương thích với Flash Attention 2 hay không. Danh sách phần cứng tương thích mới nhất có thể được tìm thấy trong tài liệu chính thức. Tiếp theo, cài đặt phiên bản mới nhất của Flash Attention 2:
pip install -U flash-attn --no-build-isolation
Cách sử dụng
Để tải một mô hình sử dụng Flash Attention 2, chúng ta có thể truyền cờ attn_implementation="flash_attention_2" vào from_pretrained(). Chúng ta cũng sẽ tải mô hình ở độ chính xác nửa (ví dụ torch.float16), vì điều này hầu như không làm giảm chất lượng âm thanh nhưng giúp giảm đáng kể lượng bộ nhớ sử dụng và tăng tốc độ suy luận:
model = BarkModel.from_pretrained("suno/bark-small", attn_implementation="flash_attention_2", device_map="auto")So sánh hiệu năng
Sơ đồ dưới đây cho thấy độ trễ của triển khai attention gốc (không tối ưu) so với Flash Attention 2. Trong mọi trường hợp, chúng tôi tạo ra 400 token ngữ nghĩa trên GPU A100 40GB với PyTorch 2.1:

Để hình dung rõ hơn, trên NVIDIA A100 và khi tạo 400 token ngữ nghĩa với batch size là 16, bạn có thể đạt throughput gấp 17 lần và vẫn nhanh hơn 2 giây so với việc tạo câu từng cái một bằng cài đặt mô hình gốc. Nói cách khác, tất cả các mẫu sẽ được tạo nhanh hơn 17 lần.
Kết hợp các kỹ thuật tối ưu hóa
Bạn có thể kết hợp các kỹ thuật tối ưu hóa, và sử dụng CPU offload, half-precision và Flash Attention 2 cùng một lúc.
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()Tìm hiểu thêm về các kỹ thuật tối ưu suy luận tại đây.
Mẹo sử dụng
Suno cung cấp một thư viện các preset giọng nói bằng nhiều ngôn ngữ tại đây. Các preset này cũng được tải lên hub tại đây hoặc tại đây.
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 có thể tạo ra giọng nói đa ngôn ngữ cực kỳ chân thực cũng như các âm thanh khác - bao gồm nhạc, tiếng ồn nền và các hiệu ứng âm thanh đơn giản.
# 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()Mô hình cũng có thể tạo ra các giao tiếp phi ngôn ngữ như cười, thở dài và khóc.
# 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()Để lưu âm thanh, chỉ cần lấy tần số lấy mẫu từ cấu hình mô hình và một tiện ích của 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
lớp 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 )
Tham số
- semantic_config (BarkSemanticConfig, tùy chọn) — Cấu hình của mô hình con ngữ nghĩa bên dưới.
- coarse_acoustics_config (BarkCoarseConfig, tuỳ chọn) — Cấu hình của mô hình con âm học thô (coarse acoustics) bên dưới.
- fine_acoustics_config (BarkFineConfig, tùy chọn) — Cấu hình của mô hình con âm thanh tinh chỉnh cơ bản.
- codec_config (AutoConfig, tùy chọn) — Cấu hình của mô hình con codec bên dưới.
- initializer_range (
float, tùy chọn, mặc định là0.02) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số.
Đây là lớp cấu hình để lưu trữ cấu hình của một BarkModel. Nó được sử dụng để khởi tạo một mô hình Bark theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như của suno/bark
Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.
Ví dụ:
>>> 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
lớp transformers.BarkProcessor
< source >( tokenizerspeaker_embeddings = None )
Tham số
- tokenizer (
BertTokenizer) — Tokenizer là một đầu vào bắt buộc. - speaker_embeddings (
dict[dict[str]], tùy chọn) — Từ điển lồng nhau tùy chọn chứa các embedding của người nói. Cấp độ đầu tiên chứa tên preset giọng nói (ví dụ"en_speaker_4"). Cấp độ thứ hai chứa các embedding"semantic_prompt","coarse_prompt"và"fine_prompt". Các giá trị tương ứng với đường dẫn củanp.ndarraytương ứng. Xem ở đây để có danh sách cácvoice_preset_names.
Tạo một BarkProcessor đóng gói một tokenizer thành một bộ xử lý duy nhất.
BarkProcessor cung cấp đầy đủ các chức năng của BertTokenizer. Xem ~BertTokenizer để biết thêm thông tin.
__call__
< source >( text = Nonevoice_preset = Nonereturn_tensors = 'pt'max_length = 256add_special_tokens = Falsereturn_attention_mask = Truereturn_token_type_ids = False**kwargs ) → BatchEncoding
Tham số
- 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]) — Preset giọng nói, tức là các embedding của người nói. Nó có thể là một tên voice_preset hợp lệ, ví dụ"en_speaker_1", hoặc trực tiếp là một từ điển các embeddingnp.ndarraycho từng submodel củaBark. Hoặc nó có thể là một tên tệp hợp lệ của một voice preset đơn cục bộ.npzchứa các khóa"semantic_prompt","coarse_prompt"và"fine_prompt". - return_tensors (`
, defaults topt`) — Nếu được đặt, sẽ trả về tensor của một framework cụ thể. Các giá trị chấp nhận được là:'pt': Trả về các đối tượngtorch.Tensorcủa PyTorch.'np': Trả về các đối tượngnp.ndarraycủa NumPy.
- max_length (
int, mặc định là256) — Kiểm soát độ dài tối đa được sử dụng bởi một trong các tham số cắt/giữ chỗ. Nếu không được đặt hoặc được đặt thành None, tham số này sẽ sử dụng độ dài tối đa định trước của mô hình nếu một trong các tham số cắt/giữ chỗ yêu cầu độ dài tối đa. Nếu mô hình không có độ dài đầu vào tối đa cụ thể (như XLNet), việc cắt/giữ chỗ đến độ dài tối đa sẽ bị vô hiệu hóa.Nếu không được đặt hoặc được đặt thành
None, tham số này sẽ sử dụng độ dài tối đa định trước của mô hình nếu một trong các tham số cắt/giữ chỗ yêu cầu độ dài tối đa. Nếu mô hình không có độ dài đầu vào tối đa cụ thể (như XLNet), việc cắt/giữ chỗ đến độ dài tối đa sẽ bị vô hiệu hóa. - add_special_tokens (
bool, mặc định làFalse) — Có thêm các token đặc biệt khi mã hóa các chuỗi hay không. Điều này sẽ sử dụng hàmPretrainedTokenizerBase.build_inputs_with_special_tokensbên dưới, hàm này xác định các token nào được thêm tự động vào các id đầu vào. Điều này hữu ích nếu bạn muốn tự động thêm các tokenboshoặceos. - return_attention_mask (
bool, mặc định làTrue) — Có nên trả về attention mask hay không. Nếu để mặc định, sẽ trả về attention mask theo mặc định của tokenizer cụ thể, được xác định bởi thuộc tínhreturn_outputs. - return_token_type_ids (
bool, mặc định làFalse) — Có nên trả về token type IDs hay không. Nếu để mặc định, sẽ trả về token type IDs theo mặc định của tokenizer cụ thể, được xác định bởi thuộc tínhreturn_outputs.
Trả về
Một đối tượng BatchEncoding chứa kết quả đầu ra của tokenizer.
Nếu một preset giọng nói được cung cấp, đối tượng trả về sẽ bao gồm một khóa "history_prompt"
chứa một BatchFeature, tức là preset giọng nói với kiểu tensor phù hợp.
from_pretrained
< source >( pretrained_processor_name_or_pathspeaker_embeddings_dict_path = 'speaker_embeddings_path.json'**kwargs )
Tham số
- pretrained_model_name_or_path (
strhoặcos.PathLike) — Đây có thể là:- một chuỗi, model id của một BarkProcessor được huấn luyện trước, lưu trữ trong một kho model trên huggingface.co.
- đường dẫn đến một thư mục chứa bộ xử lý đã được lưu bằng phương thức save_pretrained(), ví dụ:
./my_model_directory/.
- speaker_embeddings_dict_path (
str, tùy chọn, mặc định là"speaker_embeddings_path.json") — Tên của tệp.jsonchứa từ điển speaker_embeddings nằm trongpretrained_model_name_or_path. NếuNone, sẽ không nạp speaker_embeddings. - **kwargs —
Các đối số từ khóa bổ sung được truyền đến cả
~tokenization_utils_base.PreTrainedTokenizer.from_pretrained.
Tạo một trình xử lý Bark liên kết với một mô hình được huấn luyện trước.
save_pretrained
< source >( save_directoryspeaker_embeddings_dict_path = 'speaker_embeddings_path.json'speaker_embeddings_directory = 'speaker_embeddings'push_to_hub: bool = False**kwargs )
Tham số
- save_directory (
strhoặcos.PathLike) — Thư mục nơi các tệp tokenizer và speaker embeddings sẽ được lưu (thư mục sẽ được tạo nếu chưa tồn tại). - speaker_embeddings_dict_path (
str, tùy chọn, mặc định là"speaker_embeddings_path.json") — Tên của tệp.jsonsẽ chứa từ điển đường dẫn lồng nhau của speaker_embeddings, nếu nó tồn tại, và sẽ nằm trongpretrained_model_name_or_path/speaker_embeddings_directory. - speaker_embeddings_directory (
str, tùy chọn, mặc định là"speaker_embeddings/") — Tên của thư mục mà các mảng speaker_embeddings sẽ được lưu vào. - push_to_hub (
bool, tùy chọn, mặc định làFalse) — Có đẩy mô hình của bạn lên Hugging Face model hub sau khi lưu hay không. Bạn có thể chỉ định kho lưu trữ muốn đẩy đến bằngrepo_id(mặc định sẽ là tên củasave_directorytrong namespace của bạn). - kwargs — Các đối số từ khóa bổ sung được truyền đến phương thức push_to_hub().
Lưu các thuộc tính của bộ xử lý này (tokenizer…) vào thư mục được chỉ định để có thể tải lại bằng phương thức from_pretrained().
BarkModel
lớp transformers.BarkModel
< source >( config: BarkConfig )
Tham số
- config (BarkConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.
Mô hình Bark đầy đủ, một mô hình chuyển văn bản thành giọng nói bao gồm 4 mô hình con:
- BarkSemanticModel (còn được gọi là mô hình ‘text’): một mô hình transformer tự hồi quy nhân quả nhận vào văn bản đã được token hóa và dự đoán các token văn bản ngữ nghĩa nắm bắt ý nghĩa của văn bản.
- BarkCoarseModel (còn được gọi là mô hình ‘âm học thô’), cũng là một transformer tự hồi quy nhân quả, nhận vào đầu vào là kết quả của mô hình trước đó. Nó nhằm mục đích hồi quy hai codebook âm thanh đầu tiên cần thiết cho
encodec. - BarkFineModel (mô hình ‘âm thanh tinh chỉnh’), lần này là một transformer autoencoder phi nhân quả, dự đoán lặp lại các codebook cuối cùng dựa trên tổng các embeddings của các codebook trước đó.
- sau khi dự đoán tất cả các kênh codebook từ EncodecModel, Bark sử dụng nó để giải mã mảng âm thanh đầu ra.
Cần lưu ý rằng mỗi trong ba module đầu tiên đều có thể hỗ trợ các embedding người nói có điều kiện để điều kiện hóa âm thanh đầu ra theo một giọng nói cụ thể đã được định nghĩa trước.
Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)
Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.
generate
< source >( input_ids: typing.Optional[torch.Tensor] = Nonehistory_prompt: dict[str, torch.Tensor] | None = Nonereturn_output_lengths: bool | None = None**kwargs ) → By default
Tham số
- input_ids (
Optional[torch.Tensor]có shape (batch_size, seq_len), tùy chọn) — Các id đầu vào. Sẽ bị cắt ngắn tối đa 256 token. Lưu ý rằng các audio đầu ra sẽ có độ dài bằng với độ dài của chuỗi sinh dài nhất trong batch. - history_prompt (
Optional[dict[str,torch.Tensor]], tùy chọn) — Prompt người nóiBarktùy chọn. Lưu ý rằng hiện tại, mô hình này chỉ nhận một prompt người nói cho mỗi batch. - kwargs (tuỳ chọn) — Từ điển các tham số keyword còn lại. Các tham số keyword thuộc hai loại:
- Nếu không có tiền tố, chúng sẽ được nhập dưới dạng
**kwargscho phương thứcgeneratecủa từng mô hình con. - Với tiền tố semantic_, coarse_, fine_, chúng sẽ lần lượt được dùng làm đầu vào cho phương thức
generatecủa semantic, coarse và fine. Chúng có độ ưu tiên cao hơn so với các từ khóa không có tiền tố.
Điều này có nghĩa là bạn có thể, ví dụ, chỉ định một chiến lược sinh cho tất cả các mô hình con ngoại trừ một.
- Nếu không có tiền tố, chúng sẽ được nhập dưới dạng
- return_output_lengths (
bool, tuỳ chọn) — Có trả về độ dài của waveform hay không. Hữu ích khi xử lý theo lô (batching).
Trả về
Mặc định
- audio_waveform (
torch.Tensorcó shape (batch_size, seq_len)): Dạng sóng âm thanh được tạo ra. Khireturn_output_lengths=True: Trả về một tuple gồm: - audio_waveform (
torch.Tensorcó shape (batch_size, seq_len)): Dạng sóng âm thanh được tạo ra. - output_lengths (
torch.Tensorcó shape (batch_size)): Độ dài của mỗi waveform trong batch
Tạo âm thanh từ một prompt đầu vào và một prompt người nói Bark tùy chọn bổ sung.
Ví dụ:
>>> 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 )
Tải xuống tất cả các mô hình con xuống CPU bằng accelerate, giảm mức sử dụng bộ nhớ với tác động thấp đến hiệu suất. Phương pháp này di chuyển toàn bộ một mô hình con tại một thời điểm lên bộ tăng tốc khi nó được sử dụng, và mô hình con đó sẽ ở lại trên bộ tăng tốc cho đến khi mô hình con tiếp theo được thực thi.
BarkSemanticModel
lớp transformers.BarkSemanticModel
< source >( config: BarkSubModelConfig )
Tham số
- config (
BarkSubModelConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.
Mô hình ngữ nghĩa (hoặc văn bản) của Bark. Nó chia sẻ cùng kiến trúc với mô hình thô. Đây là một mô hình tự hồi quy kiểu GPT-2 với một đầu mô hình hóa ngôn ngữ ở trên cùng.
Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)
Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.
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)
Tham số
- input_ids (
torch.Tensorcó dạng(batch_size, sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào theo từ điển. Mặc định, padding sẽ bị bỏ qua.Các chỉ số có thể được lấy bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.
- past_key_values (
~cache_utils.Cache, tuỳ chọn) — Các hidden-state đã tính trước (key và value trong các khối self-attention và cross-attention) có thể được sử dụng để tăng tốc giải mã tuần tự. Điều này thường bao gồmpast_key_valuesđược trả về bởi mô hình ở một giai đoạn giải mã trước đó, khiuse_cache=Truehoặcconfig.use_cache=True.Chỉ cho phép Cache instance làm đầu vào, xem hướng dẫn kv cache của chúng tôi. Nếu không truyền
past_key_values, DynamicCache sẽ được khởi tạo theo mặc định.Mô hình sẽ xuất ra cùng định dạng cache được đưa vào làm đầu vào.
Nếu
past_key_valuesđược sử dụng, người dùng được kỳ vọng chỉ nhậpinput_idschưa được xử lý (những phần chưa có trạng thái key value quá khứ được cung cấp cho mô hình này) có hình dạng(batch_size, unprocessed_length)thay vì toàn bộinput_idscó hình dạng(batch_size, sequence_length). - attention_mask (
torch.Tensorcó hình dạng(batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong[0, 1]:- 1 cho các token không bị che,
- 0 cho các token bị che.
- position_ids (
torch.Tensorcó hình dạng(batch_size, sequence_length), tùy chọn) — Chỉ số vị trí của các token trong mỗi chuỗi đầu vào trong các position embeddings. Được chọn trong khoảng[0, config.n_positions - 1]. - labels (
torch.LongTensorcó shape(batch_size, sequence_length), tùy chọn) — Nhãn để tính toán tổn thất mô hình hóa ngôn ngữ có che (masked language modeling loss). Chỉ số phải nằm trong[0, ..., config.vocab_size]hoặc -100 (xem docstring củainput_ids). Các token có chỉ số được đặt thành-100sẽ bị bỏ qua (che), tổn thất chỉ được tính cho các token có nhãn nằm trong[0, ..., config.vocab_size]. - inputs_embeds (
torch.Tensorcó hình dạng(batch_size, sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyềninput_ids, bạn có thể chọn truyền trực tiếp một biểu diễn nhúng. Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi các chỉ sốinput_idsthành các vector liên quan so với ma trận tra cứu nhúng nội bộ của mô hình. - use_cache (
bool, tùy chọn) — Nếu đặt thànhTrue, các trạng thái key value củapast_key_valuessẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xempast_key_values). - output_attentions (
bool, tùy chọn) — Có trả về các tensor attentions của tất cả các lớp attention hay không. Xemattentionstrong phần tensor được trả về để biết thêm chi tiết. - output_hidden_states (
bool, tùy chọn) — Có trả về trạng thái ẩn (hidden states) của tất cả các lớp hay không. Xemhidden_statestrong phần tensor trả về để biết thêm chi tiết. - return_dict (
bool, tùy chọn) — Có nên trả về một ModelOutput thay vì một tuple thông thường hay không.
Trả về
CausalLMOutputWithPast hoặc tuple(torch.Tensor)
Một CausalLMOutputWithPast hoặc một tuple của
torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các
thành phần khác nhau tùy thuộc vào cấu hình (BarkConfig) và đầu vào.
Phương thức forward của BarkCausalModel ghi đè lên phương thức đặc biệt __call__.
Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.
loss (
torch.Tensorcó shape(1,), tùy chọn, được trả về khilabelsđược cung cấp) — Loss của language modeling (cho next-token prediction).logits (
torch.Tensorcó hình dạng(batch_size, sequence_length, config.vocab_size)) — Điểm dự đoán của đầu mô hình hóa ngôn ngữ (điểm cho mỗi token trong từ vựng trước SoftMax).past_key_values (
Cache, tùy chọn, được trả về khiuse_cache=Trueđược truyền vào hoặc khiconfig.use_cache=True) — Đây là một instance của Cache. Để biết thêm chi tiết, hãy xem hướng dẫn về kv cache của chúng tôi.Chứa các hidden-states đã được tính trước (key và values trong các khối self-attention) có thể được sử dụng (xem đầu vào
past_key_values) để tăng tốc độ giải mã tuần tự.hidden_states (
tuple(torch.Tensor), tuỳ chọn, được trả về khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Bộ tuple củatorch.Tensor(một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng(batch_size, sequence_length, hidden_size).Trạng thái ẩn của mô hình tại đầu ra của mỗi lớp cùng với các đầu ra embedding ban đầu tùy chọn.
attentions (
tuple(torch.Tensor), tuỳ chọn, được trả về khioutput_attentions=Trueđược truyền vào hoặc khiconfig.output_attentions=True) — Tuple củatorch.Tensor(một cho mỗi lớp) có hình dạng(batch_size, num_heads, sequence_length, sequence_length).Trọng số chú ý sau softmax của attention, được sử dụng để tính trung bình có trọng số trong các đầu self-attention.
BarkCoarseModel
lớp transformers.BarkCoarseModel
< source >( config: BarkSubModelConfig )
Tham số
- config (
BarkSubModelConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.
Mô hình âm học thô của Bark. Nó chia sẻ cùng kiến trúc với mô hình ngữ nghĩa (hoặc văn bản). Đây là một mô hình tự hồi quy kiểu GPT-2 với một đầu mô hình hóa ngôn ngữ ở trên.
Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)
Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.
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)
Tham số
- input_ids (
torch.Tensorcó dạng(batch_size, sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào theo từ điển. Mặc định, padding sẽ bị bỏ qua.Các chỉ số có thể được lấy bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.
- past_key_values (
~cache_utils.Cache, tuỳ chọn) — Các hidden-state đã tính trước (key và value trong các khối self-attention và cross-attention) có thể được sử dụng để tăng tốc giải mã tuần tự. Điều này thường bao gồmpast_key_valuesđược trả về bởi mô hình ở một giai đoạn giải mã trước đó, khiuse_cache=Truehoặcconfig.use_cache=True.Chỉ cho phép Cache instance làm đầu vào, xem hướng dẫn kv cache của chúng tôi. Nếu không truyền
past_key_values, DynamicCache sẽ được khởi tạo theo mặc định.Mô hình sẽ xuất ra cùng định dạng cache được đưa vào làm đầu vào.
Nếu
past_key_valuesđược sử dụng, người dùng được kỳ vọng chỉ nhậpinput_idschưa được xử lý (những phần chưa có trạng thái key value quá khứ được cung cấp cho mô hình này) có hình dạng(batch_size, unprocessed_length)thay vì toàn bộinput_idscó hình dạng(batch_size, sequence_length). - attention_mask (
torch.Tensorcó hình dạng(batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong[0, 1]:- 1 cho các token không bị che,
- 0 cho các token bị che.
- position_ids (
torch.Tensorcó hình dạng(batch_size, sequence_length), tùy chọn) — Chỉ số vị trí của các token trong mỗi chuỗi đầu vào trong các position embeddings. Được chọn trong khoảng[0, config.n_positions - 1]. - labels (
torch.LongTensorcó shape(batch_size, sequence_length), tùy chọn) — Nhãn để tính toán tổn thất mô hình hóa ngôn ngữ có che (masked language modeling loss). Chỉ số phải nằm trong[0, ..., config.vocab_size]hoặc -100 (xem docstring củainput_ids). Các token có chỉ số được đặt thành-100sẽ bị bỏ qua (che), tổn thất chỉ được tính cho các token có nhãn nằm trong[0, ..., config.vocab_size]. - inputs_embeds (
torch.Tensorcó hình dạng(batch_size, sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyềninput_ids, bạn có thể chọn truyền trực tiếp một biểu diễn nhúng. Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi các chỉ sốinput_idsthành các vector liên quan so với ma trận tra cứu nhúng nội bộ của mô hình. - use_cache (
bool, tùy chọn) — Nếu đặt thànhTrue, các trạng thái key value củapast_key_valuessẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xempast_key_values). - output_attentions (
bool, tùy chọn) — Có trả về các tensor attentions của tất cả các lớp attention hay không. Xemattentionstrong phần tensor được trả về để biết thêm chi tiết. - output_hidden_states (
bool, tùy chọn) — Có trả về trạng thái ẩn (hidden states) của tất cả các lớp hay không. Xemhidden_statestrong phần tensor trả về để biết thêm chi tiết. - return_dict (
bool, tùy chọn) — Có nên trả về một ModelOutput thay vì một tuple thông thường hay không.
Trả về
CausalLMOutputWithPast hoặc tuple(torch.Tensor)
Một CausalLMOutputWithPast hoặc một tuple của
torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các
thành phần khác nhau tùy thuộc vào cấu hình (BarkConfig) và đầu vào.
Phương thức forward của BarkCausalModel ghi đè lên phương thức đặc biệt __call__.
Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.
loss (
torch.Tensorcó shape(1,), tùy chọn, được trả về khilabelsđược cung cấp) — Loss của language modeling (cho next-token prediction).logits (
torch.Tensorcó hình dạng(batch_size, sequence_length, config.vocab_size)) — Điểm dự đoán của đầu mô hình hóa ngôn ngữ (điểm cho mỗi token trong từ vựng trước SoftMax).past_key_values (
Cache, tùy chọn, được trả về khiuse_cache=Trueđược truyền vào hoặc khiconfig.use_cache=True) — Đây là một instance của Cache. Để biết thêm chi tiết, hãy xem hướng dẫn về kv cache của chúng tôi.Chứa các hidden-states đã được tính trước (key và values trong các khối self-attention) có thể được sử dụng (xem đầu vào
past_key_values) để tăng tốc độ giải mã tuần tự.hidden_states (
tuple(torch.Tensor), tuỳ chọn, được trả về khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Bộ tuple củatorch.Tensor(một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng(batch_size, sequence_length, hidden_size).Trạng thái ẩn của mô hình tại đầu ra của mỗi lớp cùng với các đầu ra embedding ban đầu tùy chọn.
attentions (
tuple(torch.Tensor), tuỳ chọn, được trả về khioutput_attentions=Trueđược truyền vào hoặc khiconfig.output_attentions=True) — Tuple củatorch.Tensor(một cho mỗi lớp) có hình dạng(batch_size, num_heads, sequence_length, sequence_length).Trọng số chú ý sau softmax của attention, được sử dụng để tính trung bình có trọng số trong các đầu self-attention.
BarkFineModel
lớp transformers.BarkFineModel
< source >( config: BarkFineConfig )
Tham số
- config (BarkFineConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.
Mô hình âm học chi tiết của Bark. Đây là một mô hình không nhân quả kiểu GPT với config.n_codes_total lớp nhúng và các đầu mô hình hóa ngôn ngữ, mỗi đầu tương ứng với một codebook.
Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)
Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.
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)
Tham số
- codebook_idx (
int) — Chỉ số của codebook sẽ được dự đoán. - input_ids (
torch.Tensorcó dạng(batch_size, sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào theo từ điển. Mặc định, padding sẽ bị bỏ qua.Các chỉ số có thể được lấy bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.
- attention_mask (
torch.Tensorcó hình dạng(batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong[0, 1]:- 1 cho các token không bị che,
- 0 cho các token bị che.
- position_ids (
torch.Tensorcó hình dạng(batch_size, sequence_length), tùy chọn) — Chỉ số vị trí của các token trong mỗi chuỗi đầu vào trong các position embeddings. Được chọn trong khoảng[0, config.n_positions - 1]. - labels (
torch.LongTensorcó hình dạng(batch_size, sequence_length), tùy chọn) — CHƯA ĐƯỢC TRIỂN KHAI. - inputs_embeds (
torch.Tensorcó hình dạng(batch_size, sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyềninput_ids, bạn có thể chọn truyền trực tiếp một biểu diễn nhúng. Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi các chỉ sốinput_idsthành các vector liên quan so với ma trận tra cứu nhúng nội bộ của mô hình. - output_attentions (
bool, tùy chọn) — Có trả về các tensor attentions của tất cả các lớp attention hay không. Xemattentionstrong phần tensor được trả về để biết thêm chi tiết. - output_hidden_states (
bool, tùy chọn) — Có trả về trạng thái ẩn (hidden states) của tất cả các lớp hay không. Xemhidden_statestrong phần tensor trả về để biết thêm chi tiết. - return_dict (
bool, tùy chọn) — Có nên trả về một ModelOutput thay vì một tuple thông thường hay không.
Trả về
MaskedLMOutput hoặc tuple(torch.Tensor)
Một MaskedLMOutput hoặc một tuple của
torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các
thành phần khác nhau tùy thuộc vào cấu hình (BarkConfig) và đầu vào.
Phương thức forward của BarkFineModel ghi đè lên phương thức đặc biệt __call__.
Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.
loss (
torch.Tensorcó hình dạng(1,), tùy chọn, được trả về khilabelsđược cung cấp) — Tổn thất mô hình hóa ngôn ngữ có mặt nạ (MLM).logits (
torch.Tensorcó hình dạng(batch_size, sequence_length, config.vocab_size)) — Điểm dự đoán của đầu mô hình hóa ngôn ngữ (điểm cho mỗi token trong từ vựng trước SoftMax).hidden_states (
tuple(torch.Tensor), tuỳ chọn, được trả về khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Bộ tuple củatorch.Tensor(một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng(batch_size, sequence_length, hidden_size).Trạng thái ẩn của mô hình tại đầu ra của mỗi lớp cùng với các đầu ra embedding ban đầu tùy chọn.
attentions (
tuple(torch.Tensor), tuỳ chọn, được trả về khioutput_attentions=Trueđược truyền vào hoặc khiconfig.output_attentions=True) — Tuple củatorch.Tensor(một cho mỗi lớp) có hình dạng(batch_size, num_heads, sequence_length, sequence_length).Trọng số chú ý sau softmax của attention, được sử dụng để tính trung bình có trọng số trong các đầu self-attention.
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)
Tham số
- input_ids (
torch.Tensorcó dạng(batch_size, sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào theo từ điển. Mặc định, padding sẽ bị bỏ qua.Các chỉ số có thể được lấy bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.
- past_key_values (
~cache_utils.Cache, tuỳ chọn) — Các hidden-state đã tính trước (key và value trong các khối self-attention và cross-attention) có thể được sử dụng để tăng tốc giải mã tuần tự. Điều này thường bao gồmpast_key_valuesđược trả về bởi mô hình ở một giai đoạn giải mã trước đó, khiuse_cache=Truehoặcconfig.use_cache=True.Chỉ cho phép Cache instance làm đầu vào, xem hướng dẫn kv cache của chúng tôi. Nếu không truyền
past_key_values, DynamicCache sẽ được khởi tạo theo mặc định.Mô hình sẽ xuất ra cùng định dạng cache được đưa vào làm đầu vào.
Nếu
past_key_valuesđược sử dụng, người dùng được kỳ vọng chỉ nhậpinput_idschưa được xử lý (những phần chưa có trạng thái key value quá khứ được cung cấp cho mô hình này) có hình dạng(batch_size, unprocessed_length)thay vì toàn bộinput_idscó hình dạng(batch_size, sequence_length). - attention_mask (
torch.Tensorcó hình dạng(batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong[0, 1]:- 1 cho các token không bị che,
- 0 cho các token bị che.
- position_ids (
torch.Tensorcó hình dạng(batch_size, sequence_length), tùy chọn) — Chỉ số vị trí của các token trong mỗi chuỗi đầu vào trong các position embeddings. Được chọn trong khoảng[0, config.n_positions - 1]. - labels (
torch.LongTensorcó shape(batch_size, sequence_length), tùy chọn) — Nhãn để tính toán tổn thất mô hình hóa ngôn ngữ có che (masked language modeling loss). Chỉ số phải nằm trong[0, ..., config.vocab_size]hoặc -100 (xem docstring củainput_ids). Các token có chỉ số được đặt thành-100sẽ bị bỏ qua (che), tổn thất chỉ được tính cho các token có nhãn nằm trong[0, ..., config.vocab_size]. - inputs_embeds (
torch.Tensorcó hình dạng(batch_size, sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyềninput_ids, bạn có thể chọn truyền trực tiếp một biểu diễn nhúng. Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi các chỉ sốinput_idsthành các vector liên quan so với ma trận tra cứu nhúng nội bộ của mô hình. - use_cache (
bool, tùy chọn) — Nếu đặt thànhTrue, các trạng thái key value củapast_key_valuessẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xempast_key_values). - output_attentions (
bool, tùy chọn) — Có trả về các tensor attentions của tất cả các lớp attention hay không. Xemattentionstrong phần tensor được trả về để biết thêm chi tiết. - output_hidden_states (
bool, tùy chọn) — Có trả về trạng thái ẩn (hidden states) của tất cả các lớp hay không. Xemhidden_statestrong phần tensor trả về để biết thêm chi tiết. - return_dict (
bool, tùy chọn) — Có nên trả về một ModelOutput thay vì một tuple thông thường hay không.
Trả về
CausalLMOutputWithPast hoặc tuple(torch.Tensor)
Một CausalLMOutputWithPast hoặc một tuple của
torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các
thành phần khác nhau tùy thuộc vào cấu hình (BarkConfig) và đầu vào.
Phương thức forward của BarkCausalModel ghi đè lên phương thức đặc biệt __call__.
Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.
loss (
torch.Tensorcó shape(1,), tùy chọn, được trả về khilabelsđược cung cấp) — Loss của language modeling (cho next-token prediction).logits (
torch.Tensorcó hình dạng(batch_size, sequence_length, config.vocab_size)) — Điểm dự đoán của đầu mô hình hóa ngôn ngữ (điểm cho mỗi token trong từ vựng trước SoftMax).past_key_values (
Cache, tùy chọn, được trả về khiuse_cache=Trueđược truyền vào hoặc khiconfig.use_cache=True) — Đây là một instance của Cache. Để biết thêm chi tiết, hãy xem hướng dẫn về kv cache của chúng tôi.Chứa các hidden-states đã được tính trước (key và values trong các khối self-attention) có thể được sử dụng (xem đầu vào
past_key_values) để tăng tốc độ giải mã tuần tự.hidden_states (
tuple(torch.Tensor), tuỳ chọn, được trả về khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Bộ tuple củatorch.Tensor(một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng(batch_size, sequence_length, hidden_size).Trạng thái ẩn của mô hình tại đầu ra của mỗi lớp cùng với các đầu ra embedding ban đầu tùy chọn.
attentions (
tuple(torch.Tensor), tuỳ chọn, được trả về khioutput_attentions=Trueđược truyền vào hoặc khiconfig.output_attentions=True) — Tuple củatorch.Tensor(một cho mỗi lớp) có hình dạng(batch_size, num_heads, sequence_length, sequence_length).Trọng số chú ý sau softmax của attention, được sử dụng để tính trung bình có trọng số trong các đầu self-attention.
BarkCoarseConfig
lớp 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 )
Tham số
- block_size (
int, tùy chọn, mặc định là 1024) — Chiều dài tối đa của chuỗi mà mô hình này có thể được sử dụng. Thông thường, hãy đặt giá trị này ở mức lớn để phòng ngừa (ví dụ: 512 hoặc 1024 hoặc 2048). - input_vocab_size (
int, tùy chọn, mặc định là 10_048) — Kích thước từ vựng của một mô hình con Bark. Xác định số lượng token khác nhau có thể được biểu diễn bởiinputs_idsđược truyền khi gọi{model}. Mặc định là 10_048 nhưng cần được cân nhắc kỹ lưỡng dựa trên mô hình con đã chọn. - output_vocab_size (
int, tuỳ chọn, mặc định là 10_048) — Kích thước bảng từ vựng đầu ra của một mô hình con Bark. Xác định số lượng token khác nhau có thể được biểu diễn bởi:output_idskhi thực hiện truyền tiến một{model}. Mặc định là 10_048 nhưng cần được cân nhắc kỹ dựa trên mô hình con đã chọn. - num_layers (
int, tùy chọn, mặc định là12) — Số lượng lớp ẩn trong bộ giải mã Transformer. - num_heads (
int, tùy chọn, mặc định là12) — Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ giải mã Transformer. - hidden_size (
int, tùy chọn, mặc định là768) — Kích thước của các biểu diễn ẩn. - dropout (
Union[float, int], tùy chọn, mặc định là0.0) — Tỷ lệ cho tất cả các lớp dropout. - bias (
bool, tùy chọn, mặc định làTrue) — Có sử dụng bias trong các lớp tuyến tính và các lớp chuẩn hóa lớp hay không - initializer_range (
float, tùy chọn, mặc định là0.02) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số. - use_cache (
bool, tùy chọn, mặc định làTrue) — Xác định xem mô hình có nên trả về các chú ý key/values cuối cùng hay không (không được sử dụng bởi tất cả các mô hình). Chỉ liên quan nếuconfig.is_decoder=Truehoặc khi mô hình là mô hình sinh chỉ có decoder.
Đây là lớp cấu hình để lưu trữ cấu hình của một BarkModel. Nó được sử dụng để khởi tạo một mô hình Bark theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như của suno/bark
Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.
Ví dụ:
>>> 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
lớp 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 )
Tham số
- block_size (
int, tùy chọn, mặc định là 1024) — Chiều dài tối đa của chuỗi mà mô hình này có thể được sử dụng. Thông thường, hãy đặt giá trị này ở mức lớn để phòng ngừa (ví dụ: 512 hoặc 1024 hoặc 2048). - input_vocab_size (
int, tùy chọn, mặc định là 10_048) — Kích thước từ vựng của một mô hình con Bark. Xác định số lượng token khác nhau có thể được biểu diễn bởiinputs_idsđược truyền khi gọi{model}. Mặc định là 10_048 nhưng cần được cân nhắc kỹ lưỡng dựa trên mô hình con đã chọn. - output_vocab_size (
int, tuỳ chọn, mặc định là 10_048) — Kích thước bảng từ vựng đầu ra của một mô hình con Bark. Xác định số lượng token khác nhau có thể được biểu diễn bởi:output_idskhi thực hiện truyền tiến một{model}. Mặc định là 10_048 nhưng cần được cân nhắc kỹ dựa trên mô hình con đã chọn. - num_layers (
int, tùy chọn, mặc định là12) — Số lượng lớp ẩn trong bộ giải mã Transformer. - num_heads (
int, tùy chọn, mặc định là12) — Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ giải mã Transformer. - hidden_size (
int, tùy chọn, mặc định là768) — Kích thước của các biểu diễn ẩn. - dropout (
Union[float, int], tùy chọn, mặc định là0.0) — Tỷ lệ cho tất cả các lớp dropout. - bias (
bool, tùy chọn, mặc định làTrue) — Có sử dụng bias trong các lớp tuyến tính và các lớp chuẩn hóa lớp hay không - initializer_range (
float, tùy chọn, mặc định là0.02) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số. - use_cache (
bool, tùy chọn, mặc định làTrue) — Xác định xem mô hình có nên trả về các chú ý key/values cuối cùng hay không (không được sử dụng bởi tất cả các mô hình). Chỉ liên quan nếuconfig.is_decoder=Truehoặc khi mô hình là mô hình sinh chỉ có decoder. - tie_word_embeddings (
bool, tùy chọn, mặc định làTrue) — Có nên gắn kết các trọng số nhúng theo ánh xạtied_weights_keyscủa mô hình hay không. - n_codes_total (
int, tùy chọn, mặc định là 8) — Tổng số lượng codebook âm thanh được dự đoán. Được sử dụng trong mô hình con âm học chi tiết. - n_codes_given (
int, tuỳ chọn, mặc định là 1) — Số lượng codebook âm thanh được dự đoán trong mô hình con âm học thô. Được sử dụng trong các mô hình con âm học.
Đây là lớp cấu hình để lưu trữ cấu hình của một BarkModel. Nó được sử dụng để khởi tạo một mô hình Bark theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như của suno/bark
Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.
Ví dụ:
>>> 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
lớp 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 )
Tham số
- block_size (
int, tùy chọn, mặc định là 1024) — Chiều dài tối đa của chuỗi mà mô hình này có thể được sử dụng. Thông thường, hãy đặt giá trị này ở mức lớn để phòng ngừa (ví dụ: 512 hoặc 1024 hoặc 2048). - input_vocab_size (
int, tùy chọn, mặc định là 10_048) — Kích thước từ vựng của một mô hình con Bark. Xác định số lượng token khác nhau có thể được biểu diễn bởiinputs_idsđược truyền khi gọi{model}. Mặc định là 10_048 nhưng cần được cân nhắc kỹ lưỡng dựa trên mô hình con đã chọn. - output_vocab_size (
int, tuỳ chọn, mặc định là 10_048) — Kích thước bảng từ vựng đầu ra của một mô hình con Bark. Xác định số lượng token khác nhau có thể được biểu diễn bởi:output_idskhi thực hiện truyền tiến một{model}. Mặc định là 10_048 nhưng cần được cân nhắc kỹ dựa trên mô hình con đã chọn. - num_layers (
int, tùy chọn, mặc định là12) — Số lượng lớp ẩn trong bộ giải mã Transformer. - num_heads (
int, tùy chọn, mặc định là12) — Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ giải mã Transformer. - hidden_size (
int, tùy chọn, mặc định là768) — Kích thước của các biểu diễn ẩn. - dropout (
Union[float, int], tùy chọn, mặc định là0.0) — Tỷ lệ cho tất cả các lớp dropout. - bias (
bool, tùy chọn, mặc định làTrue) — Có sử dụng bias trong các lớp tuyến tính và các lớp chuẩn hóa lớp hay không - initializer_range (
float, tùy chọn, mặc định là0.02) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số. - use_cache (
bool, tùy chọn, mặc định làTrue) — Xác định xem mô hình có nên trả về các chú ý key/values cuối cùng hay không (không được sử dụng bởi tất cả các mô hình). Chỉ liên quan nếuconfig.is_decoder=Truehoặc khi mô hình là mô hình sinh chỉ có decoder.
Đây là lớp cấu hình để lưu trữ cấu hình của một BarkModel. Nó được sử dụng để khởi tạo một mô hình Bark theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như của suno/bark
Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.
Ví dụ:
>>> 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