Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig, TextStreamer | |
| import torch | |
| MODEL_PATH = "./tinyllama-python-tutor-lora" | |
| st.title("TinyLLaMA Python Tutor 💬") | |
| def load_model(): | |
| bnb_config = BitsAndBytesConfig( | |
| load_in_8bit=True, | |
| llm_int8_threshold=6.0, | |
| llm_int8_skip_modules=None, | |
| llm_int8_enable_fp32_cpu_offload=True | |
| ) | |
| tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH, use_fast=True) | |
| model = AutoModelForCausalLM.from_pretrained( | |
| MODEL_PATH, | |
| quantization_config=bnb_config, | |
| device_map="auto" | |
| ) | |
| return tokenizer, model | |
| tokenizer, model = load_model() | |
| prompt = st.text_area("Ask me about Python:", height=200) | |
| if st.button("Generate Response"): | |
| if prompt.strip(): | |
| inputs = tokenizer(prompt, return_tensors="pt").to("cuda") | |
| output = model.generate(**inputs, max_new_tokens=200, do_sample=True) | |
| response = tokenizer.decode(output[0], skip_special_tokens=True) | |
| st.write("### Response") | |
| st.success(response) | |
| else: | |
| st.warning("Please enter a prompt!") | |