Reverendo commited on
Commit
e97fbb6
·
verified ·
1 Parent(s): 427ec3f

Upload app.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. app.py +33 -14
app.py CHANGED
@@ -20,27 +20,52 @@ HUB_PATH = os.environ.get(
20
  "training-runs/sft-chat-v1-context-mix-8b-20260803-080404",
21
  )
22
  SCRIPT_REPO = os.environ.get("SCRIPT_REPO", "ProjectScugnizz/scugnizz-llama-training")
 
 
 
23
  SYSTEM = os.environ.get(
24
  "SYSTEM_PROMPT",
25
  "You are a helpful assistant. Answer clearly and correctly.",
26
  )
27
 
28
- _CODE = Path("/tmp/scugnizz-code")
29
- _MODEL = Path("/tmp/scugnizz-model")
30
  _state = {"model": None, "tok": None, "dev": None, "error": None}
31
 
32
 
33
- def _load_train_module():
 
 
34
  snapshot_download(
35
  SCRIPT_REPO,
36
- local_dir=str(_CODE),
37
  allow_patterns=["scugnizz-llama.py", "sft_data.py"],
38
  )
39
- path = _CODE / "scugnizz-llama.py"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  spec = importlib.util.spec_from_file_location("scugnizz_train", path)
41
  mod = importlib.util.module_from_spec(spec)
42
- # sft_data lives beside the trainer file
43
- sys.path.insert(0, str(_CODE))
44
  sys.modules["scugnizz_train"] = mod
45
  spec.loader.exec_module(mod)
46
  return mod
@@ -101,13 +126,7 @@ def load_model():
101
  raise RuntimeError(_state["error"])
102
  try:
103
  mod = _load_train_module()
104
- path = HUB_PATH.strip("/")
105
- snapshot_download(
106
- HUB_REPO,
107
- local_dir=str(_MODEL),
108
- allow_patterns=[f"{path}/*", f"{path}/tokenizer/*"],
109
- )
110
- model_dir = _MODEL / path
111
  run_args = json.loads((model_dir / "args.json").read_text(encoding="utf-8"))
112
  dev = "cuda" if torch.cuda.is_available() else "cpu"
113
  tok = AutoTokenizer.from_pretrained(str(model_dir / "tokenizer"))
 
20
  "training-runs/sft-chat-v1-context-mix-8b-20260803-080404",
21
  )
22
  SCRIPT_REPO = os.environ.get("SCRIPT_REPO", "ProjectScugnizz/scugnizz-llama-training")
23
+ # Space volumes: checkpoint subfolder → /models, trainer → /code
24
+ MODEL_MOUNT = Path(os.environ.get("MODEL_MOUNT", "/models"))
25
+ CODE_MOUNT = Path(os.environ.get("CODE_MOUNT", "/code"))
26
  SYSTEM = os.environ.get(
27
  "SYSTEM_PROMPT",
28
  "You are a helpful assistant. Answer clearly and correctly.",
29
  )
30
 
31
+ _CODE_FALLBACK = Path("/tmp/scugnizz-code")
32
+ _MODEL_FALLBACK = Path("/tmp/scugnizz-model")
33
  _state = {"model": None, "tok": None, "dev": None, "error": None}
34
 
35
 
36
+ def _resolve_code_dir() -> Path:
37
+ if (CODE_MOUNT / "scugnizz-llama.py").is_file():
38
+ return CODE_MOUNT
39
  snapshot_download(
40
  SCRIPT_REPO,
41
+ local_dir=str(_CODE_FALLBACK),
42
  allow_patterns=["scugnizz-llama.py", "sft_data.py"],
43
  )
44
+ return _CODE_FALLBACK
45
+
46
+
47
+ def _resolve_model_dir() -> Path:
48
+ # Volume mounts either the checkpoint root (/models/model_final.pt) or full repo
49
+ if (MODEL_MOUNT / "model_final.pt").is_file():
50
+ return MODEL_MOUNT
51
+ nested = MODEL_MOUNT / HUB_PATH.strip("/")
52
+ if (nested / "model_final.pt").is_file():
53
+ return nested
54
+ path = HUB_PATH.strip("/")
55
+ snapshot_download(
56
+ HUB_REPO,
57
+ local_dir=str(_MODEL_FALLBACK),
58
+ allow_patterns=[f"{path}/*", f"{path}/tokenizer/*"],
59
+ )
60
+ return _MODEL_FALLBACK / path
61
+
62
+
63
+ def _load_train_module():
64
+ code = _resolve_code_dir()
65
+ path = code / "scugnizz-llama.py"
66
  spec = importlib.util.spec_from_file_location("scugnizz_train", path)
67
  mod = importlib.util.module_from_spec(spec)
68
+ sys.path.insert(0, str(code))
 
69
  sys.modules["scugnizz_train"] = mod
70
  spec.loader.exec_module(mod)
71
  return mod
 
126
  raise RuntimeError(_state["error"])
127
  try:
128
  mod = _load_train_module()
129
+ model_dir = _resolve_model_dir()
 
 
 
 
 
 
130
  run_args = json.loads((model_dir / "args.json").read_text(encoding="utf-8"))
131
  dev = "cuda" if torch.cuda.is_available() else "cpu"
132
  tok = AutoTokenizer.from_pretrained(str(model_dir / "tokenizer"))