Transformers documentation
PE Audio
Mô hình này được công bố trên HF papers vào ngày 2025-04-17 và được đóng góp cho Hugging Face Transformers vào ngày 2025-12-16. Mô hình này được phát hành vào ngày 2025-04-17 và được thêm vào Hugging Face Transformers vào ngày 2025-12-16.
PE Audio
PE Audio là nhánh âm thanh của họ Perception Encoder của Meta. Nó căn chỉnh đối lập các dạng sóng thô với văn bản trong một không gian nhúng chung, được huấn luyện trên dữ liệu cặp âm thanh–mô tả để phục vụ truy xuất đa phương thức và phân loại âm thanh zero-shot.
Hai đầu (heads) được phơi bày trên cùng một encoder. PeAudioModel trả về một embedding đã pooled cho mỗi clip để phục vụ truy xuất ở cấp độ clip, trong khi PeAudioFrameLevelModel trả về một embedding mỗi 40 ms để định vị sự kiện và phân tích thời gian chi tiết.
Bạn có thể tìm thấy tất cả các checkpoint PE Audio chính thức trong bộ sưu tập perception-encoder-audio-visual.
Bắt đầu nhanh
import torch
from datasets import load_dataset
from transformers import AutoProcessor, PeAudioModel
processor = AutoProcessor.from_pretrained("facebook/pe-av-large")
model = PeAudioModel.from_pretrained(
"facebook/pe-av-large",
device_map="auto",
)
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
audio = ds[0]["audio"]["array"]
labels = ["a dog barking", "a person speaking", "music playing"]
audio_inputs = processor.feature_extractor(audio, sampling_rate=48_000, return_tensors="pt").to(model.device)
text_inputs = processor.tokenizer(labels, padding=True, return_tensors="pt").to(model.device)
inputs = {**audio_inputs, **text_inputs}
with torch.no_grad():
outputs = model(**inputs)
probs = outputs.logits_audio_text.sigmoid()
print({label: p.item() for label, p in zip(labels, probs[0])})Mẹo và ghi chú về cách sử dụng
- Audio phải là mono (
feature_size=1) và được resample về 48 kHz — feature extractor sẽ cảnh báo nhưng không tự động resample thay bạn. Đầu vào stereo không được hỗ trợ. - Âm thanh có độ dài biến đổi được xử lý bằng
padding_mask(thay vìattention_maskthông thường). Mặt nạ này được hạ mẫu bên trong theodac_config.hop_lengthtrước khi đến bộ mã hóa, vì vậy hãy truyền mặt nạ ở độ phân giải dạng sóng thô do bộ trích xuất đặc trưng trả về. - PeAudioModel trả về logits có shape
(n_audio, n_text). PeAudioFrameLevelModel trả về(n_audio, n_text, n_frames)với một frame mỗi 40 ms. Hãy chọn class phù hợp với tác vụ — chúng chia sẻ weights nên việc thay thế là rất nhẹ. - Tháp văn bản là một bộ mã hóa dùng chung được nạp thông qua
AutoModeltừconfig.text_config. Bộ phân từ được gắn vào bộ xử lý thông quaAutoTokenizer, không phải một lớp riêng biệt.
PeAudioConfig
lớp transformers.PeAudioConfig
< 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 = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None )
Đây là lớp cấu hình để lưu trữ cấu hình của một PeAudioModel. Nó được sử dụng để khởi tạo một mô hình Pe Audio 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 facebook/pe-av-large
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 PeAudioModel, PeAudioConfig
>>> # Initializing a PeAudioModel style configuration
>>> configuration = PeAudioConfig()
>>> # Initializing a model from the pe-av-large style configuration
>>> model = PeAudioModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configPeAudioEncoderConfig
lớp transformers.PeAudioEncoderConfig
< 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 = Nonedac_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonehidden_size: int = 1792intermediate_size: int = 4800num_hidden_layers: int = 6num_attention_heads: int = 14num_key_value_heads: int | None = Nonehead_dim: int = 128hidden_act: str = 'silu'max_position_embeddings: int = 10000initializer_range: float = 0.02rms_norm_eps: float = 1e-05rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falseattention_dropout: float | int = 0.0 )
Tham số
- dac_config (
Union[PreTrainedConfig, dict], tùy chọn) — Cấu hình cho bộ mã hóa âm thanh DAC được sử dụng để mã hóa hóa các đầu vào âm thanh thô. Nếu một từ điển được truyền vào, nó sẽ được dùng để khởi tạo một DacConfig với các siêu tham số DAC mặc định. - hidden_size (
int, tùy chọn, mặc định là1792) — Kích thước của các biểu diễn ẩn. - intermediate_size (
int, tùy chọn, mặc định là4800) — Kích thước của các biểu diễn MLP. - num_hidden_layers (
int, tùy chọn, mặc định là6) — Số lượng lớp ẩn trong bộ giải mã Transformer. - num_attention_heads (
int, tùy chọn, mặc định là14) — Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ giải mã Transformer. - num_key_value_heads (
int, tùy chọn) — Đây là số lượng key_value heads cần được sử dụng để triển khai Grouped Query Attention. Nếunum_key_value_heads=num_attention_heads, mô hình sẽ sử dụng Multi Head Attention (MHA), nếunum_key_value_heads=1mô hình sẽ sử dụng Multi Query Attention (MQA), ngược lại sẽ sử dụng GQA. Khi chuyển đổi checkpoint multi-head sang checkpoint GQA, mỗi nhóm key và value head nên được xây dựng bằng cách meanpooling tất cả các head gốc trong nhóm đó. Để biết thêm chi tiết, hãy xem bài báo này. Nếu không được chỉ định, giá trị mặc định sẽ lànum_attention_heads. - head_dim (
int, tùy chọn, mặc định là128) — Kích thước chiều của đầu chú ý. Nếu là None, giá trị mặc định sẽ là hidden_size // num_attention_heads - hidden_act (
str, tùy chọn, mặc định làsilu) — 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. - max_position_embeddings (
int, tùy chọn, mặc định là10000) — Chiều dài chuỗi tối đa mà mô hình này có thể được sử dụ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ố. - rms_norm_eps (
float, tùy chọn, mặc định là1e-05) — Giá trị epsilon được sử dụng bởi các lớp chuẩn hóa rms. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], tùy chọn) — Từ điển chứa các tham số cấu hình cho các embedding RoPE. Từ điển phải chứa một giá trị chorope_thetavà tùy chọn các tham số được sử dụng để mở rộng trong trường hợp bạn muốn sử dụng RoPE vớimax_position_embeddingsdài hơn. - attention_bias (
bool, tùy chọn, mặc định làFalse) — Có sử dụng bias trong các lớp chiếu query, key, value và output trong quá trình tự chú ý hay không. - 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ú ý.
Đây là lớp cấu hình để lưu trữ cấu hình của một PeAudioModel. Nó được sử dụng để khởi tạo một mô hình Pe Audio 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 facebook/pe-av-large
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.
>>> from transformers import PeAudioEncoder, PeAudioEncoderConfig
>>> # Initializing a PeAudioEncoder style configuration
>>> configuration = PeAudioEncoderConfig()
>>> # Initializing a model from the pe-av-large style configuration
>>> model = PeAudioEncoder(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configPeAudioFeatureExtractor
lớp transformers.PeAudioFeatureExtractor
< source >( feature_size: int = 1sampling_rate: int = 48000padding_value: float = 0.0hop_length: int = 1920**kwargs )
Tham số
- feature_size (
int, tuỳ chọn, mặc định là 1) — Kích thước chiều của các đặc trưng đã trích xuất. Dùng 1 cho âm đơn, 2 cho âm stereo. - sampling_rate (
int, tùy chọn, mặc định là 48000) — Tần số lấy mẫu mà theo đó dạng sóng âm thanh cần được số hóa, được biểu diễn bằng hertz (Hz). - padding_value (
float, tùy chọn, mặc định là 0.0) — Giá trị được sử dụng để đệm. - hop_length (
int, tùy chọn, mặc định là 1920) — Chiều dài chồng lấp giữa các cửa sổ liên tiếp.
Tạo bộ trích xuất đặc trưng PeAudioFeatureExtractor.
Feature extractor này kế thừa từ SequenceFeatureExtractor, 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 đó.
__call__
< source >( raw_audio: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]] | str | list[str]padding: bool | str | transformers.utils.generic.PaddingStrategy | None = Nonetruncation: bool | None = Falsemax_length: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonesampling_rate: int | None = None )
PeAudioProcessor
PeAudioEncoder
lớp transformers.PeAudioEncoder
< source >( config: PeAudioEncoderConfig )
Tham số
- config (PeAudioEncoderConfig) — 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ố mô hình.
Mô hình PeAudio Encoder.
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_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = None**kwargs ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
Tham số
- input_values (
torch.Tensorcó shape(batch_size, sequence_length)) — Các giá trị float của dạng sóng âm thanh thô đầu vào. Các giá trị này có thể được lấy bằng cách nạp tệp âm thanh.flachoặc.wavvào một mảng có kiểulist[float], mộtnumpy.ndarrayhoặc mộttorch.Tensor, chẳng hạn thông qua thư viện torchcodec (pip install torchcodec) hoặc thư viện soundfile (pip install soundfile). Để chuẩn bị mảng thànhinput_values, cần sử dụng AutoProcessor để đệm (padding) và chuyển đổi thành tensor có kiểutorch.Tensor. Xem PeAudioProcessor.call() để biết thêm chi tiết. - padding_mask (
torch.Tensorcó shape(batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện attention trên các mẫu padding củainput_values. Giá trị mặt nạ được chọn trong[0, 1]:- 1 cho các mẫu không bị che,
- 0 cho các mẫu bị che.
Trả về
BaseModelOutputWithPooling hoặc tuple(torch.Tensor)
Một BaseModelOutputWithPooling 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 (PeAudioConfig) và đầu vào.
Phương thức forward của PeAudioEncoder 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.
last_hidden_state (
torch.Tensorcó hình dạng(batch_size, sequence_length, hidden_size)) — Chuỗi các hidden-state tại đầu ra của lớp cuối cùng của mô hình.pooler_output (
torch.Tensorcó hình dạng(batch_size, hidden_size)) — Trạng thái ẩn của lớp cuối cùng của token đầu tiên trong chuỗi (token phân loại) sau khi được xử lý thêm qua các lớp được sử dụng cho tác vụ tiền huấn luyện bổ trợ. Ví dụ, đối với các mô hình thuộc họ BERT, giá trị này trả về token phân loại sau khi được xử lý qua một lớp tuyến tính và một hàm kích hoạt tanh. Trọng số của lớp tuyến tính được huấn luyện từ mục tiêu dự đoán câu tiếp theo (phân loại) trong quá trình tiền huấn luyện.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.
PeAudioModel
forward
< source >( input_ids: Tensorinput_values: Tensorattention_mask: typing.Optional[torch.Tensor] = Nonepadding_mask: typing.Optional[torch.Tensor] = Nonereturn_loss: bool | None = None**kwargs ) → PeAudioOutput or tuple(torch.Tensor)
Tham số
- input_ids (
torch.Tensorcó dạng(batch_size, sequence_length)) — Chỉ số của các token trong chuỗi đầu vào theo từ điển. Token padding sẽ bị bỏ qua theo mặc định.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.
- input_values (
torch.Tensorcó shape(batch_size, sequence_length)) — Các giá trị float của dạng sóng âm thanh thô đầu vào. Các giá trị này có thể được lấy bằng cách nạp tệp âm thanh.flachoặc.wavvào một mảng có kiểulist[float], mộtnumpy.ndarrayhoặc mộttorch.Tensor, chẳng hạn thông qua thư viện torchcodec (pip install torchcodec) hoặc thư viện soundfile (pip install soundfile). Để chuẩn bị mảng thànhinput_values, cần sử dụng AutoProcessor để đệm (padding) và chuyển đổi thành tensor có kiểutorch.Tensor. Xem PeAudioProcessor.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.
- padding_mask (
torch.Tensorcó shape(batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện attention trên các mẫu padding củainput_values. Giá trị mặt nạ được chọn trong[0, 1]:- 1 cho các mẫu không bị che,
- 0 cho các mẫu bị che.
- return_loss (
bool, tùy chọn) — Có trả về loss hay không.
Trả về
PeAudioOutput hoặc tuple(torch.Tensor)
Một PeAudioOutput 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 (PeAudioConfig) và đầu vào.
Phương thức forward của PeAudioModel 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) — Mất tương phản được tính toán giữa các biểu diễn âm thanh và văn bản. - logits_audio_text (
torch.Tensorcó shape(batch_size, batch_size), optional) — Logits tương tự giữa các embedding audio và text. PeAudioFrameLevelModel trả về logits theo từng frame có shape(batch_size, batch_size, sequence_length)thay thế. - text_audio_embeds (
torch.Tensorcó hình dạng(batch_size, hidden_size), tùy chọn) — Các vector nhúng văn bản được chiếu vào không gian âm thanh-văn bản. - audio_embeds (
torch.Tensorcó shape(batch_size, hidden_size), tùy chọn) — Các embedding âm thanh được chiếu vào không gian âm thanh-văn bản. PeAudioFrameLevelModel trả về các embedding theo từng khung hình có shape(batch_size, sequence_length, hidden_size)thay thế. - text_outputs (
BaseModelOutputWithPooling, tùy chọn) — Đầu ra của mô hình cho bộ mã hóa văn bản, bao gồm trạng thái ẩn cuối cùng và đầu ra đã gom. - audio_outputs (
BaseModelOutputWithPooling, tùy chọn) — Đầu ra của mô hình cho bộ mã hóa âm thanh, bao gồm trạng thái ẩn cuối cùng và đầu ra đã gom.
PeAudioFrameLevelModel
forward
< source >( input_ids: Tensorinput_values: Tensorattention_mask: typing.Optional[torch.Tensor] = Nonepadding_mask: typing.Optional[torch.Tensor] = Nonereturn_loss: bool | None = None**kwargs ) → PeAudioOutput or tuple(torch.Tensor)
Tham số
- input_ids (
torch.Tensorcó dạng(batch_size, sequence_length)) — Chỉ số của các token trong chuỗi đầu vào theo từ điển. Token padding sẽ bị bỏ qua theo mặc định.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.
- input_values (
torch.Tensorcó shape(batch_size, sequence_length)) — Các giá trị float của dạng sóng âm thanh thô đầu vào. Các giá trị này có thể được lấy bằng cách nạp tệp âm thanh.flachoặc.wavvào một mảng có kiểulist[float], mộtnumpy.ndarrayhoặc mộttorch.Tensor, chẳng hạn thông qua thư viện torchcodec (pip install torchcodec) hoặc thư viện soundfile (pip install soundfile). Để chuẩn bị mảng thànhinput_values, cần sử dụng AutoProcessor để đệm (padding) và chuyển đổi thành tensor có kiểutorch.Tensor. Xem PeAudioProcessor.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.
- padding_mask (
torch.Tensorcó shape(batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện attention trên các mẫu padding củainput_values. Giá trị mặt nạ được chọn trong[0, 1]:- 1 cho các mẫu không bị che,
- 0 cho các mẫu bị che.
- return_loss (
bool, tùy chọn) — Có trả về loss hay không.
Trả về
PeAudioOutput hoặc tuple(torch.Tensor)
Một PeAudioOutput 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 (PeAudioConfig) và đầu vào.
Phương thức forward của PeAudioFrameLevelModel 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) — Mất tương phản được tính toán giữa các biểu diễn âm thanh và văn bản. - logits_audio_text (
torch.Tensorcó shape(batch_size, batch_size), optional) — Logits tương tự giữa các embedding audio và text. PeAudioFrameLevelModel trả về logits theo từng frame có shape(batch_size, batch_size, sequence_length)thay thế. - text_audio_embeds (
torch.Tensorcó hình dạng(batch_size, hidden_size), tùy chọn) — Các vector nhúng văn bản được chiếu vào không gian âm thanh-văn bản. - audio_embeds (
torch.Tensorcó shape(batch_size, hidden_size), tùy chọn) — Các embedding âm thanh được chiếu vào không gian âm thanh-văn bản. PeAudioFrameLevelModel trả về các embedding theo từng khung hình có shape(batch_size, sequence_length, hidden_size)thay thế. - text_outputs (
BaseModelOutputWithPooling, tùy chọn) — Đầu ra của mô hình cho bộ mã hóa văn bản, bao gồm trạng thái ẩn cuối cùng và đầu ra đã gom. - audio_outputs (
BaseModelOutputWithPooling, tùy chọn) — Đầu ra của mô hình cho bộ mã hóa âm thanh, bao gồm trạng thái ẩn cuối cùng và đầu ra đã gom.