File size: 2,158 Bytes
3eecd6b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
79
80
import os
import torch
from pathlib import Path

BASE_DIR = Path.cwd()

DIRECTORIES = {
    "models": "models",
    "data": "data",
    "checkpoints": "checkpoints",
    "logs": "logs",
    "cache": "cache",
    "temp": "temp",
    "exports": "exports",
    "backups": "backups",
    "plots": "plots",
    "history": "history",
    "tests": "tests",
    "adapters": "adapters",
    "results": "results",
    "configs": "configs",
    "vocab": "vocab",
    "tokenizers": "tokenizers",
    "datasets": "datasets",
    "notebooks": "notebooks",
    "scripts": "scripts",
}

for dir_name, dir_path in DIRECTORIES.items():
    Path(dir_path).mkdir(exist_ok=True)

LOG_DIR = DIRECTORIES["logs"]
CACHE_DIR = DIRECTORIES["cache"]
DATA_DIR = DIRECTORIES["data"]
TEMP_DIR = DIRECTORIES["temp"]
MODEL_DIR = DIRECTORIES["models"]
CHECKPOINT_DIR = DIRECTORIES["checkpoints"]
EXPORT_DIR = DIRECTORIES["exports"]
PLOT_DIR = DIRECTORIES["plots"]

CONFIG_FILE = "config.json"
CHAT_HISTORY_FILE = "chat_history.json"
CONFIG_BACKUP_FILE = "config_backup.json"
TRAINING_STATE_FILE = "training_state.pkl"
METADATA_FILE = "metadata.json"
PERFORMANCE_FILE = "performance.json"
ERROR_LOG_FILE = "error.log"
TRAINING_LOG_FILE = "training.log"
CHAT_LOG_FILE = "chat.log"
SYSTEM_LOG_FILE = "system.log"
EVAL_LOG_FILE = "eval.log"
TEST_LOG_FILE = "test.log"
DEBUG_LOG_FILE = "debug.log"

DEFAULT_MEMORY_LIMIT_GB = 32.0 if torch.cuda.is_available() else 16.0
DEFAULT_SEQ_LEN = 512
DEFAULT_BATCH_SIZE = 2
DEFAULT_LEARNING_RATE = 5e-5
DEFAULT_EPOCHS = 3
DEFAULT_WARMUP_RATIO = 0.1
MAX_CONTEXT_TOKENS = 2048
MAX_GENERATION_TOKENS = 256
SAFETY_BUFFER_TOKENS = 50
TEMPERATURE_DEFAULT = 0.7
TOP_P_DEFAULT = 0.9
TOP_K_DEFAULT = 40
REPETITION_PENALTY_DEFAULT = 1.15
NO_REPEAT_NGRAM_SIZE_DEFAULT = 3

SUPPORTED_FORMATS = ('.txt', '.json', '.jsonl', '.csv', '.parquet', '.arrow', '.tsv', '.json.gz', '.jsonl.gz')
STREAMING_FORMATS = ('.txt', '.jsonl', '.csv', '.parquet', '.tsv')
CONVERSATION_FORMATS = ('.txt', '.json', '.jsonl', '.csv')

DEFAULT_MODEL = "Qwen/Qwen2.5-1.5B-Instruct"
FALLBACK_MODEL = "gpt2"

PROGRESS_UPDATE_INTERVAL = 0.5
LOG_INTERVAL = 10
SAVE_INTERVAL = 100
EVAL_INTERVAL = 50