跳到内容

LoadDataFromFileSystem

从文件系统中的文件加载数据集。

GeneratorStep,用于从文件系统中的文件创建数据集,使用 Hugging Face datasets 库。查看 Hugging Face Datasets 以获取有关支持的文件类型的更多信息。

属性

  • data_files: 文件路径,或包含构成数据集的文件的目录。

  • split: 要加载的数据集拆分(通常为 traintestvalidation)。

运行时参数

  • batch_size: 处理数据时使用的批次大小。

  • data_files: 文件路径,或包含构成数据集的文件的目录。

  • split: 要加载的数据集拆分。默认为 'train'。

  • streaming: 是否以流模式加载数据集。默认为 False

  • num_examples: 要从数据集加载的示例数量。默认情况下,将加载所有示例。

  • storage_options: 要传递给文件系统后端的键/值对(如果有)。默认为 None

  • filetype: 预期的文件类型。如果未提供,将从文件扩展名推断。对于多个文件,将从第一个文件推断。

输入 & 输出列

graph TD
    subgraph Dataset
        subgraph New columns
            OCOL0[dynamic]
        end
    end

    subgraph LoadDataFromFileSystem
        StepOutput[Output Columns: dynamic]
    end

    StepOutput --> OCOL0

输出

  • dynamic (all): 此步骤将基于从 Hugging Face Hub 加载的数据集生成的列。

示例

从文件系统中的 Hugging Face 数据集加载数据

from distilabel.steps import LoadDataFromFileSystem

loader = LoadDataFromFileSystem(data_files="path/to/dataset.jsonl")
loader.load()

# Just like we saw with LoadDataFromDicts, the `process` method will yield batches.
result = next(loader.process())
# >>> result
# ([{'type': 'function', 'function':...', False)

如果文件扩展名不符合预期,请指定文件类型

from distilabel.steps import LoadDataFromFileSystem

loader = LoadDataFromFileSystem(filetype="csv", data_files="path/to/dataset.txtr")
loader.load()

# Just like we saw with LoadDataFromDicts, the `process` method will yield batches.
result = next(loader.process())
# >>> result
# ([{'type': 'function', 'function':...', False)

从云提供商的文件中加载数据

from distilabel.steps import LoadDataFromFileSystem

loader = LoadDataFromFileSystem(
    data_files="gcs://path/to/dataset",
    storage_options={"project": "experiments-0001"}
)
loader.load()

# Just like we saw with LoadDataFromDicts, the `process` method will yield batches.
result = next(loader.process())
# >>> result
# ([{'type': 'function', 'function':...', False)

加载数据并传递 glob 模式

from distilabel.steps import LoadDataFromFileSystem

loader = LoadDataFromFileSystem(
    data_files="path/to/dataset/*.jsonl",
    streaming=True
)
loader.load()

# Just like we saw with LoadDataFromDicts, the `process` method will yield batches.
result = next(loader.process())
# >>> result
# ([{'type': 'function', 'function':...', False)