大模型面试必备07——HuggingFaceDatasets数据集组件使用
跟着视频学习:【【手把手带你实战HuggingFace Transformers-入门篇】基础组件之Datasets】 https://www.bilibili.com/video/BV1Ph4y1b76w/?share_source=copy_web&vd_source=9fe9e3d550891e4a38f66eead88c8b40
一、简介
datasets库是一个轻量级、易用的数据集加载工具,支持从本地文件或Hugging Face Hub快速加载数据集,适用于机器学习、自然语言处理等任务。
-
公开数据集地址: https://huggingface.co/datasets 说明:Hugging Face Hub上托管了数万个公开数据集(如GLUE、SQuAD、COCO等),可直接通过该平台搜索和下载。
-
文档地址: https://huggingface.co/docs/datasets/index 说明:官方文档提供了完整的库使用方法,包括数据集加载、处理、分片、流式加载等高级功能。
二、基本使用

详细操作列表解析
-
加载在线数据集
-
方法:
load_dataset -
功能:从Hugging Face Hub或指定URL加载公开数据集(如
glue、squad等)。
-
from datasets import load_dataset
dataset = load_dataset("squad") # 加载SQuAD问答数据集
-
加载数据集特定任务/子集
-
方法:
load_dataset的name或subset参数 -
场景:针对多任务数据集(如
multi_nli包含多个任务分支)。glue包含很多任务分支
-
dataset = load_dataset("glue", name="mrpc") # 加载GLUE中的MRPC子任务
-
按数据集划分加载
-
参数:
split -
用途:直接加载训练集、验证集或测试集。
-
train_data = load_dataset("cifar10", split="train")
test_data = load_dataset("cifar10", split="test")
-
查看数据集内容
-
操作:索引(
dataset[0])和切片(dataset[:5]) -
输出:快速预览数据字段(如文本、标签等)。
-
-
数据集划分
-
方法:
train_test_split -
功能:将单份数据拆分为训练集和测试集,支持自定义比例。
-
split_dataset = dataset.train_test_split(test_size=0.1)
-
数据选取与过滤
-
方法:
select(按索引选取)和filter(按条件过滤)
-
filtered_data = dataset.filter(lambda x: x["label"] != 0) # 过滤标签为0的数据
-
数据映射(转换)
-
方法:
map -
用途:批量处理数据(如分词、数据增强)。
-
tokenized_data = dataset.map(lambda x: tokenizer(x["text"]), batched=True)
-
保存与加载本地数据
-
方法:
save_to_disk()和load_from_disk() -
场景:缓存预处理后的数据集,避免重复计算。
-
dataset.save_to_disk("./processed_data")
reloaded_data = load_from_disk("./processed_data")
三、加载本地数据集

四、总结:
使用load_dataset加载的数据集是一个dict
1、导入
Datasets = load_dataset方法的使用,参数有 name="teding"、split="train" 、切片方式加载split="train[:100]", 按照比例的方式切片 split="train[:50%]",其他的方式split=["train[:50%]","validation[:10%]"]
2、怎么取
单条通过dict来取就好:datasets["train"][0]
多条:datasets["train"][:2]
只想看title里面的 datasets["trian"]["title"][:5]
查看列名 datasets["trian"].column_names
查看对应的类型 datasets["trian"].features
更多推荐
所有评论(0)