Optimize calibrate_draft_vocab to read only required lines when calib… #618
+3
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Optimize calibrate_draft_vocab to read only required lines when calibrate_size is set
What does this PR do?
Type of change: Performance improvement
Overview:
This PR optimizes the calibrate_draft_vocab.py script to improve memory efficiency and I/O performance when using the
--calibrate_sizeparameter. Previously, the script would read all lines from the data file into memory before slicing to the specifiedcalibrate_size, causing unnecessary resource usage for large datasets. The optimization usesitertools.isliceto read only the required number of lines whencalibrate_sizeis specified.Usage
The script usage remains unchanged. When using
--calibrate_size, the script now only reads the specified number of lines instead of loading the entire dataset:# Only reads first 1000 lines from the dataset (optimized) python scripts/calibrate_draft_vocab.py \ --model meta-llama/Llama-3.2-1B-Instruct \ --data input_conversations/daring-anteater.jsonl \ --draft_vocab_size 32000 \ --calibrate_size 1000 \ --save_dir draft_vocab_cache