Transformers documentation

Speech2Text

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Mô hình này được công bố trên HF papers vào ngày 2020-10-11 và được đóng góp cho Hugging Face Transformers vào ngày 2021-03-10.

Speech2Text

Tổng quan

Mô hình Speech2Text được đề xuất trong fairseq S2T: Fast Speech-to-Text Modeling with fairseq bởi Changhan Wang, Yun Tang, Xutai Ma, Anne Wu, Dmytro Okhonko, Juan Pino. Đây là một mô hình seq2seq (encoder-decoder) dựa trên transformer, được thiết kế cho Nhận dạng giọng nói tự động (ASR) và Dịch giọng nói (ST) theo phương pháp end-to-end. Mô hình sử dụng bộ giảm mẫu tích chập (convolutional downsampler) để giảm độ dài của đầu vào giọng nói đi 3/4 trước khi chúng được đưa vào encoder. Mô hình được huấn luyện bằng tổn thất entropy chéo tự hồi quy (autoregressive cross-entropy loss) tiêu chuẩn và tạo ra các bản ghi âm/bản dịch một cách tự hồi quy. Speech2Text đã được tinh chỉnh (fine-tuned) trên một số bộ dữ liệu cho ASR và ST: LibriSpeech, CoVoST 2, MuST-C.

Mô hình này được đóng góp bởi valhalla. Mã gốc có thể được tìm thấy tại đây.

Suy luận

Speech2Text là một mô hình giọng nói nhận vào một tensor float chứa các đặc trưng log-mel filter-bank được trích xuất từ tín hiệu giọng nói. Đây là một mô hình seq2seq dựa trên transformer, do đó các bản ghi âm/bản dịch được tạo ra theo cách tự hồi quy. Phương thức generate() có thể được sử dụng để suy luận.

Lớp Speech2TextFeatureExtractor có trách nhiệm trích xuất các đặc trưng log-mel filter-bank. Speech2TextProcessor bao bọc Speech2TextFeatureExtractor và Speech2TextTokenizer thành một instance duy nhất để vừa trích xuất các đặc trưng đầu vào vừa giải mã các token id dự đoán.

Feature extractor phụ thuộc vào torchaudio và tokenizer phụ thuộc vào sentencepiece nên hãy chắc chắn cài đặt các gói đó trước khi chạy các ví dụ. Bạn có thể cài đặt chúng như các phụ thuộc giọng nói bổ sung bằng pip install transformers"[speech, sentencepiece]" hoặc cài đặt các gói riêng lẻ bằng pip install torchaudio sentencepiece. Ngoài ra, torchaudio yêu cầu phiên bản phát triển của gói libsndfile, có thể cài đặt thông qua trình quản lý gói hệ thống. Trên Ubuntu, có thể cài đặt như sau: apt install libsndfile1-dev

  • ASR và Dịch giọng nói
from datasets import load_dataset

from transformers import Speech2TextForConditionalGeneration, Speech2TextProcessor


model = Speech2TextForConditionalGeneration.from_pretrained("facebook/s2t-small-librispeech-asr", device_map="auto")
processor = Speech2TextProcessor.from_pretrained("facebook/s2t-small-librispeech-asr")


ds = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")

inputs = processor(ds[0]["audio"]["array"], sampling_rate=ds[0]["audio"]["sampling_rate"], return_tensors="pt").to(model.device)
generated_ids = model.generate(inputs["input_features"], attention_mask=inputs["attention_mask"])

transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)
transcription
['mister quilter is the apostle of the middle classes and we are glad to welcome his gospel']
  • Dịch thuật giọng nói đa ngôn ngữ

    Đối với các mô hình dịch giọng nói đa ngôn ngữ, eos_token_id được dùng làm decoder_start_token_id và id của ngôn ngữ đích được ép buộc là token được sinh ra đầu tiên. Để ép buộc id của ngôn ngữ đích là token được sinh ra đầu tiên, hãy truyền tham số forced_bos_token_id vào phương thức generate(). Ví dụ dưới đây cho thấy cách dịch giọng nói tiếng Anh sang văn bản tiếng Pháp bằng checkpoint facebook/s2t-medium-mustc-multilingual-st.

from datasets import load_dataset

from transformers import Speech2TextForConditionalGeneration, Speech2TextProcessor


model = Speech2TextForConditionalGeneration.from_pretrained("facebook/s2t-medium-mustc-multilingual-st", device_map="auto")
processor = Speech2TextProcessor.from_pretrained("facebook/s2t-medium-mustc-multilingual-st")

ds = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")

