加载TokenBender数据集遇ValueError:'**'仅可为完整路径组件
解决加载LLM微调数据集时的ValueError错误
问题描述
运行以下LLM微调初始化代码时触发错误:
from datasets import load_dataset, DatasetDict, Dataset from transformers import ( AutoTokenizer, AutoConfig, AutoModelForSequenceClassification, DataCollatorWithPadding, TrainingArguments, Trainer) from peft import PeftModel, PeftConfig, get_peft_model, LoraConfig import evaluate import torch import numpy as np # load dataset dataset = load_dataset('TokenBender/code_instructions_122k_alpaca_style') dataset
报错信息:
ValueError: Invalid pattern: '**' can only be an entire path component
使用的库版本:
- peft : '0.6.0'
- torch : '2.1.2+cu121'
- datasets : '2.1.0'
- transformers : '4.21.3'
解决方案
这个错误源于旧版本datasets(2.1.0)对文件路径匹配模式的限制,该数据集的配置中使用了旧版本不支持的**路径写法,可通过以下两种方式解决:
方案1:升级datasets库
升级到支持该路径模式的新版本(建议>=2.10.0),执行命令:
pip install --upgrade datasets
方案2:手动指定数据集加载方式
如果不想升级库,可直接指定加载具体的数据文件或子集:
方式一:指定数据集配置
dataset = load_dataset('TokenBender/code_instructions_122k_alpaca_style', 'default')
方式二:直接加载JSON数据文件
dataset = load_dataset('json', data_files='https://huggingface.co/datasets/TokenBender/code_instructions_122k_alpaca_style/resolve/main/data/train.json')
原因说明
旧版本datasets库在解析数据集的路径模式时,要求**必须作为完整的路径组件存在,而TokenBender/code_instructions_122k_alpaca_style数据集的路径配置不符合这一旧版规则。升级库可修复路径解析逻辑,手动指定加载方式则绕过了有问题的模式解析步骤。
内容的提问来源于stack exchange,提问作者Hitesh Somani
相关产品推荐
相关产品推荐

