You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否从Hugging Face仅加载或下载数据集的部分分区?

关于Common Voice数据集部分加载的问题解答

是的,直接使用split="train[:20%]"参数时,Hugging Face Datasets默认会先下载完整的训练集到本地,再根据切片规则筛选出20%的样本,这就是你遇到磁盘空间不足的原因。

要实现仅加载并存储指定比例的数据集,可以用以下两种实用方法:

  • 流式加载(推荐)
    给load_dataset添加streaming=True参数,此时数据集会以流式方式获取,只下载你需要的那部分样本,不会把完整数据集存到本地。示例代码:

    from datasets import load_dataset
    
    # 流式加载训练集的前20%
    ds_stream = load_dataset(
        "mozilla-foundation/common_voice_16_0",
        "en",
        split="train[:20%]",
        streaming=True
    )
    
    # 如果需要转为可离线使用的数据集,先打乱(可选)再取对应样本,最后保存到本地
    ds = ds_stream.shuffle(seed=42)
    # 取前20%的样本(流式下len(ds_stream)会返回数据集总样本数的估算值)
    ds = ds.take(int(len(ds_stream) * 0.2))
    # 转为列表触发实际下载,再保存到本地
    ds = list(ds)
    from datasets import Dataset
    Dataset.from_list(ds).save_to_disk("./common_voice_en_train_20%")
    
  • 手动指定分片下载
    Common Voice数据集的训练集被拆分成了多个分片,你可以在数据集详情页查看分片列表,通过data_files参数只下载特定分片,再合并后筛选比例。不过这种方法需要手动计算分片对应的样本量,操作相对繁琐,适合对数据集结构熟悉的场景。

内容的提问来源于stack exchange,提问作者Philip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 02:52:28