关于HuggingFace数据的加载

配置HF镜像

注意:如果无法访问HuggingFace可以访问它的国内镜像站,方法如下:
先安装依赖:

pip install -U huggingface_hub

然后在代码的头部加入下面的环境变量设置,记得一定要加载代码的最前面,在import datastes之前。

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

加载数据

HuggingFace对于AI模型训练所需要的数据集进行了规范并且提供了数据加载的工具,对模型的迁移的微调都带来了很大的方便。
比如下面的代码是加载HF上的一个别人已经训练好的数据的数据集:

from datasets import load_dataset

ds = load_dataset("whalning/Chinese-disease-question-classification")

这个数据集位于:

https://hf-mirror.com/datasets/whalning/Chinese-disease-question-classification

接下来可以打印一下,观察数据集的结构

print(ds)

输出结果如下:

DatasetDict({
    train: Dataset({
        features: ['text', 'label'],
        num_rows: 32000
    })
})

从中可以看出,这个数据集包含 text和label两列,共有32000条数据。
我们在训练模型时,可以对数据进行打乱和选取部分的操作。比如下面这样:

# 'train'代表
train_ds = ds["train"].shuffle().select(range(2000))
print(train_ds)

其中:

  • train:代表取出train数据集
  • shuffle(): 代表对数据进行打乱,这样有利于训练提升准确度
  • select:代表选择的数据量。
    输出结果如下:
Dataset({
    features: ['text', 'label'],
    num_rows: 2000
})

我们也可以通过将HF上的数据保存到本地磁盘,这样就不用每次都联机加载。

ds = load_dataset("whalning/Chinese-disease-question-classification")
ds.save_to_disk("data")

由于我们有时候得到的数据集没有validation和test数据集,所以我们可以从train数据集中取出一部分当作这两个集合的数据。比如:

# 从本机已经下载的磁盘路径加载数据
dataset=load_dataset(path="./data/")
print(dataset)
# 取出 3000 个数据作为训练集合
dataset["train"]=dataset["train"].shuffle().select(range(3000)) 
# 取出 500 个数据作为测试集合
dataset["test"]=dataset["train"].shuffle().select(range(500))
© 版权声明
THE END
支持一下吧
点赞13 分享
评论 抢沙发
头像
请文明发言!
提交
头像

昵称

取消
昵称表情代码快捷回复

    暂无评论内容