mrkeyoor.com_
Sat 05 Sept 15:48 UTC
Dataevaluationupdated 05 Sept 2026

datasets review

Hugging Face Datasets is a Python library for loading, transforming, streaming, and sharing data used in machine learning. It gives local files and Hub datasets a common interface, with Apache Arrow storage and adapters for major Python data and training frameworks.

Verdict

Our Datasets checkout used 9,560 MB and its test suite timed out at 900 seconds after reaching 82%, so contributor work needs a roomy, patient environment even though the user API starts with one function. Use it for mixed-format ML data, Hub integration, or streaming when its caching and Arrow model fit your pipeline. Pin data revisions, audit the 2 reported vulnerabilities, and test your exact platform extras before making it infrastructure.

We ran it

Lab card: what happened when we ran datasetsScreenshot of datasets (huggingface.co/docs/datasets)
Install✓ · 170s212 packages · 9560 MB
Build✓ · 12s
Tests✗ timed out · 900sran, no count parsed
Known vulns2(pip-audit)
Repo367 files~82,611 lines of source · 66.7 MB · 7 CI workflows · tests dir

Answers from our run

Does datasets build from source?

Dependencies installed in 170 seconds (212 packages), and the build succeeded in 12 seconds. We cloned commit 19f69de into a clean Debian container with 3 CPUs and no project-specific setup.

Do datasets's tests pass?

We could not finish them: the suite was still running after 15 minutes in our container.

Does datasets have known vulnerabilities in its dependencies?

pip-audit flagged 2 known advisories in the dependency tree at the time of our run.

Who should not use datasets?

Contributors working in small build volumes: our full install pulled 212 packages and occupied 9,560 MB before any user dataset was downloaded.

What are the alternatives to datasets?

TensorFlow Datasets, TorchData, Apache Arrow. Our Datasets checkout used 9,560 MB and its test suite timed out at 900 seconds after reaching 82%, so contributor work needs a roomy, patient environment even though the user API starts with one function.

Setup3/5Simple pip entry, but our contributor install used 9,560 MB
Docs5/5Detailed loading, processing, streaming, and format guides
Community5/521,900 stars and active September 2026 issue and PR work
Maturity4/5Version 5.0.1 is active; our full suite did not finish

Who it’s for

Python teams that need one loading API across local files and Hugging Face Hub datasets.
ML engineers processing text, image, audio, video, PDF, or medical imaging data.
Researchers who need cached transformations and can pin dataset revisions for reproducibility.
Training pipelines that benefit from streaming or memory-mapped Arrow data.

Who it’s NOT for

Contributors working in small build volumes: our full install pulled 212 packages and occupied 9,560 MB before any user dataset was downloaded.
Teams that require the upstream suite to finish inside 15 minutes on 3 CPUs: our run timed out at 900 seconds after reaching 82%, with failure markers already present.
Linux or Windows ARM users who need audio decoding today: open issue 8065 says the torchcodec path used by Datasets 4.0 and later lacks ARM support on those platforms.
Organizations that treat Hub data as having one shared license: the README says dataset repositories are maintained by their authors and tells users to pin a revision.

Setup reality

Our sandbox installed 212 Python packages in 170 seconds and occupied 9,560 MB. The build succeeded in 12 seconds. Tests timed out after 900 seconds: output reached 82% and showed failure markers near 64% and 77%. Pip-audit found 2 known vulnerabilities.

Basic installation is one pip or conda command, while audio, vision, PDFs, medical images, and framework adapters use optional extras. Hub downloads need network access and sometimes authentication; local CSV, JSON, Parquet, and directory loading do not require a Hub account.

Contributor setup is much larger than the package's simple import suggests. Caches and downloaded datasets need separate disk planning, multiprocessing needs tuning, and reproducible Hub jobs should pin a repository revision. Our exact run used commit 19f69de in a fresh 3-CPU, 8 GB Debian container.

Two jobs share one Python interface

Hugging Face Datasets documents 2 central jobs: loading public or local datasets, and preparing them for model work. load_dataset() accepts Hub repositories along with CSV, JSON, JSONL, Parquet, HDF5, XML, text, image, audio, video, PDF, and NIfTI inputs. The resulting object can feed NumPy, Pandas, Polars, PyTorch, TensorFlow, JAX, or Spark. That breadth is the reason to adopt it: format handling stops being custom glue in every training project.

The convenience carries policy work with it. A Hub dataset is a versioned repository maintained by its author, so provenance, license, and consent still vary by dataset. The README explicitly asks users to pin a revision for reproducibility. Do that in training code and record the selected configuration and split as well. Otherwise, the same one-line loader can resolve to changed files or metadata during a later run.

Two dataset classes make different tradeoffs

The library exposes 2 core classes. Dataset uses Apache Arrow for indexed, memory-mapped data, while IterableDataset reads lazily and supports streaming or infinite sources. Both have dictionary wrappers for train, validation, and test splits. This division is useful when a corpus is larger than local storage, but callers must know which behavior they hold. Open issue 8483 shows take(n) raising on an oversized request for Dataset while the iterable form returns the rows available.

