File size: 3,232 Bytes
07423df
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import os

from llm_studio.src.utils.config_utils import load_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.force_embedding_gradients is False
    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.3

    assert cfg.tokenizer.max_length == 144
    assert cfg.tokenizer.max_length_answer == 256
    assert cfg.tokenizer.max_length_prompt == 256
    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_best_checkpoint is False
    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