Spaces:
Sleeping
Sleeping
import os | |
import pathlib | |
from llm_studio.src.utils.config_utils import load_config_yaml, save_config_yaml | |
def test_load_config_yaml(): | |
test_directory = os.path.abspath(os.path.join(os.path.dirname(__file__), "../")) | |
cfg_path = os.path.join(test_directory, "test_data/cfg.yaml") | |
cfg = load_config_yaml(cfg_path) | |
assert cfg.experiment_name == "test" | |
assert cfg.llm_backbone == "EleutherAI/pythia-12b-deduped" | |
assert cfg.output_directory == "output/user/test/" | |
assert cfg.architecture.backbone_dtype == "float16" | |
assert cfg.architecture.gradient_checkpointing is False | |
assert cfg.architecture.intermediate_dropout == 0.0 | |
assert cfg.augmentation.token_mask_probability == 0.0 | |
assert cfg.dataset.add_eos_token_to_answer is True | |
assert cfg.dataset.add_eos_token_to_prompt is True | |
assert cfg.dataset.answer_column == "output" | |
assert cfg.dataset.data_sample == 0.1 | |
assert cfg.dataset.data_sample_choice == ["Train", "Validation"] | |
assert cfg.dataset.mask_prompt_labels is False | |
assert cfg.dataset.prompt_column == ("instruction",) | |
assert cfg.dataset.text_answer_separator == "\\n" | |
assert cfg.dataset.text_prompt_start == "" | |
assert cfg.dataset.train_dataframe == "data/user/train/train.csv" | |
assert cfg.dataset.validation_dataframe == "None" | |
assert cfg.dataset.validation_size == 0.01 | |
assert cfg.dataset.validation_strategy == "automatic" | |
assert cfg.environment.compile_model is False | |
assert cfg.environment.find_unused_parameters is False | |
assert cfg.environment.gpus == ["0"] | |
assert cfg.environment.mixed_precision is True | |
assert cfg.environment.number_of_workers == 8 | |
assert cfg.environment.seed == -1 | |
assert cfg.logging.logger == "None" | |
assert cfg.logging.neptune_project == "" | |
assert cfg.prediction.batch_size_inference == 0 | |
assert cfg.prediction.do_sample is False | |
assert cfg.prediction.max_length_inference == 256 | |
assert cfg.prediction.min_length_inference == 2 | |
assert cfg.prediction.num_beams == 2 | |
assert cfg.prediction.repetition_penalty == 1.2 | |
assert cfg.prediction.stop_tokens == "" | |
assert cfg.prediction.temperature == 0.0 | |
assert cfg.tokenizer.max_length == 144 | |
assert cfg.tokenizer.padding_quantile == 1.0 | |
assert cfg.training.batch_size == 3 | |
assert cfg.training.epochs == 0 | |
assert cfg.training.evaluate_before_training is True | |
assert cfg.training.evaluation_epochs == 1.0 | |
assert cfg.training.grad_accumulation == 1 | |
assert cfg.training.gradient_clip == 0.0 | |
assert cfg.training.learning_rate == 0.0001 | |
assert cfg.training.lora is True | |
assert cfg.training.lora_alpha == 16 | |
assert cfg.training.lora_dropout == 0.05 | |
assert cfg.training.lora_r == 4 | |
assert cfg.training.lora_target_modules == "" | |
assert cfg.training.optimizer == "AdamW" | |
assert cfg.training.save_checkpoint == "last" | |
assert cfg.training.schedule == "Cosine" | |
assert cfg.training.train_validation_data is False | |
assert cfg.training.warmup_epochs == 0.0 | |
assert cfg.training.weight_decay == 0.0 | |
def test_save_config_yaml(tmp_path: pathlib.Path): | |
test_directory = os.path.abspath(os.path.join(os.path.dirname(__file__), "../")) | |
cfg_path = os.path.join(test_directory, "test_data/cfg.yaml") | |
cfg = load_config_yaml(cfg_path) | |
save_config_yaml(os.path.join(tmp_path, "cfg.yaml"), cfg) | |