DSDUDEd commited on
Commit
40e0bac
·
verified ·
1 Parent(s): 73066f1
Files changed (1) hide show
  1. app.py +25 -10
app.py CHANGED
@@ -1,27 +1,42 @@
1
  import gradio as gr
2
  import torch
3
- from transformers import AutoTokenizer, AutoModelForCausalLM
4
  from peft import PeftModel
5
 
6
- # 1️⃣ Load base model
 
 
 
 
7
  base_model_name = "TRM-coding/PythonCopilot"
8
- tokenizer = AutoTokenizer.from_pretrained(base_model_name)
9
- tokenizer.pad_token = tokenizer.eos_token # important for causal LM
10
 
11
- base_model = AutoModelForCausalLM.from_pretrained(base_model_name, torch_dtype=torch.float16).to("cuda" if torch.cuda.is_available() else "cpu")
 
 
 
12
 
13
- # 2️⃣ Load PEFT model
14
  peft_model_name = "DSDUDEd/funfox"
15
  model = PeftModel.from_pretrained(base_model, peft_model_name)
16
  model.eval()
17
 
18
- # 3️⃣ Define text generation function
 
 
 
19
  def generate_text(prompt, max_tokens=50):
20
  inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
21
- outputs = model.generate(**inputs, max_new_tokens=max_tokens)
 
 
 
 
 
 
22
  return tokenizer.decode(outputs[0], skip_special_tokens=True)
23
 
24
- # 4️⃣ Build Gradio interface
25
  iface = gr.Interface(
26
  fn=generate_text,
27
  inputs=[
@@ -33,5 +48,5 @@ iface = gr.Interface(
33
  description="FunFox LoRA model fine-tuned on PythonCopilot base."
34
  )
35
 
36
- # 5️⃣ Launch
37
  iface.launch(share=True)
 
1
  import gradio as gr
2
  import torch
3
+ from transformers import GPT2Tokenizer, AutoModelForCausalLM
4
  from peft import PeftModel
5
 
6
+ # 1️⃣ Load tokenizer (fallback)
7
+ tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
8
+ tokenizer.pad_token = tokenizer.eos_token # Important for causal LM
9
+
10
+ # 2️⃣ Load base model
11
  base_model_name = "TRM-coding/PythonCopilot"
12
+ device = "cuda" if torch.cuda.is_available() else "cpu"
 
13
 
14
+ base_model = AutoModelForCausalLM.from_pretrained(
15
+ base_model_name,
16
+ torch_dtype=torch.float16 if device=="cuda" else torch.float32
17
+ ).to(device)
18
 
19
+ # 3️⃣ Load PEFT/LoRA weights
20
  peft_model_name = "DSDUDEd/funfox"
21
  model = PeftModel.from_pretrained(base_model, peft_model_name)
22
  model.eval()
23
 
24
+ # 4️⃣ Resize embeddings to match tokenizer
25
+ model.resize_token_embeddings(len(tokenizer))
26
+
27
+ # 5️⃣ Text generation function
28
  def generate_text(prompt, max_tokens=50):
29
  inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
30
+ outputs = model.generate(
31
+ **inputs,
32
+ max_new_tokens=max_tokens,
33
+ do_sample=True,
34
+ top_p=0.9,
35
+ temperature=0.8
36
+ )
37
  return tokenizer.decode(outputs[0], skip_special_tokens=True)
38
 
39
+ # 6️⃣ Gradio interface
40
  iface = gr.Interface(
41
  fn=generate_text,
42
  inputs=[
 
48
  description="FunFox LoRA model fine-tuned on PythonCopilot base."
49
  )
50
 
51
+ # 7️⃣ Launch
52
  iface.launch(share=True)