bridge.data.packing.in_batch#
Collate-time construction of Megatron-Core THD packed sequence batches.
Module Contents#
Functions#
Build an MCore THD batch directly from unpadded sequence rows. |
|
Pack a right-padded sequence batch into MCore THD layout. |
API#
- bridge.data.packing.in_batch._ceil_to_multiple(value: int, multiple: int) int#
- bridge.data.packing.in_batch._token_key(
- batch: collections.abc.MutableMapping[str, Any],
- bridge.data.packing.in_batch._set_tokens(
- batch: collections.abc.MutableMapping[str, Any],
- token_key: str,
- value: torch.Tensor,
- bridge.data.packing.in_batch._right_padded_sequence_lengths(
- tokens: torch.Tensor,
- *,
- pad_token_id: int,
- padding_mask: torch.Tensor | None,
- bridge.data.packing.in_batch._validate_sequence_tensor(
- batch: collections.abc.MutableMapping[str, Any],
- key: str,
- *,
- tokens: torch.Tensor,
- bridge.data.packing.in_batch._validate_sequence_row_tensor(
- row: collections.abc.Mapping[str, Any],
- key: str,
- *,
- length: int,
- bridge.data.packing.in_batch.build_mcore_thd_sequence_batch_from_rows(
- rows: collections.abc.Sequence[collections.abc.Mapping[str, Any]],
- *,
- token_key: str = 'input_ids',
- sequence_length: int | None = None,
- pad_token_id: int = 0,
- ignore_index: int = IGNORE_INDEX,
- pad_to_multiple_of: int = 1,
- sequence_tensor_pad_values: collections.abc.Mapping[str, int | float] | None = None,
Build an MCore THD batch directly from unpadded sequence rows.
- Parameters:
rows – Per-example mappings containing 1D sequence tensors.
token_key – Token tensor key present in each row.
sequence_length – Optional maximum length for each unpadded row.
pad_token_id – Token value for per-sequence alignment padding.
ignore_index – Label value for per-sequence alignment padding.
pad_to_multiple_of – Per-sequence alignment multiple for CP/SP.
sequence_tensor_pad_values – Additional sequence-aligned tensor keys and the value used for alignment padding.
- Returns:
A single-row THD batch with current MCore packed-sequence metadata.
- Raises:
ValueError – If rows are empty, inconsistent, padded, or overlength.
- bridge.data.packing.in_batch.pack_right_padded_sequence_batch_to_mcore_thd(
- batch: collections.abc.MutableMapping[str, Any],
- *,
- token_key: str | None = None,
- sequence_length: int | None = None,
- pad_token_id: int = 0,
- ignore_index: int = IGNORE_INDEX,
- pad_to_multiple_of: int = 1,
- sequence_tensor_pad_values: collections.abc.Mapping[str, int | float] | None = None,
Pack a right-padded sequence batch into MCore THD layout.
This helper emits the current
PackedSeqParamsfield names consumed by Megatron-Core and Transformer Engine:cu_seqlens_q,cu_seqlens_kv, optional padded cu-seqlens, andmax_seqlen_q/max_seqlen_kv.- Parameters:
batch – Mutable collate batch with 2D token, position, and optional label/loss-mask tensors.
token_key – Token key to use. If unset, detected from
tokensorinput_ids.sequence_length – Optional maximum length for each unpadded row.
pad_token_id – Token value for padding inserted by
pad_to_multiple_of.ignore_index – Label value for inserted padding.
pad_to_multiple_of – Optional per-sequence packed length multiple.
sequence_tensor_pad_values – Additional sequence-aligned tensor keys and their alignment padding values.
- Raises:
ValueError – If required tensors are missing or the batch contains no non-padding tokens.