前言

前面我们了解了Hugging Face Space空间的基本使用方式,今天我们探索一下Hugging Face DataSets的基本使用方式。对往期内容感兴趣的小伙伴也可以看往期:

查找DataSets

在Hugging Face首页点击【DataSets】进入数据集列表,通过Hugging Face提供的筛选过滤找到自己想要的数据集

在这里插入图片描述

点击某个数据集可以看到数据集的详细介绍,这里以 ruozhiba_gpt4 为例

在这里插入图片描述

点击数据集的【复制】按钮可以复制数据集的名称

在这里插入图片描述

设置镜像源

由于HuggingFace的数据集存储在谷歌云盘上,在国内加载时可能会遇到网络问题,如遇到问题可以将镜像源切换到国内镜像

国内镜像地址:https://hf-mirror.com

对于huggingface-cli不了解的小伙伴可以看往期:【Hugging Face】Hugging Face Hub与Hugging Face CLI

在命令行终端执行以下命令

$ huggingface-cli env

在这里插入图片描述

可以看到endpoint默认指向的是Hugging Face,我们可以通过两种方式指定国内镜像。

HF-Mirror官网地址:https://hf-mirror.com

命令行方式

在命令行中直接配置导出环境变量 HF_ENDPOINT 的值

# Linux
$ export HF_ENDPOINT=https://hf-mirror.com

# Windows
$ $env:HF_ENDPOINT = "https://hf-mirror.com"

配置完成后即可看到指定的新镜像地址

在这里插入图片描述

代码方式

在Python中直接使用代码设置

import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'

下载数据集

命令行方式

$ huggingface-cli download hfl/ruozhiba_gpt4 --repo-type dataset --local-dir ./tmp

在这里插入图片描述

下载完成后即可看到下载的数据集内容

在这里插入图片描述

代码方式

安装datasets模块

$ pip install datasets
或者
$ uv add datasets
from datasets import load_dataset
# 下载数据集
dataset = load_dataset("hfl/ruozhiba_gpt4")
print(dataset)

该段代码会执行下载和加载数据集操作,加载完成后打印结果如下:

在这里插入图片描述

当前操作数据集存储在缓存目录,如需保存数据集可以使用下面代码

# 保存到本地
dataset.save_to_disk("ruozhiba_gpt4")

下载完成后,我们将得到如下结构的数据集目录

在这里插入图片描述

使用数据集

使用远程数据集

加载远程数据集使用了缓存机制,没有下载过会从云上下载到本地,下载完成后加载数据集

from datasets import load_dataset
# 下载数据集
dataset = load_dataset("hfl/ruozhiba_gpt4")
print(dataset)

使用本地数据集

直接从本地数据集文件加载

from datasets import load_from_disk
# 加载本地数据集
dataset = load_from_disk("ruozhiba_gpt4")
print(dataset)

数据集基本操作

查看数据集

from datasets import load_from_disk
# 加载本地数据集
dataset = load_from_disk("ruozhiba_gpt4")
dataset = dataset["train"]
print(dataset)
# 查看数据集样本
print(dataset[0])

在这里插入图片描述

数据过滤

数据集数据是十分庞大的,可以通过筛选过滤出满足特定条件的数据

from datasets import load_from_disk
# 加载本地数据集
dataset = load_from_disk("ruozhiba_gpt4")
dataset = dataset["train"]
def f(data):
    return data['instruction'][0].startswith('鸡')

new_dataset = dataset.filter(f)
# 遍历
for i in new_dataset:
    print(i)

在这里插入图片描述

测试集拆分

from datasets import load_from_disk
# 加载本地数据集
dataset = load_from_disk("ruozhiba_gpt4")
dataset = dataset["train"]
# 数据集拆分, 拆分后将会返回一个字典, 字典中包含训练集和测试集
test_dataset = dataset.train_test_split(test_size=0.1)
print(dataset)
print("======= 拆分后的训练集 ========")
print(test_dataset)

在这里插入图片描述

数据分桶

有时我们想将数据分成几份处理,可以使用到这里数据分桶

from datasets import load_from_disk
# 加载本地数据集
dataset = load_from_disk("ruozhiba_gpt4")
dataset = dataset["train"]
# 数据分桶处理, 将数据集分成10个桶,每个桶包含10%的数据
dataset_bucket = dataset.shard(num_shards=10, index=0)
print(dataset)
print("======= 分桶后的数据集 ========")
print(dataset_bucket)

在这里插入图片描述

数据格式设定

from datasets import load_from_disk
# 加载本地数据集
dataset = load_from_disk("ruozhiba_gpt4")
dataset = dataset["train"]
# 将数据集转换为, 常用的数据集格式有 torch, numpy, pandas, tensorflow等
# 默认情况下,数据集的格式为 pandas
dataset.set_format(type="numpy", columns=["instruction"], output_all_columns=True)
print(dataset[0])
print("======= 转换的训练集 ========")
print(dataset[0])

暂未用到其他场景,用到再补充

友情提示

见原文:【Hugging Face】Hugging Face数据集的基本使用【Hugging Face】Hugging Face数据集的基本使用

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