Raiff1982 commited on
Commit
d49a16d
·
verified ·
1 Parent(s): c835dfc

Update handler.py

Browse files
Files changed (1) hide show
  1. handler.py +29 -6
handler.py CHANGED
@@ -74,15 +74,38 @@ class EndpointHandler:
74
  """Load tokenizer/model from the provided path and attach them to AICore."""
75
  assert self.ai_core is not None, "AICore must be initialized before loading the model."
76
 
77
- model_id = self.model_path or self.ai_core.model_id or "gpt2"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  self.logger.info("Loading model for AICore from path: %s", model_id)
79
 
80
- self.tokenizer = AutoTokenizer.from_pretrained(model_id)
81
- if self.tokenizer.pad_token is None:
82
- self.tokenizer.pad_token = self.tokenizer.eos_token or self.tokenizer.unk_token
 
83
 
84
- pad_token_id = self.tokenizer.pad_token_id
85
- self.model = AutoModelForCausalLM.from_pretrained(model_id, pad_token_id=pad_token_id)
 
 
 
 
 
 
 
 
86
 
87
  if torch and torch.cuda.is_available():
88
  self.device = "cuda"
 
74
  """Load tokenizer/model from the provided path and attach them to AICore."""
75
  assert self.ai_core is not None, "AICore must be initialized before loading the model."
76
 
77
+ fallback_id = os.getenv("CODETTE_FALLBACK_MODEL_ID", "gpt2")
78
+ candidate_paths = [
79
+ self.model_path,
80
+ os.getenv("CODETTE_MODEL_PATH"),
81
+ os.getenv("CODETTE_MODEL_ID"),
82
+ os.path.join("models", "codette-advanced"),
83
+ os.path.join("models", "codette-v2", "best"),
84
+ ]
85
+
86
+ model_id = (
87
+ next((c for c in candidate_paths if c and os.path.exists(c)), None)
88
+ or next((c for c in candidate_paths if c), None)
89
+ or self.ai_core.model_id
90
+ or fallback_id
91
+ )
92
  self.logger.info("Loading model for AICore from path: %s", model_id)
93
 
94
+ try:
95
+ self.tokenizer = AutoTokenizer.from_pretrained(model_id)
96
+ if self.tokenizer.pad_token is None:
97
+ self.tokenizer.pad_token = self.tokenizer.eos_token or self.tokenizer.unk_token
98
 
99
+ pad_token_id = self.tokenizer.pad_token_id
100
+ self.model = AutoModelForCausalLM.from_pretrained(model_id, pad_token_id=pad_token_id)
101
+ except Exception as exc:
102
+ # Fallback to a known-good small model if the provided path is not a model repo
103
+ self.logger.warning("Model load failed for %s; retrying with fallback %s: %s", model_id, fallback_id, exc)
104
+ self.tokenizer = AutoTokenizer.from_pretrained(fallback_id)
105
+ if self.tokenizer.pad_token is None:
106
+ self.tokenizer.pad_token = self.tokenizer.eos_token or self.tokenizer.unk_token
107
+ pad_token_id = self.tokenizer.pad_token_id
108
+ self.model = AutoModelForCausalLM.from_pretrained(fallback_id, pad_token_id=pad_token_id)
109
 
110
  if torch and torch.cuda.is_available():
111
  self.device = "cuda"