diff --git a/swift/ui/llm_train/llm_train.py b/swift/ui/llm_train/llm_train.py index accc8207fc..3e019c8987 100644 --- a/swift/ui/llm_train/llm_train.py +++ b/swift/ui/llm_train/llm_train.py @@ -1,4 +1,5 @@ import os +import sys import time from dataclasses import fields from typing import Dict, Type @@ -262,7 +263,14 @@ def train(cls, *args): cuda_param = f'CUDA_VISIBLE_DEVICES={gpus}' log_file = os.path.join(sft_args.logging_dir, 'run.log') - run_command = f'{cuda_param} {ddp_param} nohup swift sft {params} > {log_file} 2>&1 &' + if sys.platform == 'win32': + if cuda_param: + cuda_param = f'set {cuda_param} && ' + if ddp_param: + ddp_param = f'set {ddp_param} && ' + run_command = f'{cuda_param}{ddp_param}start /b swift sft {params} > {log_file} 2>&1' + else: + run_command = f'{cuda_param} {ddp_param} nohup swift sft {params} > {log_file} 2>&1 &' logger.info(f'Run training: {run_command}') if not other_kwargs['dry_run']: os.makedirs(sft_args.logging_dir, exist_ok=True)