AmareshHebbar commited on
Commit
0ca4d51
·
verified ·
1 Parent(s): 3f555c8

Defer model loading into first GPU call , fixes ZeroGPU adapter load crash

Browse files
Files changed (1) hide show
  1. app.py +17 -11
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 = AutoTokenizer.from_pretrained(BASE_MODEL)
17
- base_model = AutoModelForCausalLM.from_pretrained(BASE_MODEL, torch_dtype=torch.bfloat16)
 
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
- _on_gpu = False
 
 
 
 
 
 
 
 
 
 
 
28
 
29
 
30
  def _generate(inputs, use_cuda):
@@ -125,12 +130,13 @@ THEME = gr.themes.Base(
125
  )
126
 
127
 
128
- @spaces.GPU(duration=60)
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 = (