rishu834763 commited on
Commit
e30f5ff
·
verified ·
1 Parent(s): e4596b3

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -0
app.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
3
+ from peft import PeftModel, PeftConfig
4
+ import gradio as gr
5
+
6
+ # Your LoRA
7
+ PEFT_ID = "rishu834763/java-explainer-lora"
8
+
9
+ config = PeftConfig.from_pretrained(PEFT_ID)
10
+ base = config.base_model_name_or_path
11
+
12
+ model = AutoModelForCausalLM.from_pretrained(
13
+ base,
14
+ torch_dtype=torch.bfloat16,
15
+ device_map="auto",
16
+ load_in_4bit=True
17
+ )
18
+ model = PeftModel.from_pretrained(model, PEFT_ID)
19
+ model = model.merge_and_unload()
20
+
21
+ tokenizer = AutoTokenizer.from_pretrained(base)
22
+ if tokenizer.pad_token is None:
23
+ tokenizer.pad_token = tokenizer.eos_token
24
+
25
+ pipe = pipeline("text-generation", model=model, tokenizer=tokenizer, max_new_tokens=1024, temperature=0.6, do_sample=True)
26
+
27
+ def chat(message, history):
28
+ msgs = []
29
+ for u, a in history:
30
+ msgs.append({"role": "user", "content": u})
31
+ if a: msgs.append({"role": "assistant", "content": a})
32
+ msgs.append({"role": "user", "content": message})
33
+
34
+ out = pipe(msgs)
35
+ return out[0]["generated_text"][-1]["content"]
36
+
37
+ gr.ChatInterface(
38
+ chat,
39
+ title="Java Explainer – Your Own Model (No OpenAI)",
40
+ description="This is 100% your fine-tuned Java LoRA running locally on Hugging Face",
41
+ examples=[
42
+ "Explain this Java code: public static void main(String[] args) { System.out.println(\"Hello\"); }",
43
+ "What does @Override do in Java?",
44
+ "Difference between HashMap and Hashtable?"
45
+ ]
46
+ ).queue().launch()