inputs = processor(ds[0]["audio"]["array"], sampling_rate=ds[0]["audio"]["sampling_rate"], return_tensors="pt").to(model.device)
generated_ids = model.generate(
    inputs["input_features"],
    attention_mask=inputs["attention_mask"],
    forced_bos_token_id=processor.tokenizer.lang_code_to_id["fr"],
)

translation = processor.batch_decode(generated_ids, skip_special_tokens=True)
translation
["(Vidéo) Si M. Kilder est l'apossible des classes moyennes, et nous sommes heureux d'être accueillis dans son évangile."]

Xem model hub để tìm các checkpoint Speech2Text.

Speech2TextConfig

lớp transformers.Speech2TextConfig

< >

( 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truevocab_size: int = 10000encoder_layers: int = 12encoder_ffn_dim: int = 2048encoder_attention_heads: int = 4decoder_layers: int = 6decoder_ffn_dim: int = 2048decoder_attention_heads: int = 4encoder_layerdrop: float | int = 0.0decoder_layerdrop: float | int = 0.0use_cache: bool = Trueactivation_function: str = 'relu'd_model: int = 256dropout: float | int = 0.1attention_dropout: float | int = 0.0activation_dropout: float | int = 0.0init_std: float = 0.02decoder_start_token_id: int = 2scale_embedding: bool = Truepad_token_id: int | None = 1bos_token_id: int | None = 0eos_token_id: int | list[int] | None = 2max_source_positions: int = 6000max_target_positions: int = 1024num_conv_layers: int = 2conv_kernel_sizes: list[int] | tuple[int, ...] = (5, 5)conv_channels: int = 1024input_feat_per_channel: int = 80input_channels: int = 1tie_word_embeddings: bool = True )

