bridge.data.collators.sft#
Shared text-only collators for direct SFT.
Module Contents#
Classes#
Backend-neutral tokenized text row consumed by direct-HF batching. |
Functions#
Right-pad shared row preprocessing outputs for direct-HF batching. |
|
Build one padded or in-batch-packed direct-HF text batch. |
|
Collate text-only HF chat examples using the shared assistant-mask path. |
|
Collate prompt-completion rows without applying a chat template. |
Data#
API#
- bridge.data.collators.sft._CONVERSATION_KEYS#
(‘conversation’, ‘messages’, ‘conversations’)
- class bridge.data.collators.sft._TokenizedTextSFTRow#
Backend-neutral tokenized text row consumed by direct-HF batching.
- input_ids: torch.Tensor#
None
- loss_mask: torch.Tensor#
None
- bridge.data.collators.sft._pad_tokenized_rows(
- rows: list[bridge.data.collators.sft._TokenizedTextSFTRow],
- *,
- pad_token_id: int,
- max_length: int | None,
- pad_to_max_length: bool,
- pad_to_multiple_of: int,
Right-pad shared row preprocessing outputs for direct-HF batching.
- bridge.data.collators.sft._metadata_from_example(
- example: collections.abc.Mapping[str, Any],
- bridge.data.collators.sft._build_text_sft_batch(
- examples: list[collections.abc.Mapping[str, Any]],
- tokenized_rows: list[bridge.data.collators.sft._TokenizedTextSFTRow],
- tokenizer: Any,
- skipped_tokens: torch.Tensor,
- metadata: list[dict[str, Any]],
- *,
- max_length: int | None,
- pad_to_max_length: bool,
- pad_to_multiple_of: int,
- ignore_index: int,
- enable_in_batch_packing: bool,
- in_batch_packing_pad_to_multiple_of: int,
Build one padded or in-batch-packed direct-HF text batch.
Packed batches use their emergent aggregate width;
pad_to_max_lengthapplies only to the non-packed path.
- bridge.data.collators.sft.text_chat_collate_fn(
- examples: list[collections.abc.Mapping[str, Any]],
- processor: Any,
- *,
- max_length: int | None = None,
- sequence_length: int | None = None,
- pad_to_max_length: bool = False,
- pad_to_multiple_of: int = 1,
- warn_on_all_masked: bool = True,
- loss_mode: Literal[assistant, last_turn, full] = 'assistant',
- ignore_index: int = IGNORE_INDEX,
- enable_in_batch_packing: bool = False,
- in_batch_packing_pad_to_multiple_of: int = 1,
- **kwargs: Any,
Collate text-only HF chat examples using the shared assistant-mask path.
- Parameters:
examples – HF-style chat rows containing
messages,conversation, or legacyconversations. Optional top-leveltoolsare forwarded to the chat template for rendering and assistant masks.processor – A HF tokenizer or processor. It must expose
apply_chat_templatedirectly or throughprocessor.tokenizer.max_length – Optional tokenizer truncation length.
sequence_length – Optional tokenizer truncation length used by Direct Hugging Face SFT builders.
pad_to_max_length – On non-packed batches, pad every row to
max_lengthinstead of the longest row. Packed batches use emergent width.pad_to_multiple_of – Optional non-packed padding multiple. The HF SFT builder uses this to keep CP/SP slices shape-compatible.
warn_on_all_masked – Forwarded to assistant-mask construction.
loss_mode – Chat tokens that contribute to loss.
ignore_index – Label ignore value for masked targets.
enable_in_batch_packing – If True, flatten the padded microbatch and emit packed-sequence metadata for GPT-style training steps.
in_batch_packing_pad_to_multiple_of – Optional per-sequence length multiple used when
enable_in_batch_packinginserts padding for CP/SP constraints.**kwargs – Additional common collate kwargs accepted for parity with VLM collate functions and ignored by the text-only path.
- Returns:
Batch dictionary with VLM-style
input_idsand GPT-styletokensaliases, shiftedlabelsandloss_mask,position_ids, and optional tokenizer fields such asattention_mask.
- bridge.data.collators.sft.text_prompt_completion_collate_fn(
- examples: list[collections.abc.Mapping[str, Any]],
- processor: Any,
- *,
- preprocessing: megatron.bridge.data.sft_processing.PromptCompletionSFTPreprocessingConfig,
- max_length: int | None = None,
- sequence_length: int | None = None,
- pad_to_max_length: bool = False,
- pad_to_multiple_of: int = 1,
- ignore_index: int = IGNORE_INDEX,
- enable_in_batch_packing: bool = False,
- in_batch_packing_pad_to_multiple_of: int = 1,
- **kwargs: Any,
Collate prompt-completion rows without applying a chat template.