Aadithya commited on
Commit
dd302c5
·
1 Parent(s): 6da8909

fix: recursively resolve huggingface weights inside autogluon output directories

Browse files
Files changed (1) hide show
  1. worker/chronos_client.py +14 -2
worker/chronos_client.py CHANGED
@@ -99,16 +99,28 @@ class LocalChronosClient(BaseChronosClient):
99
  if self.pipeline is None:
100
  from chronos import BaseChronosPipeline
101
  logger.info(f'Lazy loading Chronos model ({self.model_name})...')
 
 
 
 
 
 
 
 
 
 
 
 
102
  try:
103
  self.pipeline = BaseChronosPipeline.from_pretrained(
104
- self.model_name,
105
  device_map=self.device,
106
  torch_dtype=torch.float32,
107
  )
108
  except Exception as e:
109
  fallback = "amazon/chronos-t5-base"
110
  logger.warning(
111
- f"Failed to load model '{self.model_name}': {e}. "
112
  f"Falling back to '{fallback}'."
113
  )
114
  self.model_name = fallback
 
99
  if self.pipeline is None:
100
  from chronos import BaseChronosPipeline
101
  logger.info(f'Lazy loading Chronos model ({self.model_name})...')
102
+
103
+ import os
104
+ resolved_model_path = self.model_name
105
+ # If path is a local directory but missing config.json, it's likely an AutoGluon wrapper.
106
+ # Recursively search for the actual Hugging Face model directory.
107
+ if os.path.isdir(resolved_model_path) and not os.path.exists(os.path.join(resolved_model_path, "config.json")):
108
+ for root, _, files in os.walk(resolved_model_path):
109
+ if "config.json" in files:
110
+ resolved_model_path = root
111
+ logger.info(f"AutoGluon fine-tuned weights discovered at: {resolved_model_path}")
112
+ break
113
+
114
  try:
115
  self.pipeline = BaseChronosPipeline.from_pretrained(
116
+ resolved_model_path,
117
  device_map=self.device,
118
  torch_dtype=torch.float32,
119
  )
120
  except Exception as e:
121
  fallback = "amazon/chronos-t5-base"
122
  logger.warning(
123
+ f"Failed to load model '{resolved_model_path}': {e}. "
124
  f"Falling back to '{fallback}'."
125
  )
126
  self.model_name = fallback