facebook / pe-av-large

huggingface.co
Total runs: 29.3K
24-hour runs: 0
7-day runs: -4.7K
30-day runs: -14.4K
Model's Last Updated: 1月 29 2026

Introduction of pe-av-large

Model Details of pe-av-large

Perception Encoder Audio-Visual (PE-AV)

PE-AV is a state-of-the-art multimodal model that embeds audio, video, audio-video, and text into a joint embedding space. The model enables powerful cross-modal retrieval and understanding across audio, video, and text modalities.

Model Description

PE-AV is trained using contrastive learning to align audio, video, and text representations in a shared embedding space. The model can encode:

  • Audio only : Extract audio embeddings from audio waveforms
  • Video only : Extract visual embeddings from video frames
  • Audio-Video : Extract joint audio-visual embeddings
  • Text : Extract text embeddings optimized for different modality pairs
Model Variants

We release 6 model checkpoints with varying sizes and capabilities:

Model Avg Retrieval Video Frames used
pe-av-small-16-frame 45.2 16 frames
pe-av-base-16-frame 47.0 16 frames
pe-av-large-16-frame 48.2 16 frames
pe-av-small 48.1 all frames
pe-av-base 50.2 all frames
pe-av-large 51.6 all frames

The -16-frame variants sample exactly 16 frames (evenly spaced apart) from each video, while the base variants support variable-length videos.

Quick Start

The model is available in both transformers as well as perception_models libraries

perception_models Usage
import torch
from core.audio_visual_encoder import PEAudioVisual, PEAudioVisualTransform

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

# Load model and transform
model = PEAudioVisual.from_config("pe-av-large", pretrained=True).to(device)
transform = PEAudioVisualTransform.from_config("pe-av-large")

video_files = ["video1.mp4", "video2.mp4"]
descriptions = ["description1", "description2"]
audio_files = ["audio1.wav", "audio2.wav"]

# Process inputs and get embeddings
inputs = transform(videos=video_files, text=descriptions, audio=audio_files).to(device)

with torch.inference_mode(), torch.autocast(device.type, dtype=torch.bfloat16):
    outputs = model(**inputs)

# Access different embeddings
audio_embeds = outputs.audio_embeds  # Audio-only embeddings
visual_embeds = outputs.visual_embeds  # Video-only embeddings
audio_visual_embeds = outputs.audio_visual_embeds  # Joint audio-visual embeddings
audio_text_embeds = outputs.audio_text_embeds  # Text embeddings aligned to audio
visual_text_embeds = outputs.visual_text_embeds  # Text embeddings aligned to video
audio_visual_text_embeds = outputs.audio_visual_text_embeds  # Text embeddings aligned to audio-visual
audio_plus_text_embeds = outputs.audio_plus_text_embeds  # Joint audio and text embedding
visual_plus_text_embeds = outputs.visual_plus_text_embeds  # Joint video and text embedding

# Compute the dot product to get their similarities
audio_visual_similarity = audio_embeds @ visual_embeds.T
# When computing similarity against text embeddings, use the
# appropriate text embedding based on the other modality
audio_text_similarity = audio_embeds @ audio_text_embeds.T
video_text_similarity = visual_embeds @ visual_text_embeds.T

Note that you can omit any of the modalities, and use the same forward method. The corresponding embeddings in output will be None . For example:

inputs = transform(videos=video_files, text=descriptions).to(device)

with torch.inference_mode(), torch.autocast(device.type, dtype=torch.bfloat16):
    outputs = model(**inputs)

audio_embeds = outputs.audio_embeds  # None
visual_embeds = outputs.visual_embeds  # available
audio_visual_embeds = outputs.audio_visual_embeds # None
audio_visual_text_embeds = outputs.audio_visual_text_embeds # None
audio_text_embeds = outputs.audio_text_embeds  # None
visual_text_embeds = outputs.visual_text_embeds  # available
audio_plus_text_embeds = outputs.audio_plus_text_embeds  # None
visual_plus_text_embeds = outputs.visual_plus_text_embeds  # Available

We also provide methods for directly encoding an individual modality:

def encode_video_text(self, input_ids, attention_mask=None)
def encode_audio_text(self, input_ids, attention_mask=None)
def encode_audio_video_text(self, input_ids, attention_mask=None)
def encode_audio(self, input_values, padding_mask=None, input_features=None)
def encode_video(self, pixel_values_videos, padding_mask_videos=None, pe_features=None)
def encode_audio_video(
    self,
    input_values,
    pixel_values_videos,
    padding_mask=None,
    padding_mask_videos=None,
    pe_features=None,  # optionally re-use pre-computed PE features
    input_features=None,  # Optionally re-use pre-computed audio codec features
)
def encode_audio_plus_text(
    self,
    input_ids,
    input_values,
    attention_mask=None,
    padding_mask=None,
    input_features=None  # Optionally re-use pre-computed audio codec features
)
def encode_video_plus_text(
    self,
    input_ids,
    pixel_values_videos,
    attention_mask=None,
    padding_mask_videos=None,
    pe_features=None,  # optionally re-use pre-computed PE features
)
transformers Usage
from transformers import PeAudioVideoModel, PeAudioVideoProcessor
import torch

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = PeAudioVideoModel.from_pretrained("facebook/pe-av-large")
processor = PeAudioVideoProcessor.from_pretrained("facebook/pe-av-large")

