From c374c92b1d764ef418eeaf18897e422890e52323 Mon Sep 17 00:00:00 2001 From: wangzhihong Date: Fri, 18 Oct 2024 15:17:08 +0800 Subject: [PATCH] add train task lists --- lazyllm/engine/lightengine.py | 9 +++++++-- lazyllm/launcher.py | 5 +++++ lazyllm/module/module.py | 9 +++++++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/lazyllm/engine/lightengine.py b/lazyllm/engine/lightengine.py index b293d7ab..572cb748 100644 --- a/lazyllm/engine/lightengine.py +++ b/lazyllm/engine/lightengine.py @@ -39,8 +39,13 @@ def start(self, nodes: List[Dict] = [], edges: List[Dict] = [], resources: List[ self.build_node(node).func.start() return gid - def stop(self, id, task_name: Optional[str] = None): - node = self.build_node(id) + def status(self, node_id: str, task_name: Optional[str] = None): + node = self.build_node(node_id) + assert node.kind in ('LocalLLM') + return node.func.status(task_name=task_name) + + def stop(self, node_id: str, task_name: Optional[str] = None): + node = self.build_node(node_id) if task_name: assert node.kind in ('LocalLLM') node.func.stop(task_name=task_name) diff --git a/lazyllm/launcher.py b/lazyllm/launcher.py index 42b3f5de..c311ec06 100644 --- a/lazyllm/launcher.py +++ b/lazyllm/launcher.py @@ -47,6 +47,11 @@ def cleanup(self): LOG.info(f"killed job:{k}") self.all_processes.pop(self._id) + @property + def status(self): + assert len(self.all_processes[self._id]) == 1 + return self.all_processes[self._id][0].status + def wait(self): for _, v in self.all_processes[self._id]: v.wait() diff --git a/lazyllm/module/module.py b/lazyllm/module/module.py index 31474dbd..89badb4b 100644 --- a/lazyllm/module/module.py +++ b/lazyllm/module/module.py @@ -492,8 +492,9 @@ def _get_train_or_deploy_args(self, arg_cls: str, disable: List[str] = []): if len(set(args.keys()).intersection(set(disable))) > 0: raise ValueError(f'Key `{", ".join(disable)}` can not be set in ' '{arg_cls}_args, please pass them from Module.__init__()') - args['launcher'] = args['launcher'].clone() if args.get('launcher') else launchers.remote(sync=False) - self._launchers['default'][arg_cls] = args['launcher'] + if 'url' not in args: + args['launcher'] = args['launcher'].clone() if args.get('launcher') else launchers.remote(sync=False) + self._launchers['default'][arg_cls] = args['launcher'] return args def _get_train_tasks_impl(self, mode: Optional[str] = None, **kw): @@ -666,6 +667,10 @@ def stop(self, task_name: Optional[str] = None): launcher = self._impl._launchers['manual' if task_name else 'default'][task_name or 'deploy'] launcher.cleanup() + def status(self, task_name: Optional[str] = None): + launcher = self._impl._launchers['manual' if task_name else 'default'][task_name or 'deploy'] + return launcher.status + # modify default value to '' def prompt(self, prompt=''): if self.base_model != '' and prompt == '' and ModelManager.get_model_type(self.base_model) != 'llm':