Hugging Face加载本地txt数据集报ValueError错误如何解决?
报错原因
这个报错和你定义tokenizer的方式没有关联。从你给出的代码执行顺序来看,load_dataset运行在tokenizer初始化之前,报错是数据集加载阶段触发的,也可以直接验证该错误和tokenizer定义无关。
触发错误的核心是load_dataset加载过程中没有读取到任何有效样本,导致数据集初始化时的校验逻辑抛出了该错误,通常有两个触发场景:
- 你指定的
youtube_3/script.txt文件路径错误,程序找不到对应文件 - 对应路径下的txt文件内容完全为空,或者编码格式不匹配导致读取结果为空
修复方案
- 第一步先校验文件路径是否正确
运行以下测试代码确认路径有效性:
import os print(os.path.exists('youtube_3/script.txt'))
如果返回False,将路径修改为脚本文件的绝对路径,或者调整相对路径匹配你的项目目录结构即可。
- 第二步校验文件内容与编码
如果路径校验返回True,打开对应txt文件确认内容不为空。如果文件是特殊编码(比如GBK、UTF-8带BOM),可以在load_dataset时指定编码参数:
dataset = load_dataset('text',data_files={'train':['youtube_3/script.txt']}, encoding='utf-8-sig')
根据你的文件实际编码替换encoding参数的值即可。
额外优化建议
你当前导入的GPTNeoModel是基础特征提取模型,只会输出隐藏层状态,不支持文本生成逻辑。如果要做电影脚本生成任务,建议替换为生成类模型:
# 替换导入语句 from transformers import GPT2Tokenizer, GPTNeoForCausalLM model = GPTNeoForCausalLM.from_pretrained('EleutherAI/gpt-neo-1.3B')
内容的提问来源于stack exchange,提问作者Ulto 4
相关产品推荐
相关产品推荐

