当前位置: 首页 > article >正文

Hugging Face Dataset的 dataset_info.json 文件详解

Hugging Face Dataset的 dataset_info.json 文件详解

什么是 dataset_info.json 文件?

在使用 Hugging Face(HF)数据集时,dataset_info.json 文件是一个描述数据集及其元数据的重要配置文件。这个文件包含了有关数据集的基本信息、下载链接、数据集的分割、数据大小、文件格式等元数据。它通常位于数据集缓存目录下,在下载并解压数据集时由 HF 自动生成。

以下是 dataset_info.json 文件的常见结构示例:来源于:allenai/tulu-3-sft-mixture

{
    "description": "",
    "citation": "",
    "homepage": "",
    "license": "",
    "features": {
        "id": {
            "dtype": "string",
            "_type": "Value"
        },
        "messages": [
            {
                "content": {
                    "dtype": "string",
                    "_type": "Value"
                },
                "role": {
                    "dtype": "string",
                    "_type": "Value"
                }
            }
        ],
        "source": {
            "dtype": "string",
            "_type": "Value"
        }
    },
    "builder_name": "parquet",
    "dataset_name": "tulu-3-sft-mixture",
    "config_name": "default",
    "version": {
        "version_str": "0.0.0",
        "major": 0,
        "minor": 0,
        "patch": 0
    },
    "splits": {
        "train": {
            "name": "train",
            "num_bytes": 2914253735,
            "num_examples": 939343,
            "shard_lengths": [
                139000,
                46558,
                86000,
                192557,
                217114,
                258114
            ],
            "dataset_name": "tulu-3-sft-mixture"
        }
    },
    "download_checksums": {
        "hf://datasets/allenai/tulu-3-sft-mixture@55e9fd6d41c3cd1a98270dff07557bc2a1e1ba91/data/train-00000-of-00006.parquet": {
            "num_bytes": 361046463,
            "checksum": null
        },
        "hf://datasets/allenai/tulu-3-sft-mixture@55e9fd6d41c3cd1a98270dff07557bc2a1e1ba91/data/train-00001-of-00006.parquet": {
            "num_bytes": 477019443,
            "checksum": null
        },
        "hf://datasets/allenai/tulu-3-sft-mixture@55e9fd6d41c3cd1a98270dff07557bc2a1e1ba91/data/train-00002-of-00006.parquet": {
            "num_bytes": 146926607,
            "checksum": null
        },
        "hf://datasets/allenai/tulu-3-sft-mixture@55e9fd6d41c3cd1a98270dff07557bc2a1e1ba91/data/train-00003-of-00006.parquet": {
            "num_bytes": 162138577,
            "checksum": null
        },
        "hf://datasets/allenai/tulu-3-sft-mixture@55e9fd6d41c3cd1a98270dff07557bc2a1e1ba91/data/train-00004-of-00006.parquet": {
            "num_bytes": 149552548,
            "checksum": null
        },
        "hf://datasets/allenai/tulu-3-sft-mixture@55e9fd6d41c3cd1a98270dff07557bc2a1e1ba91/data/train-00005-of-00006.parquet": {
            "num_bytes": 116271230,
            "checksum": null
        }
    },
    "download_size": 1412954868,
    "dataset_size": 2914253735,
    "size_in_bytes": 4327208603
}

dataset_info.json 文件的作用

1. 描述数据集的元信息

dataset_info.json 文件包含了数据集的基本描述信息,包括数据集的名称、版本、许可证、来源等。这些信息对于理解数据集的背景和使用方式非常重要。例如:

  • description:简短描述数据集的内容和用途。
  • citation:该数据集的引用方式。
  • homepage:数据集的主页链接。
  • license:数据集的许可证类型。

2. 划分数据集的结构

