fesvhtr/FunQA

Dataset

0

stars

20

commits

3

linked in READMEs

Apr 13, 2026

updated

README

Dataset for the paper: FunQA: Towards Surprising Video Comprehension

Paper: https://huggingface.co/papers/2306.14899. Github: https://github.com/Nicous20/FunQA.

  • Supports using LMMs-Eval for evaluation.
  • This dataset is also included in the OpenGVLab/MVBench benchmark.

Update: The dataset format has been changed to Parquet; the old version (JSON) can be found in the “raw” folder.

Load from Hugging Face Hub

from datasets import load_dataset

train_ds = load_dataset("fesvhtr/FunQA", "standard", split="train")
val_ds = load_dataset("fesvhtr/FunQA", "standard", split="validation")
test_ds = load_dataset("fesvhtr/FunQA", "standard", split="test")
mcqa_ds = load_dataset("fesvhtr/FunQA", "mcqa", split="mcqa_test")

Download Video Archives

For the video files, download the split archives explicitly from the dataset repository.

Download one archive into the Hugging Face cache:

from huggingface_hub import hf_hub_download

zip_path = hf_hub_download(
    repo_id="fesvhtr/FunQA",
    repo_type="dataset",
    filename="raw/test.zip",
)
print(zip_path)

Download the whole repository snapshot:

from huggingface_hub import snapshot_download

repo_dir = snapshot_download(
    repo_id="fesvhtr/FunQA",
    repo_type="dataset",
)
print(repo_dir)

If needed, download files to a specific local folder instead of only using the default cache:

from huggingface_hub import snapshot_download

repo_dir = snapshot_download(
    repo_id="fesvhtr/FunQA",
    repo_type="dataset",
    local_dir="funqa_local",
)

After extracting the archives, locate a video by combining the split directory with visual_input:

from pathlib import Path

sample = test_ds[0]
video_name = sample["visual_input"]
video_path = next(Path("videos/test").rglob(video_name))
print(video_path)

Load from Local Files

from datasets import load_dataset

standard_ds = load_dataset(
    "parquet",
    data_files={
        "train": "data/train.parquet",
        "validation": "data/validation.parquet",
        "test": "data/test.parquet",
    },
)

mcqa_ds = load_dataset(
    "parquet",
    data_files={"mcqa_test": "data/mcqa_test.parquet"},
)

Dataset Configs

standard

Splits:

  • train
  • validation
  • test

Columns:

  • instruction
  • visual_input
  • output
  • task

mcqa

Splits:

  • mcqa_test

Columns:

  • instruction
  • visual_input
  • gt
  • id

Notes

  • The parquet files preserve the original JSON field names.
  • standard and mcqa are separated into different configs because they use different schemas.
  • The video archives are stored as repository files and should be downloaded explicitly with huggingface_hub if you need the raw videos.

Contributors

fesvhtr

19 commits

nielsr

1 commits

fesvhtr/FunQA

Dataset

0

stars

20

commits

3

linked in READMEs

Apr 13, 2026

updated

README

Dataset for the paper: FunQA: Towards Surprising Video Comprehension

Paper: https://huggingface.co/papers/2306.14899. Github: https://github.com/Nicous20/FunQA.

  • Supports using LMMs-Eval for evaluation.
  • This dataset is also included in the OpenGVLab/MVBench benchmark.

Update: The dataset format has been changed to Parquet; the old version (JSON) can be found in the “raw” folder.

Load from Hugging Face Hub

from datasets import load_dataset

train_ds = load_dataset("fesvhtr/FunQA", "standard", split="train")
val_ds = load_dataset("fesvhtr/FunQA", "standard", split="validation")
test_ds = load_dataset("fesvhtr/FunQA", "standard", split="test")
mcqa_ds = load_dataset("fesvhtr/FunQA", "mcqa", split="mcqa_test")

Download Video Archives

For the video files, download the split archives explicitly from the dataset repository.

Download one archive into the Hugging Face cache:

from huggingface_hub import hf_hub_download

zip_path = hf_hub_download(
    repo_id="fesvhtr/FunQA",
    repo_type="dataset",
    filename="raw/test.zip",
)
print(zip_path)

Download the whole repository snapshot:

from huggingface_hub import snapshot_download

repo_dir = snapshot_download(
    repo_id="fesvhtr/FunQA",
    repo_type="dataset",
)
print(repo_dir)

If needed, download files to a specific local folder instead of only using the default cache:

from huggingface_hub import snapshot_download

repo_dir = snapshot_download(
    repo_id="fesvhtr/FunQA",
    repo_type="dataset",
    local_dir="funqa_local",
)

After extracting the archives, locate a video by combining the split directory with visual_input:

from pathlib import Path

sample = test_ds[0]
video_name = sample["visual_input"]
video_path = next(Path("videos/test").rglob(video_name))
print(video_path)

Load from Local Files

from datasets import load_dataset

standard_ds = load_dataset(
    "parquet",
    data_files={
        "train": "data/train.parquet",
        "validation": "data/validation.parquet",
        "test": "data/test.parquet",
    },
)

mcqa_ds = load_dataset(
    "parquet",
    data_files={"mcqa_test": "data/mcqa_test.parquet"},
)

Dataset Configs

standard

Splits:

  • train
  • validation
  • test

Columns:

  • instruction
  • visual_input
  • output
  • task

mcqa

Splits:

  • mcqa_test

Columns:

  • instruction
  • visual_input
  • gt
  • id

Notes

  • The parquet files preserve the original JSON field names.
  • standard and mcqa are separated into different configs because they use different schemas.
  • The video archives are stored as repository files and should be downloaded explicitly with huggingface_hub if you need the raw videos.

Contributors

fesvhtr

19 commits

nielsr

1 commits