65rted6tfdjhgfjyrf commited on
Commit
3577fad
Β·
verified Β·
1 Parent(s): 7ee518c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -12
app.py CHANGED
@@ -1,5 +1,5 @@
1
  import torch
2
- from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
3
  from peft import PeftModel
4
  import gradio as gr
5
  import os
@@ -20,29 +20,27 @@ FINETUNED_MODEL_DIR = "./finetuned_model" # Path to your adapter weights
20
  # Load tokenizer
21
  tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
22
 
23
- # Load base model with quantization
24
- quantization_config = BitsAndBytesConfig(
25
- load_in_4bit=True,
26
- bnb_4bit_compute_dtype=torch.float16,
27
- bnb_4bit_use_double_quant=True
28
- )
29
-
30
  base_model = AutoModelForCausalLM.from_pretrained(
31
  BASE_MODEL,
32
- quantization_config=quantization_config,
33
- torch_dtype=torch.float16,
34
- device_map="auto"
35
  )
36
 
 
 
 
37
  # Load LoRA adapter
38
  model = PeftModel.from_pretrained(base_model, FINETUNED_MODEL_DIR)
39
 
40
  # Merge adapter with base model
41
  model = model.merge_and_unload()
42
 
 
 
 
43
  # Inference function
44
  def chat(message):
45
- inputs = tokenizer(message, return_tensors="pt").to("cuda" if torch.cuda.is_available() else "cpu")
46
  output = model.generate(**inputs, max_new_tokens=100)
47
  response = tokenizer.decode(output[0], skip_special_tokens=True)
48
  return response
 
1
  import torch
2
+ from transformers import AutoModelForCausalLM, AutoTokenizer
3
  from peft import PeftModel
4
  import gradio as gr
5
  import os
 
20
  # Load tokenizer
21
  tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
22
 
23
+ # Load base model (WITHOUT bitsandbytes)
 
 
 
 
 
 
24
  base_model = AutoModelForCausalLM.from_pretrained(
25
  BASE_MODEL,
26
+ torch_dtype=torch.float32 # Ensure CPU compatibility
 
 
27
  )
28
 
29
+ # Move base model to CPU
30
+ base_model.to("cpu")
31
+
32
  # Load LoRA adapter
33
  model = PeftModel.from_pretrained(base_model, FINETUNED_MODEL_DIR)
34
 
35
  # Merge adapter with base model
36
  model = model.merge_and_unload()
37
 
38
+ # Move model to CPU (again, just to be sure)
39
+ model.to("cpu")
40
+
41
  # Inference function
42
  def chat(message):
43
+ inputs = tokenizer(message, return_tensors="pt").to("cpu") # Ensure inputs are on CPU
44
  output = model.generate(**inputs, max_new_tokens=100)
45
  response = tokenizer.decode(output[0], skip_special_tokens=True)
46
  return response