From fce3baa193da0c08d47622b8fddff18349e65a95 Mon Sep 17 00:00:00 2001 From: Yu Chin Fabian Lim Date: Fri, 4 Jul 2025 17:03:06 +0000 Subject: [PATCH 1/7] add fallback to pandas for load_dataset Signed-off-by: Yu Chin Fabian Lim --- open_instruct/dataset_transformation.py | 34 ++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/open_instruct/dataset_transformation.py b/open_instruct/dataset_transformation.py index d0ad19f95b..fc358fc8ff 100644 --- a/open_instruct/dataset_transformation.py +++ b/open_instruct/dataset_transformation.py @@ -51,7 +51,7 @@ import torch import transformers -from datasets import Dataset, concatenate_datasets, load_dataset +from datasets import Dataset, concatenate_datasets from huggingface_hub import ModelCard, revision_exists from rich.console import Console from rich.text import Text @@ -67,6 +67,38 @@ from open_instruct.utils import hf_whoami +# MOVE THIS SOMEWHERE +from datasets import load_dataset as lds +def load_dataset( + *args, **kwargs +): + import pandas as pd + from datasets import DatasetDict + + try: + return lds(*args, **kwargs) + except: + # - load_dataset sometimes has strict schema + # checks and may fail on tools / documents + train_files = kwargs['data_files'] + if isinstance(train_files, str): + train_files = [train_files] + + dfs = [] + reader = ( + partial(pd.read_json , lines=True) + if args.train_file_type == 'json' + else partial(pd.read_parquet, engine='auto') + ) + for file in train_files: + dfs.append(reader(file, orient='records')) + + raw_datasets = DatasetDict({ + 'train': Dataset.from_pandas(pd.concat(dfs)) + }) + del df + del df + return raw_datasets # ---------------------------------------------------------------------------- # Utilities From bae1881ca97ef2b5a532c2f102e044163a13a780 Mon Sep 17 00:00:00 2001 From: Yu Chin Fabian Lim Date: Fri, 4 Jul 2025 18:30:11 +0000 Subject: [PATCH 2/7] fix Signed-off-by: Yu Chin Fabian Lim --- open_instruct/dataset_transformation.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/open_instruct/dataset_transformation.py b/open_instruct/dataset_transformation.py index fc358fc8ff..a8ac6c9bdb 100644 --- a/open_instruct/dataset_transformation.py +++ b/open_instruct/dataset_transformation.py @@ -84,10 +84,13 @@ def load_dataset( if isinstance(train_files, str): train_files = [train_files] + file_type = train_files[0].split('.')[-1] + assert file_type in {'json', 'jsonl', 'parquet'} + dfs = [] reader = ( partial(pd.read_json , lines=True) - if args.train_file_type == 'json' + if file_type in {'json', 'jsonl'} else partial(pd.read_parquet, engine='auto') ) for file in train_files: From 95b335244018e0cde384119d0526d7d5d1e99422 Mon Sep 17 00:00:00 2001 From: Yu Chin Fabian Lim Date: Fri, 4 Jul 2025 18:35:47 +0000 Subject: [PATCH 3/7] fix Signed-off-by: Yu Chin Fabian Lim --- open_instruct/dataset_transformation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/open_instruct/dataset_transformation.py b/open_instruct/dataset_transformation.py index a8ac6c9bdb..a993e535aa 100644 --- a/open_instruct/dataset_transformation.py +++ b/open_instruct/dataset_transformation.py @@ -100,7 +100,7 @@ def load_dataset( 'train': Dataset.from_pandas(pd.concat(dfs)) }) del df - del df + del dfs return raw_datasets # ---------------------------------------------------------------------------- From a29d93431abb0f5bd2531e3b8b8f7366fa57a548 Mon Sep 17 00:00:00 2001 From: Yu Chin Fabian Lim Date: Fri, 4 Jul 2025 18:44:53 +0000 Subject: [PATCH 4/7] fix Signed-off-by: Yu Chin Fabian Lim --- open_instruct/dataset_transformation.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/open_instruct/dataset_transformation.py b/open_instruct/dataset_transformation.py index a993e535aa..bc6cfcba55 100644 --- a/open_instruct/dataset_transformation.py +++ b/open_instruct/dataset_transformation.py @@ -96,10 +96,7 @@ def load_dataset( for file in train_files: dfs.append(reader(file, orient='records')) - raw_datasets = DatasetDict({ - 'train': Dataset.from_pandas(pd.concat(dfs)) - }) - del df + raw_datasets = Dataset.from_pandas(pd.concat(dfs)) del dfs return raw_datasets From b48f5c4f02fdf638b8ae9f8f26a2c0fe5d613922 Mon Sep 17 00:00:00 2001 From: Xuan-Hong-dang Date: Sat, 5 Jul 2025 18:12:28 +0000 Subject: [PATCH 5/7] remove duplicated parameters --- open_instruct/finetune.py | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/open_instruct/finetune.py b/open_instruct/finetune.py index f59a20c8c1..09fce56f59 100644 --- a/open_instruct/finetune.py +++ b/open_instruct/finetune.py @@ -235,7 +235,7 @@ class FlatArguments: " Only for linear schedulers, currently." }, ) - weight_decay: float = field(default=0.0, metadata={"help": "Weight decay for AdamW if we apply some."}) + weight_decay: float = field(default=0.0, metadata={"help": "Weight decay for AdamW if we apply some."}) timeout: int = field( default=1800, @@ -291,10 +291,7 @@ class FlatArguments: load_balancing_weight: float = field( default=0.5, metadata={"help": "Weight for load balancing loss if applicable."} ) - clean_checkpoints_at_end: bool = field( - default=True, metadata={"help": "Whether to clean up all previous checkpoints at the end of the run."} - ) - + # Experiment tracking with_tracking: bool = False """If toggled, this experiment will be tracked with Weights and Biases""" @@ -341,13 +338,7 @@ class FlatArguments: "help": "Whether to clean up all previous checkpoints at the end of the run.", }, ) - final_lr_ratio: Optional[float] = field( - default=None, - metadata={ - "help": "Set the final lr value at the end of training to be final_lr_ratio * learning_rate." - " Only for linear schedulers, currently." - }, - ) + add_seed_and_date_to_exp_name: bool = True additional_model_arguments: Optional[Union[dict, str]] = field( default_factory=dict, From 9cb800cf02e2b4fbb0e4385fdff6b908c56d42b2 Mon Sep 17 00:00:00 2001 From: Xuan-Hong-dang Date: Mon, 7 Jul 2025 12:44:11 +0000 Subject: [PATCH 6/7] switch to saving to safetensors (rather bin) for final SFTed model. --- open_instruct/model_utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/open_instruct/model_utils.py b/open_instruct/model_utils.py index cbeb83cf28..b9d475ed92 100644 --- a/open_instruct/model_utils.py +++ b/open_instruct/model_utils.py @@ -394,6 +394,7 @@ def save_with_accelerate( output_dir: str, use_lora: bool = False, model_attribute_to_save: Optional[str] = None, + safe_serialization: bool = True, ) -> None: """`model_attribute_to_save` is for used to save PPO's policy instead of the full model""" # set the generation config to an empty setting to be safe. @@ -429,13 +430,12 @@ def save_with_accelerate( if accelerator.is_main_process: unwrapped_model.save_pretrained(output_dir, state_dict=state_dict) else: - # don't use safetensors for saving for now unwrapped_model.save_pretrained( output_dir, is_main_process=accelerator.is_main_process, save_function=accelerator.save, state_dict=state_dict, - safe_serialization=False, + safe_serialization=safe_serialization, ) if accelerator.is_main_process: From ccbf8a339b1c39bb32d92b5238af2a42b50e7f07 Mon Sep 17 00:00:00 2001 From: Yu Chin Fabian Lim Date: Tue, 8 Jul 2025 20:06:18 +0000 Subject: [PATCH 7/7] nit Signed-off-by: Yu Chin Fabian Lim --- open_instruct/dataset_transformation.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/open_instruct/dataset_transformation.py b/open_instruct/dataset_transformation.py index bc6cfcba55..433fb64810 100644 --- a/open_instruct/dataset_transformation.py +++ b/open_instruct/dataset_transformation.py @@ -68,12 +68,12 @@ from open_instruct.utils import hf_whoami # MOVE THIS SOMEWHERE -from datasets import load_dataset as lds def load_dataset( *args, **kwargs ): - import pandas as pd + from datasets import load_dataset as lds from datasets import DatasetDict + import pandas as pd try: return lds(*args, **kwargs) @@ -97,7 +97,6 @@ def load_dataset( dfs.append(reader(file, orient='records')) raw_datasets = Dataset.from_pandas(pd.concat(dfs)) - del dfs return raw_datasets # ----------------------------------------------------------------------------