bridge.models.diffusion_gemma.data#
Batch collation and synthetic data for DiffusionGemma block-diffusion SFT.
Module Contents#
Classes#
Synthetic, deterministic DiffusionGemma SFT data for smoke tests. |
|
Load message/image prompts and completions without fitting them all on a GPU. |
|
Serializable real-data adapter preserving explicit train/validation/test files. |
Functions#
Collate prompt/canvas examples into the DiffusionGemma step contract. |
API#
- bridge.models.diffusion_gemma.data._as_long(value: Any) torch.Tensor#
- bridge.models.diffusion_gemma.data.collate_diffusion_gemma(
- examples: Sequence[dict[str, Any]],
- *,
- pad_token_id: int,
- canvas_length: int,
- pad_to_multiple_of: int = 1,
Collate prompt/canvas examples into the DiffusionGemma step contract.
Each example provides
input_ids(encoder prompt, including image placeholder tokens) andcanvas_ids(EOS-terminated target, at mostcanvas_lengthtokens). Optional image tensors are stacked per example. Prompts are left-padded to a common length that is a multiple ofpad_to_multiple_of(use the TP size with sequence parallelism).
- class bridge.models.diffusion_gemma.data._MockDiffusionGemmaDataset(
- config: bridge.models.diffusion_gemma.data.MockDiffusionGemmaDatasetConfig,
- size: int,
- offset: int,
Bases:
torch.utils.data.DatasetInitialization
- __len__() int#
- __getitem__(index: int) dict[str, torch.Tensor]#
- collate_fn(
- examples: Sequence[dict[str, Any]],
- class bridge.models.diffusion_gemma.data.MockDiffusionGemmaDatasetConfig#
Bases:
megatron.bridge.data.base.DatasetProviderSynthetic, deterministic DiffusionGemma SFT data for smoke tests.
- canvas_length: int#
256
- prompt_length: int#
32
- completion_length: int#
64
- num_distinct_answers: int#
4
- token_range: tuple[int, int]#
(1000, 20000)
- pad_token_id: int#
0
- eos_token_id: int#
1
- bos_token_id: int#
2
- image_token_id: int | None#
None
- boi_token_id: int | None#
None
- eoi_token_id: int | None#
None
- image_patches_per_side: int#
0
- patch_size: int#
16
- pooling_kernel_size: int#
3
- pad_to_multiple_of: int#
1
- seed: int#
1234
- dataloader_type: str | None#
‘single’
- num_workers: int#
0
- persistent_workers: bool#
False
- finalize() None#
- build_datasets(context: megatron.bridge.data.base.DatasetBuildContext)#
- class bridge.models.diffusion_gemma.data.DiffusionGemmaJSONLDataset(
- path: str,
- *,
- processor: Any,
- config: bridge.models.diffusion_gemma.data.DiffusionGemmaDatasetConfig,
Bases:
torch.utils.data.DatasetLoad message/image prompts and completions without fitting them all on a GPU.
Rows are
{"messages": [...], "completion": "..."}. Image items contain localimagepaths relative to the JSONL file. Each completion is split into fixed-length canvases; previous clean blocks are appended to the encoder context. The current block and future blocks never enter that context.Initialization
- __len__() int#
Return the number of target blocks, not JSONL rows.
- __getitem__(index: int) dict[str, torch.Tensor]#
Process a single CPU example and expose only its prior target blocks.
- collate_fn(
- examples: Sequence[dict[str, Any]],
Pad one CPU microbatch to the configured model-parallel multiple.
- class bridge.models.diffusion_gemma.data.DiffusionGemmaDatasetConfig#
Bases:
megatron.bridge.data.base.DatasetProviderSerializable real-data adapter preserving explicit train/validation/test files.
- train_path: str#
None
- hf_processor_path: str#
None
- validation_path: str | None#
None
- test_path: str | None#
None
- canvas_length: int#
256
- max_encoder_length: int#
8192
- pad_to_multiple_of: int#
1
- dataloader_type: str | None#
‘cyclic’
- num_workers: int#
0
- persistent_workers: bool#
False
- finalize() None#
Validate lengths and ensure the split files are explicitly different.
- build_datasets(
- context: megatron.bridge.data.base.DatasetBuildContext,
Build CPU datasets from the provided split files without repartitioning.