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