Huggingface Dataset中sample_by="document"参数使用异常问题排查
问题原因分析及排查建议
你遇到的样本数不符问题,大概率是以下几种情况导致的:
1. 文件路径列表包含目录而非单个文件
datasets.Dataset.from_text会自动递归处理传入的目录路径,把目录下所有文件都当作单独样本加载。如果你的files列表里混入了目录路径,实际处理的文件数会远多于列表长度,最终dataset行数就会远超5738。
你可以检查files列表中的每个元素,确认都是单个文件路径而非目录:
import os for path in files: if os.path.isdir(path): print(f"发现目录路径: {path}")
2. 文件路径列表存在重复项
如果files列表里有重复的文件路径,同一个文件会被多次加载,导致样本数累加。你可以通过以下代码检查重复项:
unique_files = set(files) if len(unique_files) != len(files): print(f"发现重复路径,重复数量: {len(files) - len(unique_files)}")
3. 单文件加载验证(排查版本bug)
虽然根据datasets 2.12.0的源码,sample_by="document"应该将整个文件作为单个样本,但可以通过单文件加载验证是否存在版本逻辑问题:
test_dataset = datasets.Dataset.from_text( [files[0]], sample_by="document", encoding="latin1", ) print(f"单个文件加载后的样本数: {len(test_dataset)}")
如果输出结果大于1,说明该版本的from_text在处理二进制文件时存在异常,建议升级datasets版本后重试。
内容的提问来源于stack exchange,提问作者Luke Kurlandski
相关产品推荐
相关产品推荐

