ray.data.from_huggingface#

ray.data.from_huggingface(dataset: datasets.Dataset | datasets.IterableDataset, parallelism: int = -1, concurrency: int | None = None, override_num_blocks: int | None = None) MaterializedDataset | Dataset[源代码]#

Hugging Face Datasets Dataset 创建一个 MaterializedDataset ,或从 Hugging Face Datasets IterableDataset 创建一个 Dataset 。对于 IterableDataset ,我们使用流式实现来读取数据。

如果数据集是一个公开的 Hugging Face 数据集,并且托管在 Hugging Face Hub 上,且未应用任何转换,那么 托管的 parquet 文件 将被传递给 read_parquet() 以执行分布式读取。所有其他情况将通过单节点读取完成。

示例

import ray
import datasets

hf_dataset = datasets.load_dataset("tweet_eval", "emotion")
ray_ds = ray.data.from_huggingface(hf_dataset["train"])
print(ray_ds)

hf_dataset_stream = datasets.load_dataset("tweet_eval", "emotion", streaming=True)
ray_ds_stream = ray.data.from_huggingface(hf_dataset_stream["train"])
print(ray_ds_stream)
MaterializedDataset(
    num_blocks=...,
    num_rows=3257,
    schema={text: string, label: int64}
)
Dataset(
    num_rows=3257,
    schema={text: string, label: int64}
)
参数:
  • dataset – 一个 Hugging Face Datasets DatasetHugging Face Datasets IterableDatasetDatasetDictIterableDatasetDict 不受支持。

  • parallelism – 此参数已弃用。请使用 override_num_blocks 参数。

  • concurrency – Ray 任务的最大并发运行数量。设置此项以控制并发运行的任务数量。这不会改变运行的总任务数或输出的总块数。默认情况下,并发性是根据可用资源动态决定的。

  • override_num_blocks – 覆盖所有读取任务的输出块数量。默认情况下,输出块的数量是根据输入数据大小和可用资源动态决定的。在大多数情况下,您不应手动设置此值。

返回:

一个 Dataset 持有来自 Hugging Face Datasets Dataset 的行。