Skip to content

fix: repair pad_id fallback order in finetuning generators#86

Open
peter941221 wants to merge 2 commits into
Cerebras:mainfrom
peter941221:fix/finetuning-pad-id-order
Open

fix: repair pad_id fallback order in finetuning generators#86
peter941221 wants to merge 2 commits into
Cerebras:mainfrom
peter941221:fix/finetuning-pad-id-order

Conversation

@peter941221

@peter941221 peter941221 commented Jun 10, 2026

Copy link
Copy Markdown

Bug

Both finetuning token generators compute eos_token before assigning self.pad_id.

In finetuning_token_generator.py, the eos_id is None fallback reads self.pad_id before self.pad_id = pad_id runs. The sibling implementation in finetuning_token_generator_mllama.py has the same ordering.

That leaves both constructors with the same invalid path when eos_id is None.

Fix

Assign self.pad_id before computing self.eos_token in both generators.

This is an order-only change. It keeps the existing fallback behavior and makes the eos_id is None path valid.

Verification

I reproduced the failure in both generators with an isolated constructor stub that passes eos_id=None.

Before the change:
AttributeError: 'FinetuningTokenGenerator' object has no attribute 'pad_id'

After the change:
pad_id=99, eos_id=None, eos_token=tok-99

I also added a focused regression test at src/cerebras/modelzoo/data_preparation/data_preprocessing/test_finetuning_token_generator_init.py.

Verification commands:
PYTHONPATH=src python3 -m unittest src/cerebras/modelzoo/data_preparation/data_preprocessing/test_finetuning_token_generator_init.py
python3 -m py_compile src/cerebras/modelzoo/data_preparation/data_preprocessing/finetuning_token_generator.py src/cerebras/modelzoo/data_preparation/data_preprocessing/finetuning_token_generator_mllama.py

Fixes #64.

This applies the same constructor-order repair to the multimodal sibling generator.

@peter941221 peter941221 marked this pull request as ready for review June 10, 2026 02:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: Attribute used before being set in FinetuningTokenGenerator

1 participant