model = model.to(device)

video_files = ["video1.mp4", "video2.mp4"]
descriptions = ["description1", "description2"]
audio_files = ["audio1.wav", "audio2.wav"]

# Process inputs and get embeddings
inputs = processor(
    videos=video_files, text=descriptions, audio=audio_files, return_tensors="pt", padding=True
)

with torch.inference_mode(), torch.autocast(device.type, dtype=torch.bfloat16):
    outputs = model(**inputs.to(device), return_loss=True)

audio_embeds = outputs.audio_embeds  # Audio-only embeddings
video_embeds = outputs.video_embeds  # Video-only embeddings
audio_video_embeds = outputs.audio_video_embeds  # Joint audio-video embeddings
text_audio_video_embeds = outputs.audio_video_text_embeds  # Text embeddings aligned to audio-video
text_audio_embeds = outputs.text_audio_embeds  # Text embeddings aligned to audio
text_video_embeds = outputs.text_video_embeds  # Text embeddings aligned to video
audio_plus_text_embeds = outputs.audio_plus_text_embeds  # Joint audio and text embedding
video_plus_text_embeds = outputs.video_plus_text_embeds  # Joint video and text embedding

# For classification, you can use the logits_* fields of the output
audio_text_preds = outputs.logits_audio_text.sigmoid()

# The overall loss is also available in the output (requires passing return_loss=True)
loss = outputs.loss

We also provide methods for directly encoding an individual modality:

def get_text_audio_embeds(self, input_ids, attention_mask=None)

def get_text_video_embeds(self, input_ids, attention_mask=None)

def get_text_audio_video_embeds(self, input_ids, attention_mask=None)

def get_audio_embeds(self, input_values, padding_mask=None)

def get_video_embeds(self, pixel_values_videos, padding_mask_videos=None)

def get_audio_video_embeds(
    self,
    input_values: torch.Tensor,
    pixel_values_videos: torch.Tensor,
    padding_mask: Optional[torch.Tensor] = None,
    padding_mask_videos: Optional[torch.Tensor] = None,
    return_audio_embeds: bool = False,
    return_video_embeds: bool = False,
)

def get_audio_plus_text_embeds(
    self,
    input_ids: torch.Tensor,
    input_values: torch.Tensor,
    attention_mask: Optional[torch.Tensor] = None,
    padding_mask: Optional[torch.Tensor] = None,
)

def get_video_plus_text_embeds(
    self,
    input_ids: torch.Tensor,
    pixel_values_videos: torch.Tensor,
    attention_mask: Optional[torch.Tensor] = None,
    padding_mask_videos: Optional[torch.Tensor] = None,
)
Citation
@article{pe-av2025,
  title={PEAV: An Audiovisual Perception Encoder via Large-Scale Multimodal Correspondence Learning},
  author={Apoorv Vyas, Heng-Jui Chang, Cheng-Fu Yang, Po-Yao Huang, Luya Gao, Julius Richter, Sanyuan Chen, Matt Le, Piotr Dollár, Christoph Feichtenhofer, Ann Lee, Wei-Ning Hsu},
  url={arxiv link coming soon}
  year={2025}
}
License

This model is released under the Apache 2.0 license.

Runs of facebook pe-av-large on huggingface.co

29.3K
Total runs
0
24-hour runs
-1.0K
3-day runs
-4.7K
7-day runs
-14.4K
30-day runs

More Information About pe-av-large huggingface.co Model

More pe-av-large license Visit here:

https://choosealicense.com/licenses/apache-2.0

pe-av-large huggingface.co

pe-av-large huggingface.co is an AI model on huggingface.co that provides pe-av-large's model effect (), which can be used instantly with this facebook pe-av-large model. huggingface.co supports a free trial of the pe-av-large model, and also provides paid use of the pe-av-large. Support call pe-av-large model through api, including Node.js, Python, http.

pe-av-large huggingface.co Url

https://huggingface.co/facebook/pe-av-large

facebook pe-av-large online free

pe-av-large huggingface.co is an online trial and call api platform, which integrates pe-av-large's modeling effects, including api services, and provides a free online trial of pe-av-large, you can try pe-av-large online for free by clicking the link below.

facebook pe-av-large online free url in huggingface.co:

https://huggingface.co/facebook/pe-av-large

