๊น€์ค€ํœ˜ commited on
Commit
d52e44d
ยท
1 Parent(s): 3e87bd8
Files changed (1) hide show
  1. app.py +25 -18
app.py CHANGED
@@ -4,27 +4,34 @@ from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
4
  from peft import PeftModel
5
 
6
  model_name = "Qwen/Qwen2.5-1.5B-Instruct"
7
-
8
- # 1) ๋ฒ ์ด์Šค ๋ชจ๋ธ ๋กœ๋“œ (ํ•™์Šตํ•  ๋•Œ์™€ ๋™์ผํ•œ ์„ค์ •)
9
- bnb_config = BitsAndBytesConfig(
10
- load_in_4bit=True,
11
- bnb_4bit_quant_type="nf4",
12
- bnb_4bit_compute_dtype=torch.float16,
13
- bnb_4bit_use_double_quant=True,
14
- )
15
-
16
- base_model = AutoModelForCausalLM.from_pretrained(
17
- model_name,
18
- quantization_config=bnb_config,
19
- device_map="auto",
20
- )
21
  tokenizer = AutoTokenizer.from_pretrained(model_name)
22
 
23
- # 2) HuggingFace์—์„œ LoRA ๊ฐ€์ค‘์น˜ ๋‹ค์šด๋กœ๋“œ & ์ ์šฉ
24
- model = PeftModel.from_pretrained(base_model, "JunHwi/Joseon-Qwen")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
  @spaces.GPU
27
- def generate(prompt, model, max_new_tokens=200):
 
28
  model.eval()
29
  messages = [{"role": "user", "content": prompt}]
30
  inputs = tokenizer.apply_chat_template(
@@ -46,6 +53,6 @@ def generate(prompt, model, max_new_tokens=200):
46
  import gradio as gr
47
 
48
  def chat(message, history):
49
- return generate(message, model)
50
 
51
  gr.ChatInterface(chat).launch() # Colab์—์„œ๋Š” share=True ๋กœ ์ž„์‹œ ๊ณต๊ฐœ ๋งํฌ ์ƒ์„ฑ
 
4
  from peft import PeftModel
5
 
6
  model_name = "Qwen/Qwen2.5-1.5B-Instruct"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  tokenizer = AutoTokenizer.from_pretrained(model_name)
8
 
9
+ model = None
10
+
11
+ def load_model():
12
+ # ZeroGPU์—์„œ๋Š” ์‹ค์ œ GPU๊ฐ€ @spaces.GPU ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ์ ์—๋งŒ ํ• ๋‹น๋˜๋ฏ€๋กœ
13
+ # bitsandbytes 4bit ๋กœ๋”ฉ๋„ ์ด ํ•จ์ˆ˜ ์•ˆ์—์„œ ์ฒ˜์Œ ํ˜ธ์ถœ๋  ๋•Œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค.
14
+ global model
15
+ if model is not None:
16
+ return model
17
+
18
+ bnb_config = BitsAndBytesConfig(
19
+ load_in_4bit=True,
20
+ bnb_4bit_quant_type="nf4",
21
+ bnb_4bit_compute_dtype=torch.float16,
22
+ bnb_4bit_use_double_quant=True,
23
+ )
24
+ base_model = AutoModelForCausalLM.from_pretrained(
25
+ model_name,
26
+ quantization_config=bnb_config,
27
+ device_map="auto",
28
+ )
29
+ model = PeftModel.from_pretrained(base_model, "JunHwi/Joseon-Qwen")
30
+ return model
31
 
32
  @spaces.GPU
33
+ def generate(prompt, max_new_tokens=200):
34
+ model = load_model()
35
  model.eval()
36
  messages = [{"role": "user", "content": prompt}]
37
  inputs = tokenizer.apply_chat_template(
 
53
  import gradio as gr
54
 
55
  def chat(message, history):
56
+ return generate(message)
57
 
58
  gr.ChatInterface(chat).launch() # Colab์—์„œ๋Š” share=True ๋กœ ์ž„์‹œ ๊ณต๊ฐœ ๋งํฌ ์ƒ์„ฑ