Transformations such as map() can run in batches or across processes, and cached results avoid repeating finished work. Parallelism still needs a measured setting. Issue 8491 reports a worker cleanup failure after an interrupted file close during a 512-process map on roughly 25,000 examples; the reporter says smaller process counts completed. That case is far beyond an ordinary laptop, yet it is a good warning against turning num_proc into a contest. Tune with your storage and worker limits.

What happened when we ran it

Our sandbox installed 212 packages in 170 seconds and consumed 9,560 MB on disk. The source checkout was 66.7 MB, with 367 files and about 82,611 lines of source at commit 19f69de. The build then succeeded in 12 seconds. Our measurement setup was a fresh unprivileged Debian container with Python 3.12, 3 CPUs, 8 GB of RAM, and no secrets.

The test command did not finish inside 900 seconds. Output reached 82%, and the visible tail showed four failure markers around 64% plus two around 77%, mixed with continuing passes and skips. The log excerpt does not name those failed cases or establish a cause, so we cannot attribute them to networking, missing services, or the code itself. The sound conclusion is that the checked suite neither passed nor completed in our stated environment.

Pip-audit reported 2 known vulnerabilities in the installed environment. The supplied result does not identify their packages or severity, so the next step for an adopter is to run an audit against the lock or environment it will deploy. Seven CI workflow files and a tests directory show an established contributor setup. A Dockerfile was absent, leaving teams to define their own repeatable contributor image if containers are their standard.

The 5.0.1 release fixes data correctness and extraction flaws

Release 5.0.1 was published on July 28, 2026. Its notes include fixes for path traversal during archive extraction and folder metadata handling, plus corrections for nullable numeric columns, CSV options, iterable resumption, Arrow batches, and dataset-card split removal. Those are concrete data-integrity concerns, not cosmetic release churn. Users on earlier builds should read the notes against their input formats and upgrade deliberately.

The repository was pushed on September 4, 2026, after that release. We fetched 923 open issues and 420 open pull requests separately on September 5. The counts are large because this library covers many formats, storage systems, operating systems, and framework combinations. Recent work includes file-format additions and fixes for remote PDF decoding, empty NumPy columns, and missing folder metadata. Activity is healthy; the breadth also means your particular edge case may live in a long queue.

Optional media paths need platform checks

The base package is only the start for some workloads. Audio adds torchcodec, image and video use Pillow plus torchcodec, PDF handling uses pdfplumber, and NIfTI support uses nibabel. Framework extras pull in further stacks. Our 9,560 MB environment reflects the full laboratory installation we measured, not a claim that a minimal pip install datasets always consumes that space. Test the exact extras rather than budgeting from the one-line quick start.

Platform support differs as those dependencies change. Open issue 8065 reports that audio loading through torchcodec is unavailable on Linux ARM64 and Windows ARM64 for Datasets 4.0 and later. A separate open report describes a Windows cache file remaining locked during load_dataset. Neither report proves every ARM or Windows workflow fails. They are specific reasons to run one representative audio load and one cache cleanup cycle on the machines you will use.

Streaming saves local space but changes access semantics

Streaming lets a job iterate through remote data without downloading the whole dataset first. That is a strong fit for initial inspection or sequential training on corpora larger than local disk. It also ties the run to network availability, the remote repository, and iterable semantics. Indexed slicing and arbitrary repeated access belong to the Arrow-backed Dataset path, which can create sizable caches as transformations accumulate.

Datasets earns its place when one team handles several data formats or shares work through the Hub. The 12-second build and deep documentation lower the entry cost, while the 900-second timeout, 9,560 MB lab environment, and 2 audit findings argue for a controlled contributor image. Pin the library and dataset revisions, cap multiprocessing from evidence, and keep enough storage for caches. Those steps turn a friendly loader into a reproducible data component.

Alternatives

ProjectWhat it isPick it when
TensorFlow DatasetsA catalog and loading system built around reproducible dataset builders for TensorFlow and JAX.pick this instead when your training stack is already centered on TensorFlow and its dataset builder conventions.
TorchDataPyTorch's data-loading utilities for iterable and stateful input pipelines.pick this instead when PyTorch-native loading is the requirement and you do not need the Hugging Face Hub catalog.
Apache ArrowThe lower-level columnar format and toolkit that underpins Datasets storage.pick this instead when you need direct control of columnar data interchange without a machine-learning dataset layer.

What people are saying

  1. [github-trending] huggingface/datasets
  2. [velocity-scout] awesomedata/awesome-public-datasets
  3. [mastodon-trends] Trump 2.0 has deleted or altered nearly 400 US datasets, endangering public health, education and more

Sources

  1. Hugging Face Datasets README
  2. Hugging Face Datasets repository facts
  3. Datasets 5.0.1 release notes
  4. ARM audio support issue
  5. Dataset take semantics issue
  6. Multiprocess map cleanup issue

More data reviews

spark · IPTV · label-studio · greptimedb · chinese-independent-developer · dataease · the whole board →