Skip to content

[MOEB] model: add ViCLIP video-language model (L-14, B-16)#5013

Open
Rakshitha-Ireddi wants to merge 4 commits into
embeddings-benchmark:mainfrom
Rakshitha-Ireddi:moeb/viclip-model
Open

[MOEB] model: add ViCLIP video-language model (L-14, B-16)#5013
Rakshitha-Ireddi wants to merge 4 commits into
embeddings-benchmark:mainfrom
Rakshitha-Ireddi:moeb/viclip-model

Conversation

@Rakshitha-Ireddi

Copy link
Copy Markdown
Contributor

Adds ViCLIP video-language embedding model to MTEB, as part of the MOEB initiative (#4842).
Closes #5012.

Models added

Model Params Embed dim License
OpenGVLab/ViCLIP-L-14-hf 427M 768 CC-BY-NC-SA-4.0
OpenGVLab/ViCLIP-B-16-hf 150M 512 CC-BY-NC-SA-4.0

About ViCLIP

ViCLIP is a video-text contrastive model introduced in the InternVid paper (ICLR 2024, arXiv:2307.06942). It extends CLIP's ViT backbone with spatiotemporal attention to
encode video clips (8 frames at 224×224) and aligns them with text via contrastive learning on InternVid-10M-FLT (10M video-text pairs).

Tasks covered: T2VRetrieval, V2TRetrieval — directly applicable to MOEB tasks including MSR-VTT, MSVD, VALOR-32K, VSC2022, and ActivityNet.

Implementation notes

ViCLIP uses a non-standard API (custom BPE tokenizer via model.tokenizer, get_vid_features() / get_text_features()) so a custom ViCLIPWrapper was implemented following the xclip_models.py pattern.
Requires trust_remote_code=True.

Checklist

  • I have filled out the ModelMeta object to the extent possible
  • I have ensured that my model can be loaded using
    • mteb.get_model(model_name, revision) and
    • mteb.get_model_meta(model_name, revision)
  • I have tested the implementation works on a representative set of tasks.
  • The model is public — weights available at https://huggingface.co/OpenGVLab/ViCLIP-L-14-hf

  Adds ViCLIPWrapper and ModelMeta for OpenGVLab/ViCLIP-L-14-hf and
  OpenGVLab/ViCLIP-B-16-hf. Model from InternVid (ICLR 2024,
  arXiv:2307.06942). Covers T2V and V2T retrieval tasks in MOEB.
  Closes embeddings-benchmark#5012, part of embeddings-benchmark#4842.
@Rakshitha-Ireddi

Copy link
Copy Markdown
Contributor Author

Hello @AdnanElAssadi56 and @Samoed . can you please check this

@Samoed

Samoed commented Jul 25, 2026

Copy link
Copy Markdown
Member

Can you evaluate model on tasks to match performance from papper?

Comment on lines +18 to +19
_VICLIP_MEAN = (0.48145466, 0.4578275, 0.40821073)
_VICLIP_STD = (0.26862954, 0.26130258, 0.27577711)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where did you take them from?

Comment on lines +98 to +105
if not isinstance(feat, torch.Tensor):
feat = (
feat.pooler_output
if hasattr(feat, "pooler_output")
else next(iter(feat.values()))
)
if feat.dim() == 1:
feat = feat.unsqueeze(0)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think tat we need this part

Comment on lines +129 to +134
if not isinstance(features, torch.Tensor):
features = (
features.pooler_output
if hasattr(features, "pooler_output")
else next(iter(features.values()))
)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And this

@Samoed Samoed added the new model Questions related to adding a new model to the benchmark label Jul 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new model Questions related to adding a new model to the benchmark

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add model: OpenGVLab/ViCLIP-L-14-hf

2 participants