Spaces:
Runtime error
Runtime error
from typing import Dict, Any | |
import os | |
import json | |
import sys | |
def build_command_list(args: Dict[str, Any]) -> list: | |
"""Build command list for training script.""" | |
cmd = ["python", "src/train.py"] | |
for key, value in args.items(): | |
if value is None or value == "": | |
continue | |
if isinstance(value, bool): | |
if value: | |
cmd.append(f"--{key}") | |
elif key == "lora_target_modules": | |
if value: | |
cmd.append(f"--{key}") | |
cmd.extend(value) | |
else: | |
cmd.extend([f"--{key}", str(value)]) | |
return cmd | |
def preview_command(args: Dict[str, Any]) -> str: | |
"""Generate preview of training command.""" | |
cmd = build_command_list(args) | |
return " ".join(cmd) | |
def save_arguments(args: Dict[str, Any], output_dir: str): | |
"""Save training arguments to file.""" | |
os.makedirs(output_dir, exist_ok=True) | |
args_file = os.path.join(output_dir, "training_args.json") | |
with open(args_file, 'w') as f: | |
json.dump(args, f, indent=2) | |
def build_eval_command_list(args: Dict[str, Any]) -> list: | |
"""构建评估脚本的命令行列表""" | |
cmd = ["python", "src/eval.py"] | |
for key, value in args.items(): | |
if value is None or value == "": | |
continue | |
if isinstance(value, bool): | |
if value: | |
cmd.append(f"--{key}") | |
else: | |
cmd.extend([f"--{key}", str(value)]) | |
return cmd | |
def preview_eval_command(args: Dict[str, Any]) -> str: | |
"""生成评估命令的预览""" | |
cmd = build_eval_command_list(args) | |
return " ".join(cmd) | |
def build_predict_command_list(args: Dict[str, Any], is_batch: bool = False) -> list: | |
"""构建预测脚本的命令行列表""" | |
# 根据是否为批量预测选择不同的脚本 | |
script = "src/predict_batch.py" if is_batch else "src/predict.py" | |
cmd = ["python", script] | |
for key, value in args.items(): | |
if value is None or value == "": | |
continue | |
if isinstance(value, bool): | |
if value: | |
cmd.append(f"--{key}") | |
elif isinstance(value, list): | |
if value: | |
cmd.append(f"--{key}") | |
cmd.extend([str(v) for v in value]) | |
else: | |
cmd.extend([f"--{key}", str(value)]) | |
return cmd | |
def preview_predict_command(args: Dict[str, Any], is_batch: bool = False) -> str: | |
"""生成预测命令的预览""" | |
cmd = build_predict_command_list(args, is_batch) | |
return " ".join(cmd) |