| from lmr.utils.parsing import formatted_string_to_int |
|
|
| def set_proportion_token_limits(dataset_config): |
| |
| proportions = dataset_config.proportions |
| component_token_limits = {} |
| |
| for component_name, component_proportion in proportions.items(): |
| |
| split_token_limits = {} |
| |
| tokens_buffer = formatted_string_to_int(dataset_config.tokens_buffer) if hasattr(dataset_config, "tokens_buffer") and dataset_config.tokens_buffer is not None else 0 |
| |
| |
| for split_name in ("train", "validation", "test"): |
| if hasattr(dataset_config, f"max_tokens_{split_name}"): |
| max_tokens = formatted_string_to_int(getattr(dataset_config, f"max_tokens_{split_name}")) |
| split_token_limits[split_name] = int(component_proportion * max_tokens) + tokens_buffer |
| else: |
| split_token_limits[split_name] = None |
| |
| component_token_limits[component_name] = split_token_limits |
| |
| dataset_config.component_token_limits = component_token_limits |