pe-av-large install

pe-av-large is an open source model from GitHub that offers a free installation service, and any user can find pe-av-large on GitHub to install. At the same time, huggingface.co provides the effect of pe-av-large install, users can directly use pe-av-large installed effect in huggingface.co for debugging and trial. It also supports api for free installation.

pe-av-large install url in huggingface.co:

https://huggingface.co/facebook/pe-av-large

Url of pe-av-large

pe-av-large huggingface.co Url

Provider of pe-av-large huggingface.co

facebook
ORGANIZATIONS

Other API from facebook

huggingface.co

Total runs: 8.3M
Run Growth: 162.7K
Growth Rate: 1.96%
Updated:1月 20 2022
huggingface.co

Total runs: 4.5M
Run Growth: -2.3M
Growth Rate: -50.61%
Updated:9月 15 2023
huggingface.co

Total runs: 3.3M
Run Growth: 399.4K
Growth Rate: 12.17%
Updated:1月 17 2024
huggingface.co

Total runs: 2.6M
Run Growth: -279.3K
Growth Rate: -10.75%
Updated:9月 06 2023
huggingface.co

Total runs: 1.9M
Run Growth: -272.7K
Growth Rate: -14.35%
Updated:11月 21 2025
huggingface.co

Total runs: 1.2M
Run Growth: -440.1K
Growth Rate: -35.84%
Updated:1月 25 2024
huggingface.co

Total runs: 1.2M
Run Growth: -535.7K
Growth Rate: -45.47%
Updated:3月 23 2023
huggingface.co

Total runs: 727.2K
Run Growth: -283.8K
Growth Rate: -39.02%
Updated:9月 06 2023
huggingface.co

Total runs: 523.5K
Run Growth: 48.0K
Growth Rate: 9.16%
Updated:3月 17 2025
huggingface.co

Total runs: 517.1K
Run Growth: 38.4K
Growth Rate: 7.43%
Updated:5月 22 2023
huggingface.co

Total runs: 448.7K
Run Growth: 205.1K
Growth Rate: 45.70%
Updated:1月 12 2024
huggingface.co

Total runs: 355.2K
Run Growth: 124.9K
Growth Rate: 35.16%
Updated:6月 13 2023
huggingface.co

Total runs: 330.2K
Run Growth: 11.3K
Growth Rate: 3.43%
Updated:1月 12 2024
huggingface.co

Total runs: 281.1K
Run Growth: -154.4K
Growth Rate: -54.94%
Updated:2月 29 2024
huggingface.co

Total runs: 277.6K
Run Growth: -26.9K
Growth Rate: -9.71%
Updated:6月 15 2023
huggingface.co

Total runs: 218.4K
Run Growth: -49.8K
Growth Rate: -22.82%
Updated:11月 17 2022
huggingface.co

Total runs: 202.3K
Run Growth: -88.5K
Growth Rate: -43.73%
Updated:9月 06 2023
huggingface.co

Total runs: 180.9K
Run Growth: 129.0K
Growth Rate: 71.31%
Updated:3月 28 2026
huggingface.co

Total runs: 179.9K
Run Growth: 36.3K
Growth Rate: 20.18%
Updated:9月 15 2023
huggingface.co

Total runs: 158.6K
Run Growth: 101.2K
Growth Rate: 63.81%
Updated:12月 09 2025
huggingface.co

Total runs: 148.6K
Run Growth: 54.0K
Growth Rate: 36.32%
Updated:11月 16 2023
huggingface.co

Total runs: 139.9K
Run Growth: 27.3K
Growth Rate: 19.49%
Updated:6月 03 2022
huggingface.co

Total runs: 102.9K
Run Growth: 1.2K
Growth Rate: 1.16%
Updated:5月 22 2023
huggingface.co

Total runs: 77.2K
Run Growth: -6.5K
Growth Rate: -8.38%
Updated:9月 15 2023
huggingface.co

Total runs: 63.3K
Run Growth: 41.2K
Growth Rate: 65.04%
Updated:1月 25 2023
huggingface.co

Total runs: 50.8K
Run Growth: 30.8K
Growth Rate: 60.84%
Updated:10月 16 2024
huggingface.co

Total runs: 46.1K
Run Growth: 15.2K
Growth Rate: 32.89%
Updated:6月 13 2023
huggingface.co

Total runs: 41.9K
Run Growth: -69.8K
Growth Rate: -166.34%
Updated:9月 06 2023
huggingface.co

Total runs: 40.7K
Run Growth: 24.0K
Growth Rate: 59.03%
Updated:6月 13 2023
huggingface.co

Total runs: 37.3K
Run Growth: -5.4K
Growth Rate: -14.26%
Updated:1月 21 2026
huggingface.co

Total runs: 36.5K
Run Growth: 13.2K
Growth Rate: 36.12%
Updated:3月 27 2026