krisha06 commited on
Commit
a2519bb
·
verified ·
1 Parent(s): ea9326e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -27
app.py CHANGED
@@ -1,38 +1,23 @@
1
  import streamlit as st
2
- from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig, TextStreamer
3
  import torch
 
 
4
 
5
- MODEL_PATH = "./tinyllama-python-tutor-lora"
6
-
7
- st.title("TinyLLaMA Python Tutor 💬")
8
 
9
  @st.cache_resource
10
  def load_model():
11
- bnb_config = BitsAndBytesConfig(
12
- load_in_8bit=True,
13
- llm_int8_threshold=6.0,
14
- llm_int8_skip_modules=None,
15
- llm_int8_enable_fp32_cpu_offload=True
16
- )
17
-
18
- tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH, use_fast=True)
19
- model = AutoModelForCausalLM.from_pretrained(
20
- MODEL_PATH,
21
- quantization_config=bnb_config,
22
- device_map="auto"
23
- )
24
  return tokenizer, model
25
 
26
  tokenizer, model = load_model()
27
 
28
- prompt = st.text_area("Ask me about Python:", height=200)
29
 
30
- if st.button("Generate Response"):
31
- if prompt.strip():
32
- inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
33
- output = model.generate(**inputs, max_new_tokens=200, do_sample=True)
34
- response = tokenizer.decode(output[0], skip_special_tokens=True)
35
- st.write("### Response")
36
- st.success(response)
37
- else:
38
- st.warning("Please enter a prompt!")
 
1
  import streamlit as st
 
2
  import torch
3
+ from transformers import AutoTokenizer, AutoModelForCausalLM
4
+ from peft import PeftModel
5
 
6
+ st.title("TinyLLaMA Python Tutor (LoRA)")
 
 
7
 
8
  @st.cache_resource
9
  def load_model():
10
+ base_model = AutoModelForCausalLM.from_pretrained("TinyLlama/TinyLlama-1.1B-Chat-v1.0")
11
+ tokenizer = AutoTokenizer.from_pretrained("TinyLlama/TinyLlama-1.1B-Chat-v1.0")
12
+ model = PeftModel.from_pretrained(base_model, "lora_adapter")
 
 
 
 
 
 
 
 
 
 
13
  return tokenizer, model
14
 
15
  tokenizer, model = load_model()
16
 
17
+ user_input = st.text_area("Ask me a Python coding question:")
18
 
19
+ if st.button("Generate Answer"):
20
+ inputs = tokenizer(user_input, return_tensors="pt")
21
+ outputs = model.generate(**inputs, max_new_tokens=150)
22
+ response = tokenizer.decode(outputs[0], skip_special_tokens=True)
23
+ st.write("**Answer:**", response)