Python3.10中使用load_dataset加载HuggingFace数据集触发ValueError
解决load_dataset加载BAAI/COIG-PC时的ValueError错误
错误原因
这个错误是因为数据集BAAI/COIG-PC的配置中把all作为了一个拆分(split)的名称,但all是datasets库的特殊关键字,用来指代所有拆分的合集,两者冲突导致报错。
解决方案
1. 查看数据集可用拆分
先运行以下代码确认数据集的所有合法拆分名称:
from datasets import load_dataset_builder from huggingface_hub import login login(token='****') builder = load_dataset_builder("BAAI/COIG-PC") print("可用拆分:", list(builder.info.splits.keys()))
2. 指定具体拆分加载
根据上一步得到的拆分名称,比如假设输出包含train,就用以下代码加载:
from datasets import load_dataset from huggingface_hub import login login(token='****') # 替换成实际的拆分名称,比如"train" dataset = load_dataset("BAAI/COIG-PC", split="train", cache_dir=r"E:\datasets") dataset.save_to_disk(r"E:\datasets\saved")
3. 合并多个拆分(如果需要全量数据)
如果需要所有数据,加载除all之外的所有拆分后合并:
from datasets import load_dataset from huggingface_hub import login login(token='****') # 替换为实际的拆分列表,比如["train", "validation"] splits = ["train", "validation"] datasets = [load_dataset("BAAI/COIG-PC", split=s, cache_dir=r"E:\datasets") for s in splits] merged_dataset = datasets[0].concatenate(datasets[1:]) merged_dataset.save_to_disk(r"E:\datasets\merged")
4. 清理旧缓存
如果之前的缓存导致重复报错,手动删除E:\datasets\BAAI目录下的COIG-PC相关缓存文件,再重新运行加载代码。
内容的提问来源于stack exchange,提问作者Aquila1231101
相关产品推荐
相关产品推荐

