*** layout: overview slug: nemo-curator/nemo\_curator/backends/ray\_data/adapter title: nemo\_curator.backends.ray\_data.adapter ----------------------------------------------- ## Module Contents ### Classes | Name | Description | | ------------------------------------------------------------------------------------ | ---------------------------------------------- | | [`RayDataStageAdapter`](#nemo_curator-backends-ray_data-adapter-RayDataStageAdapter) | Adapts ProcessingStage to Ray Data operations. | ### Functions | Name | Description | | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | | [`create_actor_from_stage`](#nemo_curator-backends-ray_data-adapter-create_actor_from_stage) | Create a StageProcessor class with the proper stage name for display. | | [`create_task_from_stage`](#nemo_curator-backends-ray_data-adapter-create_task_from_stage) | Create a named Ray Data stage adapter function. | ### API ```python class nemo_curator.backends.ray_data.adapter.RayDataStageAdapter( stage: nemo_curator.stages.base.ProcessingStage ) ``` **Bases:** [BaseStageAdapter](/nemo-curator/nemo_curator/backends/base#nemo_curator-backends-base-BaseStageAdapter) Adapts ProcessingStage to Ray Data operations. This adapter converts stages to work with Ray Data datasets by: 1. Working directly with Task objects (no dictionary conversion) 2. Using Ray Data's map\_batches for parallel processing a. If stage has both gpus and cpus specified, then we use actors b. If stage.setup is overridden, then we use actors c. Else we use tasks Get the batch size for this stage. ```python nemo_curator.backends.ray_data.adapter.RayDataStageAdapter._process_batch_internal( batch: dict[str, typing.Any] ) -> dict[str, typing.Any] ``` Internal method that handles the actual batch processing logic. **Parameters:** Dictionary with arrays/lists representing a batch of Task objects **Returns:** `dict[str, Any]` Dictionary with arrays/lists representing processed Task objects ```python nemo_curator.backends.ray_data.adapter.RayDataStageAdapter.process_dataset( dataset: ray.data.Dataset, ignore_head_node: bool = False ) -> ray.data.Dataset ``` Process a Ray Data dataset through this stage. **Parameters:** Ray Data dataset containing Task objects **Returns:** `Dataset` Processed Ray Data dataset ```python nemo_curator.backends.ray_data.adapter.create_actor_from_stage( stage: nemo_curator.stages.base.ProcessingStage ) -> type[nemo_curator.backends.ray_data.adapter.RayDataStageAdapter] ``` Create a StageProcessor class with the proper stage name for display. ```python nemo_curator.backends.ray_data.adapter.create_task_from_stage( stage: nemo_curator.stages.base.ProcessingStage ) -> collections.abc.Callable[[dict[str, Any]], dict[str, typing.Any]] ``` Create a named Ray Data stage adapter function. This creates a standalone function that wraps the stage processing logic with a clean name that doesn't include the class qualification. **Parameters:** Processing stage to adapt **Returns:** `Callable[[dict[str, Any]], dict[str, Any]]` A function that can be used directly with Ray Data's map\_batches