Tham số

  • is_encoder_decoder (bool, tùy chọn, mặc định là True) — Xác định xem mô hình có được sử dụng như một encoder/decoder hay không.
  • vocab_size (int, tùy chọn, mặc định là 10000) — Kích thước từ vựng của mô hình. Xác định số lượng token khác nhau có thể được biểu diễn bởi input_ids.
  • encoder_layers (int, tùy chọn, mặc định là 12) — Số lượng lớp ẩn trong bộ mã hóa Transformer. Nếu không được đặt, giá trị này sẽ giống với num_layers.
  • encoder_ffn_dim (int, tùy chọn, mặc định là 2048) — Kích thước của lớp “trung gian” (thường được gọi là lớp feed-forward) trong encoder.
  • encoder_attention_heads (int, tùy chọn, mặc định là 4) — Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ mã hóa Transformer.
  • decoder_layers (int, tùy chọn, mặc định là 6) — Số lượng lớp ẩn trong bộ giải mã Transformer. Nếu không được đặt, giá trị này sẽ giống với num_layers.
  • decoder_ffn_dim (int, tùy chọn, mặc định là 2048) — Kích thước của lớp “trung gian” (thường được gọi là lớp feed-forward) trong decoder.
  • decoder_attention_heads (int, tùy chọn, mặc định là 4) — Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ giải mã Transformer.
  • encoder_layerdrop (Union[float, int], tùy chọn, mặc định là 0.0) — Xác suất LayerDrop cho bộ mã hóa. Xem [bài báo LayerDrop](xem https://huggingface.co/papers/1909.11556) để biết thêm chi tiết.
  • decoder_layerdrop (Union[float, int], tùy chọn, mặc định là 0.0) — Xác suất LayerDrop cho bộ giải mã. Xem [bài báo LayerDrop](xem https://huggingface.co/papers/1909.11556) để biết thêm chi tiết.
  • 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ếu config.is_decoder=True hoặc khi mô hình là mô hình sinh chỉ có decoder.
  • activation_function (str, tùy chọn, mặc định là relu) — Hàm kích hoạt phi tuyến (hàm hoặc chuỗi) trong bộ giải mã. Ví dụ, "gelu", "relu", "silu", v.v.
  • d_model (int, tùy chọn, mặc định là 256) — Kích thước của các lớp encoder và lớp pooler.
  • dropout (Union[float, int], tùy chọn, mặc định là 0.1) — Tỷ lệ cho tất cả các lớp dropout.
  • attention_dropout (Union[float, int], tùy chọn, mặc định là 0.0) — Tỷ lệ dropout cho các xác suất chú ý.
  • activation_dropout (Union[float, int], tùy chọn, mặc định là 0.0) — Tỷ lệ dropout cho các kích hoạt bên trong lớp liên kết đầy đủ.
  • init_std (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ố.
  • decoder_start_token_id (int, tùy chọn, mặc định là 2) — Nếu một mô hình encoder-decoder bắt đầu giải mã bằng một token khác với bos, đây là id của token đó.
  • scale_embedding (bool, tùy chọn, mặc định là True) — Có nên chia embedding cho sqrt(d_model) để chuẩn hóa hay không.
  • pad_token_id (int, tùy chọn, mặc định là 1) — Token id được sử dụng để đệm (padding) trong từ vựng.
  • bos_token_id (int, tùy chọn, mặc định là 0) — Token id được sử dụng cho đầu luồng trong bảng từ vựng.
  • eos_token_id (Union[int, list[int]], tùy chọn, mặc định là 2) — Token id được sử dụng cho end-of-stream trong bảng từ vựng.
  • max_source_positions (int, tùy chọn, mặc định là 6000) — Chiều dài tối đa của chuỗi các đặc trưng log-mel filter-bank mà mô hình này có thể được sử dụng.
  • max_target_positions (int, tùy chọn, mặc định là 1024) — Chiều dài chuỗi tối đa 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).
  • num_conv_layers (int, tùy chọn, mặc định là 2) — Số lượng lớp tích chập 1D trong module tích chập.
  • conv_kernel_sizes (tuple[int], tuỳ chọn, mặc định là (5, 5)) — Một tuple các số nguyên xác định kích thước kernel của từng lớp tích chập 1D trong module conv. Độ dài của conv_kernel_sizes phải khớp với num_conv_layers.
  • conv_channels (int, tùy chọn, mặc định là 1024) — Một số nguyên xác định số lượng kênh đầu ra của mỗi lớp tích chập, ngoại trừ lớp cuối cùng trong module tích chập.
  • input_feat_per_channel (int, tùy chọn, mặc định là 80) — Một số nguyên chỉ định kích thước của vector đặc trưng. Đây cũng là số chiều của các đặc trưng log-mel filter-bank.
  • input_channels (int, tùy chọn, mặc định là 1) — Số lượng kênh đầu vào.
  • 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_keys của mô hình hay không.

Đây là lớp cấu hình để lưu trữ cấu hình của một Speech2TextModel. Nó được sử dụng để khởi tạo một mô hình Speech To Text 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ấu hình của facebook/s2t-small-librispeech-asr

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 Speech2TextConfig, Speech2TextModel

>>> # Initializing a Speech2Text s2t_transformer_s style configuration
>>> configuration = Speech2TextConfig()

>>> # Initializing a model (with random weights) from the s2t_transformer_s style configuration
>>> model = Speech2TextModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

Speech2TextTokenizer

lớp transformers.Speech2TextTokenizer

< >

( vocab_filespm_filebos_token = '<s>'eos_token = '</s>'pad_token = '<pad>'unk_token = '<unk>'do_upper_case = Falsedo_lower_case = Falsetgt_lang = Nonelang_codes = Noneadditional_special_tokens = Nonesp_model_kwargs: dict[str, typing.Any] | None = None**kwargs )

Tham số

  • vocab_file (str) — Tệp chứa từ vựng.
  • spm_file (str) — Đường dẫn đến tệp mô hình SentencePiece
  • bos_token (str, tùy chọn, mặc định là "<s>") — Token đánh dấu đầu câu.
  • eos_token (str, tùy chọn, mặc định là "</s>") — Token kết thúc câu.
  • unk_token (str, tùy chọn, mặc định là "<unk>") — Token không xác định. Một token không có trong từ vựng sẽ không thể được chuyển đổi thành ID và sẽ được gán thành token này thay thế.
  • pad_token (str, tùy chọn, mặc định là "<pad>") — Token được sử dụng để đệm, chẳng hạn khi xử lý các lô (batch) gồm các chuỗi có độ dài khác nhau.
  • do_upper_case (bool, tùy chọn, mặc định là False) — Có nên chuyển kết quả sang chữ hoa khi giải mã hay không.
  • do_lower_case (bool, tùy chọn, mặc định là False) — Có chuyển đổi chữ thường cho đầu vào khi phân tách token hay không.
  • tgt_lang (str, tùy chọn) — Chuỗi đại diện cho ngôn ngữ đích.
  • sp_model_kwargs (dict, tuỳ chọn) — Sẽ được truyền vào SentencePieceProcessor.__init__() phương thức. bọc Python cho SentencePiece có thể được sử dụng, trong số nhiều mục đích khác, để thiết lập:
    • enable_sampling: Bật chuẩn hóa từ con (subword regularization).

    • nbest_size: Tham số lấy mẫu cho unigram. Không hợp lệ với BPE-Dropout.

      • nbest_size = {0,1}: Không thực hiện lấy mẫu.
      • nbest_size > 1: lấy mẫu từ các kết quả nbest_size.
      • nbest_size < 0: giả định rằng nbest_size là vô hạn và lấy mẫu từ tất cả các giả thuyết (lattice) bằng thuật toán forward-filtering-and-backward-sampling.
    • alpha: Tham số làm mịn cho việc lấy mẫu unigram và xác suất dropout của các thao tác merge cho BPE-dropout.

  • **kwargs — Các đối số từ khóa bổ sung được truyền đến PreTrainedTokenizer

Xây dựng một tokenizer Speech2Text.

Tokenizer này kế thừa từ PreTrainedTokenizer, bao gồm một số phương thức chính. Người dùng nên tham khảo lớp cha để biết thêm thông tin về các phương thức này.

build_inputs_with_special_tokens

< >

( token_ids_0token_ids_1 = None )

Xây dựng đầu vào mô hình từ một chuỗi bằng cách thêm eos_token_id.

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → list[int]

Tham số

  • token_ids_0 (list[int]) — Danh sách các ID.
  • token_ids_1 (list[int], tùy chọn) — Danh sách ID thứ hai tùy chọn cho các cặp chuỗi.
  • already_has_special_tokens (bool, tùy chọn, mặc định là False) — Danh sách token đã được định dạng với các token đặc biệt cho mô hình hay chưa.

Trả về

list[int]

Một danh sách các số nguyên trong khoảng [0, 1]: 1 cho một token đặc biệt, 0 cho một token chuỗi.

Lấy các id của chuỗi từ một danh sách token chưa được thêm token đặc biệt. Phương thức này được gọi khi thêm token đặc biệt bằng cách sử dụng phương thức prepare_for_model của tokenizer.

create_token_type_ids_from_sequences

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Tham số

  • token_ids_0 (list[int]) — Danh sách các ID.
  • token_ids_1 (list[int], tùy chọn) — Danh sách ID thứ hai tùy chọn cho các cặp chuỗi.

Trả về

list[int]

ID loại token theo mẫu được cấu hình.

Tạo một mask từ hai chuỗi được truyền vào để sử dụng trong một tác vụ phân loại cặp chuỗi.

Phương pháp này xây dựng động các ID loại token dựa trên các thuộc tính cấu hình của tokenizer:

  • token_type_ids_pattern: Mẫu cần sử dụng (“all_zeros” hoặc “bert_style”)
  • token_type_ids_include_special_tokens: Có tính các token đặc biệt trong tính toán độ dài hay không

Ví dụ:

# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

Speech2TextFeatureExtractor

lớp transformers.Speech2TextFeatureExtractor

< >

( feature_size = 80sampling_rate = 16000num_mel_bins = 80padding_value = 0.0dither = 0.0do_ceptral_normalize = Truenormalize_means = Truenormalize_vars = True**kwargs )

Tham số

  • feature_size (int, tùy chọn, mặc định là 80) — Kích thước chiều của các đặc trưng đã trích xuất.
  • sampling_rate (int, tùy chọn, mặc định là 16000) — Tần số lấy mẫu (tính bằng hertz (Hz)) mà các tệp âm thanh cần được số hóa.
  • num_mel_bins (int, tùy chọn, mặc định là 80) — Số lượng bin tần số Mel.
  • padding_value (float, tùy chọn, mặc định là 0.0) — Giá trị được dùng để điền vào các vector đệm.
  • dither (float, tuỳ chọn, mặc định là 0.0) — Thêm nhiễu dithering. Nói cách khác, thêm một lượng nhiễu Gaussian nhỏ vào mỗi khung. Ví dụ, dùng 4.0 để thêm dithering với phân phối chuẩn có tâm tại 0.0 và độ lệch chuẩn 4.0 (giả sử dải [-32k,+32k] của waveform kaldi). Giá trị 0.0 có nghĩa là không dithering. Dithering có tác dụng tương tự như mel_floor. Nó làm giảm các giá trị log_mel_fbank cao cho các tín hiệu có các đoạn hard-zero, khi có VAD cutoff trong tín hiệu.
  • do_ceptral_normalize (bool, tùy chọn, mặc định là True) — Có áp dụng chuẩn hóa trung bình và phương sai cepstral ở cấp độ câu nói cho các đặc trưng đã trích xuất hay không.
  • normalize_means (bool, tùy chọn, mặc định là True) — Có nên chuẩn hóa trung bình bằng không cho các đặc trưng đã trích xuất hay không.
  • normalize_vars (bool, tùy chọn, mặc định là True) — Có nên chuẩn hóa phương sai đơn vị cho các đặc trưng đã trích xuất hay không.

Tạo bộ trích xuất đặc trưng Speech2Text.

Feature extractor này kế thừa từ Speech2TextFeatureExtractor, bao gồm hầu hết các phương thức chính. Người dùng nên tham khảo lớp cha này để biết thêm thông tin về các phương thức đó.

Lớp này trích xuất các đặc trưng mel-filter bank từ giọng nói thô bằng TorchAudio nếu đã được cài đặt, hoặc bằng numpy nếu không, và áp dụng chuẩn hóa trung bình và phương sai cepstral ở cấp độ câu vào các đặc trưng đã trích xuất.

__call__

< >

( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]padding: bool | str | transformers.utils.generic.PaddingStrategy = Falsemax_length: int | None = Nonetruncation: bool = Falsepad_to_multiple_of: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonesampling_rate: int | None = Nonereturn_attention_mask: bool | None = None**kwargs )

Tham số

  • raw_speech (np.ndarray, list[float], list[np.ndarray], list[list[float]]) — Chuỗi hoặc lô các chuỗi cần được đệm. Mỗi chuỗi có thể là một mảng numpy, một danh sách các giá trị float, một danh sách các mảng numpy hoặc một danh sách các danh sách giá trị float. Phải là âm thanh kênh đơn (mono), không phải stereo, tức là một giá trị float duy nhất cho mỗi bước thời gian.
  • padding (bool, str hoặc PaddingStrategy, tùy chọn, mặc định là True) — Chọn một chiến lược để đệm các chuỗi trả về (theo phía đệm và chỉ số đệm của mô hình) trong số các lựa chọn sau:
    • True hoặc 'longest': Lấp đầy đến trình tự dài nhất trong lô (hoặc không lấp đầy nếu chỉ có một trình tự được cung cấp).
    • 'max_length': Đệm (pad) đến độ dài tối đa được chỉ định bằng tham số max_length hoặc đến độ dài đầu vào tối đa mà mô hình chấp nhận được nếu tham số đó không được cung cấp.
    • False hoặc 'do_not_pad' (mặc định): Không đệm (tức là có thể xuất ra một lô với các chuỗi có độ dài khác nhau).
  • max_length (int, tùy chọn) — Độ dài tối đa của danh sách trả về và tùy chọn độ dài padding (xem bên trên).
  • truncation (bool) — Bật tính năng cắt để giảm các chuỗi đầu vào dài hơn max_length xuống còn max_length.
  • pad_to_multiple_of (int, tuỳ chọn) — Nếu được đặt, chuỗi sẽ được đệm (pad) đến bội số của giá trị được cung cấp.

    Điều này đặc biệt hữu ích để cho phép sử dụng Tensor Cores trên phần cứng NVIDIA có khả năng tính toán >= 7.5 (Volta), hoặc trên TPU, nơi mà việc có độ dài chuỗi là bội số của 128 sẽ mang lại lợi ích.

  • return_attention_mask (bool, tuỳ chọn) — Có trả về attention mask hay không. Nếu để mặc định, sẽ trả về attention mask theo mặc định của feature_extractor cụ thể.

    Mặt nạ chú ý là gì?

    Đối với các mô hình Speech2TextTransformer, attention_mask luôn phải được truyền vào khi suy luận theo lô (batched inference) để tránh các lỗi tinh vi.

  • return_tensors (str hoặc TensorType, tùy chọn) — Nếu được đặt, sẽ trả về tensor thay vì danh sách các số nguyên Python. Các giá trị chấp nhận được là:
    • 'pt': Trả về các đối tượng torch.Tensor của PyTorch.
    • 'np': Trả về các đối tượng Numpy np.ndarray.
  • sampling_rate (int, tùy chọn) — Tần số lấy mẫu mà đầu vào raw_speech được lấy mẫu. Rất khuyến nghị truyền sampling_rate trong lời gọi forward để ngăn các lỗi âm thầm.
  • padding_value (float, tùy chọn, mặc định là 0.0) — Giá trị được sử dụng để điền vào các giá trị / vector đệm.

Phương thức chính để tạo đặc trưng và chuẩn bị một hoặc nhiều chuỗi cho mô hình.

Speech2TextProcessor

lớp transformers.Speech2TextProcessor

< >

( feature_extractortokenizer )

Tham số

  • feature_extractor (Speech2TextFeatureExtractor) — Bộ trích xuất đặc trưng là một đầu vào bắt buộc.
  • tokenizer (Speech2TextTokenizer) — Tokenizer là một đầu vào bắt buộc.

Tạo một Speech2TextProcessor đóng gói một bộ trích xuất đặc trưng và một bộ phân từ thành một bộ xử lý duy nhất.

Speech2TextProcessor cung cấp đầy đủ các chức năng của Speech2TextFeatureExtractor và Speech2TextTokenizer. Xem ~Speech2TextFeatureExtractor và ~Speech2TextTokenizer để biết thêm thông tin.

__call__

< >

( *args**kwargs )

Tham số

  • return_tensors (str hoặc TensorType, tùy chọn) — 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ượng torch.Tensor của PyTorch.
    • 'np': Trả về các đối tượng np.ndarray của NumPy.

from_pretrained

< >

( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs )

Tham số

  • pretrained_model_name_or_path (str hoặc os.PathLike) — Đây có thể là:
    • một chuỗi, model id của một feature_extractor đượ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 tệp feature extractor được lưu bằng phương thức save_pretrained(), ví dụ: ./my_model_directory/.
    • đường dẫn đến tệp JSON bộ trích xuất đặc trưng đã lưu tệp, ví dụ: ./my_model_directory/preprocessor_config.json.
  • **kwargs — Các đối số từ khóa bổ sung được truyền đến cả from_pretrained() và ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained.

Tạo một processor liên kết với một model được huấn luyện trước.

Phương thức lớp này đơn giản là gọi phương thức from_pretrained() của bộ trích xuất đặc trưng, ImageProcessingMixin của bộ xử lý ảnh và ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained của bộ phân từ. Vui lòng tham khảo các docstring của các phương thức ở trên để biết thêm thông tin.

save_pretrained

< >

( save_directorypush_to_hub: bool = False**kwargs )

Tham số

  • save_directory (str hoặc os.PathLike) — Thư mục nơi tệp JSON của bộ trích xuất đặc trưng và các tệp tokenizer sẽ được lưu (thư mục sẽ được tạo nếu chưa tồn tại).
  • 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ằng repo_id (mặc định sẽ là tên của save_directory trong namespace của bạn).
  • kwargs (dict[str, Any], tùy chọn) — 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 (bộ trích xuất đặc trưng, bộ phân từ…) vào thư mục được chỉ định để có thể tải lại bằng phương thức from_pretrained().

Phương thức lớp này đơn giản chỉ gọi save_pretrained() và save_pretrained(). Vui lòng tham khảo docstring của các phương thức ở trên để biết thêm thông tin.

batch_decode

< >

( *args**kwargs )

Phương pháp này chuyển tiếp tất cả các đối số của nó đến batch_decode() của PreTrainedTokenizer. Vui lòng tham khảo docstring của phương pháp này để biết thêm thông tin.

decode

< >

( *args**kwargs )

Phương pháp này chuyển tiếp tất cả các đối số của nó đến decode() của PreTrainedTokenizer. Vui lòng tham khảo docstring của phương pháp này để biết thêm thông tin.

Speech2TextModel

lớp transformers.Speech2TextModel

< >

( config: Speech2TextConfig )

Tham số

  • config (Speech2TextConfig) — 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 Speech To Text Text cơ bản, xuất ra các hidden-states thô mà không có bất kỳ head cụ thể nào ở phía 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

< >

( input_features: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.Tensor)

Tham số

  • input_features (torch.LongTensor có shape (batch_size, sequence_length, feature_dim), tùy chọn) — Các tensor tương ứng với các đặc trưng âm thanh đầu vào. Các đặc trưng âm thanh có thể được lấy bằng cách sử dụng Speech2TextFeatureExtractor. Xem Speech2TextFeatureExtractor.call() để biết chi tiết (Speech2TextProcessor sử dụng Speech2TextFeatureExtractor để xử lý âm thanh).
  • attention_mask (torch.Tensor có 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.

    Mặt nạ chú ý là gì?

  • decoder_input_ids (torch.LongTensor có hình dạng (batch_size, target_sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào của decoder trong bảng từ vựng. Có thể lấy chỉ số bằng cách sử dụng SpeechToTextTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết. Decoder input IDs là gì? SpeechToText sử dụng eos_token_id làm token bắt đầu cho việc tạo decoder_input_ids. Nếu sử dụng past_key_values, tùy chọn chỉ cần nhập các decoder_input_ids cuối cùng (xem past_key_values).

    Các chỉ số có thể được lấy bằng cách sử dụng SpeechToTextTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào của bộ giải mã là gì?

    SpeechToText sử dụng eos_token_id làm token khởi đầu cho việc tạo decoder_input_ids. Nếu past_key_values được sử dụng, tùy chọn chỉ cần nhập decoder_input_ids cuối cùng (xem past_key_values).

  • decoder_attention_mask (torch.LongTensor có hình dạng (batch_size, target_sequence_length), tùy chọn) — Hành vi mặc định: tạo một tensor bỏ qua các token pad trong decoder_input_ids. Mặt nạ nhân quả (causal mask) cũng sẽ được sử dụng theo mặc định. Nếu bạn muốn thay đổi hành vi đệm (padding), bạn nên đọc modeling_speech_to_text._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

    Nếu bạn muốn thay đổi hành vi đệm, bạn nên đọc modeling_speech_to_text._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

  • encoder_outputs (tuple[tuple[torch.Tensor]], tùy chọn) — Tuple bao gồm (last_hidden_state, tùy chọn: hidden_states, tùy chọn: attentions) last_hidden_state có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) là một chuỗi các hidden-states tại đầu ra của lớp cuối cùng của encoder. Được sử dụng trong cross-attention của decoder.
  • 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ồm past_key_values được trả về bởi mô hình ở một giai đoạn giải mã trước đó, khi use_cache=True hoặc config.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ập input_ids chư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_ids có hình dạng (batch_size, sequence_length).

  • decoder_inputs_embeds (torch.Tensor có hình dạng (batch_size, target_sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyền decoder_input_ids bạn có thể chọn trực tiếp truyền một biểu diễn nhúng. Nếu past_key_values được sử dụng, tùy chọn chỉ cần decoder_inputs_embeds cuối cùng phải được nhập (xem past_key_values). Đ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 decoder_input_ids chỉ số thà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.

    Nếu cả decoder_input_ids và decoder_inputs_embeds đều không được đặt, decoder_inputs_embeds sẽ nhận giá trị của inputs_embeds.

  • use_cache (bool, tùy chọn) — Nếu đặt thành True, các trạng thái key value của past_key_values sẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xem past_key_values).

Trả về

Seq2SeqLMOutput hoặc tuple(torch.Tensor)

Một Seq2SeqLMOutput 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 (Speech2TextConfig) và đầu vào.

Phương thức forward của Speech2TextModel 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 Module sau đó thay vì gọi hàm này, vì instance Module sẽ đả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.Tensor có shape (1,), tùy chọn, được trả về khi labels được cung cấp) — Loss của language modeling.

  • logits (torch.Tensor có 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 (EncoderDecoderCache, tùy chọn, được trả về khi use_cache=True được truyền vào hoặc khi config.use_cache=True) — Đây là một instance của EncoderDecoderCache. Để 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 và trong các khối cross-attention) có thể được sử dụng (xem đầu vào past_key_values) để tăng tốc độ giải mã tuần tự.

  • decoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Tuple của torch.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 bộ giải mã tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.

  • decoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.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ú ý của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

  • cross_attentions (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Bộ tuple của torch.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ú ý của lớp cross-attention của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý chéo.

  • encoder_last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) — Chuỗi các trạng thái ẩn tại đầu ra của lớp cuối cùng của bộ mã hóa trong mô hình.

  • encoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Bộ tuple của torch.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 bộ mã hóa tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.

  • encoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.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ú ý của bộ mã hóa, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

Ví dụ:

>>> import torch
>>> from transformers import Speech2TextModel, AutoFeatureExtractor
>>> from datasets import load_dataset

>>> model = Speech2TextModel.from_pretrained("facebook/s2t-small-librispeech-asr")
>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/s2t-small-librispeech-asr")
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> inputs = feature_extractor(
...     ds[0]["audio"]["array"], sampling_rate=ds[0]["audio"]["sampling_rate"], return_tensors="pt"
... )
>>> input_features = inputs.input_features
>>> decoder_input_ids = torch.tensor([[1, 1]]) * model.config.decoder_start_token_id
>>> last_hidden_state = model(input_features, decoder_input_ids=decoder_input_ids).last_hidden_state
>>> list(last_hidden_state.shape)
[1, 2, 256]

Speech2TextForConditionalGeneration

lớp transformers.Speech2TextForConditionalGeneration

< >

( config: Speech2TextConfig )

Tham số

  • config (Speech2TextConfig) — 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 Speech2Text có đầu mô hình ngôn ngữ. Có thể được sử dụng cho việc tóm tắt.

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

< >

( input_features: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.Tensor)

Tham số

  • input_features (torch.LongTensor có shape (batch_size, sequence_length, feature_dim), tùy chọn) — Các tensor tương ứng với các đặc trưng âm thanh đầu vào. Các đặc trưng âm thanh có thể được lấy bằng cách sử dụng Speech2TextFeatureExtractor. Xem Speech2TextFeatureExtractor.call() để biết chi tiết (Speech2TextProcessor sử dụng Speech2TextFeatureExtractor để xử lý âm thanh).
  • attention_mask (torch.Tensor có 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.

    Mặt nạ chú ý là gì?

  • decoder_input_ids (torch.LongTensor có hình dạng (batch_size, target_sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào của decoder trong bảng từ vựng. Có thể lấy chỉ số bằng cách sử dụng SpeechToTextTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết. Decoder input IDs là gì? SpeechToText sử dụng eos_token_id làm token bắt đầu cho việc tạo decoder_input_ids. Nếu sử dụng past_key_values, tùy chọn chỉ cần nhập các decoder_input_ids cuối cùng (xem past_key_values).

    Các chỉ số có thể được lấy bằng cách sử dụng SpeechToTextTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào của bộ giải mã là gì?

    SpeechToText sử dụng eos_token_id làm token khởi đầu cho việc tạo decoder_input_ids. Nếu past_key_values được sử dụng, tùy chọn chỉ cần nhập decoder_input_ids cuối cùng (xem past_key_values).

  • decoder_attention_mask (torch.LongTensor có hình dạng (batch_size, target_sequence_length), tùy chọn) — Hành vi mặc định: tạo một tensor bỏ qua các token pad trong decoder_input_ids. Mặt nạ nhân quả (causal mask) cũng sẽ được sử dụng theo mặc định. Nếu bạn muốn thay đổi hành vi đệm (padding), bạn nên đọc modeling_speech_to_text._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

    Nếu bạn muốn thay đổi hành vi đệm, bạn nên đọc modeling_speech_to_text._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

  • encoder_outputs (tuple[tuple[torch.Tensor]], tùy chọn) — Tuple bao gồm (last_hidden_state, tùy chọn: hidden_states, tùy chọn: attentions) last_hidden_state có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) là một chuỗi các hidden-states tại đầu ra của lớp cuối cùng của encoder. Được sử dụng trong cross-attention của decoder.
  • 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ồm past_key_values được trả về bởi mô hình ở một giai đoạn giải mã trước đó, khi use_cache=True hoặc config.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ập input_ids chư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_ids có hình dạng (batch_size, sequence_length).

  • decoder_inputs_embeds (torch.Tensor có hình dạng (batch_size, target_sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyền decoder_input_ids bạn có thể chọn trực tiếp truyền một biểu diễn nhúng. Nếu past_key_values được sử dụng, tùy chọn chỉ cần decoder_inputs_embeds cuối cùng phải được nhập (xem past_key_values). Đ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 decoder_input_ids chỉ số thà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.

    Nếu cả decoder_input_ids và decoder_inputs_embeds đều không được đặt, decoder_inputs_embeds sẽ nhận giá trị của inputs_embeds.

  • labels (torch.LongTensor có 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ữ. Chỉ số phải nằm trong [0, ..., config.vocab_size] hoặc -100 (xem docstring của input_ids). Các token có chỉ số được đặt thành -100 sẽ bị bỏ qua (bị mask), tổn thất chỉ được tính cho các token có nhãn nằm trong [0, ..., config.vocab_size].
  • use_cache (bool, tùy chọn) — Nếu đặt thành True, các trạng thái key value của past_key_values sẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xem past_key_values).

Trả về

Seq2SeqLMOutput hoặc tuple(torch.Tensor)

Một Seq2SeqLMOutput 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 (Speech2TextConfig) và đầu vào.

Phương thức forward của Speech2TextForConditionalGeneration 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 Module sau đó thay vì gọi hàm này, vì instance Module sẽ đả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.Tensor có shape (1,), tùy chọn, được trả về khi labels được cung cấp) — Loss của language modeling.

  • logits (torch.Tensor có 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 (EncoderDecoderCache, tùy chọn, được trả về khi use_cache=True được truyền vào hoặc khi config.use_cache=True) — Đây là một instance của EncoderDecoderCache. Để 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 và trong các khối cross-attention) có thể được sử dụng (xem đầu vào past_key_values) để tăng tốc độ giải mã tuần tự.

  • decoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Tuple của torch.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 bộ giải mã tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.

  • decoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.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ú ý của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

  • cross_attentions (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Bộ tuple của torch.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ú ý của lớp cross-attention của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý chéo.

  • encoder_last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) — Chuỗi các trạng thái ẩn tại đầu ra của lớp cuối cùng của bộ mã hóa trong mô hình.

  • encoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Bộ tuple của torch.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 bộ mã hóa tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.

  • encoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.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ú ý của bộ mã hóa, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

Ví dụ:

>>> import torch
>>> from transformers import Speech2TextProcessor, Speech2TextForConditionalGeneration
>>> from datasets import load_dataset

>>> model = Speech2TextForConditionalGeneration.from_pretrained("facebook/s2t-small-librispeech-asr")
>>> processor = Speech2TextProcessor.from_pretrained("facebook/s2t-small-librispeech-asr")


>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")

>>> inputs = processor(
...     ds[0]["audio"]["array"], sampling_rate=ds[0]["audio"]["sampling_rate"], return_tensors="pt"
... )
>>> input_features = inputs.input_features

>>> generated_ids = model.generate(inputs=input_features)

>>> transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
>>> transcription
'mister quilter is the apostle of the middle classes and we are glad to welcome his gospel'
Update on GitHub