krisha06 commited on
Commit
6a9d02e
Β·
verified Β·
1 Parent(s): 39b48c7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -9
app.py CHANGED
@@ -13,8 +13,9 @@ st.write("This AI tutor is fine-tuned on Python-related questions.")
13
  model_name = "microsoft/phi-2"
14
  tokenizer = AutoTokenizer.from_pretrained(model_name)
15
 
16
- # πŸ”₯ Fix: Add padding token
17
- tokenizer.add_special_tokens({'pad_token': '[PAD]'})
 
18
 
19
  # Check if fine-tuned model exists
20
  model_path = "./models"
@@ -27,7 +28,7 @@ else:
27
  # Load model on CPU
28
  model = AutoModelForCausalLM.from_pretrained(
29
  model_name,
30
- torch_dtype=torch.bfloat16,
31
  device_map={"": "cpu"} # Force CPU usage
32
  )
33
 
@@ -45,13 +46,13 @@ else:
45
  )
46
  model = get_peft_model(model, lora_config)
47
 
48
- # Load dataset
49
- dataset = load_dataset("mbpp", split="train")
50
 
51
  # πŸ”₯ Fix: Set `labels` properly
52
  def tokenize_function(examples):
53
- inputs = tokenizer(examples["text"], padding="max_length", truncation=True, max_length=512)
54
- inputs["labels"] = inputs["input_ids"].copy() # βœ… Fix: Ensure labels exist
55
  return inputs
56
 
57
  tokenized_dataset = dataset.map(tokenize_function, batched=True)
@@ -69,8 +70,8 @@ else:
69
  logging_dir="./logs",
70
  logging_steps=10,
71
  save_total_limit=2,
72
- evaluation_strategy="no", # βœ… Fix: No evaluation dataset needed
73
- load_best_model_at_end=False # βœ… Fix: Prevents conflict with no eval dataset
74
  )
75
 
76
  # Trainer
 
13
  model_name = "microsoft/phi-2"
14
  tokenizer = AutoTokenizer.from_pretrained(model_name)
15
 
16
+ # πŸ”₯ Fix: Add padding token if missing
17
+ if tokenizer.pad_token is None:
18
+ tokenizer.add_special_tokens({'pad_token': '[PAD]'})
19
 
20
  # Check if fine-tuned model exists
21
  model_path = "./models"
 
28
  # Load model on CPU
29
  model = AutoModelForCausalLM.from_pretrained(
30
  model_name,
31
+ torch_dtype=torch.float32, # Use float32 for CPU compatibility
32
  device_map={"": "cpu"} # Force CPU usage
33
  )
34
 
 
46
  )
47
  model = get_peft_model(model, lora_config)
48
 
49
+ # Load dataset (Choose any one)
50
+ dataset = load_dataset("lvwerra/codeparrot-clean", split="train") # βœ… Free dataset
51
 
52
  # πŸ”₯ Fix: Set `labels` properly
53
  def tokenize_function(examples):
54
+ inputs = tokenizer(examples["content"], padding="max_length", truncation=True, max_length=512)
55
+ inputs["labels"] = inputs["input_ids"].copy() # βœ… Ensure labels exist
56
  return inputs
57
 
58
  tokenized_dataset = dataset.map(tokenize_function, batched=True)
 
70
  logging_dir="./logs",
71
  logging_steps=10,
72
  save_total_limit=2,
73
+ evaluation_strategy="no", # βœ… No eval dataset needed
74
+ load_best_model_at_end=False # βœ… Prevents conflicts
75
  )
76
 
77
  # Trainer