数据集通常会有多个子集(例如,训练集、验证集、测试集)。dataset_info.json 文件中记录了数据集的分割信息,如每个分割的大小、包含的样本数等。在上述例子中,splits 字段描述了训练集的细节:

  • name:分割名称,如 train
  • num_bytes:该分割数据的大小,以字节为单位。
  • num_examples:该分割中样本的数量。
  • shard_lengths:该分割包含的每个子文件的大小(按样本数)。

3. 下载检查和文件管理

dataset_info.json 文件还记录了每个数据文件的下载链接和校验和信息。在下载数据时,Hugging Face 会根据这些信息验证文件的完整性,确保下载的文件没有被损坏。例如:

  • download_checksums:存储每个数据文件的校验和信息,确保下载时文件的完整性。

4. 数据集的构建信息

文件中的 builder_name 表示数据集的构建器类型。例如 parquet 表示数据集是以 parquet 格式存储的。不同的数据集可能使用不同的存储格式,如 arrowjson,这些信息帮助用户理解数据集的存储方式和加载方法。

如果没有 dataset_info.json 会怎么样?

如果没有 dataset_info.json 文件,数据集将无法正确加载和管理。具体影响包括:

  1. 无法正确划分数据集:Hugging Face 无法识别数据集中的不同分割(如训练集、验证集、测试集),这会导致加载数据时的错误或不便。

  2. 下载和文件管理问题:Hugging Face 无法进行文件的完整性校验,也无法在下载时识别数据文件和缓存文件的位置。

  3. 无法使用元数据:无法获取数据集的描述、引用格式等元数据信息,导致用户无法快速了解数据集的背景。

关于如何创建dataset_info.json文件,请参考笔者的另一篇文章:Huggingface数据集采样之后得到的arrow文件无法用Dataset.load_from_disk加载解决方法

使用 datasets 库上传数据集

如果你准备将数据集上传到 Hugging Face Hub,dataset_info.json 文件是必需的。上传时,Hugging Face 会根据该文件生成数据集的描述和元数据。

结论

dataset_info.json 文件是 Hugging Face 数据集管理中不可或缺的一部分,负责记录数据集的详细信息、结构、下载链接、文件大小等。没有它,数据集将无法正确加载、管理和验证。

后记

2024年12月29日12点02分于上海,在GPT4o大模型辅助下完成。


http://www.kler.cn/a/459794.html

相关文章:

  • 【AimRT】现代机器人通信中间件 AimRT
  • C# 设计模式(结构型模式):装饰器模式
  • 【prometheus】【blackbox_exporter】grafna导入blackbox_exporter看板配置
  • union的实际使用
  • 基于 SensitiveWordBs 实现敏感词过滤功能
  • docker compose部署kafka集群
  • 基于STM32智能电流表_V2.0版
  • React里通过使用classNames优化类名控制
  • 【2025最新计算机毕业设计】基于SpringBoot+Vue社区居民健康检测系统(高质量项目,可定制)【提供源码+答辩PPT+文档+项目部署】
  • 【Unity3D】ECS入门学习(七)缓存区组件 IBufferElementData
  • “AI智能安全管理系统:让安全无处不在
  • QTday5
  • 数据结构与算法Python版 图的应用与广度优先搜索
  • SQL 实战:日期与时间函数 – 统计数据的时间跨度与趋势
  • CSS系列(45)-- Scope详解
  • 谷歌浏览器的网页安全检测功能
  • Flutter快速动态生成APP启动图标logo的便捷方式
  • 代码随想录Day56 108. 冗余连接,109. 冗余连接II。
  • 自学记录HarmonyOS Next的HMS AI API 13:语音合成与语音识别
  • C语言控制台AI五子棋
  • IP组播基础
  • Kubernetes 的资源管理方式(二)
  • Ubuntu网络配置(桥接模式, nat模式, host主机模式)
  • 医疗数仓Hive安装部署
  • Spring cloud GateWay入门
  • 江科大学习笔记之——标准库以及其HAL库LED流水灯