Guides快速开始
用 Datasets 加载并处理第一个数据集
按照 Datasets 官方 Quickstart,用 load_dataset 拉取 MRPC,map 做 tokenize,再 with_format 交给 DataLoader。
基于 Hugging Face Docs 整理 · 官方资料 ↗
Datasets 解决的是「如何把 Hub 或本地数据变成可训练的张量流」。官方 Quickstart 覆盖 Audio / Vision / NLP;这篇走 NLP 路径:加载 MRPC,tokenize,格式化。
每个数据集都不一样,复杂任务可能还有清洗步骤;但 load_dataset → map → format 这条主线是通用的。
安装 Datasets
官方安装
pip install datasets
pip install torch
pip install -U transformers音频或图像数据再装 datasets[audio] / datasets[vision]。NLP 这条线有 transformers 的 tokenizer 即可。
加载第一个文本数据集
官方 NLP 示例用 Microsoft Research Paraphrase Corpus(MRPC):判断句对是否同义。
官方 load_dataset
from datasets import load_dataset
dataset = load_dataset("nyu-mll/glue", "mrpc", split="train")用 map 做 tokenize
加载 BERT tokenizer,对 sentence1 / sentence2 截断并 padding。map(batched=True) 会批量加速。
官方 encode + map
from transformers import AutoModelForSequenceClassification, AutoTokenizer
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
def encode(examples):
return tokenizer(
examples["sentence1"],
examples["sentence2"],
truncation=True,
padding="max_length",
)
dataset = dataset.map(encode, batched=True)
dataset = dataset.map(lambda examples: {"labels": examples["label"]}, batched=True)tokenize 后会出现 input_ids、token_type_ids、attention_mask;再把 label 映射为模型期望的 labels。
格式化并交给 DataLoader
官方 with_format + DataLoader
import torch
dataset = dataset.select_columns([
"input_ids",
"token_type_ids",
"attention_mask",
"labels",
])
dataset = dataset.with_format(type="torch")
dataloader = torch.utils.data.DataLoader(dataset, batch_size=32)
batch = next(iter(dataloader))
print({k: v.shape for k, v in batch.items()})到这里,数据集已经可以进入训练循环。完整微调示例见 Transformers 的 text classification 指南;模型推理入门可对照 用 Transformers 跑通第一次模型推理。
容易踩的坑
忘记传 configuration 或 split
像 glue/mrpc 这类数据集必须带配置名与 split;查阅数据集卡确认。
列名仍是 label 导致训练报错
按官方把 label 映射为 labels,或在 collator 中显式处理。
map 很慢
使用 batched=True;重复处理时可开启缓存,避免每次全量重算。
官方资料
Hugging Face Docs
Quickstart ↗