Spaces:
Running on Zero
Running on Zero
Defer model loading into first GPU call , fixes ZeroGPU adapter load crash
Browse files
app.py
CHANGED
|
@@ -13,18 +13,23 @@ LANG_META = {
|
|
| 13 |
"JavaScript": {"repo": "AmareshHebbar/leetcode-javascript-qwen25-coder-7b", "icon": "🟨", "code_lang": "javascript"},
|
| 14 |
}
|
| 15 |
|
| 16 |
-
tokenizer =
|
| 17 |
-
|
|
|
|
| 18 |
|
| 19 |
-
model = PeftModel.from_pretrained(
|
| 20 |
-
base_model, LANG_META["Python"]["repo"], adapter_name="Python", device_map="cpu"
|
| 21 |
-
)
|
| 22 |
-
for lang, meta in LANG_META.items():
|
| 23 |
-
if lang != "Python":
|
| 24 |
-
model.load_adapter(meta["repo"], adapter_name=lang, device_map="cpu")
|
| 25 |
-
model.eval()
|
| 26 |
|
| 27 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
|
| 29 |
|
| 30 |
def _generate(inputs, use_cuda):
|
|
@@ -125,12 +130,13 @@ THEME = gr.themes.Base(
|
|
| 125 |
)
|
| 126 |
|
| 127 |
|
| 128 |
-
@spaces.GPU(duration=
|
| 129 |
def solve(problem, algorithm_tag, language):
|
| 130 |
global _on_gpu
|
| 131 |
if not problem.strip():
|
| 132 |
return "", "Enter a problem statement first."
|
| 133 |
|
|
|
|
| 134 |
model.set_adapter(language)
|
| 135 |
lang_name = language
|
| 136 |
system_prompt = (
|
|
|
|
| 13 |
"JavaScript": {"repo": "AmareshHebbar/leetcode-javascript-qwen25-coder-7b", "icon": "🟨", "code_lang": "javascript"},
|
| 14 |
}
|
| 15 |
|
| 16 |
+
tokenizer = None
|
| 17 |
+
model = None
|
| 18 |
+
_on_gpu = False
|
| 19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
|
| 21 |
+
def _ensure_loaded():
|
| 22 |
+
global tokenizer, model
|
| 23 |
+
if model is not None:
|
| 24 |
+
return
|
| 25 |
+
tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
|
| 26 |
+
base_model = AutoModelForCausalLM.from_pretrained(BASE_MODEL, torch_dtype=torch.bfloat16)
|
| 27 |
+
m = PeftModel.from_pretrained(base_model, LANG_META["Python"]["repo"], adapter_name="Python")
|
| 28 |
+
for lang, meta in LANG_META.items():
|
| 29 |
+
if lang != "Python":
|
| 30 |
+
m.load_adapter(meta["repo"], adapter_name=lang)
|
| 31 |
+
m.eval()
|
| 32 |
+
model = m
|
| 33 |
|
| 34 |
|
| 35 |
def _generate(inputs, use_cuda):
|
|
|
|
| 130 |
)
|
| 131 |
|
| 132 |
|
| 133 |
+
@spaces.GPU(duration=120)
|
| 134 |
def solve(problem, algorithm_tag, language):
|
| 135 |
global _on_gpu
|
| 136 |
if not problem.strip():
|
| 137 |
return "", "Enter a problem statement first."
|
| 138 |
|
| 139 |
+
_ensure_loaded()
|
| 140 |
model.set_adapter(language)
|
| 141 |
lang_name = language
|
| 142 |
system_prompt = (
|