kleervoyans commited on
Commit
08c5787
·
verified ·
1 Parent(s): ff2d1f9

Create model_selector.py

Browse files
Files changed (1) hide show
  1. models/model_selector.py +28 -0
models/model_selector.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import logging
2
+ from models.model_loader import ModelLoader
3
+
4
+ logger = logging.getLogger(__name__)
5
+
6
+ class ModelSelector:
7
+ """
8
+ Given a list of candidate model names, attempts to load each in turn
9
+ and returns the first that succeeds.
10
+ """
11
+ def __init__(self, candidates=None, quantize=True):
12
+ # Default candidates: NLLB distilled, then M2M100
13
+ self.candidates = candidates or [
14
+ "facebook/nllb-200-distilled-600M",
15
+ "facebook/m2m100_418M"
16
+ ]
17
+ self.quantize = quantize
18
+
19
+ def select(self) -> str:
20
+ loader = ModelLoader(quantize=self.quantize)
21
+ for name in self.candidates:
22
+ try:
23
+ _, _ = loader.load(name)
24
+ logger.info(f"✔️ Selected translation model: {name}")
25
+ return name
26
+ except Exception as e:
27
+ logger.warning(f"Failed to load {name}: {e}")
28
+ raise RuntimeError("No translation model could be loaded.")