|
|
@@ -22,6 +22,7 @@ def make_cfg(**overrides):
|
|
|
"device": "",
|
|
|
"preload": ["multilingual"],
|
|
|
"default_checkpoint": "multilingual",
|
|
|
+ "predict_max_tokens": 1024,
|
|
|
}
|
|
|
cfg.update(overrides)
|
|
|
return SimpleNamespace(**cfg)
|
|
|
@@ -50,7 +51,8 @@ class FakeRouter:
|
|
|
self.max_concurrent = max(self.max_concurrent, self.current)
|
|
|
try:
|
|
|
self.predict_log.append(
|
|
|
- {"state": state, "questions": questions, "model": model, "lang": lang}
|
|
|
+ {"state": state, "questions": questions, "model": model, "lang": lang,
|
|
|
+ "kwargs": kwargs}
|
|
|
)
|
|
|
if "_warmup" in questions:
|
|
|
# loader warmup: never gated, returns immediately
|
|
|
@@ -492,6 +494,27 @@ def test_repeated_submit_drop_stop_leaves_no_thread_alive():
|
|
|
assert lingering == []
|
|
|
|
|
|
|
|
|
+def test_predict_passes_max_len_from_cfg():
|
|
|
+ calls = {"count": 0}
|
|
|
+ factory = make_factory(calls)
|
|
|
+ lane = LayaLane(make_cfg(predict_max_tokens=768), agent_factory=factory)
|
|
|
+ lane.start()
|
|
|
+ try:
|
|
|
+ assert wait_until(lane.ready)
|
|
|
+ router = factory.routers[0]
|
|
|
+ # loader warmup carries the budget too
|
|
|
+ assert router.predict_log[0]["kwargs"].get("max_len") == 768
|
|
|
+ router.predict_log.clear()
|
|
|
+ assert lane.submit("hello world", {"q": 1}, "es", 1) is True
|
|
|
+ assert wait_until(lambda: len(router.predict_log) >= 1, timeout=5.0)
|
|
|
+ call = router.predict_log[0]
|
|
|
+ assert call["kwargs"].get("max_len") == 768
|
|
|
+ assert call["model"] == "multilingual"
|
|
|
+ assert call["lang"] == "es"
|
|
|
+ finally:
|
|
|
+ lane.stop()
|
|
|
+
|
|
|
+
|
|
|
# -- todo 5: multilingual pin + lang + resource measurement ------------
|
|
|
|
|
|
def test_multilingual_pin_lang_and_resources():
|