如何解决Huggingface Transformers中‘Trainer: evaluation requires an eval_dataset’错误
问题原因与解决办法
你报错的核心原因很明确:你在TrainingArguments里设置了evaluation_strategy="epoch",这个参数会强制Trainer在每个训练周期结束后执行评估操作,因此必须提供eval_dataset,否则就会抛出该错误。
你之前认为Trainer默认不评估是对的——它的默认evaluation_strategy值是"no",但你主动将这个参数改成了"epoch",等于主动开启了评估流程,自然就要求必须有评估数据集了。
解决步骤
- 如果你确实不需要评估,直接把
evaluation_strategy参数删掉,或者改成默认的"no"即可:training_args = TrainingArguments( output_dir=resume_from_checkpoint, # 移除evaluation_strategy,或显式设置为"no" per_device_train_batch_size=1, ) - 这样修改后,Trainer只会执行训练流程,不会触发评估,也就不需要提供
eval_dataset了,你定义的compute_metrics函数也不会被调用,留着也不影响。
内容的提问来源于stack exchange,提问作者An old man in the sea.
相关产品推荐
相关产品推荐

