167 lines
4.9 KiB
Python
167 lines
4.9 KiB
Python
# Copyright (c) ModelScope Contributors. All rights reserved.
|
|
import gradio as gr
|
|
import os
|
|
|
|
from swift.utils import get_logger
|
|
from ..llm_train import Runtime
|
|
|
|
logger = get_logger()
|
|
|
|
|
|
class RLHFRuntime(Runtime):
|
|
|
|
group = 'llm_rlhf'
|
|
|
|
locale_dict = {
|
|
'runtime_tab': {
|
|
'label': {
|
|
'zh': '运行时',
|
|
'en': 'Runtime'
|
|
},
|
|
},
|
|
'tb_not_found': {
|
|
'value': {
|
|
'zh': 'Tensorboard未安装,使用pip install tensorboard进行安装',
|
|
'en': 'Tensorboard not found, install it by pip install tensorboard',
|
|
}
|
|
},
|
|
'running_cmd': {
|
|
'label': {
|
|
'zh': '运行命令',
|
|
'en': 'Command line'
|
|
},
|
|
'info': {
|
|
'zh': '执行的实际命令',
|
|
'en': 'The actual command'
|
|
}
|
|
},
|
|
'show_log': {
|
|
'value': {
|
|
'zh': '展示运行状态',
|
|
'en': 'Show running status'
|
|
},
|
|
},
|
|
'stop_show_log': {
|
|
'value': {
|
|
'zh': '停止展示运行状态',
|
|
'en': 'Stop showing running status'
|
|
},
|
|
},
|
|
'logging_dir': {
|
|
'label': {
|
|
'zh': '日志路径',
|
|
'en': 'Logging dir'
|
|
},
|
|
'info': {
|
|
'zh': '支持手动传入文件路径',
|
|
'en': 'Support fill custom path in'
|
|
}
|
|
},
|
|
'log': {
|
|
'label': {
|
|
'zh': '日志输出',
|
|
'en': 'Logging content'
|
|
},
|
|
'info': {
|
|
'zh': '如果日志无更新请再次点击"展示运行状态"',
|
|
'en': 'Please press "Show running status" if the log content is not updating'
|
|
}
|
|
},
|
|
'running_tasks': {
|
|
'label': {
|
|
'zh': '运行中任务',
|
|
'en': 'Running Tasks'
|
|
},
|
|
'info': {
|
|
'zh': '运行中的任务(除`--rlhf_type grpo`之外的所有`swift rlhf`命令)',
|
|
'en': 'All running tasks(started by `swift rlhf` except `--rlhf_type grpo`)'
|
|
}
|
|
},
|
|
'show_running_cmd': {
|
|
'value': {
|
|
'zh': '展示运行命令',
|
|
'en': 'Show running command line'
|
|
},
|
|
},
|
|
'show_sh': {
|
|
'label': {
|
|
'zh': '展示sh命令行',
|
|
'en': 'Show sh command line'
|
|
},
|
|
},
|
|
'cmd_sh': {
|
|
'label': {
|
|
'zh': '训练命令行',
|
|
'en': 'Training command line'
|
|
},
|
|
'info': {
|
|
'zh':
|
|
'如果训练命令行没有展示请再次点击"展示运行命令",点击下方的"保存训练命令"可以保存sh脚本',
|
|
'en': ('Please press "Show running command line" if the content is none, '
|
|
'click the "Save training command" below to save the sh script')
|
|
}
|
|
},
|
|
'save_cmd_as_sh': {
|
|
'value': {
|
|
'zh': '保存训练命令',
|
|
'en': 'Save training command'
|
|
}
|
|
},
|
|
'save_cmd_alert': {
|
|
'value': {
|
|
'zh': '训练命令行将被保存在:{}',
|
|
'en': 'The training command line will be saved in: {}'
|
|
}
|
|
},
|
|
'close_cmd_show': {
|
|
'value': {
|
|
'zh': '关闭训练命令展示',
|
|
'en': 'Close training command show'
|
|
}
|
|
},
|
|
'refresh_tasks': {
|
|
'value': {
|
|
'zh': '找回运行时任务',
|
|
'en': 'Find running tasks'
|
|
},
|
|
},
|
|
'kill_task': {
|
|
'value': {
|
|
'zh': '杀死任务',
|
|
'en': 'Kill running task'
|
|
},
|
|
},
|
|
'tb_url': {
|
|
'label': {
|
|
'zh': 'Tensorboard链接',
|
|
'en': 'Tensorboard URL'
|
|
},
|
|
'info': {
|
|
'zh': '仅展示,不可编辑',
|
|
'en': 'Not editable'
|
|
}
|
|
},
|
|
'start_tb': {
|
|
'value': {
|
|
'zh': '打开TensorBoard',
|
|
'en': 'Start TensorBoard'
|
|
},
|
|
},
|
|
'close_tb': {
|
|
'value': {
|
|
'zh': '关闭TensorBoard',
|
|
'en': 'Close TensorBoard'
|
|
},
|
|
},
|
|
}
|
|
|
|
@classmethod
|
|
def save_cmd(cls, cmd):
|
|
if len(cmd) > 0:
|
|
cmd_sh, output_dir = cls.cmd_to_sh_format(cmd)
|
|
os.makedirs(output_dir, exist_ok=True)
|
|
sh_file_path = os.path.join(output_dir, 'rlhf.sh')
|
|
gr.Info(cls.locale('save_cmd_alert', cls.lang)['value'].format(sh_file_path))
|
|
with open(sh_file_path, 'w', encoding='utf-8') as f:
|
|
f.write(cmd_sh)
|